diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 06a61d932c..6592c0835c 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -255,10 +255,11 @@ namespace OpenRA.Server if (client.Slot != null) SyncClientToPlayerReference(client, Map.Players[client.Slot]); - - var mods = handshake.Mods; + else + client.Color = HSLColor.FromRGB(255, 255, 255); // Check that the client has compatible mods + var mods = handshake.Mods; var validMod = mods.All(m => m.Contains('@')) && //valid format mods.Count() == Game.CurrentMods.Count() && //same number mods.Select(m => Pair.New(m.Split('@')[0], m.Split('@')[1])).All(kv => Game.CurrentMods.ContainsKey(kv.First)); diff --git a/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs b/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs index cbe1d9ed03..2c243507fe 100644 --- a/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs +++ b/OpenRA.Game/Widgets/WorldInteractionControllerWidget.cs @@ -174,7 +174,9 @@ namespace OpenRA.Widgets world.Selection.DoControlGroup(world, e.KeyName[0] - '0', e.Modifiers, e.MultiTapCount); return true; } - else if (e.KeyName == Game.Settings.Keys.PauseKey) + + // Disable pausing for spectators + else if (e.KeyName == Game.Settings.Keys.PauseKey && world.LocalPlayer != null) world.SetPauseState(!world.Paused); } return false;