Modifiez config/notifications.lua pour raccorder votre système de notifications sans modifier le code de l'admin. Redémarrez cdt_admin après modification. Le fichier est partagé avec les clients. Tous les fichiers restent accessibles et modifiables dans cette distribution (escrow_ignore { '**/*' }).
1. Choisir le mode
provider | Comportement |
|---|---|
inherit | Conserve le choix CDT/ox_lib de config/client.lua et du menu de configuration |
internal | Force les notifications intégrées CDT |
ox_lib | Force les notifications ox_lib |
custom | Utilise l'export ou l'événement client de votre script |
Le mode par défaut est inherit : les installations existantes et changements enregistrés dans le menu continuent de fonctionner. Un autre mode dans le fichier est prioritaire sur le choix du menu. Il n'existe pas de détection automatique de tous les produits commerciaux : pour un autre script, choisissez custom et renseignez son API exacte.
duration et sound peuvent être ajoutés dans le fichier pour remplacer les réglages par défaut du menu. Une durée fournie pour une notification précise reste prioritaire. sound=false coupe le bip GTA de CDT ; sound=false sur une notification précise le coupe également. Les sons éventuellement joués par le fournisseur externe restent gérés par ce fournisseur.
2. Exemple d'export personnalisé
Les noms mon_notify et ShowNotification sont des exemples : remplacez-les et adaptez l'ordre des paramètres à la documentation de votre script.
return {
provider='custom',
duration=4000,
sound=false,
fallback='internal',
custom={
resource='mon_notify',
notify={
type='export',
name='ShowNotification',
args={'$message','$type','$duration'},
},
types={
info='info',success='success',warning='warning',
error='error',deactivated='info',
},
},
}
Les exports sont exécutés sur le client recevant la notification. La ressource doit être réellement démarrée. Aucun appel serveur de notification n'est configuré depuis ce fichier.
3. Événement ou objet de paramètres
Pour un événement client local :
notify={type='event',name='mon_notify:show',args={'$title','$message','$type','$duration'}},
Pour un export attendant un objet :
notify={type='export',name='ShowNotification',args={'$data'}},
Ou un objet au format particulier :
notify={type='export',name='ShowNotification',args={{
heading='$title',text='$message',severity='$type',timeout='$duration',
}}},
| Paramètre | Valeur fournie par CDT |
|---|---|
$title | Titre localisé et nettoyé, éventuellement absent |
$message | Texte localisé et nettoyé |
$type | Type traduit selon custom.types |
$duration | Durée d'affichage en millisecondes |
$data | Objet contenant title, description, message, type, duration |
Les substitutions fonctionnent dans les tableaux imbriqués et les chemins comme $data.message. Les arguments nil conservent leur position. Les noms et paramètres proviennent de la configuration installée ; les données d'une notification ne peuvent pas choisir un autre export ou événement.
custom.types adapte les catégories CDT (info, success, warning, error, deactivated) à celles acceptées par votre script. Un type absent du mapping conserve son nom. inform reçu par CDT est d'abord normalisé en info.
4. Échecs et confirmation
fallback='internal' affiche la notification CDT si la ressource est absente/arrêtée, si la configuration est invalide, si l'export manque/échoue ou s'il renvoie false. fallback=false désactive ce retour et laisse l'appel en échec.
Un export retournant true ou ne retournant rien confirme son appel. Pour {success=true}, ajoutez resultPath='success'. Les autres retours demandent une adaptation du champ lu. Un événement confirme uniquement son déclenchement : son nom doit correspondre à un gestionnaire de votre script, et cette confirmation ne garantit pas que l'interface a effectivement affiché le message.
Les bandeaux de compte à rebours et les appels explicitement forcés CDT conservent l'affichage intégré pour leurs fonctionnalités propres. Le réglage externe s'applique aux notifications ordinaires.
Vérifier
- Démarrez le script de notifications avant
cdt_admin, puis redémarrez CDT après avoir sauvegardé le fichier. - Utilisez
/cdt_notifdebug typespour vérifier les cinq catégories. - Vérifiez les titres, textes, durées et sons, puis
/cdt_notifdebug queuepour une rafale. - Testez le comportement de secours avec le fournisseur arrêté.
Les tests automatisés couvrent le routage et les paramètres ; vérifiez le rendu avec votre script réel en jeu.
