]> git.lizzy.rs Git - minetest.git/blobdiff - builtin/game/chatcommands.lua
Change command prefix to "." and add "help" command.
[minetest.git] / builtin / game / chatcommands.lua
index 199b9e964a7e07e79554522bf9568af50535c6fc..b4fa4f8288d51049e911a08e12d1c6328a3c5270 100644 (file)
@@ -1,19 +1,10 @@
--- Minetest: builtin/chatcommands.lua
+-- Minetest: builtin/game/chatcommands.lua
 
 --
 -- Chat command handler
 --
 
-core.registered_chatcommands = {}
 core.chatcommands = core.registered_chatcommands -- BACKWARDS COMPATIBILITY
-function core.register_chatcommand(cmd, def)
-       def = def or {}
-       def.params = def.params or ""
-       def.description = def.description or ""
-       def.privs = def.privs or {}
-       def.mod_origin = core.get_current_modname() or "??"
-       core.registered_chatcommands[cmd] = def
-end
 
 core.register_on_chat_message(function(name, message)
        local cmd, param = string.match(message, "^/([^ ]+) *(.*)")
@@ -91,61 +82,6 @@ core.register_chatcommand("admin", {
        end,
 })
 
-core.register_chatcommand("help", {
-       privs = {},
-       params = "[all/privs/<cmd>]",
-       description = "Get help for commands or list privileges",
-       func = function(name, param)
-               local function format_help_line(cmd, def)
-                       local msg = core.colorize("#00ffff", "/"..cmd)
-                       if def.params and def.params ~= "" then
-                               msg = msg .. " " .. def.params
-                       end
-                       if def.description and def.description ~= "" then
-                               msg = msg .. ": " .. def.description
-                       end
-                       return msg
-               end
-               if param == "" then
-                       local msg = ""
-                       local cmds = {}
-                       for cmd, def in pairs(core.registered_chatcommands) do
-                               if core.check_player_privs(name, def.privs) then
-                                       cmds[#cmds + 1] = cmd
-                               end
-                       end
-                       table.sort(cmds)
-                       return true, "Available commands: " .. table.concat(cmds, " ") .. "\n"
-                                       .. "Use '/help <cmd>' to get more information,"
-                                       .. " or '/help all' to list everything."
-               elseif param == "all" then
-                       local cmds = {}
-                       for cmd, def in pairs(core.registered_chatcommands) do
-                               if core.check_player_privs(name, def.privs) then
-                                       cmds[#cmds + 1] = format_help_line(cmd, def)
-                               end
-                       end
-                       table.sort(cmds)
-                       return true, "Available commands:\n"..table.concat(cmds, "\n")
-               elseif 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]
-                       if not def then
-                               return false, "Command not available: "..cmd
-                       else
-                               return true, format_help_line(cmd, def)
-                       end
-               end
-       end,
-})
-
 core.register_chatcommand("privs", {
        params = "<name>",
        description = "Print privileges of player",
@@ -818,11 +754,14 @@ core.register_chatcommand("days", {
 
 core.register_chatcommand("shutdown", {
        description = "Shutdown server",
+       params = "[reconnect] [message]",
        privs = {server=true},
        func = function(name, param)
                core.log("action", name .. " shuts down server")
-               core.request_shutdown()
                core.chat_send_all("*** Server shutting down (operator request).")
+               local reconnect, message = param:match("([^ ]+)(.*)")
+               message = message or ""
+               core.request_shutdown(message:trim(), core.is_yes(reconnect))
        end,
 })