Passer au contenu principal
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()

Déclare quoi faire quand un événement se produit. Exportez le résultat depuis n’importe quel fichier de 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 accompagnent event() : 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

Le nom d’un événement : ce que prend name.

EventContexts

Ce que reçoit votre fonction, pour chaque événement. C’est la forme la plus large, comme si chaque option était activée : les événements sur les messages donnent un 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

Ce que reçoit votre fonction pour un événement, d’après les options que son fichier a passées à 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
Sans options, ContextOf<'messageCreate'> est ce que reçoit une déclaration sans options : un MemberMessage.

EventConfig

Ce qu’un fichier donne à 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.
Name
requis
L’événement auquel réagir : 'messageCreate', 'memberJoin'…
(context: ContextOf<Name, Options>) => unknown
requis
Quoi faire quand l’événement se produit.
Les options de l’événement, quand il en a, s’écrivent à côté : voir EventOptions.

EventDeclaration

Ce que renvoie event() : une déclaration que le framework trouve dans les exports d’un fichier.
EventConfig<Name, never>
requis
Ce que le fichier a donné à event(), pas encore vérifié.

EventOptions

Les options qu’une déclaration peut écrire à côté de name, pour les événements qui en ont.

MessageEventOptions

Options des événements sur les messages.
boolean
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.
EventWhere
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.
boolean
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.
EventWhere
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.
EventWhere
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

Où quelque chose se passe : dans les serveurs ('guild'), dans les messages privés avec le bot ('dm'), ou dans les deux.

Erreurs

Une déclaration qui n’est pas ce qu’attend event() 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.
La partie Did you mean n’est là que quand un vrai événement est proche du nom.
Pour un événement sans options :
Quand la déclaration n’est pas l’export par défaut de son fichier, le nom de l’export suit le fichier :