From 804eb73c965bf46eddd29cbda54aee188687cb0e Mon Sep 17 00:00:00 2001 From: Arctos2win <116841243+Arctos2win@users.noreply.github.com> Date: Fri, 18 Aug 2023 20:37:01 +0200 Subject: [PATCH] improve metadata system --- [core]/es_extended/client/main.lua | 4 ++-- [core]/es_extended/server/classes/player.lua | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 1d23641f..101835a2 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -709,6 +709,6 @@ for i = 1, #DoNotUse do end end -RegisterNetEvent('esx:updatePlayerData', function(key, val) - ESX.SetPlayerData(key, val) +AddStateBagChangeHandler('metadata', 'player:' .. tostring(GetPlayerServerId(PlayerId())), function(bag, key, val) + ESX.SetPlayerData(key, val) end) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 165b4410..0d2c23ff 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -647,11 +647,10 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.metadata[index] = { } end + self.metadata[index] = type(self.metadata[index]) == 'table' and self.metadata[index] or {} self.metadata[index][value] = subValue end - - self.triggerEvent('esx:updatePlayerData', 'metadata', self.metadata) Player(self.source).state:set('metadata', self.metadata, true) end @@ -697,7 +696,6 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return print(("[^1ERROR^7] xPlayer.clearMeta ^5subValues^7 should be ^5string^7 or ^5table^7, received ^5%s^7!"):format(type(subValues))) end - self.triggerEvent('esx:updatePlayerData', 'metadata', self.metadata) Player(self.source).state:set('metadata', self.metadata, true) end