From 19e697b2119516928b1524b1053e8a5e4787bcf9 Mon Sep 17 00:00:00 2001 From: Kr3mu Date: Tue, 29 Jul 2025 15:34:09 +0200 Subject: [PATCH] Changed to promise and deleted ESX.JobsLoaded --- [core]/es_extended/imports.lua | 5 ----- [core]/es_extended/server/common.lua | 2 +- [core]/es_extended/server/functions.lua | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index e6dc9f38..3ea31a3b 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -87,11 +87,6 @@ else }) end }) - - - AddEventHandler("esx:jobsLoaded", function() - ESX.JobsLoaded = true - end) end if GetResourceState("ox_lib") == "missing" then diff --git a/[core]/es_extended/server/common.lua b/[core]/es_extended/server/common.lua index 1200275f..13be1a13 100644 --- a/[core]/es_extended/server/common.lua +++ b/[core]/es_extended/server/common.lua @@ -1,7 +1,6 @@ ESX.Players = {} ESX.Jobs = {} ESX.Items = {} -ESX.JobsLoaded = false Core = {} Core.JobsPlayerCount = {} Core.UsableItemsCallbacks = {} @@ -11,6 +10,7 @@ Core.PickupId = 0 Core.PlayerFunctionOverrides = {} Core.DatabaseConnected = false Core.playersByIdentifier = {} +Core.JobsLoaded = promise:new() ---@type table Core.vehicles = {} diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index c9e999a3..f95a1950 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -505,6 +505,10 @@ end ---@return nil function ESX.RefreshJobs() + if Core.JobsLoaded.value then + Core.JobsLoaded = promise:new() + end + local Jobs = {} local jobs = MySQL.query.await("SELECT * FROM jobs") @@ -538,6 +542,7 @@ function ESX.RefreshJobs() end TriggerEvent("esx:jobsLoaded") + Core.JobsLoaded:resolve(true) end ---@param item string @@ -597,6 +602,11 @@ end ---@return table function ESX.GetJobs() + while not Core.JobsLoaded.value do + print("Waiting for ESX Jobs to Load") + Citizen.Wait(200) + end + return ESX.Jobs end @@ -763,6 +773,11 @@ end ---@param grade string ---@return boolean function ESX.DoesJobExist(job, grade) + while not Core.JobsLoaded.value do + print("Waiting for ESX Jobs to Load") + Citizen.Wait(200) + end + return (ESX.Jobs[job] and ESX.Jobs[job].grades[tostring(grade)] ~= nil) or false end