add warning information to notify of problems, fix respawn with no spawn
parent
0a25c615ea
commit
9d2998d9dd
17
init.lua
17
init.lua
|
@ -17,6 +17,7 @@ local radial_step = 16
|
|||
|
||||
-- Setting with no namespace for interoperability
|
||||
local static_spawnpoint = minetest.setting_get_pos("static_spawnpoint") or {x=0, y=0, z=0}
|
||||
local rspawn.admin = minetest.setting_get_pos("name") or "" -- For messagin only
|
||||
|
||||
-- Setting from beds mod
|
||||
rspawn.bedspawn = minetest.setting_getbool("enable_bed_respawn", true) -- from beds mod
|
||||
|
@ -153,8 +154,12 @@ end
|
|||
|
||||
function rspawn:set_newplayer_spawn(player)
|
||||
-- only use for new players / players who have never had a randomized spawn
|
||||
if not player then return end
|
||||
|
||||
local playername = player:get_player_name()
|
||||
|
||||
if playername == "" then return end
|
||||
|
||||
if not rspawn.playerspawns[playername] then
|
||||
local newpos = rspawn:get_next_spawn()
|
||||
|
||||
|
@ -170,6 +175,8 @@ function rspawn:set_newplayer_spawn(player)
|
|||
|
||||
else
|
||||
minetest.chat_send_player(playername, "Could not get custom spawn! Retrying in "..rspawn.gen_frequency.." seconds")
|
||||
minetest.chat_send_player(rspawn.admin, "Exhausted spawns! Could not spawn "..playername)
|
||||
minetest.log("warning", "rspawn -- Exhausted spawns! Could not spawn "..playername)
|
||||
|
||||
minetest.after(rspawn.gen_frequency, function()
|
||||
rspawn:set_newplayer_spawn(player)
|
||||
|
@ -210,8 +217,16 @@ minetest.register_on_respawnplayer(function(player)
|
|||
end
|
||||
end
|
||||
|
||||
minetest.debug("Respawning "..name)
|
||||
local pos = rspawn.playerspawns[name]
|
||||
|
||||
-- And if no bed, nor bed spwawning not active:
|
||||
player:setpos(rspawn.playerspawns[name])
|
||||
if pos then
|
||||
player:setpos(pos)
|
||||
else
|
||||
minetest.chat_send_player(name, "Failed to find your spawn point!")
|
||||
minetest.log("warning", "rspawn --Could not find spawn point for "..name)
|
||||
end
|
||||
return true
|
||||
end)
|
||||
|
||||
|
|
|
@ -29,7 +29,9 @@ end
|
|||
|
||||
function rspawn:forceload_free_blocks_in(pos1, pos2)
|
||||
rspawn:debug("Freeing forceloaded blocks ____/", {pos1=minetest.pos_to_string(pos1),pos2=minetest.pos_to_string(pos2)})
|
||||
forceload_operate(pos1, pos2, minetest.forceload_free_block, true)
|
||||
-- free both cases - take no chances
|
||||
forceload_operate(pos1, pos2, minetest.forceload_free_block) -- free if persistent
|
||||
forceload_operate(pos1, pos2, minetest.forceload_free_block, true) -- free if transient
|
||||
forceloading_happening = false
|
||||
end
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ local function push_new_spawn()
|
|||
set_pgen(len_pgen()+1, newpos )
|
||||
else
|
||||
rspawn:debug("Failed to generate new spawn point to push")
|
||||
minetest.chat_send_player(rspawn.admin, "Failed to generate new spawn")
|
||||
end
|
||||
|
||||
rspawn:forceload_free_blocks_in(pos1, pos2)
|
||||
|
|
Loading…
Reference in New Issue