Files
red-valley/resources/[framework]/[addons]/0r_idcard/server/events.lua
2026-03-29 21:41:17 +03:00

91 lines
4.6 KiB
Lua

RegisterNetEvent("0r_idcard:server:showCard", function(target, data, isJobCard, shown)
TriggerClientEvent("0r_idcard:client:showCard", target, data, isJobCard, shown)
end)
RegisterNetEvent("0r_idcard:server:saveHeadshot", function(shot)
local src = source
local player = getExtendedPlayer(src)
local license = getPlayerLicense(player)
if license then
local result = mysqlQuery("SELECT id_card_given FROM 0r_idcard WHERE license = @license", {["@license"] = license})
if result[1] then
-- Update photo
mysqlQuery("UPDATE 0r_idcard SET photo = @photo WHERE license = @license", {["@photo"] = shot, ["@license"] = license})
-- Give id_card only once (first mugshot)
if result[1].id_card_given == 0 then
addItem(src, Config.IdCard, 1)
mysqlQuery("UPDATE 0r_idcard SET id_card_given = 1 WHERE license = @license", {["@license"] = license})
end
else
mysqlQuery("INSERT INTO 0r_idcard (license, photo, id_card_given) VALUES (@license, @photo, 1)", {["@license"] = license, ["@photo"] = shot})
addItem(src, Config.IdCard, 1)
end
end
end)
RegisterNetEvent("0r_idcard:server:loadCard", function(shot)
local src = source
local ok, player = pcall(getExtendedPlayer, src)
if not ok or player == nil then
return
end
local license = getPlayerLicense(player)
if license then
local result = mysqlQuery("SELECT photo FROM 0r_idcard WHERE license = @license", {["@license"] = license})
if not result[1] then
mysqlQuery("INSERT INTO 0r_idcard (license, photo) VALUES (@license, @photo)", {["@license"] = license, ["@photo"] = shot})
end
end
local ok2, cardData = pcall(useIdCard, src)
if ok2 then
TriggerClientEvent("0r_idcard:client:setCardData", src, cardData)
end
end)
RegisterNetEvent("0r_idcard:server:createFakeCard", function(name, surname, job, date, male, female, shot, cardtype)
local src = source
local gender = male and "Male" or "Female"
if removeMoney(src, Config.FakeCardPrice) then
local player = getExtendedPlayer(src)
local license = getPlayerLicense(player)
local result = mysqlQuery("SELECT * FROM 0r_idcard_fakecards WHERE license = @license", {["@license"] = license})
local updated = false
local timestamp = math.floor(date / 1000)
local birthdate = os.date('%Y-%m-%d', timestamp)
for k, v in pairs(result) do
if v.card_type == "citizen" and job == 'citizen' then
updated = true
mysqlQuery("UPDATE 0r_idcard_fakecards SET card_name = @card_name, card_surname = @card_surname, card_birthdate = @card_birthdate, card_sex = @card_sex, card_photo = @card_photo WHERE license = @license AND card_type = 'citizen'",
{["@card_name"] = name, ["@card_surname"] = surname, ["@card_birthdate"] = birthdate, ["@card_sex"] = gender, ["@card_photo"] = shot, ["@license"] = license})
TriggerClientEvent("0r_idcard:client:notify", src, "Your ID card has been updated", "success")
elseif v.card_type ~= "citizen" and job ~= 'citizen' then
updated = true
mysqlQuery("UPDATE 0r_idcard_fakecards SET card_name = @card_name, card_surname = @card_surname, card_birthdate = @card_birthdate, card_sex = @card_sex, card_photo = @card_photo, card_type = @card_type WHERE license = @license AND card_type NOT LIKE 'citizen'",
{["@card_name"] = name, ["@card_surname"] = surname, ["@card_birthdate"] = birthdate, ["@card_sex"] = gender, ["@card_photo"] = shot, ["@license"] = license, ["@card_type"] = job})
TriggerClientEvent("0r_idcard:client:notify", src, "Your job card has been updated", "success")
end
end
if not updated then
mysqlQuery("INSERT INTO 0r_idcard_fakecards (license, card_type, card_name, card_surname, card_birthdate, card_sex, card_photo) VALUES (@license, @card_type, @card_name, @card_surname, @card_birthdate, @card_sex, @card_photo)",
{["@license"] = license, ["@card_type"] = job, ["@card_name"] = name, ["@card_surname"] = surname, ["@card_birthdate"] = birthdate, ["@card_sex"] = gender , ["@card_photo"] = shot})
TriggerClientEvent("0r_idcard:client:notify", src, "Your ID card has been created", "success")
end
addItem(src, cardtype == 'citizen' and Config.FakeIdCard or Config.FakeJobCard, 1)
else
TriggerClientEvent("0r_idcard:client:notify", src, "You don't have enough money", "error")
end
end)