diff --git a/src/main/java/com/github/manevolent/ts3j/event/PermissionListEvent.java b/src/main/java/com/github/manevolent/ts3j/event/PermissionListEvent.java new file mode 100644 index 0000000..86c91d1 --- /dev/null +++ b/src/main/java/com/github/manevolent/ts3j/event/PermissionListEvent.java @@ -0,0 +1,14 @@ +package com.github.manevolent.ts3j.event; + +import java.util.Map; + +public class PermissionListEvent extends BaseEvent { + public PermissionListEvent(Map map) { + super(map); + } + + @Override + public void fire(TS3Listener listener) { + listener.onPermissionList(this); + } +} 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 b04807f..1ba2e62 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 "notifypermissionlist": // CLIENT + return new PermissionListEvent(command.toMap()); default: throw new IllegalArgumentException("unknown event: " + command.getName()); } 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 54d5947..4fab21d 100644 --- a/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java +++ b/src/main/java/com/github/manevolent/ts3j/event/TS3Listener.java @@ -52,4 +52,5 @@ public interface TS3Listener { default void onServerGroupClientDeleted(ServerGroupClientDeletedEvent e) {} default void onClientPoke(ClientPokeEvent e) {} default void onClientComposing(ClientChatComposingEvent e) {} + default void onPermissionList(PermissionListEvent e) {} } diff --git a/src/main/java/com/github/manevolent/ts3j/protocol/packet/PacketBody8Init1.java b/src/main/java/com/github/manevolent/ts3j/protocol/packet/PacketBody8Init1.java index 2d58b35..748e434 100644 --- a/src/main/java/com/github/manevolent/ts3j/protocol/packet/PacketBody8Init1.java +++ b/src/main/java/com/github/manevolent/ts3j/protocol/packet/PacketBody8Init1.java @@ -82,6 +82,9 @@ public class PacketBody8Init1 extends PacketBody { case 4: step = new Step4(); break; + case 127: + step = new Step127(); + break; default: throw new IllegalArgumentException("invalid Init1 step: " + stepNumber); } @@ -423,4 +426,25 @@ public class PacketBody8Init1 extends PacketBody { return 64 + 64 + 4 + 100 + 64 + clientivcommand.length; } } + + public class Step127 extends Step { + protected Step127() { + super((byte)127, ProtocolRole.SERVER); + } + + @Override + public void read(ByteBuffer byteBuffer) { + + } + + @Override + public void write(ByteBuffer byteBuffer) { + + } + + @Override + public int getSize() { + return 0; + } + } } diff --git a/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java b/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java index 0f90078..46d3b45 100644 --- a/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java +++ b/src/test/java/com/github/manevolent/ts3j/ServerConnectionTest.java @@ -24,15 +24,11 @@ public class ServerConnectionTest { Ts3Debugging.setEnabled(true); - LocalIdentity identity = LocalIdentity.load( - new BigInteger(Base64.getDecoder().decode("Tj6YXM3qyRv8n25L2pH+OEJnRUl4auQf8+znjYrOmWU=")) - ); - - identity.improveSecurity(10); + LocalIdentity identity = LocalIdentity.generateNew(9); client.setIdentity(identity); - client.setNickname("Hello from Java"); - client.setHWID("JAVAJAVAJAVA"); + client.setNickname("ts3j issue 2"); + client.setHWID("TestTestTest"); while (true) { @@ -49,7 +45,7 @@ public class ServerConnectionTest { ex.printStackTrace(); } - client.disconnect(); + Thread.sleep(30000); } } }