Inicio › Documentación › Personalización · origen_billing

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.

text
custom/
├── server.lua          ← framework + money + permissions adapters
└── bridge/
    └── banking/
        └── server.lua  ← banking provider override (if Config.BankingProvider = 'custom')

custom/server.lua

Custom.isPlayerStaff(src) → boolean

Determina si un jugador puede acceder al panel de administración de facturación (/billingadmin).

La comprobación se ejecuta por orden de prioridad:

  1. Comprobación de admin del framework (QBCore/QBox HasPermission)
  2. Alternativa con grupos ACE de FiveM: comprueba cada grupo listado en Config.GroupPermissions
  3. Comodín ACE 'command'
lua
-- 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) → boolean

Se 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:

lua
-- 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) → string

Devuelve el identificador único del jugador (citizenid). Delega en Framework.GetPlayerIdentifier.


Custom.getFullName(source) → string

Devuelve el nombre completo del jugador para mostrar ("Firstname Lastname").


Custom.getJobData(source) → table

Devuelve los datos del job actual del jugador. Estructura: { jobName, isBoss, ... } (depende del framework).


Custom.getBankBalance(source) → number

Devuelve el saldo bancario actual del jugador.


Custom.removeBankMoney(source, amount, reason) → boolean

Resta amount de la cuenta bancaria del jugador.


Custom.addBankMoney(source, amount, reason) → boolean

Ingresa amount en la cuenta bancaria del jugador (se usa para pagar comisiones).


Custom.getCashBalance(source) → number

Devuelve el efectivo actual del jugador.


Custom.removeCashMoney(source, amount, reason) → boolean

Resta amount del efectivo del jugador.


Custom.addSocietyMoney(account, amount, reason) → boolean

Ingresa amount en una cuenta bancaria de sociedad. La cadena account corresponde al campo societyAccount de la configuración del job.


Custom.getSourceByIdentifier(citizenid) → number|nil

Devuelve 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.


custom/bridge/banking/server.lua

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.

lua
Banking = {}
 
function Banking.AddAccountMoney(account, amount, reason)
    -- your custom implementation
end