This commit is contained in:
Nordi98 2025-07-20 22:12:41 +02:00
parent 702bab121c
commit 9aa690dfc4
37 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,23 @@
if GetResourceState('codem-inventory') ~= 'started' then return end

Core.Info.Inventory = 'codem-inventory'

Core.Inventory = {}

function Core.Inventory.ImgPath()
return "nui://codem-inventory/html/images/%s.png"
end

function Core.Inventory.OpenStash(id)
-- does not exist in codem-inventory
end

function Core.Inventory.GetItemInfo(item)
local items = exports['codem-inventory']:GetItemList()
for _, itemInfo in pairs(items) do
if itemInfo.name == item then
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end

View file

@ -0,0 +1,92 @@
if GetResourceState('codem-inventory') ~= 'started' then return end

Core.Info.Inventory = 'codem-inventory'

Core.Inventory = {}

function Core.Inventory.AddItem(src, item, count, metadata)
local src = src or source
return exports['codem-inventory']:AddItem(src, item, count, nil, metadata)
end

function Core.Inventory.RemoveItem(src, item, count, metadata)
local src = src or source
if metadata ~= nil then
local items = exports['codem-inventory']:GetInventory(nil, src)
for _, pItem in pairs(items) do
if pItem.name == item.name and lib.table.matches(item.info, metadata) then
return exports['codem-inventory']:RemoveItem(src, pItem.name, count, pItem.slot)
end
end
end
return exports['codem-inventory']:RemoveItem(src, item, count, nil)
end

function Core.Inventory.GetItem(src, item, metadata)
local src = src or source
local items = exports['codem-inventory']:GetInventory(nil, src)
for _, itemInfo in pairs(items) do
if itemInfo.name == item and metadata == nil then
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
elseif itemInfo.name == item and metadata ~= nil then
if itemInfo.info == metadata then
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end
end

function Core.Inventory.GetItemCount(src, item, metadata)
local src = src or source
if metadata == nil then
return exports['codem-inventory']:GetItemsTotalAmount(src, item)
else
local items = exports['codem-inventory']:GetInventory(nil, src)
for _, itemInfo in pairs(items) do
if itemInfo.name == item and itemInfo.info == metadata then
return itemInfo.amount
end
end
end
return 0
end

function Core.Inventory.GetInventoryItems(src)
local src = src or source
local items = exports['codem-inventory']:GetInventory(nil, src)
for _, itemInfo in pairs(items) do
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
end
return items
end

function Core.Inventory.CanCarryItem(src, item, count)
return true -- codem-inventory is another one that doesnt have a canCarry export.... do better.
end

function Core.Inventory.RegisterStash(id, label, slots, weight, owner)
-- could not find any exports in this for the docs... thank god I dont use it. May just remove stash shit.
end

function Core.Inventory.GetItemInfo(item)
local items = exports['codem-inventory']:GetItemList()
for _, itemInfo in pairs(items) do
if itemInfo.name == item then
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end

function Core.Inventory.SetMetadata(src, item, slot, metadata)
local src = src or source
exports['codem-inventory']:SetItemMetadata(src, slot, metadata)
end

View file

@ -0,0 +1,26 @@
if GetResourceState('origen_inventory') ~= 'started' then return end

Core.Info.Inventory = 'origen_inventory'
local origen_inventory = exports.origen_inventory

Core.Inventory = {}

function Core.Inventory.ImgPath()
return "nui://origen_inventory/html/images/%s.png"
end

---@param id number
function Core.Inventory.OpenStash(id)
-- cant find anything for this in the origen_inventory documentation... PR if you know something I dont.
end

---@param item string
function Core.Inventory.GetItemInfo(item)
local items = origen_inventory:GetItems()
for _, itemInfo in pairs(items) do
if itemInfo.name == item then
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end

View file

@ -0,0 +1,86 @@
if GetResourceState('origen_inventory') ~= 'started' then return end

Core.Info.Inventory = 'origen_inventory'
local origen_inventory = exports.origen_inventory

Core.Inventory = {}

function Core.Inventory.AddItem(src, item, count, metadata)
local src = src or source
return origen_inventory:AddItem(src, item, count, nil, nil, metadata)
end

