From f666465cdfec5dfb33d0e6e028ef1d8362cb8edf Mon Sep 17 00:00:00 2001 From: taikedz Date: Fri, 22 Oct 2021 15:37:19 +0100 Subject: [PATCH] Issue #6 - prevent infinite recursion in set_newplayer_spawn --- init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 60e5ff8..a982a67 100644 --- a/init.lua +++ b/init.lua @@ -145,7 +145,7 @@ function rspawn:set_player_spawn(name, newpos) return true end -function rspawn:set_newplayer_spawn(player) +function rspawn:set_newplayer_spawn(player, attempts) -- only use for new players / players who have never had a randomized spawn if not player then return end @@ -162,7 +162,7 @@ function rspawn:set_newplayer_spawn(player) else -- We did not get a new position - if rspawn.kick_on_fail then + if rspawn.kick_on_fail or attempts <= 0 then minetest.kick_player(playername, "No personalized spawn points available - please try again later.") else @@ -171,7 +171,7 @@ function rspawn:set_newplayer_spawn(player) minetest.log("warning", "rspawn -- Exhausted spawns! Could not spawn "..playername) minetest.after(rspawn.gen_frequency, function() - rspawn:set_newplayer_spawn(player) + rspawn:set_newplayer_spawn(player, attempts-1) end) end end @@ -196,7 +196,7 @@ function rspawn:renew_player_spawn(playername) end minetest.register_on_joinplayer(function(player) - rspawn:set_newplayer_spawn(player) + rspawn:set_newplayer_spawn(player, 5) end) minetest.register_on_respawnplayer(function(player)