Archived
0

Bridge: обновление протокола

This commit is contained in:
2017-06-11 23:21:32 +03:00
parent 0dbd233eb7
commit 524a4d4bfc
4 changed files with 20 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ import asys.bridge.client.AbstractBridge;
import asys.bridge.client.IBridge;
import asys.bridge.client.IConfig;
import asys.bridge.client.ILogger;
import io.netty.channel.Channel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
@@ -15,13 +16,14 @@ public class BridgeBukkitImpl extends AbstractBridge implements IBridge {
private BridgePlugin plugin;
private LoggerBukkitImpl logger;
private ConfigBukkitImpl configBukkit;
private BridgeLoggerAppender loggerAppender;
public BridgeBukkitImpl(BridgePlugin plugin) {
this.plugin = plugin;
this.logger = new LoggerBukkitImpl(plugin.getLogger());
this.configBukkit = new ConfigBukkitImpl(plugin.getConfig());
((Logger) LogManager.getRootLogger()).addAppender(new BridgeLoggerAppender());
((Logger) LogManager.getRootLogger()).addAppender(loggerAppender = new BridgeLoggerAppender());
}
@Override
@@ -46,4 +48,9 @@ public class BridgeBukkitImpl extends AbstractBridge implements IBridge {
command
);
}
@Override
public void setChannelFromConsoleMessages(Channel channel) {
this.loggerAppender.setChannel(channel);
}
}

View File

@@ -26,7 +26,8 @@ public class ClientPacketHandler extends ChannelInboundHandlerAdapter implements
private static final BiMap<Integer, Class<? extends Packet>> knownPackets = ImmutableBiMap.of(
3, CS_Ping.class,
4, CS_ConsoleMessage.class,
5, SC_Command.class
5, SC_Command.class,
6, SC_ToggleSendMessages.class
);
private IBridge bridge;
@@ -35,7 +36,8 @@ public class ClientPacketHandler extends ChannelInboundHandlerAdapter implements
if (handshakeHandlers == null) {
handshakeHandlers = ImmutableMap.of(
SC_HandshakeResult.class, this,
SC_Command.class, this
SC_Command.class, this,
SC_ToggleSendMessages.class, this
);
}
}
@@ -73,6 +75,8 @@ public class ClientPacketHandler extends ChannelInboundHandlerAdapter implements
handleHandshakeResult((SC_HandshakeResult) packet, context);
} else if (packet instanceof SC_Command) {
handleCommand((SC_Command) packet);
} else if (packet instanceof SC_ToggleSendMessages) {
handleToggleSendMessages((SC_ToggleSendMessages) packet, context);
}
}
@@ -92,4 +96,8 @@ public class ClientPacketHandler extends ChannelInboundHandlerAdapter implements
bridge.getLogger().info("Command: " + packet.getCommand());
bridge.dispatchCommand(packet.getCommand());
}
private void handleToggleSendMessages(SC_ToggleSendMessages packet, ChannelHandlerContext context) {
bridge.setChannelFromConsoleMessages(packet.isNeedSend() ? context.channel() : null);
}
}

View File

@@ -11,6 +11,7 @@ public interface IBridge {
IConfig getConfig();
int getCountOnlinePlayers();
void dispatchCommand(String command);
void setChannelFromConsoleMessages(Channel channel);
void startReconnect();
boolean isNeedReconnect();
void setNeedReconnect(boolean value);