function Core.Inventory.RemoveItem(src, item, count, metadata)
local src = src or source
return origen_inventory:RemoveItem(src, item, count, metadata)
end

function Core.Inventory.GetItem(src, item, metadata)
local src = src or source
local items = origen_inventory:GetInventory(src)
for _, itemInfo in pairs(items) do
if itemInfo.name == item and metadata == nil then
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
elseif itemInfo.name == item and metadata ~= nil then
if itemInfo.info == metadata then
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end
end

function Core.Inventory.GetItemCount(src, item, metadata)
local src = src or source
if metadata == nil then
return origen_inventory:GetItemTotalAmount(src, item)
else
local items = origen_inventory:GetInventory(src)
for _, itemInfo in pairs(items) do
if itemInfo.name == item and itemInfo.info == metadata then
return itemInfo.amount
end
end
end
return 0
end

function Core.Inventory.GetInventoryItems(src)
local src = src or source
local items = origen_inventory:GetInventory(src)
for _, itemInfo in pairs(items) do
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
end
return items
end

function Core.Inventory.CanCarryItem(src, item, count)
local src = src or source
return origen_inventory:CanCarryItems(src, item, count)
end

function Core.Inventory.RegisterStash(id, label, slots, weight, owner)
-- I dont use stash systems, I am probably just gonna end up removing the functions for it.
end

function Core.Inventory.GetItemInfo(item)
local items = origen_inventory:GetItems()
for _, itemInfo in pairs(items) do
if itemInfo.name == item then
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end

function Core.Inventory.SetMetadata(src, item, slot, metadata)
local src = src or source
origen_inventory:SetItemMetadata(src, item, slot, metadata)
end

View file

@ -0,0 +1,18 @@
if GetResourceState('ox_inventory') ~= 'started' then return end

Core.Info.Inventory = 'ox_inventory'
local ox_inventory = exports.ox_inventory

Core.Inventory = {}

function Core.Inventory.ImgPath()
return "nui://ox_inventory/web/images/%s.png"
end

function Core.Inventory.OpenStash(id)
ox_inventory:openInventory('stash', id)
end

function Core.Inventory.GetItemInfo(item)
return ox_inventory:Items(item)
end

View file

@ -0,0 +1,49 @@
if GetResourceState('ox_inventory') ~= 'started' then return end

Core.Info.Inventory = 'ox_inventory'
local ox_inventory = exports.ox_inventory

Core.Inventory = {}

function Core.Inventory.AddItem(src, item, count, metadata)
local src = src or source
return ox_inventory:AddItem(src, item, count, metadata)
end

function Core.Inventory.RemoveItem(src, item, count, metadata)
local src = src or source
return ox_inventory:RemoveItem(src, item, count, metadata)
end

function Core.Inventory.GetItem(src, item, metadata)
local src = src or source
return ox_inventory:GetItem(src, item, metadata, false)
end

function Core.Inventory.GetItemCount(src, item, metadata)
local src = src or source
return ox_inventory:GetItemCount(src, item, metadata, false)
end

function Core.Inventory.GetInventoryItems(src)
local src = src or source
return ox_inventory:GetInventoryItems(src, false)
end

function Core.Inventory.CanCarryItem(src, item, count)
local src = src or source
return ox_inventory:CanCarryItem(src, item, count)
end

function Core.Inventory.RegisterStash(id, label, slots, weight, owner)
return ox_inventory:RegisterStash(id, label, slots, weight, owner)
end

function Core.Inventory.GetItemInfo(item)
return ox_inventory:Items(item)
end

function Core.Inventory.SetMetadata(src, item, slot, metadata)
local src = src or source
ox_inventory:SetMetadata(src, slot, metadata)
end

View file

@ -0,0 +1,22 @@
if GetResourceState('qb-inventory') ~= 'started' then return end

Core.Info.Inventory = 'qb-inventory'
local QBCore = exports['qb-core']:GetCoreObject()

Core.Inventory = {}

function Core.Inventory.ImgPath()
return "nui://qb-inventory/html/images/%s.png"
end

