Accueil › Documentation › Personnalisation · origen_billing

Personnalisation · origen_billing

Le dossier custom/ est l’unique point d’intégration entre origen_billing et le reste de ton serveur. Il est entièrement dans escrow_ignore : modifie-le librement sans toucher aux fichiers protégés du cœur.

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

Détermine si un joueur peut accéder au panneau d’administration de la facturation (/billingadmin).

La vérification s’effectue par ordre de priorité :

  1. Vérification admin du framework (QBCore/QBox HasPermission)
  2. Solution de repli avec les groupes ACE de FiveM : vérifie chaque groupe listé dans Config.GroupPermissions
  3. Joker ACE 'command'
lua
-- Groups that grant admin access (ACE fallback)
Config.GroupPermissions = { 'god', 'admin', 'superadmin' }

Pour ajouter une vérification personnalisée (par exemple une liste blanche de citizenid), ajoute-la avant return false dans la fonction.


Custom.isJobBoss(src, jobName) → boolean

Appelée depuis la fonction isBoss de chaque métier dans Config.AuthorizedJobs. Renvoie true si le joueur est le patron du métier indiqué.

L’implémentation par défaut vérifie Player.PlayerData.job.isboss. Exemples alternatifs :

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

Renvoie l’identifiant unique du joueur (citizenid). Délègue à Framework.GetPlayerIdentifier.


Custom.getFullName(source) → string

Renvoie le nom complet du joueur pour l’affichage ("Firstname Lastname").


Custom.getJobData(source) → table

Renvoie les données du métier actuel du joueur. Structure : { jobName, isBoss, ... } (dépend du framework).


Custom.getBankBalance(source) → number

Renvoie le solde bancaire actuel du joueur.


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

Retire amount du compte bancaire du joueur.


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

Dépose amount sur le compte bancaire du joueur (utilisé pour le versement des commissions).


Custom.getCashBalance(source) → number

Renvoie l’argent liquide actuel du joueur.


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

Retire amount de l’argent liquide du joueur.


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

Dépose amount sur un compte bancaire de société. La chaîne account correspond au champ societyAccount de la configuration du métier.


Custom.getSourceByIdentifier(citizenid) → number|nil

Renvoie le source serveur d’un joueur en ligne à partir de son citizenid, ou nil s’il est hors ligne. Utilisé pour envoyer des notifications en temps réel lors de la création d’une facture.


custom/bridge/banking/server.lua

Utilisé uniquement quand Config.BankingProvider = 'custom'. Implémente la table Banking avec AddAccountMoney pour prendre en charge une ressource bancaire non incluse dans le bridge intégré.

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