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