From 87849a4d352c79faf8bf5b49d40b2171bd6831ef Mon Sep 17 00:00:00 2001 From: Collective <86518186+DevZiee@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:04:29 +0800 Subject: [PATCH 1/5] refactor: getting player source --- server/server.lua | 87 +++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 49 deletions(-) diff --git a/server/server.lua b/server/server.lua index 43f3b84..f41a677 100644 --- a/server/server.lua +++ b/server/server.lua @@ -1,47 +1,41 @@ Framework = Config.Framework == "esx" and exports['es_extended']:getSharedObject() or exports['qb-core']:GetCoreObject() RegisterNetEvent("aty_dispatch:server:shootingDispatch", function(title, code, location, coords, gender, weapon, vehicleName, vehicle, jobs) - local players = GetPlayers() - - for i, player in ipairs(players) do - local player = tonumber(player) - if Config.Framework == "qb" then - local xPlayer = Framework.Functions.GetPlayer(player) - + if Config.Framework == "qb" then + local xPlayers = Framework.Functions.GetPlayers() + for i = 1, #xPlayers do + local src = xPlayers[i] + local xPlayer = Framework.Functions.GetPlayer(src) if Config.UseGPS then for _, job in pairs(jobs) do local item = xPlayer.Functions.GetItemByName(Config.GPSItem) and xPlayer.Functions.GetItemByName(Config.GPSItem).amount or 0 if xPlayer.PlayerData.job.name == job and item > 0 then - TriggerClientEvent("aty_dispatch:client:shootingDispatch", player, title, code, location, coords, gender, weapon, vehicleName, vehicle) + TriggerClientEvent("aty_dispatch:client:shootingDispatch", src, title, code, location, coords, gender, weapon, vehicleName, vehicle) elseif not item then - Config.Notification("GPS", "You don't have a gps on you.", "error", 5000) + Config.Notification(src, "GPS", "You don't have a gps on you.", "error", 5000) end end else for _, job in pairs(jobs) do if xPlayer.PlayerData.job.name == job then - TriggerClientEvent("aty_dispatch:client:shootingDispatch", player, title, code, location, coords, gender, weapon, vehicleName, vehicle) + TriggerClientEvent("aty_dispatch:client:shootingDispatch", src, title, code, location, coords, gender, weapon, vehicleName, vehicle) end end end - else - local xPlayer = Framework.GetPlayerFromId(player) - + end + else + local xPlayers = Framework.GetExtendedPlayers('job', jobs) + for i = 1, #xPlayers do + local xPlayer = xPlayers[i] if Config.UseGPS then - for _, job in pairs(jobs) do - local item = xPlayer.getInventoryItem(Config.GPSItem) and xPlayer.getInventoryItem(Config.GPSItem).count or 0 - if xPlayer.job.name == job and item > 0 then - TriggerClientEvent("aty_dispatch:client:shootingDispatch", player, title, code, location, coords, gender, weapon, vehicleName, vehicle) - elseif not item then - Config.Notification("GPS", "You don't have a gps on you.", "error", 5000) - end + local item = xPlayer.getInventoryItem(Config.GPSItem) and xPlayer.getInventoryItem(Config.GPSItem).count or 0 + if item > 0 then + TriggerClientEvent("aty_dispatch:client:shootingDispatch", xPlayer.source, title, code, location, coords, gender, weapon, vehicleName, vehicle) + elseif not item then + Config.Notification(xPlayer.source, "GPS", "You don't have a gps on you.", "error", 5000) end else - for _, job in pairs(jobs) do - if xPlayer.job.name == job then - TriggerClientEvent("aty_dispatch:client:shootingDispatch", player, title, code, location, coords, gender, weapon, vehicleName, vehicle) - end - end + TriggerClientEvent("aty_dispatch:client:shootingDispatch", xPlayer.source, title, code, location, coords, gender, weapon, vehicleName, vehicle) end end end @@ -49,46 +43,41 @@ end) RegisterNetEvent("aty_dispatch:server:customDispatch", function(title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite, jobs) local players = GetPlayers() - - for i, player in ipairs(players) do - local player = tonumber(player) - if Config.Framework == "qb" then - local xPlayer = Framework.Functions.GetPlayer(player) - + if Config.Framework == "qb" then + local xPlayers = Framework.Functions.GetPlayers() + for i = 1, #xPlayers do + local src = xPlayers[i] + local xPlayer = Framework.Functions.GetPlayer(src) if Config.UseGPS then for _, job in pairs(jobs) do local item = xPlayer.Functions.GetItemByName(Config.GPSItem) and xPlayer.Functions.GetItemByName(Config.GPSItem).amount or 0 if xPlayer.PlayerData.job.name == job and item > 0 then - TriggerClientEvent("aty_dispatch:client:customDispatch", player, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) + TriggerClientEvent("aty_dispatch:client:customDispatch", src, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) elseif not item then - Config.Notification("GPS", "You don't have a gps on you.", "error", 5000) + Config.Notification(xPlayer.source, "GPS", "You don't have a gps on you.", "error", 5000) end end else for _, job in pairs(jobs) do if xPlayer.PlayerData.job.name == job then - TriggerClientEvent("aty_dispatch:client:customDispatch", player, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) + TriggerClientEvent("aty_dispatch:client:customDispatch", src, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) end end end - else - local xPlayer = Framework.GetPlayerFromId(player) - + end + else + local xPlayers = Framework.GetExtendedPlayers('job', jobs) + for i = 1, #xPlayers do + local xPlayer = xPlayers[i] if Config.UseGPS then - for _, job in pairs(jobs) do - local item = xPlayer.getInventoryItem(Config.GPSItem) and xPlayer.getInventoryItem(Config.GPSItem).count or 0 - if xPlayer.job.name == job and item > 0 then - TriggerClientEvent("aty_dispatch:client:customDispatch", player, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) - elseif not item then - Config.Notification("GPS", "You don't have a gps on you.", "error", 5000) - end + local item = xPlayer.getInventoryItem(Config.GPSItem) and xPlayer.getInventoryItem(Config.GPSItem).count or 0 + if item > 0 then + TriggerClientEvent("aty_dispatch:client:customDispatch", xPlayer.source, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) + elseif not item then + Config.Notification(xPlayer.source, "GPS", "You don't have a gps on you.", "error", 5000) end else - for _, job in pairs(jobs) do - if xPlayer.job.name == job then - TriggerClientEvent("aty_dispatch:client:customDispatch", player, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) - end - end + TriggerClientEvent("aty_dispatch:client:customDispatch", xPlayer.source, title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite) end end end From bf2a6f9acf9d8c29cb3bd18df79d96a541b2397d Mon Sep 17 00:00:00 2001 From: Collective <86518186+DevZiee@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:04:42 +0800 Subject: [PATCH 2/5] refactor: client/server notification --- config.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config.lua b/config.lua index 9c8c921..e26b0df 100644 --- a/config.lua +++ b/config.lua @@ -25,8 +25,12 @@ Config = { BlipRemoveTime = 30, -- Seconds - Notification = function(title, message, type, length) - -- Your notification here + Notification = function(src, title, message, type, length) + if src then + -- Your Server Notification + else + -- Your Client Notification + end end, BlackListedWeapons = { -- Weapons that wont give andalert From cc59e4e90228f4e8742d9c9aa574548b221775ee Mon Sep 17 00:00:00 2001 From: Collective <86518186+DevZiee@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:04:52 +0800 Subject: [PATCH 3/5] refactor: client notification --- client/client.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/client.lua b/client/client.lua index f94d8df..cae2a39 100644 --- a/client/client.lua +++ b/client/client.lua @@ -215,7 +215,7 @@ RegisterCommand('respondDispatch', function() if latestDispatch then SetWaypointOff() SetNewWaypoint(latestDispatch.x, latestDispatch.y) - Config.Notification("Waypoint", "Waypoint Set.", "success", 5000) + Config.Notification(false, "Waypoint", "Waypoint Set.", "success", 5000) latestDispatch = nil end end) From e5977ac81e99db3f96b263db7860fb8f6cd94033 Mon Sep 17 00:00:00 2001 From: Collective <86518186+DevZiee@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:10:28 +0800 Subject: [PATCH 4/5] tweak(client) removed table_size, use `next` --- client/client.lua | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/client/client.lua b/client/client.lua index cae2a39..e6a4b26 100644 --- a/client/client.lua +++ b/client/client.lua @@ -8,26 +8,16 @@ WaitTimes = { Speeding = 0, } -function table_size(tbl) - local size = 0 - - for k, v in pairs(tbl) do - size = size + 1 - end - - return size -end - CreateThread(function() while true do if Config.Framework == "esx" then PlayerData = Framework.GetPlayerData() - if table_size(PlayerData) > 0 then + if next(PlayerData) then PlayerJob = PlayerData.job.name end else PlayerData = Framework.Functions.GetPlayerData() - if table_size(PlayerData) > 0 then + if next(PlayerData) then PlayerJob = PlayerData.job.name end end From f284d8f0a60b702378f428fe8e12a57b42d51e6e Mon Sep 17 00:00:00 2001 From: Collective <86518186+DevZiee@users.noreply.github.com> Date: Fri, 28 Jul 2023 20:17:35 +0800 Subject: [PATCH 5/5] refactor(client): better statement --- client/client.lua | 4 ++-- client/utils.lua | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/client/client.lua b/client/client.lua index e6a4b26..0eb00c1 100644 --- a/client/client.lua +++ b/client/client.lua @@ -73,9 +73,9 @@ CreateThread(function() local gender if Config.Framework == "esx" then - if PlayerData.sex == 1 then gender = "Female" else gender = "Male" end + gender = PlayerData.sex == 1 and "Female" or "Male" else - if PlayerData.charinfo.gender == 1 then gender = "Female" else gender = "Male" end + gender = PlayerData.charinfo.gender == 1 and "Female" or "Male" end ShootingDispatch(location, coords, gender, weapon, vehicleName, vehicle, {"police"}) diff --git a/client/utils.lua b/client/utils.lua index c3e73bb..57e3bcb 100644 --- a/client/utils.lua +++ b/client/utils.lua @@ -25,9 +25,9 @@ function SendDispatch(title, code, blipSprite, jobs) local gender if Config.Framework == "esx" then - if PlayerData.sex == 1 then gender = "Female" else gender = "Male" end + gender = PlayerData.sex == 1 and "Female" or "Male" else - if PlayerData.charinfo.gender == 1 then gender = "Female" else gender = "Male" end + gender = PlayerData.charinfo.gender == 1 and "Female" or "Male" end TriggerServerEvent("aty_dispatch:server:customDispatch", title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite, jobs) @@ -52,9 +52,9 @@ RegisterNetEvent("aty_dispatch:SendDispatch", function(title, code, blipSprite, local gender if Config.Framework == "esx" then - if PlayerData.sex == 1 then gender = "Female" else gender = "Male" end + gender = PlayerData.sex == 1 and "Female" or "Male" else - if PlayerData.charinfo.gender == 1 then gender = "Female" else gender = "Male" end + gender = PlayerData.charinfo.gender == 1 and "Female" or "Male" end TriggerServerEvent("aty_dispatch:server:customDispatch", title, code, location, coords, gender, vehicleName, vehicle, weapon, blipSprite, jobs)