I'm changing whisper and voice handlers. I think that the COMPRESSED flag is important, it may signal you to reset your decoder for each incoming packet. Not sure.

This commit is contained in:
Manevolent
2018-10-13 01:35:09 -04:00
parent 6bf85e3c6c
commit ce77f91c6f
4 changed files with 15 additions and 16 deletions
@@ -55,12 +55,12 @@ public abstract class LocalClientHandlerFull extends LocalClientHandler {
break; break;
case VOICE: case VOICE:
Consumer<PacketBody0Voice> handler = getClient().getVoiceHandler(); Consumer<Packet> handler = getClient().getVoiceHandler();
if (handler != null) handler.accept((PacketBody0Voice) packet.getBody()); if (handler != null) handler.accept(packet);
break; break;
case VOICE_WHISPER: case VOICE_WHISPER:
Consumer<PacketBody1VoiceWhisper> whisperConsumer = getClient().getWhisperHandler(); Consumer<Packet> whisperConsumer = getClient().getWhisperHandler();
if (whisperConsumer != null) whisperConsumer.accept((PacketBody1VoiceWhisper) packet.getBody()); if (whisperConsumer != null) whisperConsumer.accept(packet);
break; break;
} }
} }
@@ -70,8 +70,8 @@ public abstract class AbstractTeamspeakClientSocket
private CommandProcessor commandProcessor; private CommandProcessor commandProcessor;
private Consumer<PacketBody0Voice> voiceHandler; private Consumer<Packet> voiceHandler;
private Consumer<PacketBody1VoiceWhisper> whisperHandler; private Consumer<Packet> whisperHandler;
private Consumer<Throwable> exceptionHandler = Throwable::printStackTrace; private Consumer<Throwable> exceptionHandler = Throwable::printStackTrace;
@@ -897,19 +897,19 @@ public abstract class AbstractTeamspeakClientSocket
this.exceptionHandler = exceptionHandler; this.exceptionHandler = exceptionHandler;
} }
public Consumer<PacketBody0Voice> getVoiceHandler() { public Consumer<Packet> getVoiceHandler() {
return voiceHandler; return voiceHandler;
} }
public void setVoiceHandler(Consumer<PacketBody0Voice> voiceHandler) { public void setVoiceHandler(Consumer<Packet> voiceHandler) {
this.voiceHandler = voiceHandler; this.voiceHandler = voiceHandler;
} }
public Consumer<PacketBody1VoiceWhisper> getWhisperHandler() { public Consumer<Packet> getWhisperHandler() {
return whisperHandler; return whisperHandler;
} }
public void setWhisperHandler(Consumer<PacketBody1VoiceWhisper> whisperHandler) { public void setWhisperHandler(Consumer<Packet> whisperHandler) {
this.whisperHandler = whisperHandler; this.whisperHandler = whisperHandler;
} }
@@ -605,7 +605,7 @@ public class LocalTeamspeakClientSocket
private void handleComplete(SingleCommand command) throws IOException, TimeoutException { private void handleComplete(SingleCommand command) throws IOException, TimeoutException {
try { try {
synchronized (commandSendLock) { synchronized (commandSendLock) {
awaitingCommands.remove(returnCode); awaitingCommands.remove(getReturnCode());
acceptingReturnCode = calculateAcceptingReturnCode(); acceptingReturnCode = calculateAcceptingReturnCode();
} }
@@ -690,12 +690,11 @@ public class LocalTeamspeakClientSocket
switch (getState()) { switch (getState()) {
case RETRIEVING_DATA: case RETRIEVING_DATA:
case CONNECTED: case CONNECTED:
Command banCommand = new SingleCommand("clientupdate", ProtocolRole.CLIENT); Command command = new SingleCommand("clientupdate", ProtocolRole.CLIENT);
command.add(new CommandSingleParameter("client_nickname", nickname));
banCommand.add(new CommandSingleParameter("client_nickname", nickname));
try { try {
executeCommand(banCommand).complete(); executeCommand(command).complete();
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@@ -24,7 +24,7 @@ public class ServerConnectionTest {
Ts3Debugging.setEnabled(true); Ts3Debugging.setEnabled(true);
LocalIdentity identity = LocalIdentity.generateNew(9); LocalIdentity identity = LocalIdentity.generateNew(10);
client.setIdentity(identity); client.setIdentity(identity);
client.setNickname("ts3j issue 2"); client.setNickname("ts3j issue 2");