diff --git a/[core]/esx_multicharacter/server/modules/functions.lua b/[core]/esx_multicharacter/server/modules/functions.lua index 1d5a81a6..8f9ccd4c 100644 --- a/[core]/esx_multicharacter/server/modules/functions.lua +++ b/[core]/esx_multicharacter/server/modules/functions.lua @@ -16,7 +16,7 @@ function Server:ResetPlayers() table.wipe(ESX.Players) for _, v in pairs(players) do - ESX.Players[self:GetIdentifier(v.source)] = true + ESX.Players[self:GetIdentifier(v.source)] = v.identifier end else ESX.Players = {} @@ -49,7 +49,13 @@ function Server:OnConnecting(source, deferrals) if ESX.GetConfig().EnableDebug or not ESX.Players[identifier] then deferrals.done() end - local xPlayer = ESX.GetPlayerFromIdentifier(identifier) + if ESX.Players[identifier] == true then + return deferrals.done( + ("[ESX Multicharacter] There was an error loading your character!\nError code: identifier-active\n\nThis error is caused by a player on this server who has the same identifier as you have. Make sure you are not playing on the same account.\n\nYour identifier: %s"):format(identifier) + ) + end + + local xPlayer = ESX.GetPlayerFromIdentifier(ESX.Players[identifier]) if not xPlayer then return deferrals.done() end diff --git a/[core]/esx_multicharacter/server/modules/multicharacter.lua b/[core]/esx_multicharacter/server/modules/multicharacter.lua index c43be581..25165c3b 100644 --- a/[core]/esx_multicharacter/server/modules/multicharacter.lua +++ b/[core]/esx_multicharacter/server/modules/multicharacter.lua @@ -78,18 +78,20 @@ function Multicharacter:CharacterChosen(source, charid, isNew) end end - TriggerEvent("esx:onPlayerJoined", source, ("%s%s"):format(Server.prefix, charid)) - ESX.Players[Server:GetIdentifier(source)] = true + local charIdentifier = ("%s%s"):format(Server.prefix, charid) + TriggerEvent("esx:onPlayerJoined", source, charIdentifier) + ESX.Players[Server:GetIdentifier(source)] = charIdentifier end end function Multicharacter:RegistrationComplete(source, data) local charId = self.awaitingRegistration[source] + local charIdentifier = ("%s%s"):format(Server.prefix, charId) self.awaitingRegistration[source] = nil - ESX.Players[Server:GetIdentifier(source)] = true + ESX.Players[Server:GetIdentifier(source)] = charIdentifier SetPlayerRoutingBucket(source, 0) - TriggerEvent("esx:onPlayerJoined", source, ("%s%s"):format(Server.prefix, charId), data) + TriggerEvent("esx:onPlayerJoined", source, charIdentifier, data) end function Multicharacter:PlayerDropped(player)