From 21b002ce224fb17e05537f8eef69be3b98589301 Mon Sep 17 00:00:00 2001 From: Igor Popov Date: Thu, 7 Jun 2012 18:39:13 +0400 Subject: [PATCH] dedicated: drop DEV_VERSION --- OpenRA.Game/Network/Session.cs | 1 + OpenRA.Game/Server/Server.cs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/OpenRA.Game/Network/Session.cs b/OpenRA.Game/Network/Session.cs index d9316b8688..305b92a49f 100644 --- a/OpenRA.Game/Network/Session.cs +++ b/OpenRA.Game/Network/Session.cs @@ -77,6 +77,7 @@ namespace OpenRA.Network public int RandomSeed = 0; public bool LockTeams = true; // don't allow team changes after game start. public bool AllowCheats = false; + public bool Dedicated; } public Session(string[] mods) diff --git a/OpenRA.Game/Server/Server.cs b/OpenRA.Game/Server/Server.cs index 848bc209d5..cfd1c6897a 100644 --- a/OpenRA.Game/Server/Server.cs +++ b/OpenRA.Game/Server/Server.cs @@ -118,6 +118,7 @@ namespace OpenRA.Server lobbyInfo.GlobalSettings.Map = settings.Map; lobbyInfo.GlobalSettings.ServerName = settings.Name; lobbyInfo.GlobalSettings.Ban = settings.Ban; + lobbyInfo.GlobalSettings.Dedicated = settings.Dedicated; foreach (var t in ServerTraits.WithInterface()) t.ServerStarted(this); @@ -263,7 +264,10 @@ namespace OpenRA.Server 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) && (kv.Second == "{DEV_VERSION}" || Game.CurrentMods[kv.First].Version == "{DEV_VERSION}" || kv.Second == Game.CurrentMods[kv.First].Version)); - + + // Drop DEV_VERSION if it's a Dedicated + if ( lobbyInfo.GlobalSettings.Dedicated && mods.Any(m => m.Contains("{DEV_VERSION}"))) { valid = false; } + if (!valid) { Log.Write("server", "Rejected connection from {0}; mods do not match.",