Validate lobby option values.
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user