mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-28 17:01:14 +00:00
fix(es_extended/server/modules/createJob): store the encoded skin in ESX.Jobs
CreateJob wrote the caller's skin table straight into ESX.Jobs while the row got the encoded string. setJob then ran json.decode over a table and died with "bad argument #1 to 'json.decode' (string expected, got table)". A restart appeared to repair the job, because the grade came back from the database as a string. Cache the same value that goes into the row.
This commit is contained in:
@@ -8,7 +8,7 @@ local NOTIFY_TYPES = {
|
||||
local function generateNewJobTable(name, label, grades, jobType)
|
||||
local job = ESX.Jobs[name] or { name = name, label = label, type = jobType, grades = {} }
|
||||
for _, v in pairs(grades) do
|
||||
job.grades[tostring(v.grade)] = { job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = v.skin_male or '{}', skin_female = v.skin_female or '{}' }
|
||||
job.grades[tostring(v.grade)] = { job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = v.skin_male, skin_female = v.skin_female }
|
||||
end
|
||||
|
||||
return job
|
||||
@@ -79,10 +79,13 @@ function ESX.CreateJob(name, label, grades, jobType)
|
||||
|
||||
for _, grade in pairs(grades) do
|
||||
if not existingGrades[tostring(grade.grade)] then
|
||||
newGrades[#newGrades + 1] = grade
|
||||
local skinMale = grade.skin_male and json.encode(grade.skin_male) or '{}'
|
||||
local skinFemale = grade.skin_female and json.encode(grade.skin_female) or '{}'
|
||||
|
||||
newGrades[#newGrades + 1] = { grade = grade.grade, name = grade.name, label = grade.label, salary = grade.salary, skin_male = skinMale, skin_female = skinFemale }
|
||||
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, grade.skin_male and json.encode(grade.skin_male) or '{}', grade.skin_female and json.encode(grade.skin_female) or '{}' }
|
||||
values = { name, grade.grade, grade.name, grade.label, grade.salary, skinMale, skinFemale }
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user