From d892df079f5c311515d12057283c1c93cb71eb00 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 14 Jun 2025 20:55:47 +0200 Subject: [PATCH] resolve deferrals after cleanup --- [core]/es_extended/server/main.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 3f0b9338..51001d9f 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -69,7 +69,7 @@ end ---@param playerId number ---@param reason string -local function onPlayerDropped(playerId, reason) +local function onPlayerDropped(playerId, reason, cb) local xPlayer = ESX.GetPlayerFromId(playerId) if not xPlayer then @@ -84,10 +84,14 @@ local function onPlayerDropped(playerId, reason) GlobalState[("%s:count"):format(job)] = Core.JobsPlayerCount[job] Core.playersByIdentifier[xPlayer.identifier] = nil + local p = promise:new() Core.SavePlayer(xPlayer, function() GlobalState["playerCount"] = GlobalState["playerCount"] - 1 ESX.Players[playerId] = nil + p:resolve() end) + + return Citizen.Await(p) end if Config.Multichar then @@ -156,6 +160,7 @@ if not Config.Multichar then deferrals.update(("[ESX] Cleaning stale player entry..."):format(identifier)) onPlayerDropped(xPlayer.source, "esx_stale_player_obj") + deferrals.done() end) end