diff --git a/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java b/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java index cb068ac..d57eb46 100644 --- a/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java +++ b/src/main/java/net/krakatoa/proxy/listener/SocketClientMessageListener.java @@ -10,6 +10,7 @@ import de.dytanic.cloudnet.ext.bridge.player.IPlayerManager; import de.dytanic.cloudnet.ext.bridge.player.ServicePlayer; import earth.krakatao.events.KraSocketClientEventInterface; import earth.krakatao.protocol.KraSocketClientProtocolMessage; +import earth.krakatao.protocol.KraSocketClientProtocolStatus; import java.util.Collection; import java.util.HashMap; import java.util.concurrent.TimeUnit; @@ -37,13 +38,23 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac System.out.println( "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() .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()) { case 15: // @Deprecated: test - mobile or voice socket connected ProxyServer.getInstance().getScheduler().runAsync(ProxySystem.getInstance(), () -> { @@ -147,14 +158,6 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac break; } - - ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap() - .forEach((cmdID, consumer) -> { - if (cmdID == kraProtocolMessage.getCmdID()) { - System.out.println("accept " + cmdID + " " + kraProtocolMessage.getCmdID()); - consumer.accept(kraProtocolMessage); - } - }); } @Override