1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-06-29 05:53:12 +02:00
parent d208f85007
commit c844ee6915

View file

@ -1523,53 +1523,92 @@ end)
RegisterServerEvent("okokBanking:UpdateIbanDB")
AddEventHandler("okokBanking:UpdateIbanDB", function(iban, amount)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
local _source = source
local xPlayer = QBCore.Functions.GetPlayer(_source)
if amount <= xPlayer.PlayerData.money.bank then
MySQL.query('SELECT charinfo FROM players WHERE citizenid = ?', {
xPlayer.PlayerData.citizenid
}, function(result)
local charinfo = json.decode(result[1].charinfo)
if not Config.CharInfoUpdate then charinfo = json.decode(result) end
charinfo.account = iban
local updated = json.encode(charinfo)
MySQL.query('UPDATE players SET charinfo = ? WHERE citizenid = ?', {updated, xPlayer.PlayerData.citizenid})
end)
-- Debug-Ausgaben
print("[DEBUG] Versuch, IBAN zu aktualisieren auf: " .. iban)
print("[DEBUG] Spieler-Geld: " .. xPlayer.PlayerData.money.bank .. ", Kosten: " .. amount)
print("[DEBUG] Player charinfo vor Update: " .. json.encode(xPlayer.PlayerData.charinfo))
local charinfo = xPlayer.PlayerData.charinfo
charinfo.iban = iban
xPlayer.Functions.SetPlayerData('charinfo', charinfo)
xPlayer.Functions.RemoveMoney('bank', amount)
xPlayer = QBCore.Functions.GetPlayer(_source)
local itemCash = xPlayer.Functions.GetItemByName("cash")
local playerCashMoney = 0
if itemCash ~= nil then
playerCashMoney = itemCash.amount
end
if Config.UseCashAsItem then
TriggerClientEvent('okokBanking:updateMoney', _source, xPlayer.PlayerData.money.bank, playerCashMoney)
else
TriggerClientEvent('okokBanking:updateMoney', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash)
end
TriggerEvent('okokBanking:AddTransferTransactionToSociety', amount, _source, "bank", "Bank (IBAN)")
TriggerClientEvent('okokBanking:updateIban', _source, iban)
TriggerClientEvent('okokBanking:updateIbanPinChange', _source)
if Config.okokNotify then
TriggerClientEvent('okokNotify:Alert', _source, _L('iban_changed').title, interp(_L('iban_changed').text, {s1 = iban}), _L('iban_changed').time, _L('iban_changed').type)
else
TriggerClientEvent('QBCore:Notify', _source, interp(_L('iban_changed').text, {s1 = iban}), _L('iban_changed').type)
end
else
if Config.okokNotify then
TriggerClientEvent('okokNotify:Alert', _source, _L('iban_no_money').title, interp(_L('iban_no_money').text, {s1 = amount}), _L('iban_no_money').time, _L('iban_no_money').type)
else
TriggerClientEvent('QBCore:Notify', _source, interp(_L('iban_no_money').text, {s1 = amount}), _L('iban_no_money').type)
end
end
if amount <= xPlayer.PlayerData.money.bank then
-- Direkte Aktualisierung der charinfo mit der neuen IBAN
MySQL.query('SELECT charinfo FROM players WHERE citizenid = ?', {
xPlayer.PlayerData.citizenid
}, function(result)
local charinfo = json.decode(result[1].charinfo)
if not Config.CharInfoUpdate then charinfo = json.decode(result) end
print("[DEBUG] Charinfo aus Datenbank: " .. json.encode(charinfo))
charinfo.account = iban
local updated = json.encode(charinfo)
print("[DEBUG] Aktualisierte charinfo: " .. updated)
MySQL.query('UPDATE players SET charinfo = ? WHERE citizenid = ?', {
updated,
xPlayer.PlayerData.citizenid
}, function(rowsChanged)
print("[DEBUG] Datenbankaktualisierung: " .. tostring(rowsChanged) .. " Zeilen geändert")
-- Entferne den problematischen Code
-- if xPlayer.Functions.ChangeIban then
-- xPlayer.Functions.ChangeIban(iban)
-- else
-- TriggerClientEvent('okokNotify:Alert', _source, 'OKOKBANKING', 'Unable to locate or identify the function ChangeIban. Please refer to the documentation for correct usage and placement!', 5000, 'warning')
-- return
-- end
-- Aktualisiere die Spielerdaten im Speicher
local updatedPlayer = QBCore.Functions.GetPlayer(_source)
if updatedPlayer then
updatedPlayer.PlayerData.charinfo.account = iban
updatedPlayer.Functions.SetPlayerData('charinfo', updatedPlayer.PlayerData.charinfo)
print("[DEBUG] Spielerdaten im Speicher aktualisiert: " .. json.encode(updatedPlayer.PlayerData.charinfo))
end
-- Ziehe das Geld ab
xPlayer.Functions.RemoveMoney('bank', amount)
-- Aktualisiere den Client
local itemCash = xPlayer.Functions.GetItemByName("cash")
local playerCashMoney = 0
if itemCash ~= nil then
playerCashMoney = itemCash.amount
end
if Config.UseCashAsItem then
TriggerClientEvent('okokBanking:updateMoney', _source, xPlayer.PlayerData.money.bank, playerCashMoney)
else
TriggerClientEvent('okokBanking:updateMoney', _source, xPlayer.PlayerData.money.bank, xPlayer.PlayerData.money.cash)
end
TriggerEvent('okokBanking:AddTransferTransactionToSociety', amount, _source, "bank", "Bank (IBAN)")
TriggerClientEvent('okokBanking:updateIban', _source, iban)
TriggerClientEvent('okokBanking:updateIbanPinChange', _source)
print("[DEBUG] Client-Events ausgelöst")
-- Benachrichtige den Spieler
if Config.okokNotify then
TriggerClientEvent('okokNotify:Alert', _source, _L('iban_changed').title, interp(_L('iban_changed').text, {s1 = iban}), _L('iban_changed').time, _L('iban_changed').type)
else
TriggerClientEvent('QBCore:Notify', _source, interp(_L('iban_changed').text, {s1 = iban}), _L('iban_changed').type)
end
end)
end)
else
print("[DEBUG] Nicht genug Geld für IBAN-Änderung")
if Config.okokNotify then
TriggerClientEvent('okokNotify:Alert', _source, _L('iban_no_money').title, interp(_L('iban_no_money').text, {s1 = amount}), _L('iban_no_money').time, _L('iban_no_money').type)
else
TriggerClientEvent('QBCore:Notify', _source, interp(_L('iban_no_money').text, {s1 = amount}), _L('iban_no_money').type)
end
end
end)
RegisterServerEvent("okokBanking:UpdatePINDB")
AddEventHandler("okokBanking:UpdatePINDB", function(pin, amount)
local _source = source