diff --git a/minetestforfun_game/mods/sethome/init.lua b/minetestforfun_game/mods/sethome/init.lua index ac6f83b8..c608bc27 100644 --- a/minetestforfun_game/mods/sethome/init.lua +++ b/minetestforfun_game/mods/sethome/init.lua @@ -4,7 +4,7 @@ home.homes_file = {["real"] = minetest.get_worldpath() .. "/realhomes", ["nether"] = minetest.get_worldpath() .. "/netherhomes"} home.homepos = {["real"] = {}, ["nether"] = {}} home.timers = {} -home.HOME_INTERVAL = 30*60 +home.HOME_INTERVAL = 20*60 home.sethome = function(name) local player = minetest.env:get_player_by_name(name) diff --git a/mods/spawn/init.lua b/mods/spawn/init.lua index 8114f278..d6f87290 100755 --- a/mods/spawn/init.lua +++ b/mods/spawn/init.lua @@ -1,15 +1,32 @@ +local timers = {} +local SPAWN_INTERVAL = 10*60 + + 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.get_player_by_name(name) + + -- Checking timers + local timer_player = os.difftime(os.time(),timers[name]) + if timer_player ~= nil and timer_player < SPAWN_INTERVAL then -- less than x minutes + minetest.chat_send_player(name, "Please retry later, you used spawn last time less than ".. SPAWN_INTERVAL .." seconds ago.") + minetest.chat_send_player(name, "Retry in: ".. SPAWN_INTERVAL-timer_player .." seconds.") + minetest.log("action","Player ".. name .." tried to respawn within forbidden interval.") + return false + end + 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")) + minetest.log("action","Player ".. name .." respawned. Next allowed respawn in ".. SPAWN_INTERVAL .." seconds.") + timers[name] = os.time() + return true else minetest.chat_send_player(player:get_player_name(), "ERROR: No spawn point is set on this server!") + return false end - return true end end end)