mckaygerhard
f7e607f017
* will work with 0.4 servers like just test and famous subnasa * make it work with older versions of minetest
674 lines
29 KiB
Lua
674 lines
29 KiB
Lua
local enable_damage = core.settings:get_bool("enable_damage")
|
|
local speeds = {}
|
|
|
|
local function containsValue(table, value)
|
|
for _, v in ipairs(table) do
|
|
if v == value then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
minetest.register_chatcommand("ip", {
|
|
params = "<name>",
|
|
description = "Show the IP of a player.",
|
|
privs = {server = true},
|
|
func = function(name, param)
|
|
if not containsValue(essentials.trusted_ip_users, name) then
|
|
minetest.chat_send_player(name, core.colorize("red", "You are not of trusted administrator!"))
|
|
minetest.sound_play("error", name)
|
|
show_ip_info(name)
|
|
return
|
|
end
|
|
if param == "" then
|
|
minetest.chat_send_player(name, "Your IP address is ".. minetest.get_player_ip(name))
|
|
return
|
|
end
|
|
if minetest.get_player_by_name(param) == nil then
|
|
minetest.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
minetest.chat_send_player(name, "IP address of ".. param .." is ".. minetest.get_player_ip(param))
|
|
end,
|
|
})
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("broadcast", {
|
|
params = "<message>",
|
|
description = "Send GLOBAL message in chat.",
|
|
privs = {broadcast = true},
|
|
func = function(name, param)
|
|
if param == "" then
|
|
core.chat_send_player(name, core.colorize("red", "Message cannot be empty!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
if minetest.check_player_privs(name, {server=true}) then
|
|
core.chat_send_all(core.colorize("#0006FF", "[Announcement] ")..core.colorize("#00FFC6", param))
|
|
else
|
|
core.chat_send_all(core.colorize("#0006FF", "[Announcement] ")..core.colorize("#00FFC6", param).." "..core.colorize("#82909D", string.format("(Announced by %s)", name)))
|
|
end
|
|
for _, player in ipairs(minetest.get_connected_players()) do
|
|
minetest.sound_play("broadcast", player:get_player_name())
|
|
end
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("broadcast", {
|
|
params = "<message>",
|
|
description = "Send GLOBAL message in chat.",
|
|
privs = {bring = true},
|
|
func = function(name, param)
|
|
if param == "" then
|
|
core.chat_send_player(name, core.colorize("red", "Message cannot be empty!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
if minetest.check_player_privs(name, {server=true}) then
|
|
core.chat_send_all(core.colorize("#0006FF", "[Announcement] ")..core.colorize("#00FFC6", param))
|
|
else
|
|
core.chat_send_all(core.colorize("#0006FF", "[Announcement] ")..core.colorize("#00FFC6", param).." "..core.colorize("#82909D", string.format("(Announced by %s)", name)))
|
|
end
|
|
for _, player in ipairs(minetest.get_connected_players()) do
|
|
minetest.sound_play("broadcast", player:get_player_name())
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
|
|
local function isNumber(num)
|
|
local value = tonumber(num)
|
|
return (type(value) == "number" and math.floor(value) ~= value) or (type(value) == "number" and math.floor(value) == value)
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("speed", {
|
|
params = "<speed> [<player>]",
|
|
description = "Sets a speed for an any player. (Standart speed is 1)",
|
|
privs = {speed = true},
|
|
func = function(name, param)
|
|
local speed = string.match(param, "([^ ]+)")
|
|
local oname = string.match(param, speed.." (.+)")
|
|
--core.chat_send_all(dump(speed).." "..dump(oname))
|
|
if speed == nil then
|
|
core.chat_send_player(name, string.format("Your speed now is %s.", 1))
|
|
minetest.sound_play("done", name)
|
|
minetest.get_player_by_name(name):set_physics_override({
|
|
speed = 1
|
|
})
|
|
return
|
|
end
|
|
if oname == nil then
|
|
core.chat_send_player(name, string.format("Your speed now is %s.", speed))
|
|
minetest.sound_play("done", name)
|
|
minetest.get_player_by_name(name):set_physics_override({
|
|
speed = tonumber(speed)
|
|
})
|
|
else
|
|
if minetest.get_player_by_name(oname) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Please, specify an online player."))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
core.chat_send_player(name, string.format("Speed of player %s now is %s.", oname, speed))
|
|
minetest.sound_play("done", name)
|
|
minetest.sound_play("done", oname)
|
|
if essentials.changed_by then
|
|
minetest.chat_send_player(oname, string.format("Now your speed is %s from player %s.", speed, name))
|
|
end
|
|
minetest.get_player_by_name(oname):set_physics_override({
|
|
speed = tonumber(speed)
|
|
})
|
|
end
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("speed", {
|
|
params = "<speed> [<player>]",
|
|
description = "Sets a speed for an any player. (Standart speed is 1)",
|
|
privs = {rollback = true},
|
|
func = function(name, param)
|
|
local speed = string.match(param, "([^ ]+)")
|
|
local oname = string.match(param, speed.." (.+)")
|
|
--core.chat_send_all(dump(speed).." "..dump(oname))
|
|
if speed == nil then
|
|
core.chat_send_player(name, string.format("Your speed now is %s.", 1))
|
|
minetest.sound_play("done", name)
|
|
minetest.get_player_by_name(name):set_physics_override({
|
|
speed = 1
|
|
})
|
|
return
|
|
end
|
|
if oname == nil then
|
|
core.chat_send_player(name, string.format("Your speed now is %s.", speed))
|
|
minetest.sound_play("done", name)
|
|
minetest.get_player_by_name(name):set_physics_override({
|
|
speed = tonumber(speed)
|
|
})
|
|
else
|
|
if minetest.get_player_by_name(oname) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Please, specify an online player."))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
core.chat_send_player(name, string.format("Speed of player %s now is %s.", oname, speed))
|
|
minetest.sound_play("done", name)
|
|
minetest.sound_play("done", oname)
|
|
if essentials.changed_by then
|
|
minetest.chat_send_player(oname, string.format("Now your speed is %s from player %s.", speed, name))
|
|
end
|
|
minetest.get_player_by_name(oname):set_physics_override({
|
|
speed = tonumber(speed)
|
|
})
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
if essentials.biome then
|
|
minetest.register_chatcommand("biome", {
|
|
params = "[<info_name>]",
|
|
description = "Shows the current biome information you are in.",
|
|
func = function(name, param)
|
|
local pos = minetest.get_player_by_name(name):get_pos()
|
|
if not minetest.has_feature("object_use_texture_alpha") then
|
|
core.chat_send_player(name, core.colorize("red", "Biome info cannot retrieve, server engine does not support the command!"))
|
|
minetest.sound_play("error", name)
|
|
minetest.log("error","[essentials] server mineitest engine too old, biome data not supported!, upgrade server")
|
|
end
|
|
local biomeinfo = minetest.get_biome_data(pos)
|
|
local biome = minetest.get_biome_name(biomeinfo.biome)
|
|
if param == "" then
|
|
core.chat_send_player(name, "Biome: \"".. biome .."\"")
|
|
else
|
|
if minetest.check_player_privs(name, {server=true}) then
|
|
if param == "heat" then
|
|
core.chat_send_player(name, "\"".. biome .."\": ".. biomeinfo.heat)
|
|
elseif param == "humidity" then
|
|
core.chat_send_player(name, "\"".. biome .."\": ".. biomeinfo.humidity)
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "You specialized wrong information name!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "You cant check more information without privelege!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("biome", {
|
|
params = "<info_name>",
|
|
privs = {biome = true},
|
|
description = "Shows the current biome information you are in.",
|
|
func = function(name, param)
|
|
local pos = minetest.get_player_by_name(name):get_pos()
|
|
local biomeinfo = minetest.get_biome_data(pos)
|
|
local biome = minetest.get_biome_name(biomeinfo.biome)
|
|
if param == "" then
|
|
core.chat_send_player(name, "Biome: \"".. biome .."\"")
|
|
else
|
|
if minetest.check_player_privs(name, {server=true}) then
|
|
if param == "heat" then
|
|
core.chat_send_player(name, "\"".. biome .."\": ".. biomeinfo.heat)
|
|
elseif param == "humidity" then
|
|
core.chat_send_player(name, "\"".. biome .."\": ".. biomeinfo.humidity)
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "You specialized wrong information name!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "You cant check more information without privelege!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
else
|
|
minetest.register_chatcommand("biome", {
|
|
params = "[<info_name>]",
|
|
privs = {},
|
|
description = "Shows the current biome information you are in.",
|
|
func = function(name, param)
|
|
local pos = minetest.get_player_by_name(name):get_pos()
|
|
local biomeinfo = minetest.get_biome_data(pos)
|
|
local biome = minetest.get_biome_name(biomeinfo.biome)
|
|
if param == "" then
|
|
core.chat_send_player(name, "Biome: \"".. biome .."\"")
|
|
else
|
|
if minetest.check_player_privs(name, {server=true}) then
|
|
if param == "heat" then
|
|
core.chat_send_player(name, "\"".. biome .."\": ".. biomeinfo.heat)
|
|
elseif param == "humidity" then
|
|
core.chat_send_player(name, "\"".. biome .."\": ".. biomeinfo.humidity)
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "You specialized wrong information name!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "You cant check more information without privelege!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
|
|
--minetest.get_mapgen_object
|
|
if essentials.add_privs then
|
|
if essentials.seed then
|
|
minetest.register_chatcommand("seed", {
|
|
description = "Shows the seed of mapgen.",
|
|
func = function(name, param)
|
|
core.chat_send_player(name, "Seed: ["..core.colorize("#00ff00", minetest.get_mapgen_setting("seed")).."]")
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("seed", {
|
|
privs = {seed = true},
|
|
description = "Shows the seed of mapgen.",
|
|
func = function(name, param)
|
|
core.chat_send_player(name, "Seed: ["..core.colorize("#00ff00", minetest.get_mapgen_setting("seed")).."]")
|
|
end,
|
|
})
|
|
end
|
|
else
|
|
if essentials.seed then
|
|
minetest.register_chatcommand("seed", {
|
|
description = "Shows the seed of mapgen.",
|
|
func = function(name, param)
|
|
core.chat_send_player(name, "Seed: ["..core.colorize("#00ff00", minetest.get_mapgen_setting("seed")).."]")
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("seed", {
|
|
privs = {rollback = true},
|
|
description = "Shows the seed of mapgen.",
|
|
func = function(name, param)
|
|
core.chat_send_player(name, "Seed: ["..core.colorize("#00ff00", minetest.get_mapgen_setting("seed")).."]")
|
|
end,
|
|
})
|
|
end
|
|
end
|
|
|
|
-- god mode
|
|
function god_mode_switch(name, param)
|
|
if enable_damage then
|
|
local player
|
|
if param == "" then
|
|
player = minetest.get_player_by_name(name)
|
|
else
|
|
player = minetest.get_player_by_name(param)
|
|
end
|
|
if player == nil then
|
|
core.chat_send_player(name, core.colorize("red", string.format("Player %s not found.", param)))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
local ag = player:get_armor_groups()
|
|
if not ag["immortal"] then
|
|
ag["immortal"] = 1
|
|
if param == "" then
|
|
core.chat_send_player(name, core.colorize("yellow", "God mode enabled"))
|
|
minetest.sound_play("god_enabled", name)
|
|
else
|
|
core.chat_send_player(name, string.format("God mode enabled for %s.", param))
|
|
core.chat_send_player(param, string.format("For you enabled god mode from %s.", name))
|
|
minetest.sound_play("god_enabled", param)
|
|
minetest.sound_play("done", name)
|
|
end
|
|
else
|
|
ag["immortal"] = nil
|
|
if param == "" then
|
|
core.chat_send_player(name, core.colorize("yellow", "God mode disabled"))
|
|
minetest.sound_play("god_disabled", name)
|
|
else
|
|
core.chat_send_player(name, string.format("God mode disabled for %s.", param))
|
|
core.chat_send_player(param, string.format("For you god mode has been disabled by %s", name))
|
|
minetest.sound_play("god_disabled", param)
|
|
minetest.sound_play("done", name)
|
|
end
|
|
end
|
|
player:set_armor_groups(ag)
|
|
else
|
|
core.chat_send_player(name, core.colorize("red", "\"enable_damage\" is disabled!"))
|
|
minetest.sound_play("error", name)
|
|
end
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("god", {
|
|
params = "[<name>]",
|
|
description = "Enable/Disabe the god mode.",
|
|
privs = {god_mode = true},
|
|
func = god_mode_switch
|
|
})
|
|
else
|
|
minetest.register_chatcommand("god", {
|
|
params = "[<name>]",
|
|
description = "Enable/Disabe the god mode.",
|
|
privs = {noclip = true},
|
|
func = god_mode_switch
|
|
})
|
|
end
|
|
-- end
|
|
|
|
minetest.register_chatcommand("ban_menu", {
|
|
description = "Open the ban menu.",
|
|
privs = {ban = true},
|
|
func = function(name, param)
|
|
if core.is_singleplayer() then
|
|
minetest.chat_send_player(name, core.colorize("red", "You cannot ban in single mode!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
show_ban_menu(name)
|
|
end
|
|
})
|
|
|
|
minetest.register_chatcommand("kick_menu", {
|
|
description = "Open the kick menu.",
|
|
privs = {kick = true},
|
|
func = function(name, param)
|
|
if core.is_singleplayer() then
|
|
minetest.chat_send_player(name, core.colorize("red", "You cannot kick in single mode!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
show_kick_menu(name)
|
|
end
|
|
})
|
|
|
|
--[[
|
|
minetest.register_chatcommand("mute_menu", {
|
|
description = "Open the mute menu.",
|
|
privs = {mute = true},
|
|
func = function(name, param)
|
|
if core.is_singleplayer() then
|
|
minetest.chat_send_player(name, core.colorize("red", "You cannot mute in single mode!"))
|
|
else
|
|
show_mute_menu(name)
|
|
end
|
|
end
|
|
})
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("rename_me", {
|
|
description = "Shows the rename menu.",
|
|
privs = {rename_player = true},
|
|
func = function(name, param)
|
|
show_rename_menu(name)
|
|
end
|
|
})
|
|
else
|
|
minetest.register_chatcommand("rename_me", {
|
|
description = "Shows the rename menu.",
|
|
privs = {kick = true},
|
|
func = function(name, param)
|
|
show_rename_menu(name)
|
|
end
|
|
})
|
|
end
|
|
]]--
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("getpos", {
|
|
params = "<name>",
|
|
description = "Allows the player to find out the position of another player.",
|
|
privs = {get_pos = true},
|
|
func = function(name, param)
|
|
local player = minetest.get_player_by_name(param);
|
|
if param == "" then
|
|
minetest.chat_send_player(name, core.colorize("red", "Player name cannot be empty!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
elseif minetest.get_player_by_name(param) == nil then
|
|
minetest.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
local pos = player:get_pos();
|
|
local round_pos = vector.round(pos);
|
|
minetest.chat_send_player(name, "Position of ".. param .." is ".. round_pos.x .." ".. round_pos.y .." ".. round_pos.z)
|
|
minetest.sound_play("done", name)
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("getpos", {
|
|
params = "<name>",
|
|
description = "Allows the player to find out the position of another player.",
|
|
privs = {teleport = true},
|
|
func = function(name, param)
|
|
local player = minetest.get_player_by_name(param);
|
|
if param == "" then
|
|
minetest.chat_send_player(name, core.colorize("red", "Player name cannot be empty!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
elseif minetest.get_player_by_name(param) == nil then
|
|
minetest.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
local pos = player:get_pos();
|
|
local round_pos = vector.round(pos);
|
|
minetest.chat_send_player(name, "Position of ".. param .." is ".. round_pos.x .." ".. round_pos.y .." ".. round_pos.z)
|
|
minetest.sound_play("done", name)
|
|
end,
|
|
})
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("rename_item", {
|
|
description = "Hold item in hand and open this menu for renaming it.",
|
|
privs = {rename_item = true},
|
|
func = function(name, param)
|
|
show_renameitem_menu(name)
|
|
end
|
|
})
|
|
else
|
|
minetest.register_chatcommand("rename_item", {
|
|
description = "Hold item in hand and open this menu for renaming it.",
|
|
privs = {basic_privs = true},
|
|
func = function(name, param)
|
|
show_renameitem_menu(name)
|
|
end
|
|
})
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("color", {
|
|
description = "Shows menu for coloring nickname.",
|
|
privs = {colored_nickname = true},
|
|
func = function(name, param)
|
|
show_color_menu(name)
|
|
end
|
|
})
|
|
else
|
|
minetest.register_chatcommand("color", {
|
|
description = "Shows menu for coloring nickname.",
|
|
privs = {kick = true},
|
|
func = function(name, param)
|
|
show_color_menu(name)
|
|
end
|
|
})
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("kill", {
|
|
params = "[<name>]",
|
|
description = ("Kill anyone with command."),
|
|
privs = {kill = true},
|
|
func = function(name, param)
|
|
if minetest.settings:get_bool("enable_damage") then
|
|
if param == "" or param == nil then
|
|
minetest.get_player_by_name(name):set_hp(0)
|
|
else
|
|
if minetest.get_player_by_name(param) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
minetest.get_player_by_name(param):set_hp(0)
|
|
core.chat_send_player(name, "You killed "..param..".")
|
|
if essentials.killed_by then
|
|
core.chat_send_player(param, string.format("You has been killed by %s.", name))
|
|
end
|
|
end
|
|
else
|
|
local player = minetest.get_player_by_name(name)
|
|
if param then
|
|
player = minetest.get_player_by_name(param)
|
|
if minetest.get_player_by_name(param) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
if essentials.killed_by then
|
|
core.chat_send_player(param, string.format("You has been respawned by %s.", name))
|
|
end
|
|
end
|
|
for _, callback in pairs(minetest.registered_on_respawnplayers) do
|
|
if callback(player) then
|
|
return true
|
|
end
|
|
end
|
|
return false, "No static_spawnpoint defined"
|
|
end
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("kill", {
|
|
params = "[<name>]",
|
|
description = ("Kill anyone with command."),
|
|
privs = {protection_bypass = true},
|
|
func = function(name, param)
|
|
if minetest.settings:get_bool("enable_damage") then
|
|
if param == "" or param == nil then
|
|
minetest.get_player_by_name(name):set_hp(0)
|
|
else
|
|
if minetest.get_player_by_name(param) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
minetest.get_player_by_name(param):set_hp(0)
|
|
core.chat_send_player(name, "You killed "..param..".")
|
|
if essentials.killed_by then
|
|
core.chat_send_player(param, string.format("You has been killed by %s.", name))
|
|
end
|
|
end
|
|
else
|
|
local player = minetest.get_player_by_name(name)
|
|
if param then
|
|
player = minetest.get_player_by_name(param)
|
|
if minetest.get_player_by_name(param) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
if essentials.killed_by then
|
|
core.chat_send_player(param, string.format("You has been respawned by %s.", name))
|
|
end
|
|
end
|
|
for _, callback in pairs(minetest.registered_on_respawnplayers) do
|
|
if callback(player) then
|
|
return true
|
|
end
|
|
end
|
|
return false, "No static_spawnpoint defined"
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
|
|
if essentials.add_privs then
|
|
minetest.register_chatcommand("heal", {
|
|
params = "[<name>]",
|
|
description = ("Heals full health for a player."),
|
|
privs = {heal = true},
|
|
func = function(name, param)
|
|
if param == "" or param == nil then
|
|
minetest.get_player_by_name(name):set_hp(minetest.PLAYER_MAX_HP_DEFAULT)
|
|
core.chat_send_player(name, "Healed to the possible max health.")
|
|
else
|
|
if minetest.get_player_by_name(param) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
minetest.get_player_by_name(param):set_hp(minetest.PLAYER_MAX_HP_DEFAULT)
|
|
core.chat_send_player(name, string.format("Player %s healed to the %s health.", param, minetest.get_player_by_name(param):get_hp()))
|
|
if essentials.changed_by then
|
|
core.chat_send_player(param, string.format("You has been fully healed by %s.", name))
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
else
|
|
minetest.register_chatcommand("heal", {
|
|
params = "[<name>]",
|
|
description = ("Heals full health for a player."),
|
|
privs = {rollback = true},
|
|
func = function(name, param)
|
|
if param == "" or param == nil then
|
|
minetest.get_player_by_name(name):set_hp(minetest.PLAYER_MAX_HP_DEFAULT)
|
|
core.chat_send_player(name, "Healed to the possible max health.")
|
|
else
|
|
if minetest.get_player_by_name(param) == nil then
|
|
core.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
return
|
|
end
|
|
minetest.get_player_by_name(param):set_hp(minetest.PLAYER_MAX_HP_DEFAULT)
|
|
core.chat_send_player(name, string.format("Player %s healed to the %s health.", param, minetest.get_player_by_name(param):get_hp()))
|
|
if essentials.changed_by then
|
|
core.chat_send_player(param, string.format("You has been fully healed by %s.", name))
|
|
end
|
|
end
|
|
end,
|
|
})
|
|
end
|
|
|
|
--[[
|
|
minetest.register_chatcommand("v", {
|
|
params = "<name>",
|
|
description = "Make player invisible",
|
|
privs = {server = true},
|
|
func = function(name, param)
|
|
local player = minetest.get_player_by_name(param)
|
|
if param == "" then
|
|
if invisibility[name] then
|
|
invisible(name, false)
|
|
minetest.chat_send_player(name, "Now you are visible!")
|
|
|
|
elseif not invisibility[name] then
|
|
invisible(name, true)
|
|
minetest.chat_send_player(name, core.colorize("#AAAAAA", "Now you are invisible!"))
|
|
|
|
end
|
|
elseif not player then
|
|
minetest.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
|
|
minetest.sound_play("error", name)
|
|
else
|
|
if invisibility[param] then
|
|
invisible(param, false)
|
|
minetest.chat_send_player(name, "Now player ".. param .." are visible!")
|
|
minetest.chat_send_player(player, "Now you visible from ".. name .."!")
|
|
|
|
minetest.sound_play("done", player)
|
|
elseif not invisibility[param] then
|
|
invisible(param, true)
|
|
minetest.chat_send_player(name, core.colorize("#AAAAAA", "Now player ".. param .." are invisible!"))
|
|
minetest.chat_send_player(name, core.colorize("#AAAAAA", "Now you are invisible from ".. name .."!"))
|
|
|
|
minetest.sound_play("done", player)
|
|
end
|
|
end
|
|
end
|
|
})
|
|
]]-- |