]> git.lizzy.rs Git - minetest.git/blobdiff - builtin/game/chatcommands.lua
Fix two nul deref if digging unknown nodes. (#5398)
[minetest.git] / builtin / game / chatcommands.lua
index 08dc1bb1d11053189507a926871dbb8e8460e279..745b012e6f03be15bcd7af59bef960c3387afcf5 100644 (file)
@@ -1,37 +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
-
-function core.unregister_chatcommand(name)
-       if core.registered_chatcommands[name] then
-               core.registered_chatcommands[name] = nil
-       else
-               core.log("warning", "Not unregistering chatcommand " ..name..
-                       " because it doesn't exist.")
-       end
-end
-
-function core.override_chatcommand(name, redefinition)
-       local chatcommand = core.registered_chatcommands[name]
-       assert(chatcommand, "Attempt to override non-existent chatcommand "..name)
-       for k, v in pairs(redefinition) do
-               rawset(chatcommand, k, v)
-       end
-       core.registered_chatcommands[name] = chatcommand
-end
 
 core.register_on_chat_message(function(name, message)
        local cmd, param = string.match(message, "^/([^ ]+) *(.*)")
@@ -836,11 +809,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,
 })