Wie mag in dienst?
Lagen die bepalen of iemand staffdienst mag gebruiken (identifiers, panel, ACE, framework-groups).
isStaff(source) in Z-staff is waar bij de eerste match, in deze volgorde:
1. Config.allowedIdentifiers
Discord-ID, license: of license2:. Prefix is optioneel. Alleen het nummer mag ook (wordt als Discord behandeld).
Config.allowedIdentifiers = {
'discord:1397307295502696480',
-- '123456789012345678',
-- ['discord:123456789012345678'] = 'owner',
-- 'license:xxxxxxxx',
}
- Lijst-item (
'discord:…') = mag in dienst, en het panel krijgtgrantStaff(fallback-rank, default owner). - Map-item (
['discord:…'] = 'admin') = mag in dienst; de rank-string wordt door het panel gebruikt viaGetAllowedIdentifiers.
Bij een match roept dienst meteen exports['Z-staff']:grantStaff(source) aan.
2. Panel-rank
Als Z-staff started is:
exports['Z-staff']:getStaff(source)- Zo niet:
exports['Z-staff']:refreshStaff(source)(Discord/licenses opnieuw)
Heeft de speler een rank in het panel, dan mag hij in dienst — ook zonder in allowedIdentifiers te staan. Dit is de normale weg voor het hele team (Discord-rollen).
3. ACE
Config.staffAces = {
'group.erpstaff',
'group.admin',
'group.god',
'group.mod',
}
IsPlayerAceAllowed(source, ace) — bij match opnieuw grantStaff.
4. Framework-groups
ESX
Config.esxGroups = {
superadmin = true,
admin = true,
}
xPlayer.getGroup() moet een key in deze map zijn. moderator staat hier niet standaard; die komt binnen via Discord of het panel EsxGroupMap.
Qbox / QBCore
Config.qbGroups = {
god = true,
admin = true,
mod = true,
}
Qbox: exports.qbx_core:HasGroup. QBCore: Functions.HasPermission / PlayerData.groups. Alleen keys die true zijn tellen.
Wat gebeurt er als niemand matcht?
Notify: “Je hebt geen toegang tot staffdienst.”\ Het panel opent daarna ook niet, omdat duty nooit true wordt.
Identifier-matching (technisch)
De resource bouwt een set van aliases per speler:
- ruwe waarde (
discord:123) - lowercase
- zonder prefix (
123) - met prefix als je alleen een getal opgaf (
discord:123)
Daardoor werken deze vormen allemaal:
1397307295502696480
discord:1397307295502696480
DISCORD:1397307295502696480
Hetzelfde voor license: / license2:.
Zet owners altijd in beide configs: LicenseOverrides (panel, bepaalt rank) én allowedIdentifiers (dienst, poort). Dan werkt inloggen ook als Discord even down is.