diff --git a/advtrains/stop_on_inactivity.lua b/advtrains/stop_on_inactivity.lua index 8d6addd1503b38ebf8e6133a198a0a976560f95a..b7acfa8f77fccf4efbbaa336102d59e0fdf8100b 100644 --- a/advtrains/stop_on_inactivity.lua +++ b/advtrains/stop_on_inactivity.lua @@ -1,6 +1,6 @@ local DISABLE_TIMEOUT = tonumber(minetest.settings:get("kif_custom.advtrains.disable_timeout")) or 60 * 60 -local trains_disabled = #minetest.get_connected_players == 0 +local trains_disabled = #minetest.get_connected_players() == 0 local disable_job = nil @@ -11,15 +11,17 @@ minetest.register_on_joinplayer(function(player, last_login) disable_job = nil end if trains_disabled then + minetest.log("action", "[kif_custom] Enabling trains.") trains_disabled = false end end) minetest.register_on_leaveplayer(function(player, timed_out) - if #minetest.get_connected_players() == 0 then + if #minetest.get_connected_players() <= 1 then -- leaving player is still counted -- deactivate trains if disable_job == nil then disable_job = minetest.after(DISABLE_TIMEOUT, function() + minetest.log("action", "[kif_custom] No player logged in for a time. Disabling trains.") trains_disabled = true disable_job = nil end) diff --git a/init.lua b/init.lua index 06e50e2ad4c18701095e20df6896700275596937..3c8f6f6ca7e1e1d64a87c28b5be43d97726ada3e 100644 --- a/init.lua +++ b/init.lua @@ -13,6 +13,8 @@ dofile(MP.."/missing_recipes.lua") dofile(MP.."/advtrains/survival_recipes.lua") -- make trains ignore microblocks and some others dofile(MP.."/advtrains/ignore_collisions.lua") +-- make trains stop some time after last player left server +dofile(MP.."/advtrains/stop_on_inactivity.lua") -- warning message for default password (if set) if minetest.settings:get("default_password") then