From 2b4427a3adba8cd48b006ed123b71a79f456f5c2 Mon Sep 17 00:00:00 2001 From: Peter Nerlich <peter.nerlich+dev@googlemail.com> Date: Thu, 22 Apr 2021 23:10:55 +0200 Subject: [PATCH] fix stopping trains --- advtrains/stop_on_inactivity.lua | 6 ++++-- init.lua | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/advtrains/stop_on_inactivity.lua b/advtrains/stop_on_inactivity.lua index 8d6addd..b7acfa8 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 06e50e2..3c8f6f6 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 -- GitLab