186 lines
5.8 KiB
Lua
186 lines
5.8 KiB
Lua
RegisterNetEvent('esx_dmvschool:addLicense')
|
|
AddEventHandler('esx_dmvschool:addLicense', function(type)
|
|
local source = source
|
|
exports['0r-idcard']:setPlayerLicense('driver_license', source, 1)
|
|
end)
|
|
|
|
registerItem(Config.DriverLicense, function(source)
|
|
local found = false
|
|
|
|
if Config.UseDatabaseForDriverLicense then
|
|
local license = getPlayerLicense(getExtendedPlayer(source))
|
|
local result = mysqlQuery("SELECT * FROM 0r_idcard WHERE license = @license", {["@license"] = license})
|
|
local driverLicense = result[1].driver_license
|
|
|
|
if driverLicense == 0 then
|
|
TriggerClientEvent("0r_idcard:client:notify", source, "You don't have a driver license.", "error")
|
|
return
|
|
end
|
|
elseif Config.UseQbLicense then
|
|
local player = getExtendedPlayer(source)
|
|
local driverLicense = player.PlayerData.metadata["licences"]["driver"]
|
|
|
|
if driverLicense == nil or driverLicense == 0 then
|
|
TriggerClientEvent("0r_idcard:client:notify", source, "You don't have a driver license.", "error")
|
|
return
|
|
end
|
|
elseif Config.UseEsxLicense then
|
|
TriggerEvent('esx_license:getLicenses', source, function(licenses)
|
|
for k, v in pairs(licenses) do
|
|
if v.type == "driver" or v.type == "driver_license" then
|
|
found = true
|
|
end
|
|
end
|
|
end)
|
|
|
|
if not found then
|
|
TriggerClientEvent("0r_idcard:client:notify", source, "You don't have a driver license.", "error")
|
|
return
|
|
end
|
|
end
|
|
|
|
local data = useIdCard(source)
|
|
data.cardType = "driver"
|
|
data.jobGrade = 0
|
|
|
|
TriggerClientEvent("0r_idcard:client:showCard", source, data, false, false)
|
|
end)
|
|
|
|
registerItem(Config.WeaponLicense, function(source)
|
|
local found = false
|
|
|
|
if Config.UseDatabaseForWeaponLicense then
|
|
local license = getPlayerLicense(getExtendedPlayer(source))
|
|
local result = mysqlQuery("SELECT * FROM 0r_idcard WHERE license = @license", {["@license"] = license})
|
|
local weaponLicense = result[1].weapon_license
|
|
|
|
if weaponLicense == 0 then
|
|
TriggerClientEvent("0r_idcard:client:notify", source, "You don't have a weapon license.", "error")
|
|
return
|
|
end
|
|
elseif Config.UseQbLicense then
|
|
local player = getExtendedPlayer(source)
|
|
local weaponLicense = player.PlayerData.metadata["licences"]["weapon"]
|
|
|
|
if weaponLicense == nil or weaponLicense == 0 then
|
|
TriggerClientEvent("0r_idcard:client:notify", source, "You don't have a weapon license.", "error")
|
|
return
|
|
end
|
|
elseif Config.UseEsxLicense then
|
|
TriggerEvent('esx_license:getLicenses', source, function(licenses)
|
|
for k, v in pairs(licenses) do
|
|
if v.type == "weapon" or v.type == "weapon_license" then
|
|
found = true
|
|
end
|
|
end
|
|
end)
|
|
|
|
if not found then
|
|
TriggerClientEvent("0r_idcard:client:notify", source, "You don't have a weapon license.", "error")
|
|
return
|
|
end
|
|
end
|
|
|
|
local data = useIdCard(source)
|
|
data.cardType = "weapon"
|
|
data.jobGrade = 0
|
|
|
|
TriggerClientEvent("0r_idcard:client:showCard", source, data, false, false)
|
|
end)
|
|
|
|
function getPlayerName(player)
|
|
if Config.Framework == "qb" then
|
|
return { firstname = player.PlayerData.charinfo.firstname, lastname = player.PlayerData.charinfo.lastname }
|
|
elseif Config.Framework == "esx" then
|
|
local name = player.getName()
|
|
local names = splitString(name, " ")
|
|
if #names > 1 then
|
|
local lastname = ""
|
|
for i = 2, #names do
|
|
if names[i] ~= nil then
|
|
lastname = lastname .. names[i] .. " "
|
|
end
|
|
end
|
|
|
|
return { firstname = names[1], lastname = lastname }
|
|
else
|
|
return { firstname = name, lastname = "" }
|
|
end
|
|
end
|
|
end
|
|
|
|
function splitString(text)
|
|
local t = {}
|
|
for str in string.gmatch(text, "([^%s]+)") do
|
|
table.insert(t, str)
|
|
end
|
|
return t
|
|
end
|
|
|
|
function getBirthDate(player)
|
|
if Config.Framework == "qb" then
|
|
return player.PlayerData.charinfo.birthdate
|
|
elseif Config.Framework == "esx" then
|
|
return player.variables.dateofbirth
|
|
end
|
|
end
|
|
|
|
function getPlayerLicense(player)
|
|
if Config.Framework == "qb" then
|
|
return player.PlayerData.citizenid
|
|
elseif Config.Framework == "esx" then
|
|
return player.getIdentifier()
|
|
end
|
|
end
|
|
|
|
function getGender(player)
|
|
if Config.Framework == "qb" then
|
|
return player.PlayerData.charinfo.gender == 0 and "Male" or "Female"
|
|
elseif Config.Framework == "esx" then
|
|
return player.variables.sex == "m" and "Male" or "Female"
|
|
end
|
|
end
|
|
|
|
function getPlayerJob(src)
|
|
local player = getExtendedPlayer(src)
|
|
|
|
while player == nil do
|
|
Citizen.Wait(100)
|
|
player = getExtendedPlayer(src)
|
|
end
|
|
|
|
if Config.Framework == "qb" then
|
|
return { name = player.PlayerData.job.name, grade = player.PlayerData.job.grade.level }
|
|
elseif Config.Framework == "esx" then
|
|
return { name = player.job.name, grade = player.job.grade }
|
|
end
|
|
end
|
|
|
|
function getPlayerNation(src)
|
|
local player = getExtendedPlayer(src)
|
|
|
|
while player == nil do
|
|
Citizen.Wait(100)
|
|
player = getExtendedPlayer(src)
|
|
end
|
|
|
|
if Config.Framework == "qb" then
|
|
return doesNationIncludesFlag(player.PlayerData.charinfo.nationality)
|
|
elseif Config.Framework == "esx" then
|
|
return doesNationIncludesFlag(player.variables.nationality)
|
|
end
|
|
end
|
|
|
|
function doesNationIncludesFlag(nation)
|
|
if not nation then
|
|
return "us"
|
|
end
|
|
|
|
for k, v in pairs(Nations) do
|
|
if string.lower(k) == string.lower(nation) then
|
|
return v
|
|
end
|
|
end
|
|
|
|
return 'ro'
|
|
end |