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