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:
+4
-4
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user