@Override public ServerInfo constructServerInfo(String name, InetSocketAddress address, String motd, boolean restricted) { return new BungeeServerInfo( name, address, motd, restricted ); }
@Override public InetSocketAddress getAddress() { return getInfo().getAddress(); }
@Override public String toString() { return "[" + user.getName() + "] <-> ServerConnector [" + target.getName() + "]"; } }
Queue<DefinedPacket> packetQueue = target.getPacketQueue(); synchronized ( packetQueue ) target.addPlayer( user ); user.getPendingConnects().remove( target ); user.setServerJoinQueue( null );
@Override public void ping(final Callback<ServerPing> callback) { ping( callback, ProxyServer.getInstance().getProtocolVersion() ); }
@Override public void sendData(String channel, byte[] data) { sendData( channel, data, true ); }
@Override public void disconnected(ChannelWrapper channel) throws Exception { // We lost connection to the server server.getInfo().removePlayer( con ); if ( bungee.getReconnectHandler() != null ) { bungee.getReconnectHandler().setServer( con ); } if ( !server.isObsolete() ) { con.disconnect( bungee.getTranslation( "lost_connection" ) ); } ServerDisconnectEvent serverDisconnectEvent = new ServerDisconnectEvent( con, server.getInfo() ); bungee.getPluginManager().callEvent( serverDisconnectEvent ); }
for ( ProxiedPlayer player : con.getServer().getInfo().getPlayers() )
@Override public boolean canAccess(CommandSender player) { Preconditions.checkNotNull( player, "player" ); return !restricted || player.hasPermission( getPermission() ); }
Queue<DefinedPacket> packetQueue = target.getPacketQueue(); synchronized ( packetQueue ) target.addPlayer( user ); user.getPendingConnects().remove( target ); user.setServerJoinQueue( null );
( (BungeeServerInfo) forced ).ping( pingBack, handshake.getProtocolVersion() ); } else
@Override public void sendData(String channel, byte[] data) { sendData( channel, data, true ); }
@Override public void disconnected(ChannelWrapper channel) throws Exception { // We lost connection to the server server.getInfo().removePlayer( con ); if ( bungee.getReconnectHandler() != null ) { bungee.getReconnectHandler().setServer( con ); } if ( !server.isObsolete() ) { con.disconnect( bungee.getTranslation( "lost_connection" ) ); } ServerDisconnectEvent serverDisconnectEvent = new ServerDisconnectEvent( con, server.getInfo() ); bungee.getPluginManager().callEvent( serverDisconnectEvent ); }
for ( ProxiedPlayer player : con.getServer().getInfo().getPlayers() )
@Override public String toString() { return "[" + con.getName() + "] <-> DownstreamBridge <-> [" + server.getInfo().getName() + "]"; } }
@Override public boolean equals(Object obj) { return ( obj instanceof ServerInfo ) && Objects.equals( getAddress(), ( (ServerInfo) obj ).getAddress() ); }
@Override public void ping(final Callback<ServerPing> callback) { ping( callback, ProxyServer.getInstance().getProtocolVersion() ); }
@Override public ServerInfo constructServerInfo(String name, InetSocketAddress address, String motd, boolean restricted) { return new BungeeServerInfo( name, address, motd, restricted ); }
out.writeUTF( server.getInfo().getName() );
public void ping(final Callback<ServerPing> callback, final int protocolVersion) { Preconditions.checkNotNull( callback, "callback" ); ChannelFutureListener listener = new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if ( future.isSuccess() ) { future.channel().pipeline().get( HandlerBoss.class ).setHandler( new PingHandler( BungeeServerInfo.this, callback, protocolVersion ) ); } else { callback.done( null, future.cause() ); } } }; new Bootstrap() .channel( PipelineUtils.getChannel() ) .group( BungeeCord.getInstance().eventLoops ) .handler( PipelineUtils.BASE ) .option( ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000 ) // TODO: Configurable .remoteAddress( getAddress() ) .connect() .addListener( listener ); } }