@EventHandler public void onServerSwitchEvent(ServerSwitchEvent event) { PlayerObject playerObject = getPlayer(event.getPlayer()); if (isPending(event.getPlayer().getUniqueId())) { // Join TimoCloudBungee.getInstance().getEventManager().sendEvent(new PlayerConnectEvent(playerObject)); pending.remove(event.getPlayer().getUniqueId()); } else { // Server change TimoCloudBungee.getInstance().getEventManager().sendEvent(new PlayerServerChangeEvent( playerObject, previousServer.get(playerObject.getUuid()), event.getPlayer().getServer().getInfo().getName() )); } previousServer.put(event.getPlayer().getUniqueId(), event.getPlayer().getServer().getInfo().getName()); }
ch.getHandle().pipeline().get( HandlerBoss.class ).setHandler( new DownstreamBridge( bungee, user, server ) ); bungee.getPluginManager().callEvent( new ServerSwitchEvent( user ) );
@EventHandler public void onServerSwitch(ServerSwitchEvent event) { try { ProxiedPlayer player = event.getPlayer(); UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); // Replaces the current session in the cache. sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } } }
ch.getHandle().pipeline().get( HandlerBoss.class ).setHandler( new DownstreamBridge( bungee, user, server ) ); bungee.getPluginManager().callEvent( new ServerSwitchEvent( user ) );
@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); } } }
@EventHandler(priority = EventPriority.HIGHEST) public void handlePlayerServerSwitch(ServerSwitchEvent e) { CloudPlayer cloudPlayer = CloudProxy.getInstance().getCloudPlayers().get(e.getPlayer().getUniqueId()); cloudPlayer.setServer(e.getPlayer().getServer().getInfo().getName()); CloudAPI.getInstance().getNetworkConnection().sendPacket(new PacketOutUpdateOnlinePlayer(cloudPlayer)); CloudAPI.getInstance().sendCustomSubProxyMessage( "cloudnet_internal", "player_server_switch", new Document("player", cloudPlayer) .append("server", e.getPlayer().getServer().getInfo().getName()) ); if (CloudProxy.getInstance().getProxyGroup() != null && CloudProxy.getInstance().getProxyGroup().getProxyConfig().isEnabled() && CloudProxy.getInstance().getProxyGroup().getProxyConfig().getTabList().isEnabled()) initTabHeaderFooter(e.getPlayer()); }