aboutsummaryrefslogtreecommitdiff
path: root/builtin/game/static_spawn.lua
diff options
context:
space:
mode:
Diffstat (limited to 'builtin/game/static_spawn.lua')
-rw-r--r--builtin/game/static_spawn.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/builtin/game/static_spawn.lua b/builtin/game/static_spawn.lua
new file mode 100644
index 000000000..fae23eab0
--- /dev/null
+++ b/builtin/game/static_spawn.lua
@@ -0,0 +1,23 @@
+-- Minetest: builtin/static_spawn.lua
+
+local static_spawnpoint_string = core.settings:get("static_spawnpoint")
+if static_spawnpoint_string and
+ static_spawnpoint_string ~= "" and
+ not core.setting_get_pos("static_spawnpoint") then
+ error('The static_spawnpoint setting is invalid: "' ..
+ static_spawnpoint_string .. '"')
+end
+
+local function put_player_in_spawn(player_obj)
+ local static_spawnpoint = core.setting_get_pos("static_spawnpoint")
+ if not static_spawnpoint then
+ return false
+ end
+ core.log("action", "Moving " .. player_obj:get_player_name() ..
+ " to static spawnpoint at " .. core.pos_to_string(static_spawnpoint))
+ player_obj:set_pos(static_spawnpoint)
+ return true
+end
+
+core.register_on_newplayer(put_player_in_spawn)
+core.register_on_respawnplayer(put_player_in_spawn)