Inventory Contract
Contract: IInventory
Default provider: shiva-inventory
Manages player inventories, stashes, and item definitions.
Methods
IInventory:getItem(serverId, item)
Get the count of an item in a player's inventory.
lua
local inv = container:make('IInventory')
local count = inv:getItem(source, 'fish_bass')Returns: number
IInventory:addItem(serverId, item, count)
Add items to a player's inventory.
lua
inv:addItem(source, 'fish_bass', 1)Returns: boolean
IInventory:removeItem(serverId, item, count)
Remove items. Returns false if the player doesn't have enough.
lua
local ok = inv:removeItem(source, 'fishing_rod', 1)Returns: boolean
IInventory:hasItem(serverId, item, count?)
Check if a player has an item (and optionally a minimum count).
lua
if inv:hasItem(source, 'fishing_rod') then
-- player has at least 1
endReturns: boolean
IInventory:getAll(serverId)
Get all items in a player's inventory.
Returns: table — { [item] = count }
IInventory:openStash(serverId, stashId, options?)
Open a stash for a player.
Events Emitted
| Event | Payload |
|---|---|
inventory:itemAdded | { playerId, item, count } |
inventory:itemRemoved | { playerId, item, count } |