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

Personalização · origen_doorlock

A pasta custom/ permite-te integrar qualquer framework, sistema de notificações ou lógica de logs sem mexer no núcleo. Todos os ficheiros são escrow_ignore, por isso mantêm-se após as atualizações.

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

Devolve o identificador único do jogador local (citizenid / identifier).

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

Framework.GetPlayerJob() → string

Devolve o nome do trabalho atual do jogador local.

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

Framework.GetPlayerJobGroup() → number

Devolve o nível de grau do trabalho do jogador local.

lua
Framework.GetPlayerJobGroup = function()
    return 0
end

Framework.GetPlayerGang() → string

Devolve o nome da gangue do jogador local. Por omissão devolve 'none'.

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

Framework.GetPlayerGangGrade() → number

Devolve o grau de gangue do jogador local. Por omissão devolve 0.

lua
Framework.GetPlayerGangGrade = function()
    return 0
end

custom/client/notify.lua

Custom.Notify(text, type, length)

Mostra uma notificação ao jogador local.

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

Suportados de origem: qb-core (Framework.Functions.Notify) e esx (Framework.ShowNotification).


Custom.DrawText(text, key)

Mostra um texto de indicação de interação (p. ex. [E] - Open door).

Suportados através de Config.Drawtext: qb-core, esx_textui, ox_lib.

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

Custom.HideText()

Oculta o texto de indicação de interação.

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

custom/server/framework.lua

Framework.GetGroup(source) → string

Devolve o grupo de permissões do jogador (p. ex. 'admin', 'god').

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

Framework.GetIdentifier(source) → string | nil

Devolve o identificador único do jogador no servidor.

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

custom/server/permissions.lua

Custom.hasPermission(source) → boolean

Verifica se um jogador tem permissão para usar os comandos de gestão de portas. Valida em relação a Config.GroupPermissions, usando tanto os grupos do framework como as permissões Ace do 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)

Envia um log com um embed do Discord para o URL de webhook indicado. É ignorado automaticamente se o webhook estiver vazio ou for o marcador por omissão '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

Os três webhooks configuram-se em Config.Logs:

Webhook Disparado quando
Config.Logs.CreateDoor É criada uma porta nova a partir do menu de gestão
Config.Logs.DeleteDoor É eliminada uma porta a partir do menu de gestão
Config.Logs.DoorsUsage Um jogador bloqueia ou desbloqueia uma porta