From 5e44373d80c3eb94bad3b068788f5c742adb3e30 Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:26:24 +0200 Subject: [PATCH 1/4] refactor: simplify the `GetExtendedPlayers` function --- [core]/es_extended/server/functions.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 202e1b5e..9b6e2135 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -214,13 +214,11 @@ end ESX.GetPlayers = GetPlayers function ESX.GetExtendedPlayers(key, val) + if not key then return ESX.Players end + local xPlayers = {} for k, v in pairs(ESX.Players) do - if key then - if (key == 'job' and v.job.name == val) or v[key] == val then - xPlayers[#xPlayers + 1] = v - end - else + if (key == 'job' and v.job.name == val) or v[key] == val then xPlayers[#xPlayers + 1] = v end end From 0104223af455764fc3fc11ecc7e8531f36574dc6 Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:39:27 +0200 Subject: [PATCH 2/4] feat: `GetExtendedPlayers` can take a table as a second parameter --- [core]/es_extended/server/functions.lua | 26 ++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index fbda3d4e..a3a34878 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -221,15 +221,35 @@ end ESX.GetPlayers = GetPlayers +local function checkTable(key, val, player) + for valIndex = 1, #val do + local value = val[valIndex] + if not xPlayers[value] then + xPlayers[value] = {} + end + + if (key == 'job' and player.job.name == value) or player[key] == value then + xPlayers[value][#xPlayers[value] + 1] = v + end + end +end + function ESX.GetExtendedPlayers(key, val) if not key then return ESX.Players end local xPlayers = {} - for k, v in pairs(ESX.Players) do - if (key == 'job' and v.job.name == val) or v[key] == val then - xPlayers[#xPlayers + 1] = v + if type(val) == "table" then + for k, v in pairs(ESX.Players) do + checkTable(key, val, v) + end + else + for k, v in pairs(ESX.Players) do + if (key == 'job' and v.job.name == val) or v[key] == val then + xPlayers[#xPlayers + 1] = v + end end end + return xPlayers end From f43c81f07e50f0e3659cf2613e1ac770adefa5f7 Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:43:13 +0200 Subject: [PATCH 3/4] refactor: add forgotten codes --- [core]/es_extended/server/functions.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index a3a34878..4192a51f 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -221,7 +221,7 @@ end ESX.GetPlayers = GetPlayers -local function checkTable(key, val, player) +local function checkTable(key, val, player, xPlayers) for valIndex = 1, #val do local value = val[valIndex] if not xPlayers[value] then @@ -229,7 +229,7 @@ local function checkTable(key, val, player) end if (key == 'job' and player.job.name == value) or player[key] == value then - xPlayers[value][#xPlayers[value] + 1] = v + xPlayers[value][#xPlayers[value] + 1] = player end end end @@ -240,7 +240,7 @@ function ESX.GetExtendedPlayers(key, val) local xPlayers = {} if type(val) == "table" then for k, v in pairs(ESX.Players) do - checkTable(key, val, v) + checkTable(key, val, v, xPlayers) end else for k, v in pairs(ESX.Players) do From ad4227d9745419699681f0fe22490d4906943718 Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:48:26 +0200 Subject: [PATCH 4/4] refactor: correction of lint errors --- [core]/es_extended/server/functions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 4192a51f..6ef5bbff 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -239,11 +239,11 @@ function ESX.GetExtendedPlayers(key, val) local xPlayers = {} if type(val) == "table" then - for k, v in pairs(ESX.Players) do + for _, v in pairs(ESX.Players) do checkTable(key, val, v, xPlayers) end else - for k, v in pairs(ESX.Players) do + for _, v in pairs(ESX.Players) do if (key == 'job' and v.job.name == val) or v[key] == val then xPlayers[#xPlayers + 1] = v end