diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index e3dcd8c5f8..f2aa92b3c8 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -324,7 +324,6 @@ namespace OpenRA.Server Name = OpenRA.Settings.SanitizedPlayerName(handshake.Client.Name), IpAddress = ((IPEndPoint)newConn.Socket.RemoteEndPoint).Address.ToString(), Index = newConn.PlayerIndex, - Slot = LobbyInfo.FirstEmptySlot(), PreferredColor = handshake.Client.PreferredColor, Color = handshake.Client.Color, Faction = "Random", @@ -341,11 +340,6 @@ namespace OpenRA.Server return; } - if (client.Slot != null) - SyncClientToPlayerReference(client, Map.Players.Players[client.Slot]); - else - client.Color = HSLColor.FromRGB(255, 255, 255); - if (ModData.Manifest.Id != handshake.Mod) { Log.Write("server", "Rejected connection from {0}; mods do not match.", @@ -378,6 +372,13 @@ namespace OpenRA.Server Action completeConnection = () => { + client.Slot = LobbyInfo.FirstEmptySlot(); + + if (client.Slot != null) + SyncClientToPlayerReference(client, Map.Players.Players[client.Slot]); + else + client.Color = HSLColor.FromRGB(255, 255, 255); + // Promote connection to a valid client PreConns.Remove(newConn); Conns.Add(newConn);