diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java index 941485fc..92d3d5c7 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java @@ -1,5 +1,6 @@ package net.md_5.bungee.connection; +import lombok.RequiredArgsConstructor; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.EntityMap; import net.md_5.bungee.UserConnection; @@ -16,17 +17,16 @@ import net.md_5.bungee.protocol.packet.Packet3Chat; import net.md_5.bungee.protocol.packet.PacketCCSettings; import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +@RequiredArgsConstructor public class UpstreamBridge extends PacketHandler { private final ProxyServer bungee; private final UserConnection con; - public UpstreamBridge(ProxyServer bungee, UserConnection con) + @Override + public void added() { - this.bungee = bungee; - this.con = con; - BungeeCord.getInstance().addConnection( con ); con.getTabList().onConnect(); con.unsafe().sendPacket( BungeeCord.getInstance().registerChannels() ); diff --git a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java index 6b26e5d9..113c1844 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java @@ -26,41 +26,36 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter { Preconditions.checkArgument( handler != null, "handler" ); this.handler = handler; + this.handler.added(); } @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { - if ( handler != null ) - { - channel = new ChannelWrapper( ctx ); - handler.connected( channel ); + channel = new ChannelWrapper( ctx ); + handler.connected( channel ); - if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) ) - { - ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has connected", handler ); - } + if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) ) + { + ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has connected", handler ); } } @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { - if ( handler != null ) - { - handler.disconnected( channel ); + handler.disconnected( channel ); - if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) ) - { - ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler ); - } + if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) ) + { + ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler ); } } @Override public void messageReceived(ChannelHandlerContext ctx, Object msg) throws Exception { - if ( handler != null && ctx.channel().isActive() ) + if ( !channel.isClosed() ) { if ( msg instanceof PacketWrapper ) { @@ -86,7 +81,7 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { - if ( ctx.channel().isActive() ) + if ( !channel.isClosed() ) { if ( cause instanceof ReadTimeoutException ) { @@ -98,17 +93,16 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter { ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - encountered exception", cause ); } - if ( handler != null ) + + try { - try - { - handler.exception( cause ); - } catch ( Exception ex ) - { - ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - exception processing exception", ex ); - } + handler.exception( cause ); + } catch ( Exception ex ) + { + ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - exception processing exception", ex ); } - ctx.close(); + + channel.close(); } } } diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java b/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java index 1440f18c..2045b86c 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PacketHandler.java @@ -14,6 +14,10 @@ public abstract class PacketHandler extends net.md_5.bungee.protocol.packet.Abst { } + public void added() + { + } + public void connected(ChannelWrapper channel) throws Exception { }