From baf74654f11a25812fe80db9eea9e3d51b0e9967 Mon Sep 17 00:00:00 2001 From: Phyrone Date: Sat, 23 May 2020 15:43:00 +0200 Subject: [PATCH] replaced IllegalArgumentException with an UnknownTeamspeakEvent if the event is not registered --- .../manevolent/ts3j/event/TS3Event.java | 2 +- .../manevolent/ts3j/event/TS3Listener.java | 1 + .../ts3j/event/UnknownTeamspeakEvent.java | 21 +++++++++++++++++++ .../client/LocalTeamspeakClientSocket.java | 9 ++------ 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/github/manevolent/ts3j/event/UnknownTeamspeakEvent.java 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 086f3a7..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 @@ -433,13 +433,8 @@ public class LocalTeamspeakClientSocket if (processor != null) { processor.process(client, singleCommand); } else if (singleCommand.getName().startsWith("notify")) { - try { - TS3Event event = TS3Event.createEvent(singleCommand); - commandExecutionService.submit(() -> listeners.forEach(event::fire)); - } catch (IllegalArgumentException exception) { - exception.printStackTrace(); - } - + TS3Event event = TS3Event.createEvent(singleCommand); + commandExecutionService.submit(() -> listeners.forEach(event::fire)); } else { CommandProcessor awaitingCommandProcessor;