Fixed job issues and dont query sql on xPlayer creation

This commit is contained in:
ElPumpo
2019-03-04 21:21:18 +01:00
parent e976de722b
commit b8d0669b64
3 changed files with 62 additions and 53 deletions
+12 -11
View File
@@ -348,29 +348,30 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l
end
self.setJob = function(job, grade)
grade = tostring(grade)
local lastJob = json.decode(json.encode(self.job))
if ESX.DoesJobExist(job, grade) then
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
self.job['id'] = jobObject.id
self.job['name'] = jobObject.name
self.job['label'] = jobObject.label
self.job.id = jobObject.id
self.job.name = jobObject.name
self.job.label = jobObject.label
self.job['grade'] = grade
self.job['grade_name'] = gradeObject.name
self.job['grade_label'] = gradeObject.label
self.job['grade_salary'] = gradeObject.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 = {}
self.job.skin_female = {}
if gradeObject.skin_male ~= nil then
self.job['skin_male'] = json.decode(gradeObject.skin_male)
self.job.skin_male = json.decode(gradeObject.skin_male)
end
if gradeObject.skin_female ~= nil then
self.job['skin_female'] = json.decode(gradeObject.skin_female)
self.job.skin_female = json.decode(gradeObject.skin_female)
end
TriggerEvent('esx:setJob', self.source, self.job, lastJob)
+2
View File
@@ -185,6 +185,8 @@ ESX.CreatePickup = function(type, name, count, label, player)
end
ESX.DoesJobExist = function(job, grade)
grade = tostring(grade)
if job and grade then
if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then
return true
+48 -42
View File
@@ -130,8 +130,52 @@ AddEventHandler('es:playerLoaded', function(source, _player)
MySQL.Async.fetchAll('SELECT job, job_grade, loadout, position FROM `users` WHERE `identifier` = @identifier', {
['@identifier'] = player.getIdentifier()
}, function(result)
userData.job['name'] = result[1].job
userData.job['grade'] = result[1].job_grade
local job, grade = result[1].job, tostring(result[1].job_grade)
if ESX.DoesJobExist(job, grade) then
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
userData.job = {}
userData.job.id = jobObject.id
userData.job.name = jobObject.name
userData.job.label = jobObject.label
userData.job.grade = grade
userData.job.grade_name = gradeObject.name
userData.job.grade_label = gradeObject.label
userData.job.grade_salary = gradeObject.salary
userData.job.skin_male = {}
userData.job.skin_female = {}
if gradeObject.skin_male ~= nil then
userData.job.skin_male = json.decode(gradeObject.skin_male)
end
if gradeObject.skin_female ~= nil then
userData.job.skin_female = json.decode(gradeObject.skin_female)
end
else
print(('es_extended: %s had an unknown job [job: %s, grade: %s], setting as unemployed!'):format(player.getIdentifier(), job, grade))
local job, grade = 'unemployed', '0'
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
userData.job = {}
userData.job.id = jobObject.id
userData.job.name = jobObject.name
userData.job.label = jobObject.label
userData.job.grade = grade
userData.job.grade_name = gradeObject.name
userData.job.grade_label = gradeObject.label
userData.job.grade_salary = gradeObject.salary
userData.job.skin_male = {}
userData.job.skin_female = {}
end
if result[1].loadout ~= nil then
userData.loadout = json.decode(result[1].loadout)
@@ -146,44 +190,6 @@ AddEventHandler('es:playerLoaded', function(source, _player)
end)
-- Get job label
table.insert(tasks2, function(cb2)
MySQL.Async.fetchAll('SELECT * FROM `jobs` WHERE `name` = @name', {
['@name'] = userData.job.name
}, function(result)
userData.job['label'] = result[1].label
cb2()
end)
end)
-- Get job grade data
table.insert(tasks2, function(cb2)
MySQL.Async.fetchAll('SELECT * FROM `job_grades` WHERE `job_name` = @job_name AND `grade` = @grade', {
['@job_name'] = userData.job.name,
['@grade'] = userData.job.grade
}, function(result)
userData.job['grade_name'] = result[1].name
userData.job['grade_label'] = result[1].label
userData.job['grade_salary'] = result[1].salary
userData.job['skin_male'] = {}
userData.job['skin_female'] = {}
if result[1].skin_male ~= nil then
userData.job['skin_male'] = json.decode(result[1].skin_male)
end
if result[1].skin_female ~= nil then
userData.job['skin_female'] = json.decode(result[1].skin_female)
end
cb2()
end)
end)
Async.series(tasks2, cb)
end)
@@ -219,10 +225,10 @@ AddEventHandler('es:playerLoaded', function(source, _player)
job = xPlayer.getJob(),
loadout = xPlayer.getLoadout(),
lastPosition = xPlayer.getLastPosition(),
money = xPlayer.get('money')
money = xPlayer.getMoney()
})
xPlayer.player.displayMoney(xPlayer.get('money'))
xPlayer.displayMoney(xPlayer.getMoney())
end)