Error handling when cannot connect to server.
This commit is contained in:
parent
0b7b87d9c3
commit
6ae5feee60
@ -13,6 +13,7 @@ import java.net.InetSocketAddress;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -95,10 +96,10 @@ public final class UserConnection implements ProxiedPlayer
|
||||
@Override
|
||||
public void connect(ServerInfo target)
|
||||
{
|
||||
connect( target, true );
|
||||
connect( target, false );
|
||||
}
|
||||
|
||||
private void connect(ServerInfo info, final boolean retry)
|
||||
public void connect(ServerInfo info, final boolean retry)
|
||||
{
|
||||
ServerConnectEvent event = new ServerConnectEvent( this, info );
|
||||
ProxyServer.getInstance().getPluginManager().callEvent( event );
|
||||
@ -132,7 +133,13 @@ public final class UserConnection implements ProxiedPlayer
|
||||
connect( def, false );
|
||||
} else
|
||||
{
|
||||
disconnect( "Server down, could not connect to default!" );
|
||||
if ( server == null )
|
||||
{
|
||||
disconnect( "Server down, could not connect to default! " + future.cause().getClass().getName() );
|
||||
} else
|
||||
{
|
||||
sendMessage( ChatColor.RED + "Could not connect to target server: " + future.cause().getClass().getName() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -144,11 +151,15 @@ public final class UserConnection implements ProxiedPlayer
|
||||
{
|
||||
if ( ch.isActive() )
|
||||
{
|
||||
bungee.getLogger().log( Level.INFO, "[" + getName() + "] disconnected with: " + reason );
|
||||
ch.write( new PacketFFKick( reason ) );
|
||||
ch.close();
|
||||
if ( server != null )
|
||||
{
|
||||
server.disconnect( "Quitting" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(String message)
|
||||
|
@ -201,7 +201,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
||||
ch.pipeline().get( HandlerBoss.class ).setHandler( new UpstreamBridge( bungee, userCon ) );
|
||||
|
||||
ServerInfo server = bungee.getReconnectHandler().getServer( userCon );
|
||||
userCon.connect( server );
|
||||
userCon.connect( server, true );
|
||||
|
||||
thisState = State.FINISHED;
|
||||
throw new CancelSendSignal();
|
||||
|
Loading…
Reference in New Issue
Block a user