From 7ff0efea21005e1812cefb832971b03ac3a590a5 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Thu, 24 Jun 2021 02:12:48 +1000 Subject: [PATCH] Support for ESX Legacy 1.3.3 * improvement(server/main): Moved registration event handler out of ESX (support for 1.3.3) * refactor(server/main): Increase allowed length for charid to 2 * Update fxmanifest.lua --- fxmanifest.lua | 2 +- server/main.lua | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index 2e228c89..9baedcb6 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -1,7 +1,7 @@ fx_version 'adamant' game 'gta5' description 'https://github.com/thelindat/esx_multicharacter' -version '1.0.2' +version '1.1.0' dependencies { 'es_extended', diff --git a/server/main.lua b/server/main.lua index 4f335fb3..0bbcca8c 100644 --- a/server/main.lua +++ b/server/main.lua @@ -93,20 +93,34 @@ if ESX.GetConfig().Multichar == true then SetupCharacters(source) end) + local awaitingRegistration = {} RegisterServerEvent("esx_multicharacter:CharacterChosen") AddEventHandler('esx_multicharacter:CharacterChosen', function(charid, isNew) local src = source - if type(charid) == 'number' and string.len(charid) == 1 and type(isNew) == 'boolean' then - TriggerEvent('esx:onPlayerJoined', src, Config.Prefix..charid, isNew) + if type(charid) == 'number' and string.len(charid) <= 2 and type(isNew) == 'boolean' then + if isNew then + awaitingRegistration[src] = charid + else + TriggerEvent('esx:onPlayerJoined', src, Config.Prefix..charid) + end else -- Trigger Ban Event here to ban individuals trying to use SQL Injections end end) + AddEventHandler('esx_identity:completedRegistration', function(playerId, data) + TriggerEvent('esx:onPlayerJoined', playerId, Config.Prefix..awaitingRegistration[playerId], data) + awaitingRegistration[playerId] = nil + end) + + AddEventHandler('playerDropped', function(reason) + awaitingRegistration[source] = nil + end) + RegisterServerEvent("esx_multicharacter:DeleteCharacter") AddEventHandler('esx_multicharacter:DeleteCharacter', function(charid) local src = source - if type(charid) == "number" and string.len(charid) == 1 then + if type(charid) == "number" and string.len(charid) <= 2 then DeleteCharacter(src, charid) SetupCharacters(src) else