Files
2026-07-07 21:08:52 +02:00

51 lines
1.4 KiB
Lua

function getJobs()
local jobs = ESX.GetJobs()
local availableJobs = {}
for k, v in pairs(jobs) do
if v.whitelisted == false then
availableJobs[#availableJobs + 1] = {label = v.label, name = k}
end
end
return availableJobs
end
ESX.RegisterServerCallback('esx_joblisting:getJobsList', function(source, cb)
cb(getJobs())
end)
function IsJobAvailable(job)
local jobs = ESX.GetJobs()
local JobToCheck = jobs[job]
return not JobToCheck.whitelisted
end
function IsNearCentre(player)
local Ped = GetPlayerPed(player)
local PedCoords = GetEntityCoords(Ped)
for i = 1, #Config.Zones, 1 do
local distance = #(PedCoords - Config.Zones[i])
if distance < Config.DrawDistance then
return true
end
end
return false
end
RegisterServerEvent('esx_joblisting:setJob')
AddEventHandler('esx_joblisting:setJob', function(job)
local source = source
local xPlayer = ESX.Player(source)
local jobs = getJobs()
if not ESX.DoesJobExist(job, 0) then
print("[^1ERROR^7] Tried Setting User ^5" .. source .. "^7 To Invalid Job - ^5" .. job .. "^7!")
return
end
if xPlayer and IsJobAvailable(job) and IsNearCentre(source) then
xPlayer.setJob(job, 0)
else
print("[^3WARNING^7] User ^5" .. source .. "^7 Attempted to Exploit ^5`esx_joblisting:setJob`^7!")
end
end)