function Core.Inventory.OpenStash(id)
TriggerEvent("inventory:client:SetCurrentStash", id)
TriggerServerEvent("inventory:server:OpenInventory", "stash", id, {
maxweight = 50000,
slots = 50,
})
end

function Core.Inventory.GetItemInfo(item)
return QBCore.Shared.Items[item]
end

View file

@ -0,0 +1,89 @@
if GetResourceState('qb-inventory') ~= 'started' then return end

Core.Info.Inventory = 'qb-inventory'
local QBCore = exports['qb-core']:GetCoreObject()

Core.Inventory = {}

function Core.Inventory.AddItem(src, item, count, metadata)
local src = src or source
local added = exports['qb-inventory']:AddItem(src, item, count, nil, metadata)
if not added then return added end
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item], 'add', count)
return added
end

function Core.Inventory.RemoveItem(src, item, count, metadata)
local src = src or source
if metadata ~= nil then
local playerInv = QBCore.Functions.GetPlayer(src).PlayerData.items
if not playerInv then return end
for _, pItem in pairs(playerInv) do
if pItem.name == item.name and lib.table.matches(item.info, metadata) then
local removed = exports['qb-inventory']:RemoveItem(src, pItem.name, count, pItem.slot)
if not removed then return removed end
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[pItem.name], 'remove', count)
return removed
end
end
end
local removed = exports['qb-inventory']:RemoveItem(src, item, count, nil)
if not removed then return removed end
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item], 'remove', count)
return removed
end

function Core.Inventory.GetItem(src, item, metadata)
local src = src or source
local playerItems = QBCore.Functions.GetPlayer(src).PlayerData.items
if not playerItems then return end
for _, itemInfo in pairs(playerItems) do
if itemInfo.name == item then
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end

function Core.Inventory.GetItemCount(src, item, metadata)
local src = src or source
local totalItems = exports['qb-inventory']:GetItemsByName(src, item)
return totalItems[1].amount or 0
end

function Core.Inventory.GetInventoryItems(src)
local src = src or source
local playerItems = QBCore.Functions.GetPlayer(src).PlayerData.items
if not playerItems then return end
for _, item in pairs(playerItems) do
item.count = item.amount
item.metadata = item.info
item.stack = item.unique
end
return playerItems
end

function Core.Inventory.CanCarryItem(src, item, count)
return true -- this framework is garbage, doesn't have a check in v1 inv, so we just return true
end

function Core.Inventory.RegisterStash(id, label, slots, weight, owner)
-- v1 handles client, idk about v2.. so we just leave this alone
end

function Core.Inventory.GetItemInfo(item)
local itemInfo = QBCore.Shared.Items[item]
itemInfo.count = item.amount
itemInfo.metadata = item.info
itemInfo.stack = item.unique
return itemInfo
end

function Core.Inventory.SetMetadata(src, item, slot, metadata)
local src = src or source
local removed = exports['qb-inventory']:RemoveItem(src, item, 1, slot)
if not removed then return end
exports['qb-inventory']:AddItem(src, item, 1, nil, metadata)
end

View file

@ -0,0 +1,19 @@
if GetResourceState('qs-inventory') ~= 'started' then return end

Core.Info.Inventory = 'qs-inventory'

Core.Inventory = {}

function Core.Inventory.ImgPath()
return "nui://qs-inventory/html/images/%s.png"
end

function Core.Inventory.OpenStash(id)
exports['qs-inventory']:RegisterStash(id, 50, 50000)
end

function Core.Inventory.GetItemInfo(item)
local itemsLua = exports['qs-inventory']:GetItemList()
if not itemsLua[item] then return end
return itemsLua[item]
end

View file

@ -0,0 +1,76 @@
if GetResourceState('qs-inventory') ~= 'started' then return end

Core.Info.Inventory = 'qs-inventory'

Core.Inventory = {}

function Core.Inventory.AddItem(src, item, count, metadata)
local src = src or source
return exports['qs-inventory']:AddItem(src, item, count, nil, metadata)
end

function Core.Inventory.RemoveItem(src, item, count, metadata)
local src = src or source
if metadata ~= nil then
local playerInv = exports['qs-inventory']:GetInventory(src)
if not playerInv then return end
for _, pItem in pairs(playerInv) do
if pItem.name == item.name and lib.table.matches(pItem.info, metadata) then
return exports['qs-inventory']:RemoveItem(src, pItem.name, count, pItem.slot)
end
end
end
return exports['qs-inventory']:RemoveItem(src, item, count, nil)
end

