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 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);
}
}
@@ -434,7 +434,6 @@ public class LocalTeamspeakClientSocket
processor.process(client, singleCommand); processor.process(client, singleCommand);
} else if (singleCommand.getName().startsWith("notify")) { } else if (singleCommand.getName().startsWith("notify")) {
TS3Event event = TS3Event.createEvent(singleCommand); TS3Event event = TS3Event.createEvent(singleCommand);
commandExecutionService.submit(() -> listeners.forEach(event::fire)); commandExecutionService.submit(() -> listeners.forEach(event::fire));
} else { } else {
CommandProcessor awaitingCommandProcessor; CommandProcessor awaitingCommandProcessor;