@Override public void handle(Kick kick) throws Exception { ServerInfo def = user.updateAndGetNextServer( target ); ServerKickEvent event = new ServerKickEvent( user, target, ComponentSerializer.parse( kick.getMessage() ), def, ServerKickEvent.State.CONNECTING ); if ( event.getKickReason().toLowerCase( Locale.ROOT ).contains( "outdated" ) && def != null ) { // Pre cancel the event if we are going to try another server event.setCancelled( true ); } bungee.getPluginManager().callEvent( event ); if ( event.isCancelled() && event.getCancelServer() != null ) { obsolete = true; user.connect( event.getCancelServer(), ServerConnectEvent.Reason.KICK_REDIRECT ); throw CancelSendSignal.INSTANCE; } String message = bungee.getTranslation( "connect_kick", target.getName(), event.getKickReason() ); if ( user.isDimensionChange() ) { user.disconnect( message ); } else { user.sendMessage( message ); } throw CancelSendSignal.INSTANCE; }
@Override public void handle(Kick kick) throws Exception { ServerInfo def = con.updateAndGetNextServer( server.getInfo() ); ServerKickEvent event = bungee.getPluginManager().callEvent( new ServerKickEvent( con, server.getInfo(), ComponentSerializer.parse( kick.getMessage() ), def, ServerKickEvent.State.CONNECTED ) ); if ( event.isCancelled() && event.getCancelServer() != null ) { con.connectNow( event.getCancelServer(), ServerConnectEvent.Reason.KICK_REDIRECT ); } else { con.disconnect0( event.getKickReasonComponent() ); // TODO: Prefix our own stuff. } server.setObsolete( true ); throw CancelSendSignal.INSTANCE; }
@EventHandler public void handleServerKick(ServerKickEvent e) { if (e.getCancelServer() != null) { ServerInfo serverInfo = CloudProxy.getInstance().getCachedServers().get(e.getKickedFrom().getName()); String fallback; if (CloudAPI.getInstance().getServerGroupData(serverInfo.getServiceId().getGroup()) != null && CloudAPI.getInstance().getServerGroupData(serverInfo.getServiceId().getGroup()).isKickedForceFallback()) { fallback = CloudProxy.getInstance().fallbackOnEnabledKick(e.getPlayer(), serverInfo.getServiceId().getGroup(), e.getKickedFrom().getName()); } else { fallback = CloudProxy.getInstance().fallback(e.getPlayer(), e.getKickedFrom().getName()); } ProxiedPlayerFallbackEvent proxiedPlayerFallbackEvent = new ProxiedPlayerFallbackEvent( e.getPlayer(), CloudAPI.getInstance().getOnlinePlayer(e.getPlayer().getUniqueId()), ProxiedPlayerFallbackEvent.FallbackType.SERVER_KICK, fallback ); ProxyServer.getInstance().getPluginManager().callEvent(proxiedPlayerFallbackEvent); fallback = proxiedPlayerFallbackEvent.getFallback(); if (fallback != null) { e.setCancelled(true); e.setCancelServer((ProxyServer.getInstance().getServerInfo(fallback))); e.getPlayer().sendMessage(e.getKickReasonComponent()); } } }
@EventHandler public void onServerKick(ServerKickEvent event) { event.setCancelled(true); event.setCancelServer(TimoCloudBungee.getInstance().getLobbyManager().getFreeLobby(event.getPlayer().getUniqueId())); } }
@EventHandler (priority = 65) public void onServerKickEvent(ServerKickEvent event) { if (! TimoCloudBungee.getInstance().getFileManager().getConfig().getBoolean("useFallback")) return; ServerInfo server = TimoCloudBungee.getInstance().getLobbyManager().getFreeLobby(event.getPlayer().getUniqueId(), true); if (server == null) { TimoCloudBungee.getInstance().info("No fallback server found"); return; } TimoCloudBungee.getInstance().info("Connecting to fallback server: " + server.getName()); event.setCancelled(true); event.setCancelServer(server); } }
@Override public void handle(Kick kick) throws Exception { ServerInfo def = user.updateAndGetNextServer( target ); ServerKickEvent event = new ServerKickEvent( user, target, ComponentSerializer.parse( kick.getMessage() ), def, ServerKickEvent.State.CONNECTING ); if ( event.getKickReason().toLowerCase().contains( "outdated" ) && def != null ) { // Pre cancel the event if we are going to try another server event.setCancelled( true ); } bungee.getPluginManager().callEvent( event ); if ( event.isCancelled() && event.getCancelServer() != null ) { obsolete = true; user.connect( event.getCancelServer() ); throw CancelSendSignal.INSTANCE; } String message = bungee.getTranslation( "connect_kick", target.getName(), event.getKickReason() ); if ( user.isDimensionChange() ) { user.disconnect( message ); } else { user.sendMessage( message ); } throw CancelSendSignal.INSTANCE; }
@Override public void handle(Kick kick) throws Exception { ServerInfo def = bungee.getServerInfo( con.getPendingConnection().getListener().getFallbackServer() ); if ( Objects.equal( server.getInfo(), def ) ) { def = null; } ServerKickEvent event = bungee.getPluginManager().callEvent( new ServerKickEvent( con, server.getInfo(), ComponentSerializer.parse( kick.getMessage() ), def, ServerKickEvent.State.CONNECTED ) ); if ( event.isCancelled() && event.getCancelServer() != null ) { con.connectNow( event.getCancelServer() ); } else { con.disconnect0( event.getKickReasonComponent() ); // TODO: Prefix our own stuff. } server.setObsolete( true ); throw CancelSendSignal.INSTANCE; }