From bc1e5519af35ae690407210d4d65f66261d67f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=C4=87?= Date: Sat, 4 May 2024 19:49:33 +0200 Subject: [PATCH 1/2] feat(Player): implement `esx:setGroup` event --- [core]/es_extended/server/classes/player.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index ad3fd030..91dee8cf 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -127,9 +127,16 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, ---@param newGroup string ---@return void function self.setGroup(newGroup) + local lastGroup = self.group + _ExecuteCommand(("remove_principal identifier.%s group.%s"):format(self.license, self.group)) + self.group = newGroup + + _TriggerEvent("esx:setGroup", self.source, self.group, lastGroup) + self.triggerEvent("esx:setGroup", self.group, lastGroup) Player(self.source).state:set("group", self.group, true) + _ExecuteCommand(("add_principal identifier.%s group.%s"):format(self.license, self.group)) end @@ -475,7 +482,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, skin_female = gradeObject.skin_female and json.decode(gradeObject.skin_female) or {}, } - TriggerEvent("esx:setJob", self.source, self.job, lastJob) + _TriggerEvent("esx:setJob", self.source, self.job, lastJob) self.triggerEvent("esx:setJob", self.job, lastJob) Player(self.source).state:set("job", self.job, true) end From c612b5b259d3c1c33fbbf91732e02d91ae4538d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=C4=87?= Date: Sat, 4 May 2024 19:56:10 +0200 Subject: [PATCH 2/2] feat(Client): update playerdata on group update --- [core]/es_extended/client/main.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 476e4f99..06fea5a2 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -24,7 +24,7 @@ function ESX.SpawnPlayer(skin, coords, cb) p:resolve() end) Citizen.Await(p) - + local playerPed = PlayerPedId() FreezeEntityPosition(playerPed, true) SetEntityCoordsNoOffset(playerPed, coords.x, coords.y, coords.z, false, false, false, true) @@ -56,7 +56,7 @@ AddEventHandler("esx:playerLoaded", function(xPlayer, _, skin) while not DoesEntityExist(ESX.PlayerData.ped) do Wait(20) end - + ESX.PlayerLoaded = true local metadata = ESX.PlayerData.metadata @@ -72,7 +72,7 @@ AddEventHandler("esx:playerLoaded", function(xPlayer, _, skin) local timer = GetGameTimer() while not HaveAllStreamingRequestsCompleted(ESX.PlayerData.ped) and (GetGameTimer() - timer) < 2000 do Wait(0) - end + end if Config.EnablePVP then SetCanAttackFriendly(ESX.PlayerData.ped, true, false) @@ -378,6 +378,11 @@ AddEventHandler("esx:setJob", function(Job) ESX.SetPlayerData("job", Job) end) +RegisterNetEvent("esx:setGroup") +AddEventHandler("esx:setGroup", function(group) + ESX.SetPlayerData("group", group) +end) + if not Config.OxInventory then RegisterNetEvent("esx:createPickup") AddEventHandler("esx:createPickup", function(pickupId, label, coords, itemType, name, components, tintIndex)