Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

!Refactor(core): Statebag removal and changes #1407

Merged
merged 3 commits into from
Oct 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions [core]/es_extended/client/main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,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 @@ -829,8 +827,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 @@ -874,8 +871,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
Loading