From cbdec9a5f43cd28d173dc86ae09dce797cc2325b Mon Sep 17 00:00:00 2001 From: cheapie Date: Thu, 3 Jul 2014 13:18:33 -0500 Subject: Added a /setspawn command to set the spawn point more easily (requires server priv) --- init.lua | 54 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/init.lua b/init.lua index eb2aaa4..489fec7 100644 --- a/init.lua +++ b/init.lua @@ -1,19 +1,41 @@ --Spawn mod for Minetest ---Originally written by VanessaE (I think), modified by cheapie ---License unknown for original code, modifications are WTFPL +--Originally written by VanessaE (I think), rewritten by cheapie +--WTFPL -minetest.register_on_chat_message(function(name, message, playername, player) - local cmd = "/spawn" - if message:sub(0, #cmd) == cmd then - if message == '/spawn' then - local player = minetest.env:get_player_by_name(name) - if minetest.setting_get_pos("static_spawnpoint") then - minetest.chat_send_player(player:get_player_name(), "Teleporting to spawn...") - player:setpos(minetest.setting_get_pos("static_spawnpoint")) - else - minetest.chat_send_player(player:get_player_name(), "ERROR: No spawn point is set on this server!") - end - return true + +minetest.register_chatcommand("spawn", { + params = "", + description = "Teleport to the spawn point", + func = function(name, param) + local player = minetest.get_player_by_name(name) + if not player then + return false, "Player not found" + end + if minetest.setting_get_pos("static_spawnpoint") then + player:setpos(minetest.setting_get_pos("static_spawnpoint")) + return true, "Teleporting to spawn..." + else + return false, "The spawn point is not set!" + end + end, +}) + +minetest.register_chatcommand("setspawn", { + params = "", + description = "Sets the spawn point to your current position", + privs = { server=true }, + func = function(name, param) + local player = minetest.get_player_by_name(name) + if not player then + return false, "Player not found" end - end -end) + local pos = player:getpos() + local x = pos.x + local y = pos.y + local z = pos.z + local pos_string = x..","..y..","..z + local pos_string_2 = "Setting spawn point to ("..x..", "..y..", "..z..")" + minetest.setting_set("static_spawnpoint",pos_string) + return true, pos_string_2 + end, +}) -- cgit v1.2.3