From 262ae32a8b0c984a5ec5b87a5bccf5fd0090d166 Mon Sep 17 00:00:00 2001 From: t1ger-scripts <67964693+t1ger-scripts@users.noreply.github.com> Date: Mon, 17 Feb 2025 16:35:01 +0100 Subject: [PATCH 1/4] fix: missing attributes for unemployed Added missing attributes for unemployed job if no Jobs found --- [core]/es_extended/server/functions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 8366c069b..d268681e0 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -512,7 +512,7 @@ function ESX.RefreshJobs() if not Jobs then -- Fallback data, if no jobs exist - ESX.Jobs["unemployed"] = { label = "Unemployed", grades = { ["0"] = { grade = 0, label = "Unemployed", salary = 200, skin_male = {}, skin_female = {} } } } + ESX.Jobs["unemployed"] = { name = "unemployed", label = "Unemployed", grades = { ["0"] = { grade = 0, name = "unemployed", label = "Unemployed", salary = 200, skin_male = {}, skin_female = {} } } } else ESX.Jobs = Jobs end @@ -650,4 +650,4 @@ end ---@return CExtendedVehicle? function ESX.GetExtendedVehicleFromPlate(plate) return Core.vehicleClass.getFromPlate(plate) -end \ No newline at end of file +end From 6d7831b0d0cad47ae6a7714fed20d3ea4f214c0c Mon Sep 17 00:00:00 2001 From: t1ger-scripts <67964693+t1ger-scripts@users.noreply.github.com> Date: Mon, 17 Feb 2025 16:56:59 +0100 Subject: [PATCH 2/4] fix(es_extended/server/functions): whitelisted attribute for unemployed Added the missing whitelisted attribute for defaulted unemployed job. --- [core]/es_extended/server/functions.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index d268681e0..dd7c14088 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -512,7 +512,7 @@ function ESX.RefreshJobs() if not Jobs then -- Fallback data, if no jobs exist - ESX.Jobs["unemployed"] = { name = "unemployed", label = "Unemployed", grades = { ["0"] = { grade = 0, name = "unemployed", label = "Unemployed", salary = 200, skin_male = {}, skin_female = {} } } } + ESX.Jobs["unemployed"] = { name = "unemployed", label = "Unemployed", whitelisted = false, grades = { ["0"] = { grade = 0, name = "unemployed", label = "Unemployed", salary = 200, skin_male = {}, skin_female = {} } } } else ESX.Jobs = Jobs end From 364dfc03c6f1185362eaa5b03cc6061abc3221ae Mon Sep 17 00:00:00 2001 From: t1ger-scripts <67964693+t1ger-scripts@users.noreply.github.com> Date: Mon, 17 Feb 2025 18:02:44 +0100 Subject: [PATCH 3/4] fix(server/modules/createJob): job grades not inserting The queries assume that the parsed grades are numerically indexed. But removing ipairs method, and using pairs method, allows to loop grades that are indexed with strings as well. Just like we are using pairs method inside generatenewJobTable --- [core]/es_extended/server/modules/createJob.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/server/modules/createJob.lua b/[core]/es_extended/server/modules/createJob.lua index c4c09eff6..e6f477821 100644 --- a/[core]/es_extended/server/modules/createJob.lua +++ b/[core]/es_extended/server/modules/createJob.lua @@ -72,10 +72,10 @@ function ESX.CreateJob(name, label, grades) { query = 'INSERT INTO jobs (name, label) VALUES (?, ?)', values = { name, label } } } - for _, grade in ipairs(grades) do + for _, grade in pairs(grades) do queries[#queries + 1] = { query = 'INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES (?, ?, ?, ?, ?, ?, ?)', - values = { name, grade.grade, grade.name, grade.label, grade.salary, '{}', '{}' } + values = { name, grade.grade, grade.name, grade.label, grade.salary, json.encode(grade.skin_male) or '{}', json.encode(grade.skin_female) or '{}' } } end From 5ddd20080222cd809451084aa46af506aa050195 Mon Sep 17 00:00:00 2001 From: t1ger-scripts <67964693+t1ger-scripts@users.noreply.github.com> Date: Tue, 18 Feb 2025 13:36:53 +0100 Subject: [PATCH 4/4] fix(server/modules/createJob): skin nil check before json encode Added checks for skin_male and skin_female before json encoding to prevent 'NULL' entries in database --- [core]/es_extended/server/modules/createJob.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/server/modules/createJob.lua b/[core]/es_extended/server/modules/createJob.lua index e6f477821..d20795123 100644 --- a/[core]/es_extended/server/modules/createJob.lua +++ b/[core]/es_extended/server/modules/createJob.lua @@ -75,7 +75,7 @@ function ESX.CreateJob(name, label, grades) for _, grade in pairs(grades) do queries[#queries + 1] = { query = 'INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES (?, ?, ?, ?, ?, ?, ?)', - values = { name, grade.grade, grade.name, grade.label, grade.salary, json.encode(grade.skin_male) or '{}', json.encode(grade.skin_female) or '{}' } + values = { name, grade.grade, grade.name, grade.label, grade.salary, grade.skin_male and json.encode(grade.skin_male) or '{}', grade.skin_female and json.encode(grade.skin_female) or '{}' } } end