diff --git a/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs b/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs index 89ab371095..a99f517538 100644 --- a/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs +++ b/OpenRA.Mods.Common/ServerTraits/LobbySettingsNotification.cs @@ -9,7 +9,6 @@ */ #endregion -using System.Collections.Generic; using System.Linq; using OpenRA.Network; using OpenRA.Server; @@ -31,17 +30,14 @@ namespace OpenRA.Mods.Common.Server var options = server.Map.Rules.Actors["player"].TraitInfos() .Concat(server.Map.Rules.Actors["world"].TraitInfos()) - .SelectMany(t => t.LobbyOptions(server.Map.Rules)); - - var optionNames = new Dictionary(); - foreach (var o in options) - optionNames[o.Id] = o.Name; + .SelectMany(t => t.LobbyOptions(server.Map.Rules)) + .ToDictionary(o => o.Id, o => o); foreach (var kv in server.LobbyInfo.GlobalSettings.LobbyOptions) { if (!defaults.LobbyOptions.TryGetValue(kv.Key, out var def) || kv.Value.Value != def.Value) - if (optionNames.TryGetValue(kv.Key, out var optionName)) - server.SendOrderTo(conn, "Message", optionName + ": " + kv.Value.Value); + if (options.TryGetValue(kv.Key, out var option)) + server.SendOrderTo(conn, "Message", option.Name + ": " + option.Values[kv.Value.Value]); } } }