#3628: Convert PostLoginEvent to AsyncEvent and expose target server
This commit is contained in:
@@ -652,28 +652,37 @@ public class InitialHandler extends PacketHandler implements PendingConnection
|
||||
}
|
||||
|
||||
ch.getHandle().pipeline().get( HandlerBoss.class ).setHandler( new UpstreamBridge( bungee, userCon ) );
|
||||
bungee.getPluginManager().callEvent( new PostLoginEvent( userCon ) );
|
||||
|
||||
// #3612: Don't progress further if disconnected during event
|
||||
if ( ch.isClosed() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ServerInfo server;
|
||||
ServerInfo initialServer;
|
||||
if ( bungee.getReconnectHandler() != null )
|
||||
{
|
||||
server = bungee.getReconnectHandler().getServer( userCon );
|
||||
initialServer = bungee.getReconnectHandler().getServer( userCon );
|
||||
} else
|
||||
{
|
||||
server = AbstractReconnectHandler.getForcedHost( InitialHandler.this );
|
||||
initialServer = AbstractReconnectHandler.getForcedHost( InitialHandler.this );
|
||||
}
|
||||
if ( server == null )
|
||||
if ( initialServer == null )
|
||||
{
|
||||
server = bungee.getServerInfo( listener.getDefaultServer() );
|
||||
initialServer = bungee.getServerInfo( listener.getDefaultServer() );
|
||||
}
|
||||
|
||||
userCon.connect( server, null, true, ServerConnectEvent.Reason.JOIN_PROXY );
|
||||
Callback<PostLoginEvent> complete = new Callback<PostLoginEvent>()
|
||||
{
|
||||
@Override
|
||||
public void done(PostLoginEvent result, Throwable error)
|
||||
{
|
||||
// #3612: Don't progress further if disconnected during event
|
||||
if ( ch.isClosed() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
userCon.connect( result.getTarget(), null, true, ServerConnectEvent.Reason.JOIN_PROXY );
|
||||
}
|
||||
};
|
||||
|
||||
// fire post-login event
|
||||
bungee.getPluginManager().callEvent( new PostLoginEvent( userCon, initialServer, complete ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user