diff options
author | HybridDog <3192173+HybridDog@users.noreply.github.com> | 2020-10-03 18:33:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-03 17:33:43 +0100 |
commit | 4b423ee9b12aabe6ccd6a8e7dbc7db1d89dc365b (patch) | |
tree | 85329034bc72cc9a307047a91ffbd8245d972124 | |
parent | 947466ab28129fd69e6630974c6c4e901f2bebc6 (diff) | |
download | minetest-4b423ee9b12aabe6ccd6a8e7dbc7db1d89dc365b.tar.gz minetest-4b423ee9b12aabe6ccd6a8e7dbc7db1d89dc365b.tar.bz2 minetest-4b423ee9b12aabe6ccd6a8e7dbc7db1d89dc365b.zip |
Chatcommand: Show help message if func returns false without message
#9440
-rw-r--r-- | builtin/game/chat.lua | 13 | ||||
-rw-r--r-- | doc/lua_api.txt | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/builtin/game/chat.lua b/builtin/game/chat.lua index 8131a6860..1d277730a 100644 --- a/builtin/game/chat.lua +++ b/builtin/game/chat.lua @@ -66,8 +66,17 @@ core.register_on_chat_message(function(name, message) local has_privs, missing_privs = core.check_player_privs(name, cmd_def.privs) if has_privs then core.set_last_run_mod(cmd_def.mod_origin) - local _, result = cmd_def.func(name, param) - if result then + local success, result = cmd_def.func(name, param) + if success == false and result == nil then + core.chat_send_player(name, "-!- Invalid command usage") + local help_def = core.registered_chatcommands["help"] + if help_def then + local _, helpmsg = help_def.func(name, cmd) + if helpmsg then + core.chat_send_player(name, helpmsg) + end + end + elseif result then core.chat_send_player(name, result) end else diff --git a/doc/lua_api.txt b/doc/lua_api.txt index bd845aad3..edacfe05f 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -7949,6 +7949,8 @@ Used by `minetest.register_chatcommand`. func = function(name, param), -- Called when command is run. Returns boolean success and text output. + -- Special case: The help message is shown to the player if `func` + -- returns false without a text output. } Note that in params, use of symbols is as follows: |