Merge pull request #22 from Phyrone/master

unknown events will be catched and no longer break the whole client
This commit is contained in:
sump pump
2020-05-25 19:32:24 -06:00
committed by GitHub
4 changed files with 26 additions and 5 deletions
@@ -88,7 +88,7 @@ public interface TS3Event {
case "notifychannelpermhints": // CLIENT
return new ChannelPermHintsEvent(command.toMap());
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 onClientPermHints(ClientPermHintsEvent 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);
}
}
@@ -434,7 +434,6 @@ public class LocalTeamspeakClientSocket
processor.process(client, singleCommand);
} else if (singleCommand.getName().startsWith("notify")) {
TS3Event event = TS3Event.createEvent(singleCommand);
commandExecutionService.submit(() -> listeners.forEach(event::fire));
} else {
CommandProcessor awaitingCommandProcessor;