consumer handling on message receiving

master
Alex 2022-01-02 20:40:45 +01:00
parent a56977bcac
commit d3040f455e
1 changed files with 15 additions and 12 deletions

View File

@ -10,6 +10,7 @@ import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager;
import de.dytanic.cloudnet.ext.bridge.player.ServicePlayer; import de.dytanic.cloudnet.ext.bridge.player.ServicePlayer;
import earth.krakatao.events.KraSocketClientEventInterface; import earth.krakatao.events.KraSocketClientEventInterface;
import earth.krakatao.protocol.KraSocketClientProtocolMessage; import earth.krakatao.protocol.KraSocketClientProtocolMessage;
import earth.krakatao.protocol.KraSocketClientProtocolStatus;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -37,13 +38,23 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
System.out.println( System.out.println(
"kraProtocolMessage " + kraProtocolMessage.getCmdID() + " " + kraProtocolMessage.getArgs()); "kraProtocolMessage " + kraProtocolMessage.getCmdID() + " " + kraProtocolMessage.getArgs());
// remove cmdID from cmdID list
ProxySystem.getInstance().getKraSocketClientProtocol().getCmdIDs()
.removeIf(cmdID -> cmdID == kraProtocolMessage.getCmdID());
System.out.println("consumer ids " + ProxySystem.getInstance().getKraSocketClientProtocol() System.out.println("consumer ids " + ProxySystem.getInstance().getKraSocketClientProtocol()
.getConsumerHashMap().keySet()); .getConsumerHashMap().keySet());
if (kraProtocolMessage.getStatus() == KraSocketClientProtocolStatus.REPLY.getStatus()) {
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
.forEach((cmdID, consumer) -> {
if (cmdID == kraProtocolMessage.getCmdID()) {
ProxySystem.getInstance().getLogger()
.info("accept " + cmdID + " " + kraProtocolMessage.getCmdID());
consumer.accept(kraProtocolMessage);
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
.remove(cmdID);
}
});
}
switch (kraProtocolMessage.getCmdNumber()) { switch (kraProtocolMessage.getCmdNumber()) {
case 15: // @Deprecated: test - mobile or voice socket connected case 15: // @Deprecated: test - mobile or voice socket connected
ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> { ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> {
@ -147,14 +158,6 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
break; break;
} }
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
.forEach((cmdID, consumer) -> {
if (cmdID == kraProtocolMessage.getCmdID()) {
System.out.println("accept " + cmdID + " " + kraProtocolMessage.getCmdID());
consumer.accept(kraProtocolMessage);
}
});
} }
@Override @Override