Hold player for ServerSwitchEvent - see #539
This commit is contained in:
		| @@ -104,6 +104,17 @@ public class ServerConnector extends PacketHandler | |||||||
|     { |     { | ||||||
|         Preconditions.checkState( thisState == State.LOGIN, "Not exepcting LOGIN" ); |         Preconditions.checkState( thisState == State.LOGIN, "Not exepcting LOGIN" ); | ||||||
|  |  | ||||||
|  |         synchronized ( user.getSwitchMutex() ) | ||||||
|  |         { | ||||||
|  |             if ( user.getServer() != null ) | ||||||
|  |             { | ||||||
|  |                 user.sendDimensionSwitch(); | ||||||
|  |                 // Remove from old servers | ||||||
|  |                 user.getServer().setObsolete( true ); | ||||||
|  |                 user.getServer().disconnect( "Quitting" ); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|         final ServerConnection server = new ServerConnection( ch, target ); |         final ServerConnection server = new ServerConnection( ch, target ); | ||||||
|         Callback<ServerConnectedEvent> callback = new Callback<ServerConnectedEvent>() |         Callback<ServerConnectedEvent> callback = new Callback<ServerConnectedEvent>() | ||||||
|         { |         { | ||||||
| @@ -177,14 +188,8 @@ public class ServerConnector extends PacketHandler | |||||||
|                         } |                         } | ||||||
|                         serverScoreboard.clear(); |                         serverScoreboard.clear(); | ||||||
|  |  | ||||||
|                         user.sendDimensionSwitch(); |  | ||||||
|  |  | ||||||
|                         user.setServerEntityId( login.getEntityId() ); |                         user.setServerEntityId( login.getEntityId() ); | ||||||
|                         user.unsafe().sendPacket( new Packet9Respawn( login.getDimension(), login.getDifficulty(), login.getGameMode(), (short) 256, login.getLevelType() ) ); |                         user.unsafe().sendPacket( new Packet9Respawn( login.getDimension(), login.getDifficulty(), login.getGameMode(), (short) 256, login.getLevelType() ) ); | ||||||
|  |  | ||||||
|                         // Remove from old servers |  | ||||||
|                         user.getServer().setObsolete( true ); |  | ||||||
|                         user.getServer().disconnect( "Quitting" ); |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                     // TODO: Fix this? |                     // TODO: Fix this? | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 md_5
					md_5