From c413eeb0260e143ada3f2c1915bda07602e06fa1 Mon Sep 17 00:00:00 2001 From: Tim Myers Date: Wed, 18 Sep 2019 17:37:56 -0500 Subject: [PATCH] Also print help commands to chat for server terminal (#8869) --- builtin/common/chatcommands.lua | 7 +++++++ builtin/common/information_formspecs.lua | 14 +++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/builtin/common/chatcommands.lua b/builtin/common/chatcommands.lua index 71204657c..52edda659 100644 --- a/builtin/common/chatcommands.lua +++ b/builtin/common/chatcommands.lua @@ -77,6 +77,13 @@ local function do_help_cmd(name, param) end table.sort(cmds) return true, gettext("Available commands:").."\n"..table.concat(cmds, "\n") + elseif INIT == "game" and param == "privs" then + local privs = {} + for priv, def in pairs(core.registered_privileges) do + privs[#privs + 1] = priv .. ": " .. def.description + end + table.sort(privs) + return true, "Available privileges:\n"..table.concat(privs, "\n") else local cmd = param local def = core.registered_chatcommands[cmd] diff --git a/builtin/common/information_formspecs.lua b/builtin/common/information_formspecs.lua index 10fe37b8f..b977e2656 100644 --- a/builtin/common/information_formspecs.lua +++ b/builtin/common/information_formspecs.lua @@ -81,7 +81,7 @@ local function build_chatcommands_formspec(name, sel, copy) end --- PRIVILEGES FORMSPEC +-- PRIVILEGES FORMSPEC local function build_privs_formspec(name) local privs = {} @@ -128,15 +128,23 @@ local help_command = core.registered_chatcommands["help"] local old_help_func = help_command.func help_command.func = function(name, param) + local admin = core.settings:get("name") + + -- If the admin ran help, put the output in the chat buffer as well to + -- work with the server terminal if param == "privs" then core.show_formspec(name, "__builtin:help_privs", build_privs_formspec(name)) - return + if name ~= admin then + return + end end if param == "" or param == "all" then core.show_formspec(name, "__builtin:help_cmds", build_chatcommands_formspec(name)) - return + if name ~= admin then + return + end end return old_help_func(name, param)