From 524a4d4bfc14515bd1117a31a433ea99a278c22f Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 11 Jun 2017 23:21:32 +0300 Subject: [PATCH] =?UTF-8?q?Bridge:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D1=82=D0=BE=D0=BA?= =?UTF-8?q?=D0=BE=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bridge/build.gradle | 2 +- .../java/asys/bridge/bukkit/BridgeBukkitImpl.java | 9 ++++++++- .../java/asys/bridge/client/ClientPacketHandler.java | 12 ++++++++++-- bridge/src/main/java/asys/bridge/client/IBridge.java | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/bridge/build.gradle b/bridge/build.gradle index 71e9af3..9895e49 100644 --- a/bridge/build.gradle +++ b/bridge/build.gradle @@ -1,5 +1,5 @@ group = 'asys' -version = '0.7-SNAPSHOT' +version = '0.7.1-SNAPSHOT' repositories { maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' } diff --git a/bridge/src/main/java/asys/bridge/bukkit/BridgeBukkitImpl.java b/bridge/src/main/java/asys/bridge/bukkit/BridgeBukkitImpl.java index d7f5353..53b856e 100644 --- a/bridge/src/main/java/asys/bridge/bukkit/BridgeBukkitImpl.java +++ b/bridge/src/main/java/asys/bridge/bukkit/BridgeBukkitImpl.java @@ -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); + } } diff --git a/bridge/src/main/java/asys/bridge/client/ClientPacketHandler.java b/bridge/src/main/java/asys/bridge/client/ClientPacketHandler.java index 54f2018..5aa5213 100644 --- a/bridge/src/main/java/asys/bridge/client/ClientPacketHandler.java +++ b/bridge/src/main/java/asys/bridge/client/ClientPacketHandler.java @@ -26,7 +26,8 @@ public class ClientPacketHandler extends ChannelInboundHandlerAdapter implements private static final BiMap> 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); + } } diff --git a/bridge/src/main/java/asys/bridge/client/IBridge.java b/bridge/src/main/java/asys/bridge/client/IBridge.java index 3ded3e8..f0944a8 100644 --- a/bridge/src/main/java/asys/bridge/client/IBridge.java +++ b/bridge/src/main/java/asys/bridge/client/IBridge.java @@ -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);