From 14da059ce7c9bc0998aacc0d7dc371f2cc038553 Mon Sep 17 00:00:00 2001 From: kabou Date: Tue, 29 Mar 2022 12:06:00 +0200 Subject: [PATCH] Add extra check and warning on missing player data. * For some unexplained reason, `mcl_burning.storage[player]` can sometimes be `nil`, causing a crash in `on_leaveplayer()`. This commit adds a check for that. If a `nil` is encountered, a sane value is substituted and a warning is set to the log. --- mods/ENTITIES/mcl_burning/init.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mods/ENTITIES/mcl_burning/init.lua b/mods/ENTITIES/mcl_burning/init.lua index 8133a1fe36..b1b2e29f0f 100644 --- a/mods/ENTITIES/mcl_burning/init.lua +++ b/mods/ENTITIES/mcl_burning/init.lua @@ -67,6 +67,13 @@ end) local function on_leaveplayer(player) local storage = mcl_burning.storage[player] + if not storage then + -- For some unexplained reasons, mcl_burning.storage can be `nil` here. + -- Logging this exception to assist in finding the cause of this. + minetest.log("warning", "on_leaveplayer: missing mcl_burning.storage " + .. "for player " .. player.name) + storage = {} + end storage.fire_hud_id = nil player:get_meta():set_string("mcl_burning:data", minetest.serialize(storage)) mcl_burning.storage[player] = nil