From 0ce2055a4d1e0071038253dba1f0f893b7f8efbf Mon Sep 17 00:00:00 2001 From: Ark Date: Mon, 1 Feb 2021 16:34:40 -0600 Subject: [PATCH] (fix): setup vehicles to load on resource start, with proper startup moment for no lengthy query --- server/main.lua | 58 ++++++++++++++++++------------------------------- 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/server/main.lua b/server/main.lua index 9f2c334c..f329e794 100644 --- a/server/main.lua +++ b/server/main.lua @@ -22,52 +22,36 @@ function RemoveOwnedVehicle(plate) }) end -MySQL.ready(function() - MySQL.Async.fetchAll('SELECT * FROM vehicle_categories', {}, function(_categories) - categories = _categories - - MySQL.Async.fetchAll('SELECT * FROM vehicles', {}, function(_vehicles) - vehicles = _vehicles - - for k,v in ipairs(vehicles) do - for k2,v2 in ipairs(categories) do - if v2.name == v.category then - vehicles[k].categoryLabel = v2.label - break - end - end - end - - -- send information after db has loaded, making sure everyone gets vehicle information - TriggerClientEvent('esx_vehicleshop:sendCategories', -1, categories) - TriggerClientEvent('esx_vehicleshop:sendVehicles', -1, vehicles) - end) - end) -end) - AddEventHandler('onResourceStart', function(resourceName) - MySQL.Async.fetchAll('SELECT * FROM vehicle_categories', {}, function(_categories) + Wait(500) + + MySQL.Async.fetchAll('SELECT * FROM `vehicle_categories`', {}, function(_categories) categories = _categories - MySQL.Async.fetchAll('SELECT * FROM vehicles', {}, function(_vehicles) + MySQL.Async.fetchAll('SELECT * FROM `vehicles`', {}, function(_vehicles) vehicles = _vehicles - for k,v in ipairs(vehicles) do - for k2,v2 in ipairs(categories) do - if v2.name == v.category then - vehicles[k].categoryLabel = v2.label - break - end - end - end - - -- send information after db has loaded, making sure everyone gets vehicle information - TriggerClientEvent('esx_vehicleshop:sendCategories', -1, categories) - TriggerClientEvent('esx_vehicleshop:sendVehicles', -1, vehicles) + GetVehiclesAndCategories(categories, vehicles) end) + end) end) +function GetVehiclesAndCategories(categories, vehicles) + for k,v in ipairs(vehicles) do + for k2,v2 in ipairs(categories) do + if v2.name == v.category then + vehicles[k].categoryLabel = v2.label + break + end + end + end + + -- send information after db has loaded, making sure everyone gets vehicle information + TriggerClientEvent('esx_vehicleshop:sendCategories', -1, categories) + TriggerClientEvent('esx_vehicleshop:sendVehicles', -1, vehicles) +end + function getVehicleLabelFromModel(model) for k,v in ipairs(vehicles) do if v.model == model then