fix: LuaItemStack could be invalid

Fixed an issue with clearing inventories of players where the command
failed due to it attempting to access LuaItemStacks that were invalid
for read
This commit is contained in:
oof2win2
2022-05-14 15:38:03 +02:00
committed by Cooldude2606
parent 8caf3c0a82
commit 15a5d8d48a
3 changed files with 17 additions and 15 deletions

View File

@@ -3,13 +3,13 @@
local Event = require 'utils.event' --- @dep utils.event
local events = require 'config.inventory_clear' --- @dep config.inventory_clear
local move_items = _C.move_items --- @dep expcore.common
local move_items_stack = _C.move_items_stack --- @dep expcore.common
local function clear_items(event)
local player = game.players[event.player_index]
local inv = player.get_main_inventory()
move_items(inv.get_contents())
move_items_stack(inv)
inv.clear()
end
for _, event_name in ipairs(events) do Event.add(event_name, clear_items) end
for _, event_name in ipairs(events) do Event.add(event_name, clear_items) end

View File

@@ -4,7 +4,7 @@
]]
local Commands = require 'expcore.commands' --- @dep expcore.commands
local move_items = _C.move_items --- @dep expcore.common
local move_items_stack = _C.move_items_stack --- @dep expcore.common
require 'config.expcore.command_role_parse'
--- Clears a players inventory
@@ -14,10 +14,10 @@ Commands.new_command('clear-inventory', 'Clears a players inventory')
:add_param('player', false, 'player-role')
:add_alias('clear-inv', 'move-inventory', 'move-inv')
:register(function(_, player)
local inv = player.get_main_inventory()
if not inv then
return Commands.error{'expcore-commands.reject-player-alive'}
end
move_items(inv.get_contents())
inv.clear()
end)
local inv = player.get_main_inventory()
if not inv then
return Commands.error{'expcore-commands.reject-player-alive'}
end
move_items_stack(inv)
inv.clear()
end)