Comment écrire un fichier d’événement est dans Événements ; les événements sur les messages et leurs options dans Messages ;
event() et ses types dans event().name d’une déclaration event(). Chaque section ci-dessous est un événement : quand ses déclarations tournent, les intents dont Discord a besoin pour lui (déduits de vos fichiers, jamais écrits par vous), ses options, ce dont le bot se souvient pour lui au-delà de la valeur par défaut, et ce que reçoit votre fonction.
Les intents sont nommés comme les affiche chapterjs dev. Trois sont privilégiés, à activer dans le Developer Portal : GUILD_MEMBERS est le Server Members Intent, GUILD_PRESENCES le Presence Intent, MESSAGE_CONTENT le Message Content Intent.
Ce que donne chaque événement
Ce que reçoit votre fonction, événement par événement : ce dont parle l’événement, et le serveur où il s’est produit (guild). Chaque événement reçoit aussi t, dans la langue de ce serveur, quand le projet a une langue. Le type après deux-points est celui de cet objet, détaillé dans la section de l’événement ; where: 'dm' et where: 'both' affinent guild comme chaque section le dit.
ready
Chaque événement reçoit aussi
t, dans la langue du serveur où il s’est produit, quand le projet a une langue : voir TranslationContext.
guildJoin
guildLeave
memberJoin
memberUpdate
memberLeave
roleCreate
roleUpdate
roleDelete
channelCreate
Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.
channelUpdate
Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.
channelDelete
Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.
messageCreate
Le message qui a été envoyé. Le type suit les options du fichier :
MemberMessage par défaut, GuildMessage avec bots: true, DmMessage avec where: 'dm', MemberMessage | PrivateMessage avec where: 'both' (GuildMessage | PrivateMessage avec les deux options). Les quatre sont dans Message.Le serveur. Avec
where: 'dm' il n’existe pas ; avec where: 'both' il vaut null pour un message privé.messageUpdate
Le message, tel qu’il est maintenant. Le type suit les options du fichier, comme pour
messageCreate.Le serveur. Avec
where: 'dm' il n’existe pas ; avec where: 'both' il vaut null pour un message privé.messageDelete
Ce que reçoit un fichier sans
where :
Avec where: 'dm', guild n’existe pas, et dans message channel est un DMChannel | null (la conversation privée, quand le bot la connaît), before un DmMessage | null et guildId n’existe pas. Avec where: 'both', ce qui est privé arrive avec guild: null, donc guild distingue les deux.
reactionAdd
Ce que reçoit un fichier sans
where :
Avec where: 'dm', guild n’existe pas, et dans reaction channel est un DMChannel | null (la conversation privée, quand le bot la connaît), message un DmMessage | null, et guildId et member n’existent pas ; avec 'both', une réaction privée a guildId: null et member: null. Avec where: 'both', ce qui est privé arrive avec guild: null, donc guild distingue les deux.
reactionRemove
Ce que reçoit un fichier sans
where :
Avec where: 'dm', guild n’existe pas, et dans reaction channel est un DMChannel | null (la conversation privée, quand le bot la connaît), message un DmMessage | null, et guildId et member n’existent pas ; avec 'both', une réaction privée a guildId: null et member: null. Avec where: 'both', ce qui est privé arrive avec guild: null, donc guild distingue les deux.
reactionClear
Ce que reçoit un fichier sans
where :
Avec where: 'dm', guild n’existe pas, et dans reactions channel est un DMChannel | null (la conversation privée, quand le bot la connaît), message un DmMessage | null et guildId n’existe pas. Avec where: 'both', ce qui est privé arrive avec guild: null, donc guild distingue les deux.
pollVoteAdd
Ce que reçoit un fichier sans
where :
Avec where: 'dm', guild n’existe pas, et dans vote channel est un DMChannel | null (la conversation privée, quand le bot la connaît), message un DmMessage | null, et guildId et member n’existent pas ; avec 'both', un vote privé a guildId: null et member: null. Avec where: 'both', ce qui est privé arrive avec guild: null, donc guild distingue les deux.
pollVoteRemove
Reçoit la même chose que
pollVoteAdd : vote est le vote retiré.
typingStart
Ce que reçoit un fichier sans
where :
Avec where: 'dm', guild n’existe pas, et dans typing channel est un DMChannel | null (la conversation privée, quand le bot la connaît), et guildId et member n’existent pas ; avec 'both', quelqu’un qui écrit en privé a guildId: null et member: null. Avec where: 'both', ce qui est privé arrive avec guild: null, donc guild distingue les deux.
threadMemberJoin
threadMemberLeave
Qui a été retiré, en tant que membre du serveur, quand le bot s’en souvient.
voiceJoin
voiceLeave
voiceMove
voiceUpdate
presenceUpdate
La présence telle qu’elle est maintenant, et à qui elle est : les champs de
UserPresence (status, activities, clientStatus), plus :guildUpdate
banAdd
banRemove
auditLogEntryCreate
Ce qui a été fait, par qui, sur quoi. Voir
AuditLogEntry.emojiCreate
emojiUpdate
emojiDelete
inviteCreate
inviteDelete
scheduledEventCreate
Le nouvel événement programmé : voir
ScheduledEvent.scheduledEventUpdate
scheduledEventDelete
scheduledEventUserAdd
scheduledEventUserRemove
Quand Discord ne donne qu’un identifiant
Certains événements n’arrivent qu’avec l’identifiant de la personne : retirer une réaction, voter, écrire en privé, s’intéresser à un événement programmé. Quand le bot ne connaît pas encore cette personne, il la demande une fois à Discord avant de lancer vos fichiers, puis s’en souvient :user est toujours là. Comme pour un salon que le bot ne connaît pas, quand Discord refuse, l’événement n’est pas livré et on vous le dit :