Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Sync Fork #644

Closed
wants to merge 17 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: stack overflow issue
bruinp8n committed Oct 31, 2024
commit e8d024c939468c958e5568a3f0bdcf068a4ddc03
23 changes: 15 additions & 8 deletions server/player.lua
Original file line number Diff line number Diff line change
@@ -116,11 +116,12 @@ function SetPlayerPrimaryJob(citizenid, jobName)
assert(job.grades[grade] ~= nil, string.format('job %s does not have grade %s', jobName, grade))

player.PlayerData.job = toPlayerJob(jobName, job, grade)
player.Functions.UpdatePlayerData()
player.Functions.Save()

if not player.Offline then
player.Functions.UpdatePlayerData()
TriggerEvent('QBCore:Server:OnJobUpdate', player.PlayerData.source, player.PlayerData.job)
TriggerClientEvent('QBCore:Client:OnJobUpdate', player.PlayerData.source, player.PlayerData.job)
TriggerClientEvent('QBCore:Client:OnJobUpdate', player.PlayerData.source, player.PlayerData.job)
end

return true
@@ -282,9 +283,10 @@ local function setPlayerPrimaryGang(citizenid, gangName)
level = grade
}
}
player.Functions.Save()

player.Functions.UpdatePlayerData()
if not player.Offline then
if not player.Offline then
player.Functions.UpdatePlayerData()
TriggerEvent('QBCore:Server:OnGangUpdate', player.PlayerData.source, player.PlayerData.gang)
TriggerClientEvent('QBCore:Client:OnGangUpdate', player.PlayerData.source, player.PlayerData.gang)
end
@@ -608,8 +610,7 @@ function CreatePlayer(playerData, Offline)
self.Offline = Offline

function self.Functions.UpdatePlayerData()
self.Functions.Save()
if self.Offline then return end -- Unsupported for Offline Players
if self.Offline then return SaveOffline(self.PlayerData) end -- Unsupported for Offline Players

TriggerEvent('QBCore:Player:SetPlayerData', self.PlayerData)
TriggerClientEvent('QBCore:Player:SetPlayerData', self.PlayerData.source, self.PlayerData)
@@ -719,6 +720,10 @@ function CreatePlayer(playerData, Offline)
playerState:set('canUseWeapons', not val, true)
end
end

if meta == 'inlaststand' or meta == 'isdead' then
self.Functions.Save()
end
end

---@param meta string
@@ -1028,8 +1033,9 @@ function CreatePlayer(playerData, Offline)
end
end

self.Functions.UpdatePlayerData()

if not self.Offline then
self.Functions.UpdatePlayerData()
TriggerEvent('QBCore:Server:OnGangUpdate', self.PlayerData.source, self.PlayerData.gang)
TriggerClientEvent('QBCore:Client:OnGangUpdate', self.PlayerData.source, self.PlayerData.gang)
end
@@ -1043,11 +1049,12 @@ function CreatePlayer(playerData, Offline)
SetPedArmour(ped, self.PlayerData.metadata.armor)
-- At this point we are safe to emit new instance to third party resource for load handling
GlobalState.PlayerCount += 1
self.Functions.UpdatePlayerData()
Player(self.PlayerData.source).state:set('loadInventory', true, true)
TriggerEvent('QBCore:Server:PlayerLoaded', self)
end

self.Functions.UpdatePlayerData()


return self
end