Scripts/resources/[qb]/[qb_extras]/qb-vip/server/main.lua

775 lines
37 KiB
Lua
Raw Normal View History

2024-12-29 20:07:10 +00:00
if AK4Y.Framework == "qb" then
QBCore = exports['qb-core']:GetCoreObject()
elseif AK4Y.Framework == "oldqb" then
QBCore = nil
TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end)
end
QBCore.Functions.CreateCallback('ak4y-donateSystem:getPlayerDetails', function(source, cb)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local charInfo = xPlayer.PlayerData.charinfo
local callbackData = {}
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] == nil then
callbackData = {
playerData = {
["credit"] = 0,
},
charInfo = charInfo,
}
else
callbackData = {playerData = result[1], charInfo = charInfo, avatar = getPlayerAvatar(_source)}
end
cb(callbackData)
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:sendInput', function(source, cb, data)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local inputData = data.input
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem_codes WHERE code = ?', { inputData })
if result[1] ~= nil then
MySQL.query('DELETE FROM ak4y_donatesystem_codes WHERE code = ?', {inputData})
local result2 = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result2[1] ~= nil then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit + '..result[1].credit..' WHERE citizenid = ?', { citizenId })
else
MySQL.insert('INSERT INTO ak4y_donatesystem (citizenid, credit) VALUES (?, ?)', {
citizenId,
result[1].credit,
})
end
SendToDiscord("CitizenID: ``"..citizenId.."``\nCredit: ``"..result[1].credit.."\nCode: ``"..inputData.."``\nUsed code!")
cb(result[1].credit)
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem_codes WHERE code = @code", {
["@code"] = inputData
}, function (result)
if result[1] ~= nil then
MySQL.Async.execute('DELETE FROM ak4y_donatesystem_codes WHERE code = @code', {['@code'] = inputData})
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result2)
if result2[1] ~= nil then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit + @credit WHERE citizenid = @citizenid", {
['@citizenid'] = citizenId,
['@credit'] = result[1].credit
})
else
MySQL.Async.execute('INSERT INTO ak4y_donatesystem (citizenid, credit) VALUES (@citizenid, @credit)', {
["@citizenid"] = citizenId,
["@credit"] = result[1].credit,
})
end
SendToDiscord("CitizenID: ``"..citizenId.."``\nCredit: ``"..result[1].credit.."\nCode: ``"..inputData.."``\nUsed code!")
cb(result[1].credit)
end)
else
cb(false)
end
end)
end
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:getVehicle', function(source, cb, veri)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local data = nil
local data2 = veri
if data2.itemInfo.vehType == "car" then
for k, v in pairs(AK4Y.Vehicles) do
if v.id == veri.itemInfo.id then
data = v
break
end
end
elseif data2.itemInfo.vehType == "air" then
for k, v in pairs(AK4Y.Helicopters) do
if v.id == veri.itemInfo.id then
data = v
data2.itemInfo.vehType = "helicopter"
break
end
end
end
if data then
local vehicle = data.spawnName
local plate = GeneratePlate()
print("1", plate)
if AK4Y.Mysql == "mysql-async" then
while plate == nil do
Wait(10)
end
end
print("2", plate)
local costCredit = tonumber(data.costCredit)
local plateCheck = false
if data2.extra ~= "undefined" then
plateCheck = true
plate = data2.extra:upper()
costCredit = costCredit + AK4Y.CustomPlatePriceOnBuyVehicle
end
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] ~= nil then
if result[1].credit >= costCredit then
if plateCheck then
local resultPlate = MySQL.query.await('SELECT * FROM player_vehicles WHERE plate = ?', { plate })
if resultPlate[1] == nil then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
MySQL.insert('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, garage, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?)', {
xPlayer.PlayerData.license,
citizenId,
vehicle,
GetHashKey(vehicle),
'{}',
plate,
AK4Y.DefaultGarage,
1
})
SendToDiscord("CitizenID: ``"..citizenId.."``\nVehicle: ``"..vehicle.."\nPlate: ``"..plate.."``\nPurchased vehicle!")
cb(true)
else
cb(false)
end
else
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
MySQL.insert('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, garage, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?)', {
xPlayer.PlayerData.license,
citizenId,
vehicle,
GetHashKey(vehicle),
'{}',
plate,
AK4Y.DefaultGarage,
1
})
SendToDiscord("CitizenID: ``"..citizenId.."``\nVehicle: ``"..vehicle.."\nPlate: ``"..plate.."``\nPurchased vehicle!")
cb(true)
end
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result)
if result[1] ~= nil then
if result[1].credit >= costCredit then
if plateCheck then
MySQL.Async.fetchAll('SELECT * FROM player_vehicles WHERE plate = @plate', {
["@plate"] = plate
}, function (resultPlate)
if resultPlate[1] == nil then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
MySQL.Async.execute('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, garage, state) VALUES (@license, @citizenid, @vehicle, @hash, @mods, @plate, @garage, @state)', {
["@license"] = xPlayer.PlayerData.license,
["@citizenid"] = citizenId,
["@vehicle"] = vehicle,
["@hash"] = GetHashKey(vehicle),
["@mods"] = '{}',
["@plate"] = plate,
["@garage"] = AK4Y.DefaultGarage,
["@state"] = 1
})
SendToDiscord("CitizenID: ``"..citizenId.."``\nVehicle: ``"..vehicle.."\nPlate: ``"..plate.."``\nPurchased vehicle!")
cb(true)
else
cb(false)
end
end)
else
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
MySQL.Async.execute('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, garage, state) VALUES (@license, @citizenid, @vehicle, @hash, @mods, @plate, @garage, @state)', {
["@license"] = xPlayer.PlayerData.license,
["@citizenid"] = citizenId,
["@vehicle"] = vehicle,
["@hash"] = GetHashKey(vehicle),
["@mods"] = '{}',
["@plate"] = plate,
["@garage"] = AK4Y.DefaultGarage,
["@state"] = 1
})
SendToDiscord("CitizenID: ``"..citizenId.."``\nVehicle: ``"..vehicle.."\nPlate: ``"..plate.."``\nPurchased vehicle!")
cb(true)
end
else
cb(false)
end
else
cb(false)
end
end)
end
else
cb(false)
end
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:getWeapon', function(source, cb, veri)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local data = nil
for k, v in pairs(AK4Y.Weapons) do
if v.id == veri.itemInfo.id then
data = v
break
end
end
if data then
local costCredit = tonumber(data.costCredit)
local rewardItem = data.weaponName
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
if AK4Y.WeaponType == "item" then
xPlayer.Functions.AddItem(rewardItem, 1)
elseif AK4Y.WeaponType == "weapon" then
xPlayer.addWeapon(rewardItem, 1)
end
SendToDiscord("CitizenID: ``"..citizenId.."``\nItem: ``"..rewardItem.."``\nGot item!")
cb(true)
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result)
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
if AK4Y.WeaponType == "item" then
xPlayer.Functions.AddItem(rewardItem, 1)
elseif AK4Y.WeaponType == "weapon" then
xPlayer.addWeapon(rewardItem, 1)
end
SendToDiscord("CitizenID: ``"..citizenId.."``\nItem: ``"..rewardItem.."``\nGot item!")
cb(true)
else
cb(false)
end
else
cb(false)
end
end)
end
else
cb(false)
end
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:getItem', function(source, cb, veri)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local data = nil
for k, v in pairs(AK4Y.Items) do
if v.id == veri.itemInfo.id then
data = v
break
end
end
if data then
local costCredit = tonumber(data.costCredit)
local rewardItem = data.itemName
local rewardItemCount = data.itemCount
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
xPlayer.Functions.AddItem(rewardItem, rewardItemCount)
SendToDiscord("CitizenID: ``"..citizenId.."``\nItem: ``"..rewardItem.."``\nGot item!")
cb(true)
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result)
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
xPlayer.Functions.AddItem(rewardItem, rewardItemCount)
SendToDiscord("CitizenID: ``"..citizenId.."``\nItem: ``"..rewardItem.."``\nGot item!")
cb(true)
else
cb(false)
end
else
cb(false)
end
end)
end
else
cb(false)
end
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:getMoney', function(source, cb, veri)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local data = nil
for k, v in pairs(AK4Y.Money) do
if v.id == veri.itemInfo.id then
data = v
break
end
end
if data then
local costCredit = tonumber(data.costCredit)
local rewardMoney = data.inGameMoney
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
xPlayer.Functions.AddMoney('bank', rewardMoney)
SendToDiscord("CitizenID: ``"..citizenId.."``\nMoney:``"..rewardMoney.."``\nGot money!")
cb(true)
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result)
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
xPlayer.Functions.AddMoney('bank', rewardMoney)
SendToDiscord("CitizenID: ``"..citizenId.."``\nMoney:``"..rewardMoney.."``\nGot money!")
cb(true)
else
cb(false)
end
else
cb(false)
end
end)
end
else
cb(false)
end
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:getCustomPlate', function(source, cb, veri, plate)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local data = nil
for k, v in pairs(AK4Y.Customize) do
if v.id == veri.itemInfo.id then
data = v
break
end
end
if data then
local costCredit = tonumber(data.costCredit)
local newPlate = veri.input:upper()
local oldPlate = string.gsub(plate, "%s+", "")
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] ~= nil then
if result[1].credit >= costCredit then
local resultPlate = MySQL.query.await('SELECT * FROM player_vehicles WHERE plate = ?', { newPlate })
if resultPlate[1] == nil then
local lastCheckPlate = MySQL.query.await('SELECT * FROM player_vehicles WHERE plate = ?', { oldPlate })
if lastCheckPlate[1] == nil then
cb(false)
else
if lastCheckPlate[1].citizenid == citizenId then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
local jsonData = json.decode(lastCheckPlate[1].mods)
if jsonData.plate ~= nil then
jsonData.plate = newPlate
local mods = json.encode(jsonData)
MySQL.update('UPDATE player_vehicles SET plate = ?, mods = ? WHERE plate = ?', { newPlate, mods, oldPlate })
else
MySQL.update('UPDATE player_vehicles SET plate = ? WHERE plate = ?', { newPlate, oldPlate })
end
SendToDiscord("CitizenID: ``"..citizenId.."``\nOld Plate: ``"..oldPlate.."``\nNew Plate: ``"..newPlate.."``\nVehicle plate changed!")
cb(true)
else
cb(false)
end
end
else
cb(false)
end
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result)
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.Async.fetchAll("SELECT * FROM player_vehicles WHERE plate = @plate", {
["@plate"] = newPlate
}, function (resultPlate)
if resultPlate[1] == nil then
MySQL.Async.fetchAll("SELECT * FROM player_vehicles WHERE plate = @plate", {
["@plate"] = oldPlate
}, function (lastCheckPlate)
if lastCheckPlate[1] == nil then
cb(false)
else
if lastCheckPlate[1].citizenid == citizenId then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
local jsonData = json.decode(lastCheckPlate[1].mods)
if jsonData.plate ~= nil then
jsonData.plate = newPlate
local mods = json.encode(jsonData)
MySQL.Async.execute("UPDATE player_vehicles SET plate = @plate, mods = @mods WHERE plate = @oldPlate", {
["@oldPlate"] = oldPlate,
["@plate"] = newPlate,
["@mods"] = mods,
})
else
MySQL.Async.execute("UPDATE player_vehicles SET plate = @plate WHERE plate = @oldPlate", {
["@oldPlate"] = oldPlate,
["@plate"] = newPlate,
})
end
SendToDiscord("CitizenID: ``"..citizenId.."``\nOld Plate: ``"..oldPlate.."``\nNew Plate: ``"..newPlate.."``\nVehicle plate changed!")
cb(true)
else
cb(false)
end
end
end)
else
cb(false)
end
end)
else
cb(false)
end
else
cb(false)
end
end)
end
else
cb(false)
end
end)
QBCore.Functions.CreateCallback('ak4y-donateSystem:getPrivNumber', function(source, cb, veri)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local citizenId = xPlayer.PlayerData.citizenid
local data = nil
for k, v in pairs(AK4Y.Customize) do
if v.id == veri.itemInfo.id then
data = v
break
end
end
if data then
local costCredit = tonumber(data.costCredit)
local newNumber = veri.input
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem WHERE citizenid = ?', { citizenId })
if result[1] ~= nil then
if result[1].credit >= costCredit then
local resultData = MySQL.query.await('SELECT * FROM players WHERE citizenid = ?', { citizenId })
if resultData[1] ~= nil then
if AK4Y.Phone == "qb-phone" then
local query = '%' .. newNumber .. '%'
local checkPhone = MySQL.prepare.await('SELECT COUNT(*) as count FROM players WHERE charinfo LIKE ?', { query })
if checkPhone == 0 then
local charInfo = json.decode(resultData[1].charinfo)
local phoneNumber = resultData[1].phone_number
if charInfo.phone then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
charInfo.phone = "45"..newNumber
phoneNumber = "45"..newNumber
cb(true)
-- DropPlayer(_source, "[ak4y-donateSystem] Phone number changed!")
SendToDiscord("CitizenID: ``"..citizenId.."``\nNew Number: ``"..newNumber.."``\nPhone number changed!")
Wait(5000)
local newInfo = json.encode(charInfo)
MySQL.update('UPDATE players SET charinfo = ?, phone_number = ? WHERE citizenid = ?', { newInfo, phoneNumber, citizenId })
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Phone == "gcphone" then
local resultPhone = MySQL.query.await('SELECT * FROM players WHERE number = ?', { newNumber })
if resultPhone[1] == nil then
local charInfo = json.decode(resultData[1].charinfo)
if charInfo.phone then
MySQL.update('UPDATE ak4y_donatesystem SET credit = credit - ? WHERE citizenid = ?', { costCredit, citizenId })
charInfo.phone = newNumber
cb(true)
-- DropPlayer(_source, "[ak4y-donateSystem] Phone number changed!")
SendToDiscord("CitizenID: ``"..citizenId.."``\nNew Number: ``"..newNumber.."``\nPhone number changed!")
Wait(5000)
local newInfo = json.encode(charInfo)
if resultData[1].number ~= nil then
MySQL.update('UPDATE players SET number = ?, charinfo = ? WHERE citizenid = ?', { newNumber, newInfo, citizenId })
else
MySQL.update('UPDATE players SET charinfo = ? WHERE citizenid = ?', { newInfo, citizenId })
end
else
cb(false)
end
else
cb(false)
end
end
else
cb(false)
end
else
cb(false)
end
else
cb(false)
end
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll("SELECT * FROM ak4y_donatesystem WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (result)
if result[1] ~= nil then
if result[1].credit >= costCredit then
MySQL.Async.fetchAll("SELECT * FROM players WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId
}, function (resultData)
if resultData[1] ~= nil then
if AK4Y.Phone == "qb-phone" then
local query = '%' .. newNumber .. '%'
MySQL.Async.fetchAll("SELECT COUNT(*) as count FROM players WHERE charinfo LIKE @number", {
["@number"] = query
}, function (checkPhone)
if checkPhone[1].count == 0 then
local charInfo = json.decode(resultData[1].charinfo)
if charInfo.phone then
charInfo.phone = newNumber
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
cb(true)
-- DropPlayer(_source, "[ak4y-donateSystem] Phone number changed!")
SendToDiscord("CitizenID: ``"..citizenId.."``\nNew Number: ``"..newNumber.."``\nPhone number changed!")
Wait(5000)
local newInfo = json.encode(charInfo)
MySQL.Async.execute("UPDATE players SET charinfo = @charinfo WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId,
["@charinfo"] = newInfo,
})
else
cb(false)
end
else
cb(false)
end
end)
elseif AK4Y.Phone == "gcphone" then
MySQL.Async.fetchAll("SELECT * FROM players WHERE number = @number", {
["@number"] = newNumber
}, function (resultPhone)
if resultPhone[1] == nil then
local charInfo = json.decode(resultData[1].charinfo)
if charInfo.phone then
MySQL.Async.execute("UPDATE ak4y_donatesystem SET credit = credit - "..costCredit.." WHERE citizenid = @citizenid", {["@citizenid"] = citizenId})
charInfo.phone = newNumber
cb(true)
-- DropPlayer(_source, "[ak4y-donateSystem] Phone number changed!")
SendToDiscord("CitizenID: ``"..citizenId.."``\nNew Number: ``"..newNumber.."``\nPhone number changed!")
Wait(5000)
local newInfo = json.encode(charInfo)
if resultData[1].number ~= nil then
MySQL.Async.execute("UPDATE players SET number = @number, charinfo = @charinfo WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId,
["@number"] = newNumber,
["@charinfo"] = newInfo,
})
else
MySQL.Async.execute("UPDATE players SET charinfo = @charinfo WHERE citizenid = @citizenid", {
["@citizenid"] = citizenId,
["@charinfo"] = newInfo,
})
end
else
cb(false)
end
else
cb(false)
end
end)
end
else
cb(false)
end
end)
else
cb(false)
end
end
end)
end
else
cb(false)
end
end)
RegisterCommand('purchase_donate_credit', function(source, args)
local src = source
if src == 0 then
local dec = json.decode(args[1])
local tbxid = dec.transid
local credit = dec.credit
while inProgress do
Wait(1000)
end
inProgress = true
if AK4Y.Mysql == "oxmysql" then
local result = MySQL.query.await('SELECT * FROM ak4y_donatesystem_codes WHERE code = ?', { tbxid })
if result[1] == nil then
MySQL.insert('INSERT INTO ak4y_donatesystem_codes (code, credit) VALUES (?, ?)', { tbxid, credit })
SendToDiscord("Code: ``"..tbxid.."``\nCredit: ``"..credit.."``\nsuccessfuly into your database!")
end
inProgress = false
elseif AK4Y.Mysql == "mysql-async" then
MySQL.Async.fetchAll('SELECT * FROM ak4y_donatesystem_codes WHERE code = @code', {['@code'] = tbxid}, function(result)
if result[1] == nil then
MySQL.Async.execute('INSERT INTO ak4y_donatesystem_codes (code, credit) VALUES (@code, @credit)', {
["@code"] = tbxid,
["@credit"] = credit,
})
SendToDiscord("Code: ``"..tbxid.."``\nCredit: ``"..credit.."``\nsuccessfuly into your database!")
end
inProgress = false
end)
end
end
end)
AddEventHandler('onResourceStart', function(resource)
if resource == GetCurrentResourceName() then
if AK4Y.UseTebex then
local tebexConvar = GetConvar('sv_tebexSecret', '')
if tebexConvar == '' or tebexConvar == nil then
print('^2//////////////////////////////')
print('^2//// Tebex Secret Missing ^2////')
print('^2//////////////////////////////')
print('^0qb-vip: Tebex Secret Missing. Exiting.')
shouldStop = true
else
print('^2//////////////////////////////')
print('^2///// Tebex Secret Found ^2/////')
print('^2//////////////////////////////')
print('^0qb-vip: Tebex Secret Found. Starting.')
end
end
end
end)
local DISCORD_NAME = "Hyperion Donation"
local DISCORD_IMAGE = "https://i.imgur.com/Q72RWcB.png"
DiscordWebhook = Discord_Webhook
function SendToDiscord(name, message, color)
if DiscordWebhook == "CHANGE_WEBHOOK" then
else
local connect = {
{
["color"] = color,
["title"] = "**".. name .."**",
["description"] = message,
["footer"] = {
["text"] = "ak4y development",
},
},
}
PerformHttpRequest(DiscordWebhook, function(err, text, headers) end, 'POST', json.encode({username = DISCORD_NAME, embeds = connect, avatarrl = DISCORD_IMAGE}), { ['Content-Type'] = 'application/json' })
end
end
function GeneratePlate()
local plate = QBCore.Shared.RandomInt(1) .. QBCore.Shared.RandomStr(2) .. QBCore.Shared.RandomInt(3) .. QBCore.Shared.RandomStr(2)
local send = false
local result = MySQL.scalar.await('SELECT plate FROM player_vehicles WHERE plate = ?', {plate})
if result then
return GeneratePlate()
else
return plate:upper()
end
end
function getPlayerAvatar(player)
local discord
for i = 0, GetNumPlayerIdentifiers(player) - 1 do
local identifier = {}
for id in string.gmatch(GetPlayerIdentifier(player, i), "([^:]+)") do
table.insert(identifier, id)
end
if identifier[1] == "discord" then
discord = identifier[2]
end
end
if discord then
local p = promise.new()
PerformHttpRequest("https://discordapp.com/api/users/" .. discord, function(statusCode, data)
data = json.decode(data or "{}")
if data.avatar then
local animated = data.avatar:gsub(1, 2) == "a_"
avatar = "https://cdn.discordapp.com/avatars/" .. discord .. "/" .. data.avatar .. (animated and ".gif" or ".png")
end
p:resolve()
end, "GET", "", {
Authorization = "Bot MTE4ODA0ODgzMDMxMTE3NDE3NQ.GCZgG0.eoZWGYXx0--7VWx0jmrZsGxnLlSEdciVN0qkAM"
})
Citizen.Await(p)
end
return avatar
end