From a535724a4b9896fb881530dcccdee00a8c70fcba Mon Sep 17 00:00:00 2001 From: Manevolent Date: Sat, 4 Aug 2018 22:38:44 -0400 Subject: [PATCH] Ignore compressed packets for voice, there is an issue --- .../socket/client/AbstractTeamspeakClientSocket.java | 9 +++++++++ .../socket/client/LocalTeamspeakClientSocket.java | 1 + 2 files changed, 10 insertions(+) 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 446d921..36dbe39 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 @@ -499,6 +499,7 @@ public abstract class AbstractTeamspeakClientSocket // Finally, handle compressed bodies if (packet.getBody() instanceof PacketBodyCompressed) { + Ts3Debugging.debug("[PROTOCOL] DECOMPRESS " + networkPacket.getHeader().getType().name()); byte[] decompressed = QuickLZ.decompress(((PacketBodyCompressed) packet.getBody()).getCompressed()); @@ -554,6 +555,14 @@ public abstract class AbstractTeamspeakClientSocket } networkPacket.getHeader().setGeneration(generation); + + // Ignore voice and whisper, there is a decompression issue with them + if (networkPacket.getHeader().getPacketFlag(HeaderFlag.COMPRESSED) && ( + networkPacket.getHeader().getType() == PacketBodyType.VOICE || + networkPacket.getHeader().getType() == PacketBodyType.VOICE_WHISPER + )) + continue; + // Read packet (decrypt, decompress, etc) Packet packet = readPacketIntl(networkPacket); 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 bb94e57..6880bcb 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 @@ -21,6 +21,7 @@ import com.github.manevolent.ts3j.protocol.packet.PacketBody2Command; import com.github.manevolent.ts3j.util.HighPrecisionRecurrentTask; import com.github.manevolent.ts3j.util.Ts3Debugging; +import java.io.Closeable; import java.io.IOException; import java.net.*; import java.nio.ByteBuffer;