Comment écrire un événement est dans Événements ; chaque événement, avec ce que reçoit sa fonction, est dans la référence des événements.
event() s’importe de 'chapterjs', dans n’importe quel fichier de src/. Elle prend un objet, EventConfig : le name de l’événement, ses options quand il en a, et run. name type le reste : la même ligne d’import donne un membre à votre fonction pour 'memberJoin' et un rôle pour 'roleDelete'.
src/events/welcome.ts
event()
src/ ; name dit quel événement, et type ce que reçoit run. Certains événements ont des options, écrites à côté de name (bots: true, where: 'dm') : ce que reçoit run les suit.
Options est ce que la déclaration a écrit en plus de name et run, tel quel : une option que l’événement n’a pas est une erreur dans l’éditeur, et la déclaration est aussi vérifiée au chargement (voir Erreurs).
Types
Dix types accompagnentevent() : EventName, EventContexts et ContextOf pour ce que reçoit votre fonction, EventConfig pour ce qu’elle prend, EventDeclaration pour ce qu’elle renvoie, EventOptions, MessageEventOptions, ReactionEventOptions, WhereEventOptions et EventWhere pour ses options. Tous s’importent avec import type { ... } from 'chapterjs'.
EventName
name.
EventContexts
Message tel quel. Pour typer ce que reçoit une déclaration avec des options données, utilisez ContextOf. Chaque entrée est listée dans la référence des événements.
ContextOf
event(). EventContexts est la forme la plus large : chaque option activée.
C’est le type à utiliser pour une fonction partagée par plusieurs déclarations :
src/lib/log.ts
ContextOf<'messageCreate'> est ce que reçoit une déclaration sans options : un MemberMessage.
EventConfig
event() : l’événement, ses options quand il en a, et quoi faire. Ce que reçoit run suit les options : ce qu’une option laisse passer n’est là à traiter que quand l’option est activée.
Les options de l’événement, quand il en a, s’écrivent à côté : voir EventOptions.
EventDeclaration
event() : une déclaration que le framework trouve dans les exports d’un fichier.
EventOptions
name, pour les événements qui en ont.
MessageEventOptions
Options des événements sur les messages.Tourner aussi pour les messages écrits par des bots (celui-ci compris) et par des webhooks. Par défaut ils sont ignorés : un bot qui répond aux bots peut finir par se répondre à lui-même, ou à un autre bot, sans fin.
Où le fichier écoute :
'guild' (dans les serveurs, par défaut), 'dm' (dans les messages privés avec le bot) ou 'both'. Ce que reçoit la fonction le suit : un serveur toujours là, jamais là, ou à vérifier.ReactionEventOptions
Options des événements sur les réactions ajoutées ou retirées.Tourner aussi pour les réactions des bots, celui-ci compris. Par défaut elles sont ignorées : un bot qui réagit aux réactions peut finir par répondre aux siennes, sans fin.
Où le fichier écoute :
'guild' (dans les serveurs, par défaut), 'dm' (dans les messages privés avec le bot) ou 'both'. Ce que reçoit la fonction le suit : un serveur toujours là, jamais là, ou à vérifier.WhereEventOptions
L’option des événements qui se produisent aussi en messages privés.Où le fichier écoute :
'guild' (dans les serveurs, par défaut), 'dm' (dans les messages privés avec le bot) ou 'both'. Ce que reçoit la fonction le suit : un serveur toujours là, jamais là, ou à vérifier.EventWhere
'guild'), dans les messages privés avec le bot ('dm'), ou dans les deux.
Erreurs
Une déclaration qui n’est pas ce qu’attendevent() est signalée avec son fichier (et le nom de son export, quand ce n’est pas celui par défaut) au chargement, et ne fait jamais planter le bot. Dans chapterjs dev, la déclaration garde sa dernière version qui fonctionnait, si elle en avait une ; dans chapterjs build, la compilation échoue.
Pas de nom
Pas de nom
Un nom qui n’est pas un événement
Un nom qui n’est pas un événement
Did you mean n’est là que quand un vrai événement est proche du nom.event() sans objet
event() sans objet
Pas de run
Pas de run
Une option qui n’existe pas
Une option qui n’existe pas
Une mauvaise valeur
Une mauvaise valeur
Un export nommé
Un export nommé
Quand la déclaration n’est pas l’export par défaut de son fichier, le nom de l’export suit le fichier :