Accueil › Documentation › Personnalisation · origen_doorlock

Personnalisation · origen_doorlock

Le dossier custom/ te permet d’intégrer n’importe quel framework, système de notifications ou logique de logs sans toucher au noyau. Tous les fichiers sont escrow_ignore : ils sont conservés lors des mises à jour.

text
custom/
├── client/
│   ├── framework.lua  — player identifier, job, gang
│   └── notify.lua     — notifications, draw text, hide text
└── server/
    ├── framework.lua  — player group, identifier
    ├── permissions.lua — admin/permission check
    └── logs.lua       — Discord webhook logging

custom/client/framework.lua

Framework.GetPlayerIdentifier() → string | nil

Renvoie l’identifiant unique du joueur local (citizenid / identifier).

lua
Framework.GetPlayerIdentifier = function()
    -- Config.Framework == 'custom': implement here
    return nil
end

Framework.GetPlayerJob() → string

Renvoie le nom du métier actuel du joueur local.

lua
Framework.GetPlayerJob = function()
    return 'unemployed'
end

Framework.GetPlayerJobGroup() → number

Renvoie le niveau de grade du métier du joueur local.

lua
Framework.GetPlayerJobGroup = function()
    return 0
end

Framework.GetPlayerGang() → string

Renvoie le nom du gang du joueur local. Renvoie 'none' par défaut.

lua
Framework.GetPlayerGang = function()
    return 'none'
end

Framework.GetPlayerGangGrade() → number

Renvoie le grade de gang du joueur local. Renvoie 0 par défaut.

lua
Framework.GetPlayerGangGrade = function()
    return 0
end

custom/client/notify.lua

Custom.Notify(text, type, length)

Affiche une notification au joueur local.

lua
Custom.Notify = function(text, type, length)
    -- Add your custom notification here
end

Pris en charge d’office : qb-core (Framework.Functions.Notify) et esx (Framework.ShowNotification).


Custom.DrawText(text, key)

Affiche un texte d’indication d’interaction (p. ex. [E] - Open door).

Pris en charge via Config.Drawtext : qb-core, esx_textui, ox_lib.

lua
Custom.DrawText = function(text, key)
    -- Add your custom draw text here
end

Custom.HideText()

Masque le texte d’indication d’interaction.

lua
Custom.HideText = function()
    -- Add your custom hide text here
end

custom/server/framework.lua

Framework.GetGroup(source) → string

Renvoie le groupe de permissions du joueur (p. ex. 'admin', 'god').

lua
Framework.GetGroup = function(source)
    -- Config.Framework == 'custom': implement here
    return 'user'
end

Framework.GetIdentifier(source) → string | nil

Renvoie l’identifiant unique du joueur côté serveur.

lua
Framework.GetIdentifier = function(source)
    return nil
end

custom/server/permissions.lua

Custom.hasPermission(source) → boolean

Vérifie si un joueur a la permission d’utiliser les commandes de gestion des portes. Valide par rapport à Config.GroupPermissions en utilisant à la fois les groupes du framework et les permissions Ace de FiveM (IsPlayerAceAllowed).

lua
Custom.hasPermission = function(src)
    -- Default: checks Config.GroupPermissions via framework group + ace permissions
    -- To override:
    return false
end

custom/server/logs.lua

Custom.DiscordLog(title, message, webHook)

Envoie un log sous forme d’embed Discord vers l’URL de webhook indiquée. Ignoré automatiquement si le webhook est vide ou s’il s’agit du marqueur par défaut 'YOUR_DISCORD_WEBHOOK'.

lua
Custom.DiscordLog = function(title, message, webHook)
    -- Default implementation sends a Discord embed via PerformHttpRequest
    -- To use a different logging system, replace this function:
    print('[DoorLock] ' .. title .. ': ' .. message)
end

Les trois webhooks se configurent dans Config.Logs :

Webhook Déclenché quand
Config.Logs.CreateDoor Une nouvelle porte est créée depuis le menu de gestion
Config.Logs.DeleteDoor Une porte est supprimée depuis le menu de gestion
Config.Logs.DoorsUsage Un joueur verrouille ou déverrouille une porte