diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index daccaa1d..eabd89be 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) @@ -362,6 +362,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) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 2b3e6295..8d389d7f 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -129,9 +129,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 @@ -477,7 +484,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