Skip to content

Commit

Permalink
Merge pull request #1407 from Sub-Zero-Interactive/main
Browse files Browse the repository at this point in the history
!Refactor(core): Statebag removal and changes
  • Loading branch information
Gellipapa authored Oct 10, 2024
2 parents 9c13697 + 81daabe commit 39af19e
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 42 deletions.
6 changes: 3 additions & 3 deletions [core]/es_extended/client/main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,6 @@ ESX.RegisterClientCallback("esx:GetVehicleType", function(cb, model)
cb(ESX.GetVehicleType(model))
end)

AddStateBagChangeHandler("metadata", "player:" .. tostring(GetPlayerServerId(PlayerId())), function(_, key, val)
ESX.SetPlayerData(key, val)
end)
RegisterNetEvent('esx:updatePlayerData', function(key, val)
ESX.SetPlayerData(key, val)
end)
14 changes: 5 additions & 9 deletions [core]/es_extended/server/classes/player.lua
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
_ExecuteCommand(("add_principal identifier.%s group.%s"):format(self.license, self.group))

local stateBag = Player(self.source).state
stateBag:set("identifier", self.identifier, true)
stateBag:set("license", self.license, true)
stateBag:set("identifier", self.identifier, false)
stateBag:set("license", self.license, false)
stateBag:set("job", self.job, true)
stateBag:set("group", self.group, true)
stateBag:set("name", self.name, true)
stateBag:set("metadata", self.metadata, true)

---@param eventName string
---@param ... any
Expand All @@ -77,7 +76,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
end

---@param vector boolean
---@param heading boolean
---@param heading boolean
---@return vector3 | vector4 | table
function self.getCoords(vector, heading)
local ped <const> = _GetPlayerPed(self.source)
Expand Down Expand Up @@ -163,7 +162,6 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
---@return void
function self.set(k, v)
self.variables[k] = v
Player(self.source).state:set(k, v, true)
end

---@param k string
Expand Down Expand Up @@ -831,8 +829,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
self.metadata[index] = type(self.metadata[index]) == "table" and self.metadata[index] or {}
self.metadata[index][value] = subValue
end

Player(self.source).state:set("metadata", self.metadata, true)
self.triggerEvent('esx:updatePlayerData', 'metadata', self.metadata)
end

function self.clearMeta(index, subValues)
Expand Down Expand Up @@ -876,8 +873,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
else
return print(("[^1ERROR^7] xPlayer.clearMeta ^5subValues^7 should be ^5string^7 or ^5table^7, received ^5%s^7!"):format(type(subValues)))
end

Player(self.source).state:set("metadata", self.metadata, true)
self.triggerEvent('esx:updatePlayerData', 'metadata', self.metadata)
end

for fnName, fn in pairs(targetOverrides) do
Expand Down
57 changes: 27 additions & 30 deletions [core]/esx_identity/server/main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,34 @@ local function deleteIdentityFromDatabase(xPlayer)
end
end

function SetPlayerData(xPlayer, data)
local name = ("%s %s"):format(data.firstName, data.lastName)
xPlayer.setName(name)
xPlayer.set("firstName", data.firstName)
xPlayer.set("lastName", data.lastName)
xPlayer.set("dateofbirth", data.dateOfBirth)
xPlayer.set("sex", data.sex)
xPlayer.set("height", data.height)

local state = Player(xPlayer.source).state
state:set("name", name, true)
state:set("firstName", data.firstName, true)
state:set("lastName", data.lastName, true)
state:set("dateofbirth", data.dateOfBirth, true)
state:set("sex", data.sex, true)
state:set("height", data.height, true)
end

local function deleteIdentity(xPlayer)
if not alreadyRegistered[xPlayer.identifier] then
return
end

xPlayer.setName(("%s %s"):format(nil, nil))
xPlayer.set("firstName", nil)
xPlayer.set("lastName", nil)
xPlayer.set("dateofbirth", nil)
xPlayer.set("sex", nil)
xPlayer.set("height", nil)
SetPlayerData(xPlayer, {firstName = nil, lastName = nil, dateOfBirth = nil, sex = nil, height = nil})
deleteIdentityFromDatabase(xPlayer)
end


local function saveIdentityToDatabase(identifier, identity)
MySQL.update.await("UPDATE users SET firstname = ?, lastname = ?, dateofbirth = ?, sex = ?, height = ? WHERE identifier = ?", { identity.firstName, identity.lastName, identity.dateOfBirth, identity.sex, identity.height, identifier })
end
Expand Down Expand Up @@ -222,12 +236,8 @@ if Config.UseDeferrals then
end

local currentIdentity = playerIdentity[xPlayer.identifier]
xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName))
xPlayer.set("firstName", currentIdentity.firstName)
xPlayer.set("lastName", currentIdentity.lastName)
xPlayer.set("dateofbirth", currentIdentity.dateOfBirth)
xPlayer.set("sex", currentIdentity.sex)
xPlayer.set("height", currentIdentity.height)
SetPlayerData(xPlayer, currentIdentity)

if currentIdentity.saveToDatabase then
saveIdentityToDatabase(xPlayer.identifier, currentIdentity)
end
Expand All @@ -243,13 +253,8 @@ else
return
end
local currentIdentity = playerIdentity[xPlayer.identifier]
SetPlayerData(xPlayer, currentIdentity)

xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName))
xPlayer.set("firstName", currentIdentity.firstName)
xPlayer.set("lastName", currentIdentity.lastName)
xPlayer.set("dateofbirth", currentIdentity.dateOfBirth)
xPlayer.set("sex", currentIdentity.sex)
xPlayer.set("height", currentIdentity.height)
TriggerClientEvent("esx_identity:setPlayerData", xPlayer.source, currentIdentity)
if currentIdentity.saveToDatabase then
saveIdentityToDatabase(xPlayer.identifier, currentIdentity)
Expand Down Expand Up @@ -340,12 +345,8 @@ else
local currentIdentity = playerIdentity[xPlayer.identifier]

if currentIdentity and alreadyRegistered[xPlayer.identifier] then
xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName))
xPlayer.set("firstName", currentIdentity.firstName)
xPlayer.set("lastName", currentIdentity.lastName)
xPlayer.set("dateofbirth", currentIdentity.dateOfBirth)
xPlayer.set("sex", currentIdentity.sex)
xPlayer.set("height", currentIdentity.height)
SetPlayerData(xPlayer, currentIdentity)

TriggerClientEvent("esx_identity:setPlayerData", xPlayer.source, currentIdentity)
if currentIdentity.saveToDatabase then
saveIdentityToDatabase(xPlayer.identifier, currentIdentity)
Expand Down Expand Up @@ -400,12 +401,8 @@ else

local currentIdentity = playerIdentity[xPlayer.identifier]

xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName))
xPlayer.set("firstName", currentIdentity.firstName)
xPlayer.set("lastName", currentIdentity.lastName)
xPlayer.set("dateofbirth", currentIdentity.dateOfBirth)
xPlayer.set("sex", currentIdentity.sex)
xPlayer.set("height", currentIdentity.height)
SetPlayerData(xPlayer, currentIdentity)

TriggerClientEvent("esx_identity:setPlayerData", xPlayer.source, currentIdentity)
saveIdentityToDatabase(xPlayer.identifier, currentIdentity)
alreadyRegistered[xPlayer.identifier] = true
Expand Down

0 comments on commit 39af19e

Please sign in to comment.