Spawn mod: Also reposition players on respawn
authorParamat <paramat@users.noreply.github.com>
Thu, 7 Jun 2018 03:14:56 +0000 (04:14 +0100)
committerGitHub <noreply@github.com>
Thu, 7 Jun 2018 03:14:56 +0000 (04:14 +0100)
To avoid respawn position being possibly very distant from new player
spawn position.

mods/spawn/init.lua

index ae8287f285cc65f921780cd41fdc18d2785388fe..dc6366c125e1045a5009f4b546c6c88377a8e5bb 100644 (file)
@@ -106,19 +106,28 @@ local function search()
 end
 
 
--- On new player spawn
+-- On new player spawn and player respawn
 
--- Search for new player spawn once per server session. If successful, store
--- position and reposition new players, otherwise leave them at engine spawn
+-- Search for spawn position once per server session. If successful, store
+-- position and reposition players, otherwise leave them at engine spawn
 -- position.
 
-minetest.register_on_newplayer(function(player)
+local function on_spawn(player)
        if not searched then
                success = search()
                searched = true
        end
-
        if success then
-               player:setpos(spawn_pos)
+               player:set_pos(spawn_pos)
        end
+end
+
+minetest.register_on_newplayer(function(player)
+       on_spawn(player)
+end)
+
+minetest.register_on_respawnplayer(function(player)
+       on_spawn(player)
+
+       return true
 end)