QBCore
This only applies if you are using origen_inventory and QBCore server.
Go to qb-core/server/main.lua add this code at the bottom:
AddEventHandler('inventory:refresh',function()
local success, items = pcall(MySQL.query.await, 'SELECT * FROM av_items')
if success and items and next(items) then
local resource = GetCurrentResourceName()
local path = GetResourcePath('origen_inventory')
local dump = {}
for i = 1, #items do
local item = items[i]
if not QBCore.Shared.Items[item.name] then
item.description = item.description
item.weight = item.weight or 1000
dump[i] = item
if item.image then
PerformHttpRequest(item.image, function (errorCode, resultData, resultHeaders)
if errorCode >= 200 and errorCode < 300 then
local image = assert(io.open(path..'/html/images/'..item.name..'.png', "wb"))
image:write(resultData)
image:flush()
image:close()
else
print("Image URL for "..item.name.." couldn't be downloaded, verify the URL and download it manually to your inventory")
end
end)
end
end
end
if table.type(dump) ~= "empty" then
local file = LoadResourceFile(resource, 'shared/items.lua')
file = file:gsub('%s*}%s*$', '')
local itemFormat = " %s = {name = '%s', label = '%s', weight = %s, type = 'item', image = '%s', unique = false, shouldClose = true, combinable = nil, useable = true, description = %s},\n"
local newEntries = ""
for _, item in pairs(dump) do
local formatName = item.name:gsub("'", "\\'"):lower()
if not QBCore.Shared.Items[formatName] then
newEntries = newEntries .. (itemFormat):format(formatName, item.name, item.label:gsub("'", "\\'"), item.weight, item.name..'.png', item.description and ('"%s"'):format(item.description) or 'nil')
QBCore.Shared.Items[formatName] = item
end
end
if newEntries ~= "" then
file = file .. "\n" .. newEntries .. "}\n"
else
file = file .. "}\n"
end
SaveResourceFile(resource, 'shared/items.lua', file, -1)
end
end
end)
Last updated