From 962e735d6fce2d6761b7025e744157bc5b09b368 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 30 May 2022 15:43:42 +1000 Subject: [PATCH] feat(getCore/server): hasGroup method --- imports/getCore/es_extended/server.lua | 26 ++++++++++++++++ imports/getCore/qb-core/client.lua | 2 +- imports/getCore/qb-core/server.lua | 41 ++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/imports/getCore/es_extended/server.lua b/imports/getCore/es_extended/server.lua index d389c38..7d01c72 100644 --- a/imports/getCore/es_extended/server.lua +++ b/imports/getCore/es_extended/server.lua @@ -16,5 +16,31 @@ return function(resource) return setmetatable(player, CPlayer) end + function CPlayer:hasGroup(filter) + local type = type(filter) + + if type == 'string' then + if self.job.name == filter then + return self.job.name, self.job.grade + end + else + local tabletype = table.type(filter) + + if tabletype == 'hash' then + local grade = filter[self.job.name] + + if grade and grade <= self.job.grade then + return self.job.name, self.job.grade + end + elseif tabletype == 'array' then + for i = 1, #filter do + if self.job.name == filter[i] then + return self.job.name, self.job.grade + end + end + end + end + end + return ESX end diff --git a/imports/getCore/qb-core/client.lua b/imports/getCore/qb-core/client.lua index c06e3d5..97bdbc3 100644 --- a/imports/getCore/qb-core/client.lua +++ b/imports/getCore/qb-core/client.lua @@ -58,7 +58,7 @@ return function(resource) local data = PlayerData[groups[j]] if data.name == group then - return data.group.name, data.grade.level + return data.name, data.grade.level end end end diff --git a/imports/getCore/qb-core/server.lua b/imports/getCore/qb-core/server.lua index c55ed91..96b38d0 100644 --- a/imports/getCore/qb-core/server.lua +++ b/imports/getCore/qb-core/server.lua @@ -16,5 +16,46 @@ return function(resource) return setmetatable(player, CPlayer) end + local groups = { 'job', 'gang' } + + function CPlayer:hasGroup(filter) + local type = type(filter) + + if type == 'string' then + for i = 1, #groups do + local data = self.PlayerData[groups[i]] + + if data.name == filter then + return data.name, data.grade.level + end + end + else + local tabletype = table.type(filter) + + if tabletype == 'hash' then + for i = 1, #groups do + local data = self.PlayerData[groups[i]] + local grade = filter[data.name] + + if grade and grade <= data.grade.level then + return data.name, data.grade.level + end + end + elseif tabletype == 'array' then + for i = 1, #filter do + local group = filter[i] + + for j = 1, #groups do + local data = self.PlayerData[groups[j]] + + if data.name == group then + return data.name, data.grade.level + end + end + end + end + end + end + return QBCore end