diff --git a/examples/audio/src/main/java/com/github/manevolent/ts3j/examples/audio/MusicPlayer.java b/examples/audio/src/main/java/com/github/manevolent/ts3j/examples/audio/MusicPlayer.java index 2c21829..f2d2a15 100644 --- a/examples/audio/src/main/java/com/github/manevolent/ts3j/examples/audio/MusicPlayer.java +++ b/examples/audio/src/main/java/com/github/manevolent/ts3j/examples/audio/MusicPlayer.java @@ -29,7 +29,7 @@ public class MusicPlayer { * @throws Exception */ public static void main(String[] args) throws Exception { - Ts3Debugging.setEnabled(false); + Ts3Debugging.setEnabled(true); // Open file FFmpeg.register(); @@ -139,6 +139,8 @@ public class MusicPlayer { System.err.println(((double)(System.nanoTime() - start) / 1_000_000_000D) + " " + (sink.getPacketsSent() / 50D) + " " + sink.getUnderflows()); if (sleep > 0) Thread.sleep(sleep); + + break; } System.err.println("Draining..."); diff --git a/src/main/java/com/github/manevolent/ts3j/event/ClientChatClosedEvent.java b/src/main/java/com/github/manevolent/ts3j/event/ClientChatClosedEvent.java new file mode 100644 index 0000000..662713e --- /dev/null +++ b/src/main/java/com/github/manevolent/ts3j/event/ClientChatClosedEvent.java @@ -0,0 +1,24 @@ +package com.github.manevolent.ts3j.event; + +import com.github.manevolent.ts3j.api.ClientProperty; + +import java.util.Map; + +public class ClientChatClosedEvent extends BaseEvent { + public ClientChatClosedEvent(Map map) { + super(map); + } + + @Override + public void fire(TS3Listener listener) { + listener.onClientChatClosed(this); + } + + public int getClientId() { + return getInt("clid"); + } + + public String getUniqueClientIdentifier() { + return get("cluid"); + } +} \ No newline at end of file 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 1ba2e62..e76b527 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Event.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Event.java @@ -79,6 +79,8 @@ public interface TS3Event { return new ClientPokeEvent(command.toMap()); case "notifyclientchatcomposing": // CLIENT return new ClientChatComposingEvent(command.toMap()); + case "notifyclientchatclosed": // CLIENT + return new ClientChatClosedEvent(command.toMap()); case "notifypermissionlist": // CLIENT return new PermissionListEvent(command.toMap()); default: 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 6c3735f..4aee012 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java @@ -54,4 +54,5 @@ public interface TS3Listener { default void onClientComposing(ClientChatComposingEvent e) {} default void onPermissionList(PermissionListEvent e) {} default void onConnected(ConnectedEvent e) {} + default void onClientChatClosed(ClientChatClosedEvent e) {} } diff --git a/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java b/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java index bb206d4..6c1aa0e 100644 --- a/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java +++ b/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java @@ -28,6 +28,8 @@ public class ServerConnectionTest { client.subscribeAll(); + Thread.sleep(100000); + client.disconnect("BYE"); } catch (Exception ex) { ex.printStackTrace();