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;
case VOICE:
Consumer<PacketBody0Voice> handler = getClient().getVoiceHandler();
if (handler != null) handler.accept((PacketBody0Voice) packet.getBody());
Consumer<Packet> handler = getClient().getVoiceHandler();
if (handler != null) handler.accept(packet);
break;
case VOICE_WHISPER:
Consumer<PacketBody1VoiceWhisper> whisperConsumer = getClient().getWhisperHandler();
if (whisperConsumer != null) whisperConsumer.accept((PacketBody1VoiceWhisper) packet.getBody());
Consumer<Packet> whisperConsumer = getClient().getWhisperHandler();
if (whisperConsumer != null) whisperConsumer.accept(packet);
break;
}
}
@@ -70,8 +70,8 @@ public abstract class AbstractTeamspeakClientSocket
private CommandProcessor commandProcessor;
private Consumer<PacketBody0Voice> voiceHandler;
private Consumer<PacketBody1VoiceWhisper> whisperHandler;
private Consumer<Packet> voiceHandler;
private Consumer<Packet> whisperHandler;
private Consumer<Throwable> exceptionHandler = Throwable::printStackTrace;
@@ -897,19 +897,19 @@ public abstract class AbstractTeamspeakClientSocket
this.exceptionHandler = exceptionHandler;
}
public Consumer<PacketBody0Voice> getVoiceHandler() {
public Consumer<Packet> getVoiceHandler() {
return voiceHandler;
}
public void setVoiceHandler(Consumer<PacketBody0Voice> voiceHandler) {
public void setVoiceHandler(Consumer<Packet> voiceHandler) {
this.voiceHandler = voiceHandler;
}
public Consumer<PacketBody1VoiceWhisper> getWhisperHandler() {
public Consumer<Packet> getWhisperHandler() {
return whisperHandler;
}
public void setWhisperHandler(Consumer<PacketBody1VoiceWhisper> whisperHandler) {
public void setWhisperHandler(Consumer<Packet> whisperHandler) {
this.whisperHandler = whisperHandler;
}
@@ -605,7 +605,7 @@ public class LocalTeamspeakClientSocket
private void handleComplete(SingleCommand command) throws IOException, TimeoutException {
try {
synchronized (commandSendLock) {
awaitingCommands.remove(returnCode);
awaitingCommands.remove(getReturnCode());
acceptingReturnCode = calculateAcceptingReturnCode();
}
@@ -690,12 +690,11 @@ public class LocalTeamspeakClientSocket
switch (getState()) {
case RETRIEVING_DATA:
case CONNECTED:
Command banCommand = new SingleCommand("clientupdate", ProtocolRole.CLIENT);
banCommand.add(new CommandSingleParameter("client_nickname", nickname));
Command command = new SingleCommand("clientupdate", ProtocolRole.CLIENT);
command.add(new CommandSingleParameter("client_nickname", nickname));
try {
executeCommand(banCommand).complete();
executeCommand(command).complete();
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -24,7 +24,7 @@ public class ServerConnectionTest {
Ts3Debugging.setEnabled(true);
LocalIdentity identity = LocalIdentity.generateNew(9);
LocalIdentity identity = LocalIdentity.generateNew(10);
client.setIdentity(identity);
client.setNickname("ts3j issue 2");