drop invalid item instead of erase it

This commit is contained in:
Brian Rahardi 2019-07-16 09:40:28 +07:00 committed by GitHub
parent 47ecef46f7
commit 2ac90f8d19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -110,6 +110,7 @@ end)
local function validate_armor_inventory(player)
-- Workaround for detached inventory swap exploit
local _, inv = armor:get_valid_player(player, "[validate_armor_inventory]")
local pos = player:get_pos()
if not inv then
return
end
@ -140,6 +141,7 @@ local function validate_armor_inventory(player)
elements[element] = true;
else
inv:remove_item("armor", stack)
minetest.item_drop(stack, player, pos)
-- The following code returns invalid items to the player's main
-- inventory but could open up the possibity for a hacked client
-- to receive items back they never really had. I am not certain