diff --git a/src/main/java/com/github/manevolent/ts3j/event/TS3Event.java b/src/main/java/com/github/manevolent/ts3j/event/TS3Event.java index c38ffae..e84c561 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Event.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Event.java @@ -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()); } } } diff --git a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java index e2024fd..0f68c23 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java @@ -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){} } diff --git a/src/main/java/com/github/manevolent/ts3j/event/UnknownTeamspeakEvent.java b/src/main/java/com/github/manevolent/ts3j/event/UnknownTeamspeakEvent.java new file mode 100644 index 0000000..7303b4d --- /dev/null +++ b/src/main/java/com/github/manevolent/ts3j/event/UnknownTeamspeakEvent.java @@ -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 map) { + super(map); + this.command = command; + } + + public String getCommand() { + return command; + } + + @Override + public void fire(TS3Listener listener) { + listener.onUnknownEvent(this); + } +} diff --git a/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/LocalTeamspeakClientSocket.java b/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/LocalTeamspeakClientSocket.java index fbd6322..6de839a 100644 --- a/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/LocalTeamspeakClientSocket.java +++ b/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/LocalTeamspeakClientSocket.java @@ -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; @@ -521,9 +520,9 @@ public class LocalTeamspeakClientSocket if (microphone != null && microphoneThread == null) { microphoneThread = new HighPrecisionTimer( - 20, - 5F, // up to 100ms of drift/catchup - new MicrophoneTask() + 20, + 5F, // up to 100ms of drift/catchup + new MicrophoneTask() ); microphoneThread.setDaemon(true);