Refactor packet writes into their own channel handler class.
This commit is contained in:
parent
fa9dd7e27f
commit
6b21fdaaea
@ -7,6 +7,7 @@ import lombok.Getter;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.md_5.bungee.api.connection.Server;
|
import net.md_5.bungee.api.connection.Server;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.packet.Packet1Login;
|
import net.md_5.bungee.packet.Packet1Login;
|
||||||
import net.md_5.bungee.packet.PacketFAPluginMessage;
|
import net.md_5.bungee.packet.PacketFAPluginMessage;
|
||||||
import net.md_5.bungee.packet.PacketFFKick;
|
import net.md_5.bungee.packet.PacketFFKick;
|
||||||
@ -16,7 +17,7 @@ public class ServerConnection implements Server
|
|||||||
{
|
{
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final Channel ch;
|
private final ChannelWrapper ch;
|
||||||
@Getter
|
@Getter
|
||||||
private final BungeeServerInfo info;
|
private final BungeeServerInfo info;
|
||||||
@Getter
|
@Getter
|
||||||
@ -34,20 +35,15 @@ public class ServerConnection implements Server
|
|||||||
@Override
|
@Override
|
||||||
public synchronized void disconnect(String reason)
|
public synchronized void disconnect(String reason)
|
||||||
{
|
{
|
||||||
disconnect( ch, reason );
|
if ( ch.getHandle().isActive() )
|
||||||
}
|
|
||||||
|
|
||||||
static void disconnect(final Channel ch, String reason)
|
|
||||||
{
|
|
||||||
if ( ch.isActive() )
|
|
||||||
{
|
{
|
||||||
ch.write( new PacketFFKick( reason ) );
|
ch.write( new PacketFFKick( reason ) );
|
||||||
ch.eventLoop().schedule( new Runnable()
|
ch.getHandle().eventLoop().schedule( new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
ch.close();
|
ch.getHandle().close();
|
||||||
}
|
}
|
||||||
}, 100, TimeUnit.MILLISECONDS );
|
}, 100, TimeUnit.MILLISECONDS );
|
||||||
}
|
}
|
||||||
|
@ -3,14 +3,12 @@ package net.md_5.bungee;
|
|||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.io.ByteArrayDataOutput;
|
import com.google.common.io.ByteArrayDataOutput;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import io.netty.channel.Channel;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
import net.md_5.bungee.api.config.TexturePackInfo;
|
|
||||||
import net.md_5.bungee.api.event.ServerConnectedEvent;
|
import net.md_5.bungee.api.event.ServerConnectedEvent;
|
||||||
import net.md_5.bungee.api.event.ServerKickEvent;
|
import net.md_5.bungee.api.event.ServerKickEvent;
|
||||||
import net.md_5.bungee.api.scoreboard.Objective;
|
import net.md_5.bungee.api.scoreboard.Objective;
|
||||||
@ -18,6 +16,7 @@ import net.md_5.bungee.api.scoreboard.Team;
|
|||||||
import net.md_5.bungee.connection.CancelSendSignal;
|
import net.md_5.bungee.connection.CancelSendSignal;
|
||||||
import net.md_5.bungee.connection.DownstreamBridge;
|
import net.md_5.bungee.connection.DownstreamBridge;
|
||||||
import net.md_5.bungee.netty.HandlerBoss;
|
import net.md_5.bungee.netty.HandlerBoss;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.packet.DefinedPacket;
|
import net.md_5.bungee.packet.DefinedPacket;
|
||||||
import net.md_5.bungee.packet.Packet1Login;
|
import net.md_5.bungee.packet.Packet1Login;
|
||||||
import net.md_5.bungee.packet.Packet9Respawn;
|
import net.md_5.bungee.packet.Packet9Respawn;
|
||||||
@ -34,7 +33,7 @@ public class ServerConnector extends PacketHandler
|
|||||||
{
|
{
|
||||||
|
|
||||||
private final ProxyServer bungee;
|
private final ProxyServer bungee;
|
||||||
private Channel ch;
|
private ChannelWrapper ch;
|
||||||
private final UserConnection user;
|
private final UserConnection user;
|
||||||
private final BungeeServerInfo target;
|
private final BungeeServerInfo target;
|
||||||
private State thisState = State.ENCRYPT_REQUEST;
|
private State thisState = State.ENCRYPT_REQUEST;
|
||||||
@ -46,7 +45,7 @@ public class ServerConnector extends PacketHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connected(Channel channel) throws Exception
|
public void connected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
this.ch = channel;
|
this.ch = channel;
|
||||||
|
|
||||||
@ -125,7 +124,7 @@ public class ServerConnector extends PacketHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Fix this?
|
// TODO: Fix this?
|
||||||
if ( !user.ch.isActive() )
|
if ( !user.ch.getHandle().isActive() )
|
||||||
{
|
{
|
||||||
server.disconnect( "Quitting" );
|
server.disconnect( "Quitting" );
|
||||||
// Silly server admins see stack trace and die
|
// Silly server admins see stack trace and die
|
||||||
@ -139,7 +138,7 @@ public class ServerConnector extends PacketHandler
|
|||||||
user.pendingConnects.remove( target );
|
user.pendingConnects.remove( target );
|
||||||
|
|
||||||
user.setServer( server );
|
user.setServer( server );
|
||||||
ch.pipeline().get( HandlerBoss.class ).setHandler( new DownstreamBridge( bungee, user, server ) );
|
ch.getHandle().pipeline().get( HandlerBoss.class ).setHandler( new DownstreamBridge( bungee, user, server ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
thisState = State.FINISHED;
|
thisState = State.FINISHED;
|
||||||
|
@ -30,6 +30,7 @@ import net.md_5.bungee.api.event.PermissionCheckEvent;
|
|||||||
import net.md_5.bungee.api.event.ServerConnectEvent;
|
import net.md_5.bungee.api.event.ServerConnectEvent;
|
||||||
import net.md_5.bungee.api.scoreboard.Scoreboard;
|
import net.md_5.bungee.api.scoreboard.Scoreboard;
|
||||||
import net.md_5.bungee.netty.HandlerBoss;
|
import net.md_5.bungee.netty.HandlerBoss;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.netty.PipelineUtils;
|
import net.md_5.bungee.netty.PipelineUtils;
|
||||||
import net.md_5.bungee.packet.*;
|
import net.md_5.bungee.packet.*;
|
||||||
|
|
||||||
@ -38,7 +39,7 @@ public final class UserConnection implements ProxiedPlayer
|
|||||||
|
|
||||||
public final Packet2Handshake handshake;
|
public final Packet2Handshake handshake;
|
||||||
private final ProxyServer bungee;
|
private final ProxyServer bungee;
|
||||||
public final Channel ch;
|
public final ChannelWrapper ch;
|
||||||
final Packet1Login forgeLogin;
|
final Packet1Login forgeLogin;
|
||||||
final List<PacketFAPluginMessage> loginMessages;
|
final List<PacketFAPluginMessage> loginMessages;
|
||||||
@Getter
|
@Getter
|
||||||
@ -69,7 +70,7 @@ public final class UserConnection implements ProxiedPlayer
|
|||||||
public final Scoreboard serverSentScoreboard = new Scoreboard();
|
public final Scoreboard serverSentScoreboard = new Scoreboard();
|
||||||
public final Set<ServerInfo> pendingConnects = new HashSet<>();
|
public final Set<ServerInfo> pendingConnects = new HashSet<>();
|
||||||
|
|
||||||
public UserConnection(BungeeCord bungee, Channel channel, PendingConnection pendingConnection, Packet2Handshake handshake, Packet1Login forgeLogin, List<PacketFAPluginMessage> loginMessages)
|
public UserConnection(BungeeCord bungee, ChannelWrapper channel, PendingConnection pendingConnection, Packet2Handshake handshake, Packet1Login forgeLogin, List<PacketFAPluginMessage> loginMessages)
|
||||||
{
|
{
|
||||||
this.bungee = bungee;
|
this.bungee = bungee;
|
||||||
this.ch = channel;
|
this.ch = channel;
|
||||||
@ -182,11 +183,11 @@ public final class UserConnection implements ProxiedPlayer
|
|||||||
@Override
|
@Override
|
||||||
public synchronized void disconnect(String reason)
|
public synchronized void disconnect(String reason)
|
||||||
{
|
{
|
||||||
if ( ch.isActive() )
|
if ( ch.getHandle().isActive() )
|
||||||
{
|
{
|
||||||
bungee.getLogger().log( Level.INFO, "[" + getName() + "] disconnected with: " + reason );
|
bungee.getLogger().log( Level.INFO, "[" + getName() + "] disconnected with: " + reason );
|
||||||
ch.write( new PacketFFKick( reason ) );
|
ch.write( new PacketFFKick( reason ) );
|
||||||
ch.close();
|
ch.getHandle().close();
|
||||||
if ( server != null )
|
if ( server != null )
|
||||||
{
|
{
|
||||||
server.disconnect( "Quitting" );
|
server.disconnect( "Quitting" );
|
||||||
@ -225,7 +226,7 @@ public final class UserConnection implements ProxiedPlayer
|
|||||||
@Override
|
@Override
|
||||||
public InetSocketAddress getAddress()
|
public InetSocketAddress getAddress()
|
||||||
{
|
{
|
||||||
return (InetSocketAddress) ch.remoteAddress();
|
return (InetSocketAddress) ch.getHandle().remoteAddress();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -21,6 +21,7 @@ import net.md_5.bungee.api.scoreboard.Objective;
|
|||||||
import net.md_5.bungee.api.scoreboard.Position;
|
import net.md_5.bungee.api.scoreboard.Position;
|
||||||
import net.md_5.bungee.api.scoreboard.Score;
|
import net.md_5.bungee.api.scoreboard.Score;
|
||||||
import net.md_5.bungee.api.scoreboard.Team;
|
import net.md_5.bungee.api.scoreboard.Team;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.packet.Packet0KeepAlive;
|
import net.md_5.bungee.packet.Packet0KeepAlive;
|
||||||
import net.md_5.bungee.packet.Packet3Chat;
|
import net.md_5.bungee.packet.Packet3Chat;
|
||||||
import net.md_5.bungee.packet.PacketC9PlayerListItem;
|
import net.md_5.bungee.packet.PacketC9PlayerListItem;
|
||||||
@ -55,7 +56,7 @@ public class DownstreamBridge extends PacketHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnected(Channel channel) throws Exception
|
public void disconnected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
// We lost connection to the server
|
// We lost connection to the server
|
||||||
server.getInfo().removePlayer( con );
|
server.getInfo().removePlayer( con );
|
||||||
|
@ -3,13 +3,8 @@ package net.md_5.bungee.connection;
|
|||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.ning.http.client.AsyncCompletionHandler;
|
import com.ning.http.client.AsyncCompletionHandler;
|
||||||
import com.ning.http.client.Response;
|
import com.ning.http.client.Response;
|
||||||
import io.netty.channel.Channel;
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.security.GeneralSecurityException;
|
import java.security.GeneralSecurityException;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
@ -36,6 +31,7 @@ import net.md_5.bungee.api.event.PostLoginEvent;
|
|||||||
import net.md_5.bungee.api.event.ProxyPingEvent;
|
import net.md_5.bungee.api.event.ProxyPingEvent;
|
||||||
import net.md_5.bungee.netty.CipherCodec;
|
import net.md_5.bungee.netty.CipherCodec;
|
||||||
import net.md_5.bungee.netty.HandlerBoss;
|
import net.md_5.bungee.netty.HandlerBoss;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.netty.PacketDecoder;
|
import net.md_5.bungee.netty.PacketDecoder;
|
||||||
import net.md_5.bungee.packet.Packet1Login;
|
import net.md_5.bungee.packet.Packet1Login;
|
||||||
import net.md_5.bungee.packet.Packet2Handshake;
|
import net.md_5.bungee.packet.Packet2Handshake;
|
||||||
@ -53,7 +49,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
{
|
{
|
||||||
|
|
||||||
private final ProxyServer bungee;
|
private final ProxyServer bungee;
|
||||||
private Channel ch;
|
private ChannelWrapper ch;
|
||||||
@Getter
|
@Getter
|
||||||
private final ListenerInfo listener;
|
private final ListenerInfo listener;
|
||||||
private Packet1Login forgeLogin; // TODO: Remove for now?
|
private Packet1Login forgeLogin; // TODO: Remove for now?
|
||||||
@ -71,7 +67,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connected(Channel channel) throws Exception
|
public void connected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
this.ch = channel;
|
this.ch = channel;
|
||||||
}
|
}
|
||||||
@ -89,7 +85,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
Preconditions.checkState( forgeLogin == null, "Already received FORGE LOGIN" );
|
Preconditions.checkState( forgeLogin == null, "Already received FORGE LOGIN" );
|
||||||
forgeLogin = login;
|
forgeLogin = login;
|
||||||
|
|
||||||
ch.pipeline().get( PacketDecoder.class ).setProtocol( PacketDefinitions.FORGE_PROTOCOL );
|
ch.getHandle().pipeline().get( PacketDecoder.class ).setProtocol( PacketDefinitions.FORGE_PROTOCOL );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -205,7 +201,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
Cipher encrypt = EncryptionUtil.getCipher( Cipher.ENCRYPT_MODE, sharedKey );
|
Cipher encrypt = EncryptionUtil.getCipher( Cipher.ENCRYPT_MODE, sharedKey );
|
||||||
Cipher decrypt = EncryptionUtil.getCipher( Cipher.DECRYPT_MODE, sharedKey );
|
Cipher decrypt = EncryptionUtil.getCipher( Cipher.DECRYPT_MODE, sharedKey );
|
||||||
ch.write( new PacketFCEncryptionResponse() );
|
ch.write( new PacketFCEncryptionResponse() );
|
||||||
ch.pipeline().addBefore( "decoder", "cipher", new CipherCodec( encrypt, decrypt ) );
|
ch.getHandle().pipeline().addBefore( "decoder", "cipher", new CipherCodec( encrypt, decrypt ) );
|
||||||
thisState = InitialHandler.State.LOGIN;
|
thisState = InitialHandler.State.LOGIN;
|
||||||
} catch ( GeneralSecurityException ex )
|
} catch ( GeneralSecurityException ex )
|
||||||
{
|
{
|
||||||
@ -226,7 +222,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
UserConnection userCon = new UserConnection( (BungeeCord) bungee, ch, this, handshake, forgeLogin, loginMessages );
|
UserConnection userCon = new UserConnection( (BungeeCord) bungee, ch, this, handshake, forgeLogin, loginMessages );
|
||||||
bungee.getPluginManager().callEvent( new PostLoginEvent( userCon ) );
|
bungee.getPluginManager().callEvent( new PostLoginEvent( userCon ) );
|
||||||
|
|
||||||
ch.pipeline().get( HandlerBoss.class ).setHandler( new UpstreamBridge( bungee, userCon ) );
|
ch.getHandle().pipeline().get( HandlerBoss.class ).setHandler( new UpstreamBridge( bungee, userCon ) );
|
||||||
|
|
||||||
ServerInfo server = bungee.getReconnectHandler().getServer( userCon );
|
ServerInfo server = bungee.getReconnectHandler().getServer( userCon );
|
||||||
userCon.connect( server, true );
|
userCon.connect( server, true );
|
||||||
@ -238,10 +234,10 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
@Override
|
@Override
|
||||||
public synchronized void disconnect(String reason)
|
public synchronized void disconnect(String reason)
|
||||||
{
|
{
|
||||||
if ( ch.isActive() )
|
if ( ch.getHandle().isActive() )
|
||||||
{
|
{
|
||||||
ch.write( new PacketFFKick( reason ) );
|
ch.write( new PacketFFKick( reason ) );
|
||||||
ch.close();
|
ch.getHandle().close();
|
||||||
disconnected = true;
|
disconnected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -267,7 +263,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
|||||||
@Override
|
@Override
|
||||||
public InetSocketAddress getAddress()
|
public InetSocketAddress getAddress()
|
||||||
{
|
{
|
||||||
return (InetSocketAddress) ch.remoteAddress();
|
return (InetSocketAddress) ch.getHandle().remoteAddress();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package net.md_5.bungee.connection;
|
package net.md_5.bungee.connection;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.md_5.bungee.api.Callback;
|
import net.md_5.bungee.api.Callback;
|
||||||
import net.md_5.bungee.api.ServerPing;
|
import net.md_5.bungee.api.ServerPing;
|
||||||
import net.md_5.bungee.api.config.ServerInfo;
|
import net.md_5.bungee.api.config.ServerInfo;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.packet.PacketFFKick;
|
import net.md_5.bungee.packet.PacketFFKick;
|
||||||
import net.md_5.bungee.packet.PacketHandler;
|
import net.md_5.bungee.packet.PacketHandler;
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ public class PingHandler extends PacketHandler
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connected(Channel channel) throws Exception
|
public void connected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
channel.write( pingBuf );
|
channel.write( pingBuf );
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import net.md_5.bungee.api.config.TexturePackInfo;
|
|||||||
import net.md_5.bungee.api.event.ChatEvent;
|
import net.md_5.bungee.api.event.ChatEvent;
|
||||||
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
||||||
import net.md_5.bungee.api.event.PluginMessageEvent;
|
import net.md_5.bungee.api.event.PluginMessageEvent;
|
||||||
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
import net.md_5.bungee.packet.Packet0KeepAlive;
|
import net.md_5.bungee.packet.Packet0KeepAlive;
|
||||||
import net.md_5.bungee.packet.Packet3Chat;
|
import net.md_5.bungee.packet.Packet3Chat;
|
||||||
import net.md_5.bungee.packet.PacketCCSettings;
|
import net.md_5.bungee.packet.PacketCCSettings;
|
||||||
@ -31,7 +32,7 @@ public class UpstreamBridge extends PacketHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connected(Channel channel) throws Exception
|
public void connected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
BungeeCord.getInstance().connections.put( con.getName(), con );
|
BungeeCord.getInstance().connections.put( con.getName(), con );
|
||||||
bungee.getTabListHandler().onConnect( con );
|
bungee.getTabListHandler().onConnect( con );
|
||||||
@ -45,7 +46,7 @@ public class UpstreamBridge extends PacketHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnected(Channel channel) throws Exception
|
public void disconnected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
// We lost connection to the client
|
// We lost connection to the client
|
||||||
PlayerDisconnectEvent event = new PlayerDisconnectEvent( con );
|
PlayerDisconnectEvent event = new PlayerDisconnectEvent( con );
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package net.md_5.bungee.netty;
|
||||||
|
|
||||||
|
import io.netty.channel.Channel;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ChannelWrapper
|
||||||
|
{
|
||||||
|
|
||||||
|
private final Channel ch;
|
||||||
|
|
||||||
|
public void write(Object packet)
|
||||||
|
{
|
||||||
|
ch.write( packet );
|
||||||
|
}
|
||||||
|
|
||||||
|
public Channel getHandle()
|
||||||
|
{
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
}
|
@ -19,6 +19,7 @@ import net.md_5.bungee.packet.PacketHandler;
|
|||||||
public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<byte[]>
|
public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<byte[]>
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private ChannelWrapper channel;
|
||||||
private PacketHandler handler;
|
private PacketHandler handler;
|
||||||
|
|
||||||
public void setHandler(PacketHandler handler)
|
public void setHandler(PacketHandler handler)
|
||||||
@ -32,7 +33,8 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<byte[]>
|
|||||||
{
|
{
|
||||||
if ( handler != null )
|
if ( handler != null )
|
||||||
{
|
{
|
||||||
handler.connected( ctx.channel() );
|
channel = new ChannelWrapper( ctx.channel() );
|
||||||
|
handler.connected( channel );
|
||||||
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has connected", handler );
|
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has connected", handler );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,7 +45,7 @@ public class HandlerBoss extends ChannelInboundMessageHandlerAdapter<byte[]>
|
|||||||
if ( handler != null )
|
if ( handler != null )
|
||||||
{
|
{
|
||||||
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler );
|
ProxyServer.getInstance().getLogger().log( Level.INFO, "{0} has disconnected", handler );
|
||||||
handler.disconnected( ctx.channel() );
|
handler.disconnected( channel );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.md_5.bungee.packet;
|
package net.md_5.bungee.packet;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import net.md_5.bungee.netty.ChannelWrapper;
|
||||||
|
|
||||||
public abstract class PacketHandler
|
public abstract class PacketHandler
|
||||||
{
|
{
|
||||||
@ -8,11 +8,11 @@ public abstract class PacketHandler
|
|||||||
@Override
|
@Override
|
||||||
public abstract String toString();
|
public abstract String toString();
|
||||||
|
|
||||||
public void connected(Channel channel) throws Exception
|
public void connected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disconnected(Channel channel) throws Exception
|
public void disconnected(ChannelWrapper channel) throws Exception
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user