mirror of
https://github.com/jimathy/jim_bridge.git
synced 2026-08-17 14:06:02 +01:00
276 lines
11 KiB
Lua
276 lines
11 KiB
Lua
--[[
|
|
Society Banking Module
|
|
------------------------
|
|
This module provides functions to interact with society bank accounts across
|
|
different banking systems. Supported systems include:
|
|
• qb-banking
|
|
• esx_society *testing*
|
|
• Renewed-Banking
|
|
• fd_banking
|
|
• okokBanking
|
|
• Tgiann-bank
|
|
]]
|
|
|
|
local societyFunc = {
|
|
{ bankName = "Renewed-Banking",
|
|
getAccount =
|
|
function(society)
|
|
return exports["Renewed-Banking"]:getAccountMoney(society)
|
|
end,
|
|
chargeSociety =
|
|
function(society, amount)
|
|
exports['Renewed-Banking']:removeAccountMoney(society, amount)
|
|
end,
|
|
fundSociety =
|
|
function(society, amount)
|
|
exports['Renewed-Banking']:addAccountMoney(society, amount)
|
|
end,
|
|
},
|
|
|
|
{ bankName = "fd_banking",
|
|
getAccount =
|
|
function(society)
|
|
return exports["fd_banking"]:GetAccount(society)
|
|
end,
|
|
chargeSociety =
|
|
function(society, amount)
|
|
exports["fd_banking"]:RemoveMoney(society, amount)
|
|
end,
|
|
fundSociety =
|
|
function(society, amount)
|
|
exports["fd_banking"]:AddMoney(society, amount)
|
|
end,
|
|
},
|
|
|
|
{ bankName = "okokBanking",
|
|
getAccount =
|
|
function(society)
|
|
return exports['okokBanking']:GetAccount(society)
|
|
end,
|
|
chargeSociety =
|
|
function(society, amount)
|
|
exports['okokBanking']:RemoveMoney(society, amount)
|
|
end,
|
|
fundSociety =
|
|
function(society, amount)
|
|
exports['okokBanking']:AddMoney(society, amount)
|
|
end,
|
|
},
|
|
|
|
{ bankName = "tgiann-bank",
|
|
getAccount =
|
|
function(society)
|
|
if Jobs[society] then
|
|
return exports["tgiann-bank"]:GetJobAccountBalance(society)
|
|
else
|
|
return exports["tgiann-bank"]:GetGangAccountBalance(society)
|
|
end
|
|
end,
|
|
chargeSociety =
|
|
function(society, amount)
|
|
if Jobs[society] then
|
|
exports["tgiann-bank"]:RemoveJobMoney(society, amount)
|
|
else
|
|
exports["tgiann-bank"]:RemoveGangMoney(society, amount)
|
|
end
|
|
end,
|
|
fundSociety =
|
|
function(society, amount)
|
|
if Jobs[society] then
|
|
exports["tgiann-bank"]:AddJobMoney(society, amount)
|
|
else
|
|
exports["tgiann-bank"]:AddGangMoney(society, amount)
|
|
end
|
|
end,
|
|
},
|
|
|
|
{ bankName = "qb-banking",
|
|
getAccount =
|
|
function(society)
|
|
if not exports["qb-banking"]:GetAccount(society) then
|
|
if Jobs[society] then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3qb-banking^7' ^2for ^7'^3"..society.."^7'")
|
|
exports["qb-banking"]:CreateJobAccount(society, 0)
|
|
Wait(150)
|
|
elseif Gangs[society] then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3qb-banking^7' ^2for ^7'^3"..society.."^7'")
|
|
exports["qb-banking"]:CreateGangAccount(society, 0)
|
|
Wait(150)
|
|
end
|
|
end
|
|
return exports["qb-banking"]:GetAccountBalance(society)
|
|
end,
|
|
chargeSociety =
|
|
function(society, amount)
|
|
if not exports["qb-banking"]:GetAccount(society) then
|
|
if Jobs[society] then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3qb-banking^7' ^2for ^7'^3"..society.."^7'")
|
|
exports["qb-banking"]:CreateJobAccount(society, 0) Wait(150) -- make new account if return "null"
|
|
elseif Gangs[society] then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3qb-banking^7' ^2for ^7'^3"..society.."^7'")
|
|
exports["qb-banking"]:CreateGangAccount(society, 0) Wait(150) -- make new account if return "null"
|
|
end
|
|
end
|
|
exports["qb-banking"]:RemoveMoney(society, amount)
|
|
end,
|
|
fundSociety =
|
|
function(society, amount)
|
|
if not exports["qb-banking"]:GetAccount(society) then
|
|
if Jobs[society] then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3qb-banking^7' ^2for ^7'^3"..society.."^7'")
|
|
exports["qb-banking"]:CreateJobAccount(society, 0)
|
|
Wait(150)
|
|
elseif Gangs[society] then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3qb-banking^7' ^2for ^7'^3"..society.."^7'")
|
|
exports["qb-banking"]:CreateGangAccount(society, 0)
|
|
Wait(150)
|
|
end
|
|
end
|
|
exports["qb-banking"]:AddMoney(society, amount)
|
|
end,
|
|
},
|
|
|
|
{ bankName = "esx_society",
|
|
getAccount =
|
|
function(society)
|
|
local checkExist = exports.esx_society:GetSociety(society)
|
|
if checkExist == nil then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3esx_society^7' ^2for ^7'^3"..society.."^7'")
|
|
exports.esx_society:registerSociety(
|
|
society,
|
|
Gangs[society] and Gangs[society].label or Jobs[society] and Jobs[society].label,
|
|
society,
|
|
society,
|
|
society,
|
|
{type = "public"}
|
|
)
|
|
end
|
|
local p = promise.new()
|
|
TriggerEvent('esx_addonaccount:getSharedAccount', checkExist.account, function(account)
|
|
p:resolve(account.money)
|
|
end)
|
|
local newAmount = Citizen.Await(p)
|
|
return newAmount
|
|
end,
|
|
chargeSociety =
|
|
function(society, amount)
|
|
local checkExist = exports.esx_society:GetSociety(society)
|
|
if checkExist == nil then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3esx_society^7' ^2for ^7'^3"..society.."^7'")
|
|
exports.esx_society:registerSociety(
|
|
society,
|
|
Gangs[society] and Gangs[society].label or Jobs[society] and Jobs[society].label,
|
|
society,
|
|
society,
|
|
society,
|
|
{type = "public"}
|
|
)
|
|
end
|
|
TriggerEvent('esx_addonaccount:getSharedAccount', checkExist.account, function(account)
|
|
if amount > 0 and account.money >= amount then
|
|
account.removeMoney(amount)
|
|
end
|
|
end)
|
|
end,
|
|
fundSociety =
|
|
function(society, amount)
|
|
local checkExist = exports.esx_society:GetSociety(society)
|
|
if checkExist == nil then
|
|
print("^6Bridge^7: ^2Making new bank account in ^7'^3esx_society^7' ^2for ^7'^3"..society.."^7'")
|
|
exports.esx_society:registerSociety(
|
|
society,
|
|
Gangs[society] and Gangs[society].label or Jobs[society] and Jobs[society].label,
|
|
society,
|
|
society,
|
|
society,
|
|
{type = "public"}
|
|
)
|
|
end
|
|
TriggerEvent('esx_addonaccount:getSharedAccount', checkExist.account, function(account)
|
|
account.addMoney(amount)
|
|
end)
|
|
end,
|
|
},
|
|
|
|
}
|
|
|
|
|
|
--- Retrieves the current balance of a society's bank account.
|
|
--- @param society string The identifier of the society.
|
|
--- @return number number The current account balance.
|
|
--- @usage
|
|
--- ```lua
|
|
--- local balance = getSocietyAccount("police")
|
|
--- print("Police account balance: $"..balance)
|
|
--- ```
|
|
function getSocietyAccount(society)
|
|
local amount = 0
|
|
if society == nil or society == "none" then return amount end
|
|
|
|
for i = 1, #societyFunc do
|
|
local script = societyFunc[i]
|
|
if isStarted(script.bankName) then
|
|
local amount = script.getAccount(society)
|
|
debugPrint("^6Bridge^7: ^3"..script.bankName.."^7: ^2Retrieved account ^7'^6"..society.."^7' ($"..tostring(amount)..")")
|
|
return amount
|
|
end
|
|
end
|
|
|
|
print("^1Error^7: ^3GetSocietyAccount^7: ^2No supported banking script found")
|
|
|
|
return amount
|
|
end
|
|
|
|
--- Deducts funds from a society's bank account.
|
|
--- @param society string The identifier of the society.
|
|
--- @param amount number The amount of money to remove.
|
|
--- @usage
|
|
--- ```lua
|
|
--- chargeSociety("police", 1000)
|
|
--- ```
|
|
function chargeSociety(society, amount)
|
|
|
|
for i = 1, #societyFunc do
|
|
local script = societyFunc[i]
|
|
if isStarted(script.bankName) then
|
|
script.chargeSociety(society, amount)
|
|
local newAmount = getSocietyAccount(society)
|
|
debugPrint("^6Bridge^7: ^3"..script.bankName.."^7: ^2Removing $"..amount.." from account '^6"..society.."^7' ($"..tostring(newAmount)..")")
|
|
return
|
|
end
|
|
end
|
|
|
|
print("^1Error^7: ^3ChargeSociety^7: ^2No supported banking script found")
|
|
end
|
|
|
|
--- Adds funds to a society's bank account.
|
|
--- @param society string The identifier of the society.
|
|
--- @param amount number The amount of money to add.
|
|
--- @usage
|
|
--- ```lua
|
|
--- fundSociety("police", 500)
|
|
--- ```
|
|
function fundSociety(society, amount)
|
|
|
|
for i = 1, #societyFunc do
|
|
local script = societyFunc[i]
|
|
if isStarted(script.bankName) then
|
|
script.fundSociety(society, amount)
|
|
local newAmount = getSocietyAccount(society)
|
|
debugPrint("^6Bridge^7: ^3"..script.bankName.."^7: ^2Adding ^7$"..amount.." ^2to account ^7'^6"..society.."^7' ($"..tostring(newAmount)..")")
|
|
return
|
|
end
|
|
end
|
|
|
|
print("^1Error^7: ^3FundSociety^7: ^2No supported banking script found")
|
|
end
|
|
|
|
if isServer() then
|
|
createCallback(getScript()..":server:getAccount", function(source, society)
|
|
if society then
|
|
local getMoney = getSocietyAccount(society)
|
|
return getMoney
|
|
end
|
|
return 0
|
|
end)
|
|
end |