This commit is contained in:
Nordi98 2025-08-04 05:39:52 +02:00
parent 9e03784b6e
commit 53578d1af6
32 changed files with 1857 additions and 0 deletions

View file

@ -0,0 +1,69 @@
if GetResourceState('es_extended') ~= 'started' then return end

ESX = exports['es_extended']:getSharedObject()

local hasQs = GetResourceState('qs-inventory') == 'started'

local metadata = {}

--- Get badge for license
---@param src number Source number
---@param itemName string
---@return string | table
local function GetBadge(src, itemName)
if not Config.Licenses[itemName].badge then return 'none' end
local xPlayer = ESX.GetPlayerFromId(src)
local badgeTable = {
img = Config.Licenses[itemName].badge,
grade = xPlayer.getJob().grade_label
}
return badgeTable
end

--- Create metadata for license
---@param src number Source number
---@param itemTable string | table Item name or table of item names
local function CreateMetaLicense(src, itemTable)
local xPlayer = ESX.GetPlayerFromId(src)

if type(itemTable) == 'string' then
itemTable = { itemTable }
end

if type(itemTable) == 'table' then
for _, v in pairs(itemTable) do
metadata = {
cardtype = v,
identifier = xPlayer.getIdentifier(),
firstname = xPlayer.variables.firstName,
lastname = xPlayer.variables.lastName,
birthdate = xPlayer.variables.dateofbirth,
sex = xPlayer.variables.sex,
nationality = 'Los Santos',
mugShot = 'none',
badge = GetBadge(src, v)
}
if hasQs then return exports['qs-inventory']:AddItem(src, v, 1, false, metadata) end
exports.ox_inventory:AddItem(src, v, 1, metadata)
end
else
print('Invalid parameter type')
end
end

exports('CreateMetaLicense', CreateMetaLicense)


--- Create metadata for license
---@param k string item name
function CreateRegisterItem(k)
if hasQs then
ESX.RegisterUsableItem(k, function(source, item)
TriggerEvent('um-idcard:server:sendData', source, item.info)
end)
return
end
ESX.RegisterUsableItem(k, function(source, _, item)
TriggerEvent('um-idcard:server:sendData', source, item.metadata)
end)
end

View file

@ -0,0 +1,72 @@
if GetResourceState('qb-core') ~= 'started' or GetResourceState('qbx_core') == 'started' then return end

QBCore = exports['qb-core']:GetCoreObject()

local metadata = {}

--- Convert sex number to string M or F
---@param sexString number | string
---@return string
local function GetStringSex(sexString)
if sexString ~= 1 then
sexString = 'M'
else
sexString = 'F'
end
return sexString
end

--- Get badge for license
---@param src number Source number
---@param itemName string
---@return string | table
local function GetBadge(src,itemName)
if not Config.Licenses[itemName].badge then return 'none' end
local Player = QBCore.Functions.GetPlayer(src)
local badgeTable = {
img = Config.Licenses[itemName].badge,
grade = Player.PlayerData.job.grade.name
}
return badgeTable
end

--- Create metadata for license
---@param src number Source number
---@param itemTable string | table Item name or table of item names
local function CreateMetaLicense(src, itemTable)
local Player = QBCore.Functions.GetPlayer(src)

if type(itemTable) == "string" then
itemTable = {itemTable}
end

if type(itemTable) == "table" then
for _, v in pairs(itemTable) do
metadata = {
cardtype = v,
citizenid = Player.PlayerData.citizenid,
firstname = Player.PlayerData.charinfo.firstname,
lastname = Player.PlayerData.charinfo.lastname,
birthdate = Player.PlayerData.charinfo.birthdate,
sex = GetStringSex(Player.PlayerData.charinfo.gender),
nationality = Player.PlayerData.charinfo.nationality,
mugShot = 'none',
badge = GetBadge(src,v)
}
Player.Functions.AddItem(v, 1, false, metadata)
end
else
print("Invalid parameter type")
end
end

exports('CreateMetaLicense', CreateMetaLicense)


--- Create metadata for license
---@param k string item name
function CreateRegisterItem(k)
QBCore.Functions.CreateUseableItem(k, function(source, item)
TriggerEvent('um-idcard:server:sendData', source, item.info or item.metadata)
end)
end

View file

@ -0,0 +1,96 @@
if GetResourceState('qbx_core') ~= 'started' then return end

local metadata = {}

--- Convert sex number to string M or F
---@param sex number
---@return string
local function GetStringSex(sex)
return sex == 1 and 'F' or 'M'
end

--- Get badge for license
---@param src number Source number
---@param itemName string
---@return string | table
local function GetBadge(src, itemName)
if not Config.Licenses[itemName].badge then return 'none' end

local player = exports.qbx_core:GetPlayer(src)
return {
img = Config.Licenses[itemName].badge,
grade = player.PlayerData.job.grade.name
}
end

--- Create metadata for license
---@param src number Source number
---@param itemTable string | table Item name or table of item names
local function CreateMetaLicense(src, itemTable)
local player = exports.qbx_core:GetPlayer(src)

if type(itemTable) == "string" then
itemTable = {itemTable}
end

if type(itemTable) == "table" then
for _, v in pairs(itemTable) do
metadata = {
cardtype = v,
citizenid = player.PlayerData.citizenid,
firstname = player.PlayerData.charinfo.firstname,
lastname = player.PlayerData.charinfo.lastname,
birthdate = player.PlayerData.charinfo.birthdate,
sex = GetStringSex(player.PlayerData.charinfo.gender),
nationality = player.PlayerData.charinfo.nationality,
mugShot = 'none',
badge = GetBadge(src, v)
}
player.Functions.AddItem(v, 1, false, metadata)
end
else
print("Invalid parameter type")
end
end

exports('CreateMetaLicense', CreateMetaLicense)

--- Get metadata for license
---@param src number Source number
---@param itemTable string | table Item name or table of item names
local function GetMetaLicense(src, itemTable)
local player = exports.qbx_core:GetPlayer(src)

if type(itemTable) == "string" then
itemTable = {itemTable}
end

if type(itemTable) == "table" then
for _, v in pairs(itemTable) do
metadata = {
cardtype = v,
citizenid = player.PlayerData.citizenid,
firstname = player.PlayerData.charinfo.firstname,
lastname = player.PlayerData.charinfo.lastname,
birthdate = player.PlayerData.charinfo.birthdate,
sex = GetStringSex(player.PlayerData.charinfo.gender),
nationality = player.PlayerData.charinfo.nationality,
mugShot = 'none',
badge = GetBadge(src,v)
}
return metadata
end
else
print("Invalid parameter type")
end
end

exports('GetMetaLicense', GetMetaLicense)

--- Create metadata for license
---@param k string item name
function CreateRegisterItem(k)
exports.qbx_core:CreateUseableItem(k, function(source, item)
TriggerEvent('um-idcard:server:sendData', source, item.info or item.metadata)
end)
end