consumer message handling

master
Alex 2022-01-03 22:56:12 +01:00
parent d3040f455e
commit 70752bfb4f
1 changed files with 14 additions and 11 deletions

View File

@ -14,6 +14,7 @@ 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;
import java.util.function.Consumer;
import net.krakatoa.proxy.ProxySystem; import net.krakatoa.proxy.ProxySystem;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
@ -41,18 +42,20 @@ public class SocketClientMessageListener implements KraSocketClientEventInterfac
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()) { if (kraProtocolMessage.getStatus() == KraSocketClientProtocolStatus.REPLY.getStatus()
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap() && ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
.forEach((cmdID, consumer) -> { .containsKey(kraProtocolMessage.getCmdID())) {
if (cmdID == kraProtocolMessage.getCmdID()) { Consumer<KraSocketClientProtocolMessage> consumer = ProxySystem.getInstance()
.getKraSocketClientProtocol().getConsumerHashMap().get(kraProtocolMessage.getCmdID());
if (consumer != null) {
ProxySystem.getInstance().getLogger() ProxySystem.getInstance().getLogger()
.info("accept " + cmdID + " " + kraProtocolMessage.getCmdID()); .info("accept " + kraProtocolMessage.getCmdID());
consumer.accept(kraProtocolMessage); consumer.accept(kraProtocolMessage);
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap() ProxySystem.getInstance().getKraSocketClientProtocol()
.remove(cmdID); .removeData(kraProtocolMessage.getCmdID());
} }
});
} }
switch (kraProtocolMessage.getCmdNumber()) { switch (kraProtocolMessage.getCmdNumber()) {