From 65c77677d42b20c5b5b2a92f517ca9756177c7f9 Mon Sep 17 00:00:00 2001 From: havok13888 Date: Tue, 29 Jul 2014 23:13:26 -0500 Subject: [PATCH] Inform client about changes in lobby options --- OpenRA.Game/Server/Server.cs | 17 +++++++++++++++++ OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index e8b98dcb31..ed058d1596 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -336,6 +336,10 @@ namespace OpenRA.Server // Send initial ping SendOrderTo(newConn, "Ping", Game.RunTime.ToString()); + // Send Lobby info to newly connected client + if (!client.IsAdmin) + NotifyNewClientOfLobbyInfo(newConn); + if (Settings.Dedicated) { var motdFile = Path.Combine(Platform.SupportDir, "motd.txt"); @@ -355,6 +359,19 @@ namespace OpenRA.Server catch (Exception) { DropClient(newConn); } } + void NotifyNewClientOfLobbyInfo(Connection newConn) + { + SendOrderTo(newConn, "Message", "Diplomacy Changes: {0}".F(LobbyInfo.GlobalSettings.FragileAlliances)); + SendOrderTo(newConn, "Message", "Allow Cheats: {0}".F(LobbyInfo.GlobalSettings.AllowCheats)); + SendOrderTo(newConn, "Message", "Shroud: {0}".F(LobbyInfo.GlobalSettings.Shroud)); + SendOrderTo(newConn, "Message", "Fog of war: {0}".F(LobbyInfo.GlobalSettings.Fog)); + SendOrderTo(newConn, "Message", "Crates Appear: {0}".F(LobbyInfo.GlobalSettings.Crates)); + SendOrderTo(newConn, "Message", "Build off Ally ConYards: {0}".F(LobbyInfo.GlobalSettings.AllyBuildRadius)); + SendOrderTo(newConn, "Message", "Starting Units: {0}".F(LobbyInfo.GlobalSettings.StartingUnitsClass)); + SendOrderTo(newConn, "Message", "Starting Cash: ${0}".F(LobbyInfo.GlobalSettings.StartingCash)); + SendOrderTo(newConn, "Message", "Tech Level: {0}".F(LobbyInfo.GlobalSettings.TechLevel)); + } + void SetOrderLag() { if (LobbyInfo.IsSinglePlayer) diff --git a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs index c1e1666ab7..c6312db49e 100644 --- a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs +++ b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs @@ -354,6 +354,8 @@ namespace OpenRA.Mods.RA.Server bool.TryParse(s, out server.LobbyInfo.GlobalSettings.FragileAlliances); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "allowcheats", @@ -373,6 +375,8 @@ namespace OpenRA.Mods.RA.Server bool.TryParse(s, out server.LobbyInfo.GlobalSettings.AllowCheats); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "shroud", @@ -392,6 +396,8 @@ namespace OpenRA.Mods.RA.Server bool.TryParse(s, out server.LobbyInfo.GlobalSettings.Shroud); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "fog", @@ -412,6 +418,8 @@ namespace OpenRA.Mods.RA.Server bool.TryParse(s, out server.LobbyInfo.GlobalSettings.Fog); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "assignteams", @@ -472,6 +480,8 @@ namespace OpenRA.Mods.RA.Server bool.TryParse(s, out server.LobbyInfo.GlobalSettings.Crates); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "allybuildradius", @@ -491,6 +501,8 @@ namespace OpenRA.Mods.RA.Server bool.TryParse(s, out server.LobbyInfo.GlobalSettings.AllyBuildRadius); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "difficulty", @@ -530,6 +542,8 @@ namespace OpenRA.Mods.RA.Server server.LobbyInfo.GlobalSettings.StartingUnitsClass = s; server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "startingcash", @@ -549,6 +563,7 @@ namespace OpenRA.Mods.RA.Server server.LobbyInfo.GlobalSettings.StartingCash = Exts.ParseIntegerInvariant(s); server.SyncLobbyGlobalSettings(); + server.SendMessage("{0} modified to ${1}.".F(client.Name, s)); return true; }}, @@ -569,6 +584,8 @@ namespace OpenRA.Mods.RA.Server server.LobbyInfo.GlobalSettings.TechLevel = s; server.SyncLobbyInfo(); + server.SendMessage("{0} modified to {1}.".F(client.Name, s)); + return true; }}, { "kick",