From 8cd5fd100ca004bb71df6e0a081c28864e8a29f4 Mon Sep 17 00:00:00 2001 From: Manevolent Date: Sun, 20 Jan 2019 19:34:26 -0500 Subject: [PATCH] We don't have an "onConnected" event, adding that now. --- .../manevolent/ts3j/event/ConnectedEvent.java | 14 ++++++++++++++ .../github/manevolent/ts3j/event/TS3Listener.java | 1 + .../client/LocalClientHandlerConnected.java | 8 ++++++++ .../client/AbstractTeamspeakClientSocket.java | 6 ++++++ .../socket/client/LocalTeamspeakClientSocket.java | 12 ++++++++++-- 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/github/manevolent/ts3j/event/ConnectedEvent.java diff --git a/src/main/java/com/github/manevolent/ts3j/event/ConnectedEvent.java b/src/main/java/com/github/manevolent/ts3j/event/ConnectedEvent.java new file mode 100644 index 0000000..dfcd9c1 --- /dev/null +++ b/src/main/java/com/github/manevolent/ts3j/event/ConnectedEvent.java @@ -0,0 +1,14 @@ +package com.github.manevolent.ts3j.event; + +import java.util.Map; + +public class ConnectedEvent extends BaseEvent { + public ConnectedEvent(Map map) { + super(map); + } + + @Override + public void fire(TS3Listener listener) { + listener.onConnected(this); + } +} 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 4fab21d..6c3735f 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java @@ -53,4 +53,5 @@ public interface TS3Listener { default void onClientPoke(ClientPokeEvent e) {} default void onClientComposing(ClientChatComposingEvent e) {} default void onPermissionList(PermissionListEvent e) {} + default void onConnected(ConnectedEvent e) {} } diff --git a/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerConnected.java b/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerConnected.java index 1febd3a..26829be 100644 --- a/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerConnected.java +++ b/src/main/java/com/github/manevolent/ts3j/protocol/packet/handler/client/LocalClientHandlerConnected.java @@ -2,8 +2,16 @@ package com.github.manevolent.ts3j.protocol.packet.handler.client; import com.github.manevolent.ts3j.protocol.socket.client.LocalTeamspeakClientSocket; +import java.io.IOException; +import java.util.concurrent.TimeoutException; + public class LocalClientHandlerConnected extends LocalClientHandlerFull { public LocalClientHandlerConnected(LocalTeamspeakClientSocket client) { super(client); } + + @Override + public void onAssigned() throws IOException, TimeoutException { + + } } diff --git a/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java b/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java index 020e1d8..b11112a 100644 --- a/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java +++ b/src/main/java/com/github/manevolent/ts3j/protocol/socket/client/AbstractTeamspeakClientSocket.java @@ -188,6 +188,8 @@ public abstract class AbstractTeamspeakClientSocket if (state == ClientConnectionState.DISCONNECTED && !initialState) onDisconnect(); + else if (state == ClientConnectionState.CONNECTED && !initialState) + onConnect(); Ts3Debugging.debug("State changed: " + state.name()); } @@ -214,6 +216,10 @@ public abstract class AbstractTeamspeakClientSocket } } + protected void onConnect() { + + } + protected void onDisconnect() { clientId = -1; 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 95aaf08..5ef448b 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 @@ -70,8 +70,8 @@ public class LocalTeamspeakClientSocket @Override public void process(AbstractTeamspeakClientSocket client, SingleCommand singleCommand) throws CommandProcessException { - ChannelListEvent channelListEvent = new ChannelListEvent(singleCommand.toMap()); - for (TS3Listener listener : listeners) listener.onChannelList(channelListEvent); + final ChannelListEvent channelListEvent = new ChannelListEvent(singleCommand.toMap()); + commandExecutionService.submit(() -> listeners.forEach(e -> e.onChannelList(channelListEvent))); } }); @@ -273,6 +273,14 @@ public class LocalTeamspeakClientSocket super.setIdentity(identity); } + @Override + protected void onConnect() { + super.onConnect(); + + final ConnectedEvent connectedEvent = new ConnectedEvent(Collections.emptyMap()); + commandExecutionService.submit(() -> listeners.forEach(e -> e.onConnected(connectedEvent))); + } + @Override protected void onDisconnect() { super.onDisconnect();