function Core.Inventory.GetItem(src, item, metadata)
local src = src or source
local playerItems = exports['qs-inventory']:GetInventory(src)
for _, itemInfo in pairs(playerItems) do
if itemInfo.name == item then
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
end
end
end

function Core.Inventory.GetItemCount(src, item, metadata)
local src = src or source
return exports['qs-inventory']:GetItemTotalAmount(src, item)
end

function Core.Inventory.GetInventoryItems(src)
local src = src or source
local playerItems = exports['qs-inventory']:GetInventory(src)
for _, item in pairs(playerItems) do
item.count = item.amount
item.metadata = item.info
item.stack = not item.unique
end
return playerItems
end

function Core.Inventory.CanCarryItem(src, item, count)
local src = src or source
return exports['qs-inventory']:CanCarryItem(src, item, count)
end

function Core.Inventory.RegisterStash(id, label, slots, weight, owner)
-- qs-inventory handles all the stash stuff client side, so we don't need to do anything here
end

function Core.Inventory.GetItemInfo(item)
local itemInfo = exports['qs-inventory']:GetItemList()[item]
if not itemInfo then return end
itemInfo.count = itemInfo.amount
itemInfo.metadata = itemInfo.info
itemInfo.stack = not itemInfo.unique
return itemInfo
end

function Core.Inventory.SetMetadata(src, item, slot, metadata)
local src = src or source
exports['qs-inventory']:SetItemMetadata(src, slot, metadata)
end

View file

@ -0,0 +1,22 @@
if GetResourceState('tgiann-inventory') ~= 'started' then return end

Core.Info.Inventory = 'tgiann-inventory'

Core.Inventory = {}

function Core.Inventory.ImgPath()
return "nui://inventory_images/html/images/%s.webp"
end

function Core.Inventory.OpenStash(id)
-- open stash export... not sure what it is yet.
end

function Core.Inventory.GetItemInfo(item)
local itemsList = exports['tgiann-inventory']:GetItemList()
for _, itemData in pairs(itemsList) do
if itemData.name == item then
return itemData
end
end
end

View file

@ -0,0 +1,59 @@
if GetResourceState('tgiann-inventory') ~= 'started' then return end

Core.Info.Inventory = 'tgiann-inventory'

Core.Inventory = {}

function Core.Inventory.AddItem(src, item, count, metadata)
local src = src or source
local action = exports['tgiann-inventory']:AddItem(src, item, count, metadata)
return (action.itemAddRemoveLog == 'added')
end

function Core.Inventory.RemoveItem(src, item, count, metadata)
local src = src or source
local action = exports['tgiann-inventory']:RemoveItem(src, item, count, nil, metadata)
return action
end

function Core.Inventory.GetItem(src, item, metadata)
local src = src or source
local item = exports['tgiann-inventory']:GetItemByName(src, item, metadata)
item.count = item.amount
item.metadata = item.info
return item
end

function Core.Inventory.GetItemCount(src, item, metadata)
local src = src or source
local item = exports['tgiann-inventory']:GetItemByName(src, item, metadata)
return item.amount or 0
end

function Core.Inventory.GetInventoryItems(src)
local src = src or source
return exports['tgiann-inventory']:GetPlayerItems(src)
end

function Core.Inventory.CanCarryItem(src, item, count)
local src = src or source
return exports["tgiann-inventory"]:CanCarryItem(src, item, count)
end

function Core.Inventory.RegisterStash(id, label, slots, weight, owner)
exports["tgiann-inventory"]:CreateCustomStashWithItem(id, {})
end

function Core.Inventory.GetItemInfo(item)
local itemsList = exports['tgiann-inventory']:GetItemList()
for _, itemData in pairs(itemsList) do
if itemData.name == item then
return itemData
end
end
end

function Core.Inventory.SetMetadata(src, item, slot, metadata)
local src = src or source
exports["tgiann-inventory"]:UpdateItemMetadata(src, item, slot, metadata)
end