diff --git a/client.lua b/client.lua index df17767147..a1f161212d 100644 --- a/client.lua +++ b/client.lua @@ -434,10 +434,18 @@ local function useItem(data, cb) end end + if result then + TriggerEvent('ox_inventory:usedItem', slotData.name, slotData.slot, next(slotData.metadata) and slotData.metadata) + end + Wait(500) usingItem = false end +AddEventHandler('ox_inventory:usedItem', function(name, slot, metadata) + TriggerServerEvent('ox_inventory:usedItemInternal', slot) +end) + AddEventHandler('ox_inventory:item', useItem) exports('useItem', useItem) diff --git a/server.lua b/server.lua index 44d890edc2..c2f452e573 100644 --- a/server.lua +++ b/server.lua @@ -263,6 +263,25 @@ lib.callback.register('ox_inventory:getInventory', function(source, id) } end) +RegisterNetEvent('ox_inventory:usedItemInternal', function(slot) + local inventory = Inventory(source) + + if not inventory then return end + + local item = inventory.usingItem + + if not item or item.slot ~= slot then + ---@todo + DropPlayer(inventory.id, 'sussy') + + return + end + + TriggerEvent('ox_inventory:usedItem', item.name, item.slot, next(item.metadata) and item.metadata) + + inventory.usingItem = nil +end) + ---@param source number ---@param itemName string ---@param slot number? @@ -344,6 +363,7 @@ lib.callback.register('ox_inventory:useItem', function(source, itemName, slot, m end data.consume = consume + inventory.usingItem = data ---@type boolean local success = lib.callback.await('ox_inventory:usingItem', source, data)