mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-30 01:38:52 +00:00
105 lines
2.5 KiB
Lua
105 lines
2.5 KiB
Lua
ESX.Modules['addoninventory'] = {}
|
|
local self = ESX.Modules['addoninventory']
|
|
|
|
self.Ready = false
|
|
self.Items = {}
|
|
self.InventoriesIndex = {}
|
|
self.Inventories = {}
|
|
self.SharedInventories = {}
|
|
|
|
self.GetInventory = function(name, owner)
|
|
for i=1, #self.Inventories[name], 1 do
|
|
if self.Inventories[name][i].owner == owner then
|
|
return self.Inventories[name][i]
|
|
end
|
|
end
|
|
end
|
|
|
|
self.GetSharedInventory = function(name)
|
|
return self.SharedInventories[name]
|
|
end
|
|
|
|
self.CreateAddonInventory = function(name, owner, items)
|
|
local self = {}
|
|
|
|
self.name = name
|
|
self.owner = owner
|
|
self.items = items
|
|
|
|
self.addItem = function(name, count)
|
|
local item = self.getItem(name)
|
|
item.count = item.count + count
|
|
|
|
self.saveItem(name, item.count)
|
|
end
|
|
|
|
self.removeItem = function(name, count)
|
|
local item = self.getItem(name)
|
|
item.count = item.count - count
|
|
|
|
self.saveItem(name, item.count)
|
|
end
|
|
|
|
self.setItem = function(name, count)
|
|
local item = self.getItem(name)
|
|
item.count = count
|
|
|
|
self.saveItem(name, item.count)
|
|
end
|
|
|
|
self.getItem = function(name)
|
|
for i=1, #self.items, 1 do
|
|
if self.items[i].name == name then
|
|
return self.items[i]
|
|
end
|
|
end
|
|
|
|
item = {
|
|
name = name,
|
|
count = 0,
|
|
label = Items[name]
|
|
}
|
|
|
|
table.insert(self.items, item)
|
|
|
|
if self.owner == nil then
|
|
MySQL.Async.execute('INSERT INTO addon_inventory_items (inventory_name, name, count) VALUES (@inventory_name, @item_name, @count)',
|
|
{
|
|
['@inventory_name'] = self.name,
|
|
['@item_name'] = name,
|
|
['@count'] = 0
|
|
})
|
|
else
|
|
MySQL.Async.execute('INSERT INTO addon_inventory_items (inventory_name, name, count, owner) VALUES (@inventory_name, @item_name, @count, @owner)',
|
|
{
|
|
['@inventory_name'] = self.name,
|
|
['@item_name'] = name,
|
|
['@count'] = 0,
|
|
['@owner'] = self.owner
|
|
})
|
|
end
|
|
|
|
return item
|
|
end
|
|
|
|
self.saveItem = function(name, count)
|
|
if self.owner == nil then
|
|
MySQL.Async.execute('UPDATE addon_inventory_items SET count = @count WHERE inventory_name = @inventory_name AND name = @item_name', {
|
|
['@inventory_name'] = self.name,
|
|
['@item_name'] = name,
|
|
['@count'] = count
|
|
})
|
|
else
|
|
MySQL.Async.execute('UPDATE addon_inventory_items SET count = @count WHERE inventory_name = @inventory_name AND name = @item_name AND owner = @owner', {
|
|
['@inventory_name'] = self.name,
|
|
['@item_name'] = name,
|
|
['@count'] = count,
|
|
['@owner'] = self.owner
|
|
})
|
|
end
|
|
end
|
|
|
|
return self
|
|
end
|
|
|