@Deprecated public void connectNow(ServerInfo target) { connectNow( target, ServerConnectEvent.Reason.UNKNOWN ); }
@Override public void exception(Throwable t) throws Exception { if ( server.isObsolete() ) { // do not perform any actions if the user has already moved return; } ServerInfo def = con.updateAndGetNextServer( server.getInfo() ); if ( def != null ) { server.setObsolete( true ); con.connectNow( def, ServerConnectEvent.Reason.SERVER_DOWN_REDIRECT ); con.sendMessage( bungee.getTranslation( "server_went_down" ) ); } else { con.disconnect( Util.exception( t ) ); } }
@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; }
@Override public void exception(Throwable t) throws Exception { if ( server.isObsolete() ) { // do not perform any actions if the user has already moved return; } ServerInfo def = bungee.getServerInfo( con.getPendingConnection().getListener().getFallbackServer() ); if ( server.getInfo() != def ) { server.setObsolete( true ); con.connectNow( def ); con.sendMessage( bungee.getTranslation( "server_went_down" ) ); } else { con.disconnect( Util.exception( t ) ); } }
@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; }