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.HashMap;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import net.krakatoa.proxy.ProxySystem;
import net.md_5.bungee.api.ProxyServer;
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()
.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);
if (kraProtocolMessage.getStatus() == KraSocketClientProtocolStatus.REPLY.getStatus()
&& ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
.containsKey(kraProtocolMessage.getCmdID())) {
Consumer<KraSocketClientProtocolMessage> consumer = ProxySystem.getInstance()
.getKraSocketClientProtocol().getConsumerHashMap().get(kraProtocolMessage.getCmdID());
ProxySystem.getInstance().getKraSocketClientProtocol().getConsumerHashMap()
.remove(cmdID);
}
});
if (consumer != null) {
ProxySystem.getInstance().getLogger()
.info("accept " + kraProtocolMessage.getCmdID());
consumer.accept(kraProtocolMessage);
ProxySystem.getInstance().getKraSocketClientProtocol()
.removeData(kraProtocolMessage.getCmdID());
}
}
switch (kraProtocolMessage.getCmdNumber()) {