Clean up pipeline flow.
This commit is contained in:
parent
b55944e2fb
commit
3ce7982778
@ -1,5 +1,6 @@
|
|||||||
package net.md_5.bungee.connection;
|
package net.md_5.bungee.connection;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
import net.md_5.bungee.EntityMap;
|
import net.md_5.bungee.EntityMap;
|
||||||
import net.md_5.bungee.UserConnection;
|
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.PacketCCSettings;
|
||||||
import net.md_5.bungee.protocol.packet.PacketFAPluginMessage;
|
import net.md_5.bungee.protocol.packet.PacketFAPluginMessage;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class UpstreamBridge extends PacketHandler
|
public class UpstreamBridge extends PacketHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
private final ProxyServer bungee;
|
private final ProxyServer bungee;
|
||||||
private final UserConnection con;
|
private final UserConnection con;
|
||||||
|
|
||||||
public UpstreamBridge(ProxyServer bungee, UserConnection con)
|
@Override
|
||||||
|
public void added()
|
||||||
{
|
{
|
||||||
this.bungee = bungee;
|
|
||||||
this.con = con;
|
|
||||||
|
|
||||||
BungeeCord.getInstance().addConnection( con );
|
BungeeCord.getInstance().addConnection( con );
|
||||||
con.getTabList().onConnect();
|
con.getTabList().onConnect();
|
||||||
con.unsafe().sendPacket( BungeeCord.getInstance().registerChannels() );
|
con.unsafe().sendPacket( BungeeCord.getInstance().registerChannels() );
|
||||||
|
@ -26,41 +26,36 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<Object>
|
|||||||
{
|
{
|
||||||
Preconditions.checkArgument( handler != null, "handler" );
|
Preconditions.checkArgument( handler != null, "handler" );
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
|
this.handler.added();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelActive(ChannelHandlerContext ctx) throws Exception
|
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 ) )
|
if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) )
|
||||||
{
|
{
|
||||||
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has connected", handler );
|
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has connected", handler );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelInactive(ChannelHandlerContext ctx) throws Exception
|
public void channelInactive(ChannelHandlerContext ctx) throws Exception
|
||||||
{
|
{
|
||||||
if ( handler != null )
|
handler.disconnected( channel );
|
||||||
{
|
|
||||||
handler.disconnected( channel );
|
|
||||||
|
|
||||||
if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) )
|
if ( !( handler instanceof InitialHandler || handler instanceof PingHandler ) )
|
||||||
{
|
{
|
||||||
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler );
|
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void messageReceived(ChannelHandlerContext ctx, Object msg) throws Exception
|
public void messageReceived(ChannelHandlerContext ctx, Object msg) throws Exception
|
||||||
{
|
{
|
||||||
if ( handler != null && ctx.channel().isActive() )
|
if ( !channel.isClosed() )
|
||||||
{
|
{
|
||||||
if ( msg instanceof PacketWrapper )
|
if ( msg instanceof PacketWrapper )
|
||||||
{
|
{
|
||||||
@ -86,7 +81,7 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<Object>
|
|||||||
@Override
|
@Override
|
||||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception
|
||||||
{
|
{
|
||||||
if ( ctx.channel().isActive() )
|
if ( !channel.isClosed() )
|
||||||
{
|
{
|
||||||
if ( cause instanceof ReadTimeoutException )
|
if ( cause instanceof ReadTimeoutException )
|
||||||
{
|
{
|
||||||
@ -98,17 +93,16 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<Object>
|
|||||||
{
|
{
|
||||||
ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - encountered exception", cause );
|
ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - encountered exception", cause );
|
||||||
}
|
}
|
||||||
if ( handler != null )
|
|
||||||
|
try
|
||||||
{
|
{
|
||||||
try
|
handler.exception( cause );
|
||||||
{
|
} catch ( Exception ex )
|
||||||
handler.exception( cause );
|
{
|
||||||
} catch ( Exception ex )
|
ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - exception processing exception", ex );
|
||||||
{
|
|
||||||
ProxyServer.getInstance().getLogger().log( Level.SEVERE, handler + " - exception processing exception", ex );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ctx.close();
|
|
||||||
|
channel.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
public void connected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user