@Override public void chat(String message) { Preconditions.checkState( server != null, "Not connected to server" ); server.getCh().write( new Chat( message ) ); }
@Override public void handle(SetCompression setCompression) throws Exception { server.getCh().setCompressionThreshold( setCompression.getThreshold() ); }
@Override public void handle(PacketWrapper packet) throws Exception { if ( con.getServer() != null ) { con.getEntityRewrite().rewriteServerbound( packet.buf, con.getClientEntityId(), con.getServerEntityId(), con.getPendingConnection().getVersion() ); con.getServer().getCh().write( packet ); } }
@Override public void writabilityChanged(ChannelWrapper channel) throws Exception { if ( con.getServer() != null ) { Channel server = con.getServer().getCh().getHandle(); if ( channel.getHandle().isWritable() ) { server.config().setAutoRead( true ); } else { server.config().setAutoRead( false ); } } }
@Override public void chat(String message) { Preconditions.checkState( server != null, "Not connected to server" ); server.getCh().write( new Chat( message ) ); }
@Override public void handle(SetCompression setCompression) throws Exception { server.getCh().setCompressionThreshold( setCompression.getThreshold() ); }
@Override public void handle(PacketWrapper packet) throws Exception { con.getEntityRewrite().rewriteServerbound( packet.buf, con.getClientEntityId(), con.getServerEntityId() ); if ( con.getServer() != null ) { con.getServer().getCh().write( packet ); } }
@EventHandler public void onServerConnected(ServerSwitchEvent event) { try { ProxiedPlayer player = event.getPlayer(); ConnectedPlayer connectedPlayer = BungeeTabListPlus.getInstance().getConnectedPlayerManager().getPlayerIfPresent(player); if (connectedPlayer != null) { ServerConnection server = (ServerConnection) event.getPlayer().getServer(); ChannelWrapper wrapper = server.getCh(); int version = player.getPendingConnection().getVersion(); PacketHandler packetHandler = connectedPlayer.getPacketHandler(); PacketListener packetListener = new PacketListener(server, packetHandler, version); wrapper.getHandle().pipeline().addBefore(PipelineUtils.BOSS_HANDLER, "btlp-packet-listener", packetListener); packetHandler.onServerSwitch(); } } catch (Exception ex) { plugin.getLogger().log(Level.SEVERE, "Failed to inject packet listener", ex); } } }