mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-28 17:01:14 +00:00
refactor(server/functions): Core.SavePlayers()
format: Core.SavePlayer
This commit is contained in:
@@ -176,10 +176,21 @@ function ESX.TriggerServerCallback(name, requestId, source,Invoke, cb, ...)
|
||||
end
|
||||
|
||||
function Core.SavePlayer(xPlayer, cb)
|
||||
local parameters <const> = {
|
||||
json.encode(xPlayer.getAccounts(true)),
|
||||
xPlayer.job.name,
|
||||
xPlayer.job.grade,
|
||||
xPlayer.group,
|
||||
json.encode(xPlayer.getCoords()),
|
||||
json.encode(xPlayer.getInventory(true)),
|
||||
json.encode(xPlayer.getLoadout(true)),
|
||||
xPlayer.identifier
|
||||
}
|
||||
|
||||
MySQL.prepare(
|
||||
'UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ? WHERE `identifier` = ?',
|
||||
{json.encode(xPlayer.getAccounts(true)), xPlayer.job.name, xPlayer.job.grade, xPlayer.group, json.encode(xPlayer.getCoords()),
|
||||
json.encode(xPlayer.getInventory(true)), json.encode(xPlayer.getLoadout(true)), xPlayer.identifier}, function(affectedRows)
|
||||
parameters,
|
||||
function(affectedRows)
|
||||
if affectedRows == 1 then
|
||||
print(('[^2INFO^7] Saved player ^5"%s^7"'):format(xPlayer.name))
|
||||
TriggerEvent('esx:playerSaved', xPlayer.playerId, xPlayer)
|
||||
@@ -187,33 +198,47 @@ function Core.SavePlayer(xPlayer, cb)
|
||||
if cb then
|
||||
cb()
|
||||
end
|
||||
end)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
function Core.SavePlayers(cb)
|
||||
local xPlayers = ESX.GetExtendedPlayers()
|
||||
local count = #xPlayers
|
||||
if count > 0 then
|
||||
local parameters = {}
|
||||
local time = os.time()
|
||||
for i = 1, count do
|
||||
local xPlayer = xPlayers[i]
|
||||
parameters[#parameters + 1] = {json.encode(xPlayer.getAccounts(true)), xPlayer.job.name, xPlayer.job.grade, xPlayer.group,
|
||||
json.encode(xPlayer.getCoords()), json.encode(xPlayer.getInventory(true)), json.encode(xPlayer.getLoadout(true)),
|
||||
xPlayer.identifier}
|
||||
end
|
||||
MySQL.prepare(
|
||||
"UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ? WHERE `identifier` = ?",
|
||||
parameters, function(results)
|
||||
if results then
|
||||
if type(cb) == 'function' then
|
||||
cb()
|
||||
else
|
||||
print(('[^2INFO^7] Saved ^5%s^7 %s over ^5%s^7 ms'):format(count, count > 1 and 'players' or 'player', ESX.Math.Round((os.time() - time) / 1000000, 2)))
|
||||
end
|
||||
end
|
||||
end)
|
||||
local xPlayers <const> = ESX.Players
|
||||
if not next(xPlayers) then
|
||||
return
|
||||
end
|
||||
|
||||
local startTime <const> = os.time()
|
||||
local parameters = {}
|
||||
|
||||
for _, xPlayer in pairs(ESX.Players) do
|
||||
parameters[#parameters + 1] = {
|
||||
json.encode(xPlayer.getAccounts(true)),
|
||||
xPlayer.job.name,
|
||||
xPlayer.job.grade,
|
||||
xPlayer.group,
|
||||
json.encode(xPlayer.getCoords()),
|
||||
json.encode(xPlayer.getInventory(true)),
|
||||
json.encode(xPlayer.getLoadout(true)),
|
||||
xPlayer.identifier
|
||||
}
|
||||
end
|
||||
|
||||
MySQL.prepare(
|
||||
"UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ? WHERE `identifier` = ?",
|
||||
parameters,
|
||||
function(results)
|
||||
if not results then
|
||||
return
|
||||
end
|
||||
|
||||
if type(cb) == 'function' then
|
||||
return cb()
|
||||
end
|
||||
|
||||
print(('[^2INFO^7] Saved ^5%s^7 %s over ^5%s^7 ms'):format(#parameters, #parameters > 1 and 'players' or 'player', ESX.Math.Round((os.time() - startTime) / 1000000, 2)))
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
ESX.GetPlayers = GetPlayers
|
||||
|
||||
Reference in New Issue
Block a user