Inicio › Documentación › Personalización · origen_billing
La carpeta custom/ es el único punto de integración entre origen_billing y el resto de tu servidor. Está completamente en escrow_ignore, así que puedes editarla libremente sin tocar los ficheros protegidos del núcleo.
custom/
├── server.lua ← framework + money + permissions adapters
└── bridge/
└── banking/
└── server.lua ← banking provider override (if Config.BankingProvider = 'custom')Custom.isPlayerStaff(src) → booleanDetermina si un jugador puede acceder al panel de administración de facturación (/billingadmin).
La comprobación se ejecuta por orden de prioridad:
QBCore/QBox HasPermission)Config.GroupPermissions'command'-- Groups that grant admin access (ACE fallback)
Config.GroupPermissions = { 'god', 'admin', 'superadmin' }Para añadir una comprobación personalizada (por ejemplo, una lista blanca de citizenid), añádela antes de return false dentro de la función.
Custom.isJobBoss(src, jobName) → booleanSe llama desde la función isBoss de cada job en Config.AuthorizedJobs. Devuelve true si el jugador es el jefe del job indicado.
La implementación por defecto comprueba Player.PlayerData.job.isboss. Ejemplos alternativos:
-- By grade level
return Player.PlayerData.job.grade.level >= 3
-- ESX
local xPlayer = ESX.GetPlayerFromId(src)
return xPlayer and xPlayer.job.grade_name == 'boss'Custom.getIdentifier(source) → stringDevuelve el identificador único del jugador (citizenid). Delega en Framework.GetPlayerIdentifier.
Custom.getFullName(source) → stringDevuelve el nombre completo del jugador para mostrar ("Firstname Lastname").
Custom.getJobData(source) → tableDevuelve los datos del job actual del jugador. Estructura: { jobName, isBoss, ... } (depende del framework).
Custom.getBankBalance(source) → numberDevuelve el saldo bancario actual del jugador.
Custom.removeBankMoney(source, amount, reason) → booleanResta amount de la cuenta bancaria del jugador.
Custom.addBankMoney(source, amount, reason) → booleanIngresa amount en la cuenta bancaria del jugador (se usa para pagar comisiones).
Custom.getCashBalance(source) → numberDevuelve el efectivo actual del jugador.
Custom.removeCashMoney(source, amount, reason) → booleanResta amount del efectivo del jugador.
Custom.addSocietyMoney(account, amount, reason) → booleanIngresa amount en una cuenta bancaria de sociedad. La cadena account corresponde al campo societyAccount de la configuración del job.
Custom.getSourceByIdentifier(citizenid) → number|nilDevuelve el source del servidor de un jugador conectado a partir de su citizenid, o nil si está desconectado. Se usa para enviar notificaciones en tiempo real cuando se crea una factura.
Solo se usa cuando Config.BankingProvider = 'custom'. Implementa la tabla Banking con AddAccountMoney para dar soporte a un recurso de banco que no esté incluido en el bridge integrado.
Banking = {}
function Banking.AddAccountMoney(account, amount, reason)
-- your custom implementation
end