mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-31 10:18:54 +00:00
Implemented ESX.DoesJobExist()
This commit is contained in:
+23
-26
@@ -345,40 +345,37 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l
|
||||
end
|
||||
|
||||
self.setJob = function(name, grade)
|
||||
self.setJob = function(job, grade)
|
||||
local lastJob = json.decode(json.encode(self.job))
|
||||
|
||||
MySQL.Async.fetchAll('SELECT * FROM `jobs` WHERE `name` = @name', {
|
||||
['@name'] = name
|
||||
}, function(result)
|
||||
if ESX.DoesJobExist(job, grade) then
|
||||
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
|
||||
|
||||
self.job['id'] = result[1].id
|
||||
self.job['name'] = result[1].name
|
||||
self.job['label'] = result[1].label
|
||||
self.job['id'] = jobObject.id
|
||||
self.job['name'] = jobObject.name
|
||||
self.job['label'] = jobObject.label
|
||||
|
||||
MySQL.Async.fetchAll('SELECT * FROM `job_grades` WHERE `job_name` = @job_name AND `grade` = @grade', {
|
||||
['@job_name'] = name,
|
||||
['@grade'] = grade
|
||||
}, function(result)
|
||||
self.job['grade'] = grade
|
||||
self.job['grade_name'] = result[1].name
|
||||
self.job['grade_label'] = result[1].label
|
||||
self.job['grade_salary'] = result[1].salary
|
||||
self.job['grade'] = grade
|
||||
self.job['grade_name'] = gradeObject.name
|
||||
self.job['grade_label'] = gradeObject.label
|
||||
self.job['grade_salary'] = gradeObject.salary
|
||||
|
||||
self.job['skin_male'] = nil
|
||||
self.job['skin_female'] = nil
|
||||
self.job['skin_male'] = nil
|
||||
self.job['skin_female'] = nil
|
||||
|
||||
if result[1].skin_male ~= nil then
|
||||
self.job['skin_male'] = json.decode(result[1].skin_male)
|
||||
end
|
||||
if gradeObject.skin_male ~= nil then
|
||||
self.job['skin_male'] = json.decode(gradeObject.skin_male)
|
||||
end
|
||||
|
||||
if result[1].skin_female ~= nil then
|
||||
self.job['skin_female'] = json.decode(result[1].skin_female)
|
||||
end
|
||||
if gradeObject.skin_female ~= nil then
|
||||
self.job['skin_female'] = json.decode(gradeObject.skin_female)
|
||||
end
|
||||
|
||||
TriggerEvent("esx:setJob", self.source, self.job, lastJob)
|
||||
TriggerClientEvent("esx:setJob", self.source, self.job)
|
||||
end)
|
||||
end)
|
||||
TriggerEvent('esx:setJob', self.source, self.job, lastJob)
|
||||
TriggerClientEvent('esx:setJob', self.source, self.job)
|
||||
else
|
||||
print(('es_extended: ignoring setJob for %s due to job not found!'):format(self.source))
|
||||
end
|
||||
end
|
||||
|
||||
self.addWeapon = function(weaponName, ammo)
|
||||
|
||||
+6
-1
@@ -21,7 +21,12 @@ TriggerEvent('es:addGroupCommand', 'setjob', 'jobmaster', function(source, args,
|
||||
local xPlayer = ESX.GetPlayerFromId(args[1])
|
||||
|
||||
if xPlayer then
|
||||
xPlayer.setJob(args[2], tonumber(args[3]))
|
||||
if ESX.DoesJobExist(args[2], args[3]) then
|
||||
xPlayer.setJob(args[2], args[3])
|
||||
else
|
||||
TriggerClientEvent('chat:addMessage', source, { args = { '^1SYSTEM', 'That job does not exist.' } })
|
||||
end
|
||||
|
||||
else
|
||||
TriggerClientEvent('chat:addMessage', source, { args = { '^1SYSTEM', 'Player not online.' } })
|
||||
end
|
||||
|
||||
@@ -8,6 +8,7 @@ ESX.CancelledTimeouts = {}
|
||||
ESX.LastPlayerData = {}
|
||||
ESX.Pickups = {}
|
||||
ESX.PickupId = 0
|
||||
ESX.Jobs = {}
|
||||
|
||||
AddEventHandler('esx:getSharedObject', function(cb)
|
||||
cb(ESX)
|
||||
@@ -28,6 +29,30 @@ MySQL.ready(function()
|
||||
}
|
||||
end
|
||||
end)
|
||||
|
||||
local result = MySQL.Sync.fetchAll('SELECT * FROM jobs', {})
|
||||
|
||||
for i=1, #result do
|
||||
ESX.Jobs[result[i].name] = result[i]
|
||||
ESX.Jobs[result[i].name].grades = {}
|
||||
end
|
||||
|
||||
local result2 = MySQL.Sync.fetchAll('SELECT * FROM job_grades', {})
|
||||
|
||||
for i=1, #result2 do
|
||||
if ESX.Jobs[result2[i].job_name] then
|
||||
ESX.Jobs[result2[i].job_name].grades[tostring(result2[i].grade)] = result2[i]
|
||||
else
|
||||
print(('es_extended: invalid job "%s" from table job_grades ignored!'):format(result2[i].job_name))
|
||||
end
|
||||
end
|
||||
|
||||
for k,v in pairs(ESX.Jobs) do
|
||||
if next(v.grades) == nil then
|
||||
ESX.Jobs[v.name] = nil
|
||||
print(('es_extended: ignoring job "%s" due to missing job grades!'):format(v.name))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
AddEventHandler('esx:playerLoaded', function(source)
|
||||
|
||||
@@ -186,3 +186,13 @@ ESX.CreatePickup = function(type, name, count, label, player)
|
||||
TriggerClientEvent('esx:pickup', -1, pickupId, label, player)
|
||||
ESX.PickupId = pickupId
|
||||
end
|
||||
|
||||
ESX.DoesJobExist = function(job, grade)
|
||||
if job and grade then
|
||||
if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
Reference in New Issue
Block a user