From f9c2d710e2196d078ec8a7f2323d618a7af22be5 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Thu, 22 Apr 2021 13:52:02 +0200 Subject: [PATCH] Fix armor being taken even if it cannot be equipped --- mods/ITEMS/mcl_armor/api.lua | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mods/ITEMS/mcl_armor/api.lua b/mods/ITEMS/mcl_armor/api.lua index 4f2b2593a..d56e3188d 100644 --- a/mods/ITEMS/mcl_armor/api.lua +++ b/mods/ITEMS/mcl_armor/api.lua @@ -43,22 +43,25 @@ function mcl_armor.equip(itemstack, obj, swap) return itemstack end - local element = mcl_armor.elements[def._mcl_armor_element or ""] local inv = mcl_util.get_inventory(obj, true) - if element and inv then + if not inv or inv:get_size("armor") == 0 then + return itemstack + end + + local element = mcl_armor.elements[def._mcl_armor_element or ""] + + if element then local old_stack = inv:get_stack("armor", element.index) local new_stack if swap then new_stack = itemstack itemstack = old_stack - else - new_stack = itemstack:take_item() end if swap or old_stack:is_empty() then - inv:set_stack("armor", element.index, new_stack) + inv:set_stack("armor", element.index, new_stack or itemstack:take_item()) mcl_armor.on_equip(new_stack, obj) end end