From 838cbfa30c386812b14165a73de2971cde386a7e Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Wed, 27 May 2020 11:03:37 +1000 Subject: [PATCH] Allow doing /client help of singleplayer only commands in multiplayer --- src/Chat.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/Chat.c b/src/Chat.c index 9d63d142b..962ae9139 100644 --- a/src/Chat.c +++ b/src/Chat.c @@ -261,15 +261,6 @@ static struct ChatCommand* Commands_FindMatch(const String* cmdName) { return match; } -static struct ChatCommand* Commands_GetMatch(const String* cmdName) { - struct ChatCommand* cmd = Commands_FindMatch(cmdName); - if (cmd && cmd->SingleplayerOnly && !Server.IsSinglePlayer) { - Chat_Add1("&e/client: \"&f%s&e\" can only be used in singleplayer.", cmdName); - return NULL; - } - return cmd; -} - static void Commands_PrintDefault(void) { String str; char strBuffer[STRING_SIZE]; String name; @@ -315,8 +306,14 @@ static void Commands_Execute(const String* input) { if (!text.length) { Commands_PrintDefault(); return; } count = String_UNSAFE_Split(&text, ' ', args, Array_Elems(args)); - cmd = Commands_GetMatch(&args[0]); - if (cmd) cmd->Execute(&args[1], count - 1); + cmd = Commands_FindMatch(&args[0]); + if (!cmd) return; + + if (cmd->SingleplayerOnly && !Server.IsSinglePlayer) { + Chat_Add1("&e/client: \"&f%s&e\" can only be used in singleplayer.", &args[0]); + return; + } + cmd->Execute(&args[1], count - 1); } @@ -328,7 +325,7 @@ static void HelpCommand_Execute(const String* args, int argsCount) { int i; if (!argsCount) { Commands_PrintDefault(); return; } - cmd = Commands_GetMatch(&args[0]); + cmd = Commands_FindMatch(&args[0]); if (!cmd) return; for (i = 0; i < Array_Elems(cmd->Help); i++) {