Validate lobby option values.

This commit is contained in:
Paul Chote
2023-11-16 22:20:54 +00:00
committed by Gustas
parent 2faae285db
commit 89e1d71aec
2 changed files with 7 additions and 1 deletions

View File

@@ -729,6 +729,12 @@ namespace OpenRA.Mods.Common.Server
if (oo.Value == split[1]) if (oo.Value == split[1])
return true; return true;
if (!option.Values.ContainsKey(split[1]))
{
server.SendLocalizedMessageTo(conn, InvalidConfigurationCommand);
return true;
}
oo.Value = oo.PreferredValue = split[1]; oo.Value = oo.PreferredValue = split[1];
server.SyncLobbyGlobalSettings(); server.SyncLobbyGlobalSettings();

View File

@@ -84,7 +84,7 @@ namespace OpenRA.Mods.Common.Server
foreach (var optionNode in optionsNode.Value.Nodes) foreach (var optionNode in optionsNode.Value.Nodes)
{ {
if (options.TryGetValue(optionNode.Key, out var option) && !option.IsLocked) if (options.TryGetValue(optionNode.Key, out var option) && !option.IsLocked && option.Values.ContainsKey(optionNode.Value.Value))
{ {
var oo = server.LobbyInfo.GlobalSettings.LobbyOptions[option.Id]; var oo = server.LobbyInfo.GlobalSettings.LobbyOptions[option.Id];
oo.Value = oo.PreferredValue = optionNode.Value.Value; oo.Value = oo.PreferredValue = optionNode.Value.Value;