83 lines
1.6 KiB
Lua
83 lines
1.6 KiB
Lua
if Config.Framework ~= "esx" then
|
|
return
|
|
end
|
|
|
|
debugprint("Loading ESX")
|
|
|
|
local export, obj = pcall(function()
|
|
return exports.es_extended:getSharedObject()
|
|
end)
|
|
|
|
if export then
|
|
ESX = obj
|
|
else
|
|
TriggerEvent("esx:getSharedObject", function(esx)
|
|
ESX = esx
|
|
end)
|
|
end
|
|
|
|
debugprint("ESX loaded")
|
|
|
|
function HasItem(source, item)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
return (xPlayer?.getInventoryItem(item)?.count or 0) > 0
|
|
end
|
|
|
|
function RemoveItem(source, item)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
if xPlayer and HasItem(source, item) then
|
|
xPlayer.removeInventoryItem(item, 1)
|
|
return true
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
function AddItem(source, item)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
if not xPlayer then
|
|
return false
|
|
end
|
|
|
|
if xPlayer.canCarryItem and not xPlayer.canCarryItem(item, 1) then
|
|
return false
|
|
elseif not xPlayer.canCarryItem then
|
|
local itemData = xPlayer.getInventoryItem(item)
|
|
|
|
if itemData.limit ~= -1 and itemData.count + 1 > itemData.limit then
|
|
return false
|
|
end
|
|
end
|
|
|
|
xPlayer.addInventoryItem(item, 1)
|
|
|
|
return true
|
|
end
|
|
|
|
function IsPolice(source)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
if not xPlayer then
|
|
return false
|
|
end
|
|
|
|
return PoliceJobsLookup[xPlayer.job.name] == true
|
|
end
|
|
|
|
---@param command string
|
|
---@param description string
|
|
---@param cb fun(source: number)
|
|
function RegisterAdminCommand(command, description, cb)
|
|
ESX.RegisterCommand(command, "admin", function(xPlayer)
|
|
cb(xPlayer.source)
|
|
end, false, {
|
|
help = description
|
|
})
|
|
end
|
|
|
|
function CreateUsableItem(item, cb)
|
|
ESX.RegisterUsableItem(item, cb)
|
|
end
|