summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2014-07-03 13:18:33 -0500
committercheapie <no-email-for-you@example.com>2014-07-03 13:18:33 -0500
commitcbdec9a5f43cd28d173dc86ae09dce797cc2325b (patch)
tree7a48b9341c3bdcc9a076c47e1ab25eac5fb79042
parent517f995cb1a3cf81c966d76ba7fd59bf86913da2 (diff)
downloadspawn-cbdec9a5f43cd28d173dc86ae09dce797cc2325b.tar
spawn-cbdec9a5f43cd28d173dc86ae09dce797cc2325b.tar.gz
spawn-cbdec9a5f43cd28d173dc86ae09dce797cc2325b.tar.bz2
spawn-cbdec9a5f43cd28d173dc86ae09dce797cc2325b.tar.xz
spawn-cbdec9a5f43cd28d173dc86ae09dce797cc2325b.zip
Added a /setspawn command to set the spawn point more easily (requires server priv)
-rw-r--r--init.lua54
1 files 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,
+})