Início › Documentação › Personalização · origen_billing

Personalização · origen_billing

A pasta custom/ é o único ponto de integração entre origen_billing e o resto do teu servidor. Está totalmente em escrow_ignore, por isso podes editá-la à vontade sem mexer nos ficheiros protegidos do 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 se um jogador pode aceder ao painel de administração de faturação (/billingadmin).

A verificação é feita por ordem de prioridade:

  1. Verificação de admin da framework (QBCore/QBox HasPermission)
  2. Alternativa com grupos ACE do FiveM: verifica cada grupo listado em Config.GroupPermissions
  3. Wildcard ACE 'command'
lua
-- Groups that grant admin access (ACE fallback)
Config.GroupPermissions = { 'god', 'admin', 'superadmin' }

Para adicionar uma verificação personalizada (por exemplo, uma lista branca de citizenid), adiciona-a antes de return false dentro da função.


Custom.isJobBoss(src, jobName) → boolean

Chamada a partir da função isBoss de cada job em Config.AuthorizedJobs. Devolve true se o jogador for o chefe do job indicado.

A implementação por omissão verifica Player.PlayerData.job.isboss. Exemplos 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

Devolve o identificador único do jogador (citizenid). Delega em Framework.GetPlayerIdentifier.


Custom.getFullName(source) → string

Devolve o nome completo do jogador para apresentação ("Firstname Lastname").


Custom.getJobData(source) → table

Devolve os dados do job atual do jogador. Estrutura: { jobName, isBoss, ... } (depende da framework).


Custom.getBankBalance(source) → number

Devolve o saldo bancário atual do jogador.


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

Retira amount da conta bancária do jogador.


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

Deposita amount na conta bancária do jogador (usado para pagar comissões).


Custom.getCashBalance(source) → number

Devolve o dinheiro em numerário atual do jogador.


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

Retira amount do numerário do jogador.


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

Deposita amount numa conta bancária de sociedade. A string account corresponde ao campo societyAccount da configuração do job.


Custom.getSourceByIdentifier(citizenid) → number|nil

Devolve o source do servidor de um jogador online a partir do seu citizenid, ou nil se estiver offline. Usado para enviar notificações em tempo real quando uma fatura é criada.


custom/bridge/banking/server.lua

Só é usado quando Config.BankingProvider = 'custom'. Implementa a tabela Banking com AddAccountMoney para suportar um recurso de banco que não esteja incluído no bridge integrado.

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