From 8402cf423659a6b92182354265a062c3b002950d Mon Sep 17 00:00:00 2001 From: Olvidate <82069828+Olvidate@users.noreply.github.com> Date: Mon, 8 Nov 2021 18:55:42 -0300 Subject: [PATCH 1/2] fix(server): fixed error with identifiers Fixed error when you don't have a identifier, Steam open for example. --- server/main.lua | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server/main.lua b/server/main.lua index 27f29eb9..eb88b6bc 100644 --- a/server/main.lua +++ b/server/main.lua @@ -90,11 +90,15 @@ elseif ESX.GetConfig().Multichar == true then deferrals.defer() local identifier = GetIdentifier(source) Citizen.Wait(100) - if ESX.Players[identifier] then - deferrals.done('A player is already connected to the server with this identifier.') + if identifier then + if ESX.Players[identifier] then + deferrals.done('A player is already connected to the server with this identifier.') + else + ESX.Players[identifier] = true + deferrals.done() + end else - ESX.Players[identifier] = true - deferrals.done() + deferrals.done("You don't have identifier") end end) @@ -203,4 +207,4 @@ elseif ESX.GetConfig().Multichar == true then else assert(nil, '^3WARNING: Multicharacter is disabled - please check your ESX configuration^0') -end \ No newline at end of file +end From e19f99fdcab8ea3c6af700efb5dcb8b497f90396 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Tue, 9 Nov 2021 14:12:04 +1100 Subject: [PATCH 2/2] refactor(server): update deferral messages --- server/main.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/server/main.lua b/server/main.lua index eb88b6bc..d966d528 100644 --- a/server/main.lua +++ b/server/main.lua @@ -41,14 +41,16 @@ elseif ESX.GetConfig().Multichar == true then if next(ESX.Players) then for k, v in pairs(ESX.Players) do - ESX.Players[k] = GetIdentifier(v.source) + ESX.Players[GetIdentifier(v.source)] = true end else ESX.Players = {} end local function SetupCharacters(source) while not FETCH do Citizen.Wait(100) end local identifier = GetIdentifier(source) - local slots = MySQL.Sync.fetchScalar("SELECT slots FROM multicharacter_slots WHERE identifier = ?", { + ESX.Players[identifier] = true + + local slots = MySQL.Sync.fetchScalar("SELECT slots FROM multicharacter_slots WHERE identifier = ?", { identifier }) or SLOTS identifier = PREFIX..'%:'..identifier @@ -92,13 +94,12 @@ elseif ESX.GetConfig().Multichar == true then Citizen.Wait(100) if identifier then if ESX.Players[identifier] then - deferrals.done('A player is already connected to the server with this identifier.') + deferrals.done(('A player is already connected to the server with this identifier.\nYour identifier: %s:%s'):format(PRIMARY_IDENTIFIER, identifier) else - ESX.Players[identifier] = true deferrals.done() end else - deferrals.done("You don't have identifier") + deferrals.done(('Unable to retrieve player identifier.\nIdentifier type: %s'):format(PRIMARY_IDENTIFIER) end end) @@ -177,7 +178,7 @@ elseif ESX.GetConfig().Multichar == true then awaitingRegistration[source] = charid else TriggerEvent('esx:onPlayerJoined', source, PREFIX..charid) - ESX.Players[GetIdentifier(source)] = source + ESX.Players[GetIdentifier(source)] = true end end end) @@ -185,7 +186,7 @@ elseif ESX.GetConfig().Multichar == true then AddEventHandler('esx_identity:completedRegistration', function(source, data) TriggerEvent('esx:onPlayerJoined', source, PREFIX..awaitingRegistration[source], data) awaitingRegistration[source] = nil - ESX.Players[GetIdentifier(source)] = source + ESX.Players[GetIdentifier(source)] = true end) AddEventHandler('playerDropped', function(reason)