diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 31b0c1a9..973ca661 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -321,6 +321,37 @@ function ESX.DiscordLogFields(name, title, color, fields) }) end +--- Create Job at Runtime +--- @param name string +--- @param label string +--- @param grades table +function ESX.CreateJob(name, label, grades) + if not name then + return print('[^3WARNING^7] missing argument `name(string)` while creating a job') + end + + if not label then + return print('[^3WARNING^7] missing argument `label(string)` while creating a job') + end + + if not grades or not next(grades) then + return print('[^3WARNING^7] missing argument `grades(table)` while creating a job!') + end + + local parameters = {} + local job = {name = name, label = label, grades = {}} + + for k,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 = {}, skin_female = {}} + parameters[#parameters + 1] = { name, v.grade, v.name, v.label, v.salary} + end + + MySQL.insert('INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)', {name, label}) + MySQL.prepare('INSERT INTO job_grades (job_name, grade, name, label, salary) VALUES (?, ?, ?, ?, ?)', parameters) + + ESX.Jobs[name] = job +end + function ESX.RefreshJobs() local Jobs = {} local jobs = MySQL.query.await('SELECT * FROM jobs')