From 431a06fe24895b8947d0c6a545bf051143cfca4e Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 19 Sep 2022 19:12:44 -0400 Subject: [PATCH] Core/Commands: Fixes commands that use boolean as a argument. ex: .gm fly on --- Source/Game/Chat/CommandArgs.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Source/Game/Chat/CommandArgs.cs b/Source/Game/Chat/CommandArgs.cs index fc1a412a8..f91db7eb2 100644 --- a/Source/Game/Chat/CommandArgs.cs +++ b/Source/Game/Chat/CommandArgs.cs @@ -215,6 +215,25 @@ namespace Game.Chat val = token; return new ChatCommandResult(tail); } + case TypeCode.Boolean: + { + if (token.IsEmpty()) + return default; + + if (bool.TryParse(token, out bool tempValue)) + val = tempValue; + else + { + if ((token == "1") || token.Equals("y", StringComparison.OrdinalIgnoreCase) || token.Equals("on", StringComparison.OrdinalIgnoreCase) || token.Equals("yes", StringComparison.OrdinalIgnoreCase)) + val = true; + else if ((token == "0") || token.Equals("n", StringComparison.OrdinalIgnoreCase) || token.Equals("off", StringComparison.OrdinalIgnoreCase) || token.Equals("no", StringComparison.OrdinalIgnoreCase)) + val = false; + else + return ChatCommandResult.FromErrorMessage(handler.GetParsedString(CypherStrings.CmdparserStringValueInvalid, token, Type.GetTypeCode(type))); + } + + return new ChatCommandResult(tail); + } case TypeCode.Object: { switch (type.Name)