replaced IllegalArgumentException with an UnknownTeamspeakEvent if the event is not registered

This commit is contained in:
Phyrone
2020-05-23 15:43:00 +02:00
parent 0b5d63b6f7
commit baf74654f1
4 changed files with 25 additions and 8 deletions
@@ -88,7 +88,7 @@ public interface TS3Event {
case "notifychannelpermhints": // CLIENT case "notifychannelpermhints": // CLIENT
return new ChannelPermHintsEvent(command.toMap()); return new ChannelPermHintsEvent(command.toMap());
default: default:
throw new IllegalArgumentException("unknown event: " + command.getName()); return new UnknownTeamspeakEvent(command.getName(),command.toMap());
} }
} }
} }
@@ -57,4 +57,5 @@ public interface TS3Listener {
default void onClientChatClosed(ClientChatClosedEvent e) {} default void onClientChatClosed(ClientChatClosedEvent e) {}
default void onClientPermHints(ClientPermHintsEvent e) {} default void onClientPermHints(ClientPermHintsEvent e) {}
default void onChannelPermHints(ChannelPermHintsEvent e) {} default void onChannelPermHints(ChannelPermHintsEvent e) {}
default void onUnknownEvent(UnknownTeamspeakEvent e){}
} }
@@ -0,0 +1,21 @@
package com.github.manevolent.ts3j.event;
import java.util.Map;
public class UnknownTeamspeakEvent extends BaseEvent {
String command;
public UnknownTeamspeakEvent(String command, Map<String, String> map) {
super(map);
this.command = command;
}
public String getCommand() {
return command;
}
@Override
public void fire(TS3Listener listener) {
listener.onUnknownEvent(this);
}
}
@@ -433,13 +433,8 @@ public class LocalTeamspeakClientSocket
if (processor != null) { if (processor != null) {
processor.process(client, singleCommand); processor.process(client, singleCommand);
} else if (singleCommand.getName().startsWith("notify")) { } else if (singleCommand.getName().startsWith("notify")) {
try {
TS3Event event = TS3Event.createEvent(singleCommand); TS3Event event = TS3Event.createEvent(singleCommand);
commandExecutionService.submit(() -> listeners.forEach(event::fire)); commandExecutionService.submit(() -> listeners.forEach(event::fire));
} catch (IllegalArgumentException exception) {
exception.printStackTrace();
}
} else { } else {
CommandProcessor awaitingCommandProcessor; CommandProcessor awaitingCommandProcessor;