From 22955b413a2f13d4758596bb0a09faab03621299 Mon Sep 17 00:00:00 2001 From: Niklp Date: Wed, 1 May 2024 07:24:49 +0200 Subject: [PATCH] Fix "player still online" check of `armor.unequip` (#146) --- 3d_armor/api.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/3d_armor/api.lua b/3d_armor/api.lua index 49af808..065f1f9 100644 --- a/3d_armor/api.lua +++ b/3d_armor/api.lua @@ -719,13 +719,14 @@ armor.unequip = function(self, player, armor_element) if self:get_element(stack:get_name()) == armor_element then armor_inv:set_stack("armor", i, "") minetest.after(0, function() - -- resolve player object again in async function - player = minetest.get_player_by_name(name) - local inv = player:get_inventory() - if inv:room_for_item("main", stack) then - inv:add_item("main", stack) - else - minetest.add_item(player:get_pos(), stack) + local pplayer = minetest.get_player_by_name(name) + if pplayer then -- player is still online + local inv = pplayer:get_inventory() + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + minetest.add_item(pplayer:get_pos(), stack) + end end end) self:run_callbacks("on_unequip", player, i, stack)