diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 709031fd..620e7b72 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -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) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 4ed4b39a..cb454ab3 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -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) diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 26cab119..26efb4dd 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -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