forked from Simnation/Main
ed
This commit is contained in:
parent
1032235744
commit
cb8b683d43
292 changed files with 15840 additions and 0 deletions
185
resources/[phone]/roadphone/server/serverAPI/bank.lua
Normal file
185
resources/[phone]/roadphone/server/serverAPI/bank.lua
Normal file
|
@ -0,0 +1,185 @@
|
|||
RegisterServerEvent('roadphone:bank:transfer')
|
||||
AddEventHandler('roadphone:bank:transfer', function(number, amount)
|
||||
local src = tonumber(source)
|
||||
local xPlayer = QBCore.Functions.GetPlayer(src)
|
||||
local targetplayer = nil
|
||||
|
||||
if Config.okokBanking then
|
||||
targetplayer = getPlayerFromIban(number)
|
||||
else
|
||||
targetplayer = GetPlayerFromPhone(number)
|
||||
end
|
||||
|
||||
if Config.okokBanking and targetplayer == nil then
|
||||
targetplayer = GetPlayerFromPhone(number)
|
||||
end
|
||||
|
||||
local balance = tonumber(xPlayer.Functions.GetMoney('bank'))
|
||||
|
||||
amount = tonumber(amount)
|
||||
|
||||
if not xPlayer then
|
||||
return;
|
||||
end
|
||||
|
||||
if not targetplayer then
|
||||
TriggerClientEvent("roadphone:sendNotification", src, {
|
||||
apptitle = 'APP_BANK_NAME',
|
||||
title = 'APP_BANK_NUMBER_NOT_FOUND_TITLE',
|
||||
message = 'APP_BANK_NUMBER_NOT_FOUND_MESSAGE',
|
||||
img = "/public/img/Apps/light_mode/bank.webp"
|
||||
})
|
||||
return;
|
||||
end
|
||||
|
||||
local numberfromsource = getNumberFromIdentifier(xPlayer.PlayerData.citizenid)
|
||||
local targetbalance = tonumber(targetplayer.Functions.GetMoney('bank'))
|
||||
|
||||
if numberfromsource == number then
|
||||
TriggerClientEvent("roadphone:sendNotification", src, {
|
||||
apptitle = 'APP_BANK_NAME',
|
||||
title = 'APP_BANK_SEND_MONEY_TO_YOURSELF_TITLE',
|
||||
img = "/public/img/Apps/light_mode/bank.webp"
|
||||
})
|
||||
return;
|
||||
end
|
||||
|
||||
if targetbalance < 0 or balance < 0 then
|
||||
TriggerClientEvent("roadphone:sendNotification", src, {
|
||||
apptitle = "APP_BANK_NAME",
|
||||
title = 'APP_BANK_INVALID_INPUT',
|
||||
img = "/public/img/App/bank.png"
|
||||
})
|
||||
return;
|
||||
end
|
||||
|
||||
if not amount or amount < 0 then
|
||||
TriggerClientEvent("roadphone:sendNotification", src, {
|
||||
apptitle = 'APP_BANK_NAME',
|
||||
title = 'APP_BANK_INVALID_INPUT',
|
||||
img = "/public/img/Apps/light_mode/bank.webp"
|
||||
})
|
||||
return;
|
||||
end
|
||||
|
||||
if amount > balance then
|
||||
TriggerClientEvent("roadphone:sendNotification", src, {
|
||||
apptitle = 'APP_BANK_NAME',
|
||||
title = 'APP_BANK_NOT_ENOUGH_MONEY',
|
||||
message = 'APP_BANK_NOT_ENOUGH_MONEY_MESSAGE',
|
||||
img = "/public/img/Apps/light_mode/bank.webp"
|
||||
})
|
||||
return;
|
||||
end
|
||||
|
||||
local selfname, targetname = getNameFromIdentifier(xPlayer.PlayerData.citizenid), getNameFromIdentifier(targetplayer.PlayerData.citizenid)
|
||||
|
||||
if not selfname or not targetname then
|
||||
return;
|
||||
end
|
||||
|
||||
local percent = amount * Cfg.BankPayTax
|
||||
|
||||
local endamount = amount - percent
|
||||
|
||||
xPlayer.Functions.RemoveMoney('bank', amount)
|
||||
targetplayer.Functions.AddMoney('bank', endamount)
|
||||
|
||||
TriggerEvent("roadphone:addBankTransfer", numberfromsource, number, Lang:t('info.bank_money_transaction', { value = targetname }), amount)
|
||||
|
||||
TriggerClientEvent("roadphone:sendNotification", src, {
|
||||
apptitle = 'APP_BANK_NAME',
|
||||
title = 'APP_BANK_MONEY_SENT',
|
||||
message = Lang:t('info.bank_app_sent_money_text', { value = amount}),
|
||||
img = "/public/img/Apps/light_mode/bank.webp"
|
||||
})
|
||||
|
||||
TriggerClientEvent("roadphone:sendNotification", targetplayer.PlayerData.source, {
|
||||
apptitle = 'APP_BANK_NAME',
|
||||
title = 'APP_BANK_MONEY_RECEIVED',
|
||||
message = Lang:t('info.bank_app_received_money_text', { value = QBCore.Shared.Round(endamount, 2)}),
|
||||
img = "/public/img/Apps/light_mode/bank.webp"
|
||||
})
|
||||
|
||||
if amount >= Cfg.MinimumBankTransfer then
|
||||
bankWebhook(src, targetplayer.source, selfname, targetname, amount)
|
||||
end
|
||||
|
||||
end)
|
||||
|
||||
RegisterServerEvent("roadphone:addBankTransfer")
|
||||
AddEventHandler("roadphone:addBankTransfer", function(sender, receiver, reason, amount)
|
||||
if sender and receiver then
|
||||
MySQL.Async.insert(
|
||||
"INSERT INTO roadshop_banktransfer (sender,receiver,reason,amount) VALUES (@sender, @receiver, @reason, @amount)",
|
||||
{
|
||||
["@sender"] = sender,
|
||||
["@receiver"] = receiver,
|
||||
["@reason"] = reason,
|
||||
["@amount"] = amount
|
||||
}, function(id)
|
||||
|
||||
local transaction = {
|
||||
id = id,
|
||||
sender = sender,
|
||||
receiver = receiver,
|
||||
reason = reason,
|
||||
amount = amount
|
||||
}
|
||||
|
||||
local selfplayer = GetPlayerFromPhone(sender)
|
||||
local target = GetPlayerFromPhone(receiver)
|
||||
|
||||
if selfplayer then
|
||||
TriggerClientEvent('roadphone:bank:addTransaction', selfplayer.PlayerData.source, transaction)
|
||||
end
|
||||
|
||||
if target then
|
||||
TriggerClientEvent('roadphone:bank:addTransaction', target.PlayerData.source, transaction)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
QBCore.Functions.CreateCallback("roadphone:getBankBalance", function(source, cb)
|
||||
|
||||
local xPlayer = QBCore.Functions.GetPlayer(source)
|
||||
|
||||
if not xPlayer then
|
||||
return;
|
||||
end
|
||||
|
||||
cb(xPlayer.Functions.GetMoney('bank'))
|
||||
|
||||
end)
|
||||
|
||||
exports("addBankTransaction", function(sender, receiver, reason, amount)
|
||||
|
||||
TriggerEvent("roadphone:addBankTransaction", sender, receiver, reason, amount)
|
||||
|
||||
end)
|
||||
|
||||
function getBankTransactions(number)
|
||||
|
||||
local result = MySQL.Sync.fetchAll('SELECT * FROM roadshop_banktransfer WHERE sender = @sender OR receiver = @receiver', {
|
||||
['@sender'] = number,
|
||||
['@receiver'] = number
|
||||
})
|
||||
|
||||
return result
|
||||
|
||||
end
|
||||
|
||||
|
||||
local cooldownspambank = 0
|
||||
|
||||
QBCore.Functions.CreateCallback('roadphone:bank:checkSpam', function(source, cb)
|
||||
if cooldownspambank == 0 then
|
||||
cb(0)
|
||||
cooldownspambank = cooldownspambank + 1
|
||||
Wait(1000)
|
||||
cooldownspambank = 0
|
||||
else
|
||||
cb(1)
|
||||
end
|
||||
end)
|
Loading…
Add table
Add a link
Reference in a new issue