sv_utils.lua
editable/sv_utils.lua
Framework = "qb"
local Core
if GetResourceState("qbx_core") == "started" or Config.framework == "qbx" then
Framework = "qbx"
Core = exports.qbx_core
lib.print.info("Detected Framework: QBOX")
elseif GetResourceState("es_extended") == "started" or Config.framework == "esx" then
Framework = "esx"
Core = ESX
lib.print.info("Detected Framework: ESX")
elseif GetResourceState("qb-core") == "started" or Config.framework == "qb" then
Framework = "qb"
Core = exports['qb-core']:GetCoreObject()
lib.print.info("Detected Framework: QB")
else
Framework = Config.framework
end
function GetPlayerJob(src)
local jobName = ""
if Framework == "qb" then
local Player = Core.Functions.GetPlayer(src)
jobName = Player.PlayerData.job.name
return jobName
elseif Framework == "esx" then
local xPlayer = Core.GetPlayerFromId(src)
jobName = xPlayer.getJob().name
return jobName
elseif Framework == "qbx" then
local Player = Core:GetPlayer(src)
jobName = Player.PlayerData.job.name
return jobName
else
--Custom Framework here
return "Unknown"
end
end
function GetPlayerFullName(playerId)
if Framework == "qb" then
local Player = Core.Functions.GetPlayer(playerId)
local fullname = Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname
return fullname
elseif Framework == "esx" then
local xPlayer = Core.GetPlayerFromId(src)
local fullname = xPlayer.getName()
return fullname
elseif Framework == "qbx" then
local Player = Core:GetPlayer(playerId)
local fullname = Player.PlayerData.charinfo.firstname .. " " .. Player.PlayerData.charinfo.lastname
return fullname
else
--Custom Framework here
return "Unknown"
end
end
function GetIdentifier(playerId)
local identifier = nil
if Framework == "qb" then
local Player = Core.Functions.GetPlayer(playerId)
identifier = Player.PlayerData.citizenid
return identifier
elseif Framework == "esx" then
local xPlayer = Core.GetPlayerFromId(src)
identifier = xPlayer.getIdentifier()
return identifier
elseif Framework == "qbx" then
local Player = Core:GetPlayer(playerId)
identifier = Player.PlayerData.citizenid
return identifier
else
--Custom Framework here
return nil
end
end
if GetResourceState("ox_inventory") == "started" or Config.inventory == "ox" then
lib.print.info("Detected Inventory: OX Inventory")
elseif GetResourceState("qb-inventory") == "started" or Config.inventory == "qb" then
return
else
if Framework == "esx" then
for k,v in pairs(Config.GpsItems) do
Core.RegisterUsableItem(k, function(playerId)
local pJob = GetPlayerJob(playerId)
for _, job in pairs(v.jobs) do
if job == pJob then
TriggerClientEvent("cdw-gps:client:useItem", playerId, k)
return
end
end
TriggerClientEvent("cdw-gps:client:notify", playerId)
end)
end
elseif Framework == "qb" then
for k,v in pairs(Config.GpsItems) do
Core.Functions.CreateUseableItem(k, function(source, item)
local pJob = GetPlayerJob(source)
for _, job in pairs(v.jobs) do
if job == pJob then
TriggerClientEvent("cdw-gps:client:useItem", source, k)
return
end
end
TriggerClientEvent("cdw-gps:client:notify", source)
end)
end
else
--Custom Inventory Logic Here
end
end
Last updated