diff --git a/[esx]/es_extended/server/commands.lua b/[esx]/es_extended/server/commands.lua index 50cfccb7..e4ad1cb5 100644 --- a/[esx]/es_extended/server/commands.lua +++ b/[esx]/es_extended/server/commands.lua @@ -106,7 +106,11 @@ end, false, {help = _U('command_clear')}) ESX.RegisterCommand({'clearall', 'clsall'}, 'admin', function(xPlayer, args, showError) TriggerClientEvent('chat:clear', -1) -end, false, {help = _U('command_clearall')}) +end, true, {help = _U('command_clearall')}) + +ESX.RegisterCommand("refreshjobs", 'admin', function(xPlayer, args, showError) + ESX.RefreshJobs() +end, true, {help = _U('command_clearall')}) if not Config.OxInventory then ESX.RegisterCommand('clearinventory', 'admin', function(xPlayer, args, showError) diff --git a/[esx]/es_extended/server/functions.lua b/[esx]/es_extended/server/functions.lua index c0eded2b..448b5b6c 100644 --- a/[esx]/es_extended/server/functions.lua +++ b/[esx]/es_extended/server/functions.lua @@ -30,7 +30,7 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion) end if Core.RegisteredCommands[name] then - print(('[^3WARNING^7] Command ^5"%s" ^7already registered, overriding command'):format(name)) + print(('[^3WARNING^7] Command ^5"%s" already registered, overriding command'):format(name)) if Core.RegisteredCommands[name].suggestion then TriggerClientEvent('chat:removeSuggestion', -1, ('/%s'):format(name)) @@ -255,6 +255,52 @@ function ESX.GetIdentifier(playerId) end end +function ESX.RefreshJobs() + local Jobs = {} + local jobs = MySQL.query.await('SELECT * FROM jobs') + + for _, v in ipairs(jobs) do + Jobs[v.name] = v + Jobs[v.name].grades = {} + end + + local jobGrades = MySQL.query.await('SELECT * FROM job_grades') + + for _, v in ipairs(jobGrades) do + if Jobs[v.job_name] then + Jobs[v.job_name].grades[tostring(v.grade)] = v + else + print(('[^3WARNING^7] Ignoring job grades for ^5"%s"^0 due to missing job'):format(v.job_name)) + end + end + + for _, v in pairs(Jobs) do + if ESX.Table.SizeOf(v.grades) == 0 then + Jobs[v.name] = nil + print(('[^3WARNING^7] Ignoring job ^5"%s"^0 due to no job grades found'):format(v.name)) + end + end + + if not Jobs then + -- Fallback data, if no jobs exist + ESX.Jobs['unemployed'] = { + label = 'Unemployed', + grades = { + ['0'] = { + grade = 0, + label = 'Unemployed', + salary = 200, + onDuty = false, + skin_male = {}, + skin_female = {} + } + } + } + else + ESX.Jobs = Jobs + end +end + function ESX.RegisterUsableItem(item, cb) Core.UsableItemsCallbacks[item] = cb end