84 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
---@diagnostic disable: undefined-field
 | 
						|
ESX = nil
 | 
						|
QBCore = nil
 | 
						|
 | 
						|
if (GetResourceState('es_extended') == 'started') then
 | 
						|
    ESX = exports['es_extended']:getSharedObject()
 | 
						|
elseif (GetResourceState('qb-core') == 'started') then
 | 
						|
    QBCore = exports['qb-core']:GetCoreObject()
 | 
						|
end
 | 
						|
 | 
						|
Functions = {}
 | 
						|
 | 
						|
Functions.HasItem = function(playerId, itemName)
 | 
						|
    if ESX then
 | 
						|
        local xPlayer = ESX.GetPlayerFromId(playerId)
 | 
						|
        return xPlayer.getInventoryItem(itemName).count > 0
 | 
						|
    elseif QBCore then
 | 
						|
        local Player = QBCore.Functions.GetPlayer(playerId)
 | 
						|
        return Player.Functions.GetItemByName(itemName).amount > 0
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
Functions.RemoveItem = function(playerId, itemName, amount)
 | 
						|
    if ESX then
 | 
						|
        local xPlayer = ESX.GetPlayerFromId(playerId)
 | 
						|
        xPlayer.removeInventoryItem(itemName, amount)
 | 
						|
    elseif QBCore then
 | 
						|
        local Player = QBCore.Functions.GetPlayer(playerId)
 | 
						|
        Player.Functions.RemoveItem(itemName, amount)
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
Functions.GetPolicePlayers = function()
 | 
						|
    if not Config.allowedJobs then
 | 
						|
        return { -1 }
 | 
						|
    end
 | 
						|
 | 
						|
    local jobs = {}
 | 
						|
    for jobName, _ in pairs(Config.allowedJobs) do
 | 
						|
        jobs[#jobs + 1] = jobName
 | 
						|
    end
 | 
						|
 | 
						|
    local playerIds = {}
 | 
						|
 | 
						|
    if ESX then
 | 
						|
        local result = ESX.GetExtendedPlayers('job', jobs)
 | 
						|
        for key, xPlayers in pairs(result) do
 | 
						|
            for i = 1, #xPlayers do
 | 
						|
                playerIds[#playerIds + 1] = xPlayers[i].source
 | 
						|
            end
 | 
						|
        end
 | 
						|
    elseif QBCore then
 | 
						|
        for jobName, _ in pairs(Config.allowedJobs) do
 | 
						|
            local players = QBCore.Functions.GetPlayersOnDuty(jobName)
 | 
						|
            for i = 1, #players do
 | 
						|
                playerIds[#playerIds + 1] = players[i]
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    return playerIds
 | 
						|
end
 | 
						|
 | 
						|
--[[
 | 
						|
-- If you are using an older version of ESX, and the blips are not showing up, you can use this function instead of the one above.
 | 
						|
Functions.GetPolicePlayers = function()
 | 
						|
    local jobs = {}
 | 
						|
    for jobName, _ in pairs(Config.allowedJobs) do
 | 
						|
        jobs[#jobs + 1] = jobName
 | 
						|
    end
 | 
						|
 | 
						|
    local playerIds = {}
 | 
						|
 | 
						|
    for i = 1, #jobs do
 | 
						|
        local jobName = jobs[i]
 | 
						|
        local result = ESX.GetExtendedPlayers('job', jobName)
 | 
						|
        for key, xPlayer in pairs(result) do
 | 
						|
            playerIds[#playerIds + 1] = xPlayer.source
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    return playerIds
 | 
						|
end
 | 
						|
]]
 |