mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-01 18:58:54 +00:00
feat(es_extended/server): Store Player's Playtime
Some Notes on this: - Will store per character - adds a command: `/playtime` as 1. an example on using it and 2. a way for players to see their current stats. - Increases Minimum Artifact Requirements to: `9515`
This commit is contained in:
@@ -42,6 +42,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
|
||||
self.weight = weight
|
||||
self.maxWeight = Config.MaxWeight
|
||||
self.metadata = metadata
|
||||
self.lastPlaytime = self.metadata.lastPlaytime or 0
|
||||
self.admin = Core.IsPlayerAdmin(playerId)
|
||||
if Config.Multichar then
|
||||
self.license = "license" .. identifier:sub(identifier:find(":"), identifier:len())
|
||||
@@ -102,6 +103,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
|
||||
_DropPlayer(self.source, reason)
|
||||
end
|
||||
|
||||
---@return number
|
||||
function self.getPlayTime()
|
||||
return self.lastPlaytime + GetPlayerTimeOnline(self.source)
|
||||
end
|
||||
|
||||
---@param money number
|
||||
---@return void
|
||||
function self.setMoney(money)
|
||||
|
||||
@@ -186,6 +186,7 @@ local function updateHealthAndArmorInMetadata(xPlayer)
|
||||
local ped = GetPlayerPed(xPlayer.source)
|
||||
xPlayer.setMeta("health", GetEntityHealth(ped))
|
||||
xPlayer.setMeta("armor", GetPedArmour(ped))
|
||||
xPlayer.setMeta("lastPlaytime", xPlayer.getPlayTime())
|
||||
end
|
||||
|
||||
function Core.SavePlayer(xPlayer, cb)
|
||||
|
||||
@@ -98,9 +98,14 @@ end
|
||||
if not Config.Multichar then
|
||||
AddEventHandler("playerConnecting", function(_, _, deferrals)
|
||||
deferrals.defer()
|
||||
Wait(0) -- Required
|
||||
local playerId = source
|
||||
local identifier = ESX.GetIdentifier(playerId)
|
||||
|
||||
if not GetPlayerTimeOnline then
|
||||
return deferrals.done(("[ESX] ESX Requires a minimum Artifact version of 9515, Please update your server."):format(oneSyncState))
|
||||
end
|
||||
|
||||
if oneSyncState == "off" or oneSyncState == "legacy" then
|
||||
return deferrals.done(("[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s"):format(oneSyncState))
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user