Backport minor builtin changes and fix shutdown delay command

master
MoNTE48 2019-06-03 20:55:18 +02:00
parent 8edbb66a05
commit ce25d7c04b
5 changed files with 32 additions and 40 deletions

View File

@ -12,7 +12,7 @@ dofile(commonpath .. "vector.lua")
core.register_on_death(function() core.register_on_death(function()
core.display_chat_message("You died.") core.display_chat_message("You died.")
local formspec = "size[11,5.5]bgcolor[#320000b4;true]" .. local formspec = "size[11,5.5]bgcolor[#320000b4;true]" ..
"label[4.85,1.35;" .. fgettext("You died.") .. "]button_exit[4,3;3,0.5;btn_respawn;".. fgettext("Respawn") .."]" "label[5,2;" .. fgettext("You died.") .. "]button_exit[3.5,3;4,0.5;btn_respawn;".. fgettext("Respawn") .."]"
core.show_formspec("bultin:death", formspec) core.show_formspec("bultin:death", formspec)
end) end)

View File

@ -92,7 +92,7 @@ core.register_chatcommand("admin", {
}) })
core.register_chatcommand("privs", { core.register_chatcommand("privs", {
params = "<name>", params = "[<name>]",
description = "Print privileges of player", description = "Print privileges of player",
func = function(caller, param) func = function(caller, param)
param = param:trim() param = param:trim()
@ -145,7 +145,7 @@ local function handle_grant_command(caller, grantname, grantprivstr)
end end
core.register_chatcommand("grant", { core.register_chatcommand("grant", {
params = "<name> <privilege>|all", params = "<name> (<privilege> | all)",
description = "Give privilege to player", description = "Give privilege to player",
func = function(name, param) func = function(name, param)
local grantname, grantprivstr = string.match(param, "([^ ]+) (.+)") local grantname, grantprivstr = string.match(param, "([^ ]+) (.+)")
@ -168,7 +168,7 @@ core.register_chatcommand("grantme", {
}) })
core.register_chatcommand("revoke", { core.register_chatcommand("revoke", {
params = "<name> <privilege>|all", params = "<name> (<privilege> | all)",
description = "Remove privilege from player", description = "Remove privilege from player",
privs = {}, privs = {},
func = function(name, param) func = function(name, param)
@ -305,7 +305,7 @@ core.register_chatcommand("remove_player", {
}) })
core.register_chatcommand("teleport", { core.register_chatcommand("teleport", {
params = "<X>,<Y>,<Z> | <to_name> | <name> <X>,<Y>,<Z> | <name> <to_name>", params = "<X>,<Y>,<Z> | <to_name> | (<name> <X>,<Y>,<Z>) | (<name> <to_name>)",
description = "Teleport to player or position", description = "Teleport to player or position",
privs = {teleport=true}, privs = {teleport=true},
func = function(name, param) func = function(name, param)
@ -413,7 +413,7 @@ core.register_chatcommand("teleport", {
}) })
core.register_chatcommand("set", { core.register_chatcommand("set", {
params = "[-n] <name> <value> | <name>", params = "([-n] <name> <value>) | <name>",
description = "Set or read server configuration setting", description = "Set or read server configuration setting",
privs = {server=true}, privs = {server=true},
func = function(name, param) func = function(name, param)
@ -468,9 +468,9 @@ local function emergeblocks_progress_update(ctx)
end end
core.register_chatcommand("emergeblocks", { core.register_chatcommand("emergeblocks", {
params = "(here [radius]) | (<pos1> <pos2>)", params = "(here [<radius>]) | (<pos1> <pos2>)",
description = "Load (or, if nonexistent, generate) map blocks " description = "Load (or, if nonexistent, generate) map blocks "
.. "contained in area pos1 to pos2", .. "contained in area pos1 to pos2 (<pos1> and <pos2> must be in parentheses)",
privs = {server=true}, privs = {server=true},
func = function(name, param) func = function(name, param)
local p1, p2 = parse_range_str(name, param) local p1, p2 = parse_range_str(name, param)
@ -494,8 +494,9 @@ core.register_chatcommand("emergeblocks", {
}) })
core.register_chatcommand("deleteblocks", { core.register_chatcommand("deleteblocks", {
params = "(here [radius]) | (<pos1> <pos2>)", params = "(here [<radius>]) | (<pos1> <pos2>)",
description = "Delete map blocks contained in area pos1 to pos2", description = "Delete map blocks contained in area pos1 to pos2 "
.. "(<pos1> and <pos2> must be in parentheses)",
privs = {server=true}, privs = {server=true},
func = function(name, param) func = function(name, param)
local p1, p2 = parse_range_str(name, param) local p1, p2 = parse_range_str(name, param)
@ -513,8 +514,9 @@ core.register_chatcommand("deleteblocks", {
}) })
core.register_chatcommand("fixlight", { core.register_chatcommand("fixlight", {
params = "(here [radius]) | (<pos1> <pos2>)", params = "(here [<radius>]) | (<pos1> <pos2>)",
description = "Resets lighting in the area between pos1 and pos2", description = "Resets lighting in the area between pos1 and pos2 "
.. "(<pos1> and <pos2> must be in parentheses)",
privs = {server = true}, privs = {server = true},
func = function(name, param) func = function(name, param)
local p1, p2 = parse_range_str(name, param) local p1, p2 = parse_range_str(name, param)
@ -653,15 +655,15 @@ core.register_chatcommand("pulverize", {
core.rollback_punch_callbacks = {} core.rollback_punch_callbacks = {}
core.register_on_punchnode(function(pos, node, puncher) core.register_on_punchnode(function(pos, node, puncher)
local name = puncher and puncher:get_player_name() local name = puncher:get_player_name()
if name and core.rollback_punch_callbacks[name] then if core.rollback_punch_callbacks[name] then
core.rollback_punch_callbacks[name](pos, node, puncher) core.rollback_punch_callbacks[name](pos, node, puncher)
core.rollback_punch_callbacks[name] = nil core.rollback_punch_callbacks[name] = nil
end end
end) end)
core.register_chatcommand("rollback_check", { core.register_chatcommand("rollback_check", {
params = "[<range>] [<seconds>] [limit]", params = "[<range>] [<seconds>] [<limit>]",
description = "Check who last touched a node or a node near it" description = "Check who last touched a node or a node near it"
.. " within the time specified by <seconds>. Default: range = 0," .. " within the time specified by <seconds>. Default: range = 0,"
.. " seconds = 86400 = 24h, limit = 5", .. " seconds = 86400 = 24h, limit = 5",
@ -714,7 +716,7 @@ core.register_chatcommand("rollback_check", {
}) })
core.register_chatcommand("rollback", { core.register_chatcommand("rollback", {
params = "<player name> [<seconds>] | :<actor> [<seconds>]", params = "(<name> [<seconds>]) | (:<actor> [<seconds>])",
description = "Revert actions of a player. Default for <seconds> is 60", description = "Revert actions of a player. Default for <seconds> is 60",
privs = {rollback=true}, privs = {rollback=true},
func = function(name, param) func = function(name, param)
@ -806,15 +808,15 @@ core.register_chatcommand("days", {
}) })
core.register_chatcommand("shutdown", { core.register_chatcommand("shutdown", {
description = "Shutdown server", params = "[<delay_in_seconds> | -1] [reconnect] [<message>]",
params = "[delay_in_seconds (non-negative number, or -1 to cancel)] [reconnect] [message]", description = "Shutdown server (-1 cancels a delayed shutdown)",
privs = {server=true}, privs = {server=true},
func = function(name, param) func = function(name, param)
local delay, reconnect, message = param:match("([^ ][-]?[0-9]+)([^ ]+)(.*)") local delay, reconnect, message = param:match("([^ ][-]?[0-9]+)([^ ]+)(.*)")
message = message or "" message = message or ""
if delay ~= "" then if delay ~= "" then
delay = tonumber(delay) or 0 delay = tonumber(param) or 0
else else
delay = 0 delay = 0
core.log("action", name .. " shuts down server") core.log("action", name .. " shuts down server")
@ -845,7 +847,7 @@ core.register_chatcommand("ban", {
}) })
core.register_chatcommand("unban", { core.register_chatcommand("unban", {
params = "<name/ip>", params = "<name> | <IP_address>",
description = "Remove IP ban", description = "Remove IP ban",
privs = {ban=true}, privs = {ban=true},
func = function(name, param) func = function(name, param)
@ -858,7 +860,7 @@ core.register_chatcommand("unban", {
}) })
core.register_chatcommand("kick", { core.register_chatcommand("kick", {
params = "<name> [reason]", params = "<name> [<reason>]",
description = "Kick a player", description = "Kick a player",
privs = {kick=true}, privs = {kick=true},
func = function(name, param) func = function(name, param)
@ -923,7 +925,7 @@ core.register_chatcommand("msg", {
}) })
core.register_chatcommand("last-login", { core.register_chatcommand("last-login", {
params = "[name]", params = "[<name>]",
description = "Get the last login time of a player", description = "Get the last login time of a player",
func = function(name, param) func = function(name, param)
if param == "" then if param == "" then
@ -940,7 +942,7 @@ core.register_chatcommand("last-login", {
}) })
core.register_chatcommand("clearinv", { core.register_chatcommand("clearinv", {
params = "[name]", params = "[<name>]",
description = "Clear the inventory of yourself or another player", description = "Clear the inventory of yourself or another player",
func = function(name, param) func = function(name, param)
local player local player

View File

@ -197,7 +197,7 @@ function core.get_node_drops(node, toolname)
return {nodename} return {nodename}
elseif type(drop) == "string" then elseif type(drop) == "string" then
-- itemstring drop -- itemstring drop
return {drop} return drop ~= "" and {drop} or {}
elseif drop.items == nil then elseif drop.items == nil then
-- drop = {} to disable default drop -- drop = {} to disable default drop
return {} return {}
@ -715,7 +715,7 @@ core.nodedef_default = {
liquid_alternative_flowing = "", liquid_alternative_flowing = "",
liquid_alternative_source = "", liquid_alternative_source = "",
liquid_viscosity = 0, liquid_viscosity = 0,
drowning = 4, drowning = 0,
light_source = 0, light_source = 0,
damage_per_second = 0, damage_per_second = 0,
selection_box = {type="regular"}, selection_box = {type="regular"},

View File

@ -116,8 +116,6 @@ function core.register_item(name, itemdef)
end end
itemdef.name = name itemdef.name = name
local is_overriding = core.registered_items[name]
-- Apply defaults and add to registered_* table -- Apply defaults and add to registered_* table
if itemdef.type == "node" then if itemdef.type == "node" then
-- Use the nodebox as selection box if it's not set manually -- Use the nodebox as selection box if it's not set manually
@ -179,13 +177,7 @@ function core.register_item(name, itemdef)
--core.log("Registering item: " .. itemdef.name) --core.log("Registering item: " .. itemdef.name)
core.registered_items[itemdef.name] = itemdef core.registered_items[itemdef.name] = itemdef
core.registered_aliases[itemdef.name] = nil core.registered_aliases[itemdef.name] = nil
-- Used to allow builtin to register ignore to registered_items
if name ~= "ignore" then
register_item_raw(itemdef) register_item_raw(itemdef)
elseif is_overriding then
core.log("warning", "Attempted redefinition of \"ignore\"")
end
end end
function core.unregister_item(name) function core.unregister_item(name)

View File

@ -1,14 +1,12 @@
-- Minetest: builtin/static_spawn.lua -- Minetest: builtin/static_spawn.lua
local function warn_invalid_static_spawnpoint() local static_spawnpoint_string = core.settings:get("static_spawnpoint")
if core.settings:get("static_spawnpoint") and if static_spawnpoint_string and
static_spawnpoint_string ~= "" and
not core.setting_get_pos("static_spawnpoint") then not core.setting_get_pos("static_spawnpoint") then
core.log("error", "The static_spawnpoint setting is invalid: \"".. error('The static_spawnpoint setting is invalid: "' ..
core.settings:get("static_spawnpoint").."\"") static_spawnpoint_string .. '"')
end end
end
warn_invalid_static_spawnpoint()
local function put_player_in_spawn(player_obj) local function put_player_in_spawn(player_obj)
local static_spawnpoint = core.setting_get_pos("static_spawnpoint") local static_spawnpoint = core.setting_get_pos("static_spawnpoint")