diff --git a/imports/getCore/es_extended/client.lua b/imports/getCore/es_extended/client.lua index e905fc8..5219f24 100644 --- a/imports/getCore/es_extended/client.lua +++ b/imports/getCore/es_extended/client.lua @@ -1,5 +1,40 @@ +if not lib.player then lib.player() end + return function(resource) local ESX = exports[resource]:getSharedObject() - -- Eventually add some functions here to simplify the creation of framework-agnostic resources. + + RegisterNetEvent('esx:playerLoaded', function(xPlayer) + ESX.PlayerData = xPlayer + end) + + RegisterNetEvent('esx:setJob', function(job) + ESX.PlayerData.job = job + end) + + lib.addPlayerMethod('hasGroup', function(self, filter) + local type = type(filter) + + if type == 'string' then + return ESX.PlayerData.job.name == filter + end + + local tabletype = table.type(filter) + + if tabletype == 'hash' then + local grade = filter[ESX.PlayerData.job.name] + return grade and grade <= ESX.PlayerData.job.grade + end + + if tabletype == 'array' then + for i = 1, #filter do + if ESX.PlayerData.job.name == filter[i] then + return true + end + end + + return false + end + end) + return ESX end diff --git a/imports/getCore/qb-core/client.lua b/imports/getCore/qb-core/client.lua index 31810eb..03e0d1a 100644 --- a/imports/getCore/qb-core/client.lua +++ b/imports/getCore/qb-core/client.lua @@ -1,5 +1,58 @@ +if not lib.player then lib.player() end + return function(resource) local QBCore = exports[resource]:GetCoreObject() - -- Eventually add some functions here to simplify the creation of framework-agnostic resources. + local PlayerData + + RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() + PlayerData = QBCore.Functions.GetPlayerData() + end) + + RegisterNetEvent('QBCore:Client:OnJobUpdate', function(job) + PlayerData.job = job + end) + + RegisterNetEvent('QBCore:Client:OnGangUpdate', function(gang) + PlayerData.gang = gang + end) + + lib.addPlayerMethod('hasGroup', function(self, filter) + local type = type(filter) + + if type == 'string' then + return PlayerData.job.name == filter or PlayerData.gang.name == filter + end + + local tabletype = table.type(filter) + + if tabletype == 'hash' then + local jobGrade = filter[PlayerData.job.name] + + if jobGrade then + return jobGrade <= PlayerData.job.grade + end + + local gangGrade = filter[PlayerData.gang.name] + + if gangGrade then + return gangGrade <= PlayerData.gang.grade + end + + return false + end + + if tabletype == 'array' then + for i = 1, #filter do + local group = filter[i] + + if PlayerData.job.name == group or PlayerData.gang.name == group then + return true + end + end + + return false + end + end) + return QBCore end