---@diagnostic disable: duplicate-set-field if GetResourceState('tgiann-inventory') ~= 'started' then return end local tgiann = exports["tgiann-inventory"] Inventory = Inventory or {} ---Return the item info in oxs format, {name, label, stack, weight, description, image} ---@param item string ---@return table Inventory.GetItemInfo = function(item) local itemData = tgiann:GetItemList() if not itemData[item] then return {} end return { name = itemData.name or "Missing Name", label = itemData.label or "Missing Label", stack = itemData.unique or "false", weight = itemData.weight or "0", description = itemData.description or "none", image = itemData.image or Inventory.GetImagePath(item), } end ---Will return boolean if the player has the item. ---@param item string ---@return boolean Inventory.HasItem = function(item) return tgiann:HasItem(item) end ---This will return th count of the item in the players inventory, if not found will return 0. ---@param item string ---@return number Inventory.GetItemCount = function(item) local searchItem = tgiann:GetItemCount(item, nil, false) return searchItem or 0 end ---This will get the image path for this item, if not found will return placeholder. ---@param item string ---@return string Inventory.GetImagePath = function(item) local pngItem = Inventory.StripPNG(item) local webpItem = Inventory.StripWebp(item) local pngPath = LoadResourceFile("inventory_images", string.format("html/images/%s.png", pngItem)) local webpPath = LoadResourceFile("inventory_images", string.format("html/images/%s.webp", webpItem)) local imagePath = pngPath and string.format("nui://inventory_images/html/images/%s.png", pngItem) or webpPath and string.format("nui://inventory_images/html/images/%s.webp", webpItem) return imagePath or "https://avatars.githubusercontent.com/u/47620135" end ---This will return the players inventory in the format of {name, label, count, slot, metadata} ---@return table Inventory.GetPlayerInventory = function() local items = {} local inventory = tgiann:GetPlayerItems() for _, v in pairs(inventory) do table.insert(items, { name = v.name, label = v.label, count = v.amount, slot = v.slot, metadata = v.info, stack = v.unique, close = v.useable, weight = v.weight }) end return items end ---@param id any ---@return nil Inventory.OpenStash = function(id) tgiann:OpenInventory('stash', id, { maxweight = 400000, slots = 100 }) end return Inventory