mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 01:08:54 +00:00
Merge pull request #1407 from Sub-Zero-Interactive/main
!Refactor(core): Statebag removal and changes
This commit is contained in:
@@ -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)
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user