Defer setting slot on client to completeConnection
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user