Passer au contenu principal
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().
Un événement est le 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.
User
requis
Le bot lui-même.
ReadonlyMap<Snowflake, Guild>
requis
Les serveurs où se trouve le bot.

guildJoin

Guild
requis
Le serveur auquel le bot a été ajouté.

guildLeave

Guild
requis
Le serveur tel qu’il était, quand le bot y était.

memberJoin

GuildMember
requis
Le nouveau membre.
Guild
requis
Le serveur qu’il a rejoint.

memberUpdate

GuildMember
requis
Le membre, tel qu’il est maintenant.
Guild
requis
Le serveur du membre.

memberLeave

User
requis
Le compte de la personne partie.
Guild
requis
Le serveur qu’elle a quitté.

roleCreate

Role
requis
Le nouveau rôle.
Guild
requis
Le serveur du rôle.

roleUpdate

Role
requis
Le rôle, tel qu’il est maintenant.
Guild
requis
Le serveur du rôle.

roleDelete

Role
requis
Le rôle tel qu’il était.
Guild
requis
Le serveur où était le rôle.

channelCreate

GuildChannel | ThreadChannel
requis
Le nouveau salon ou fil.
Guild
requis
Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.

channelUpdate

GuildChannel | ThreadChannel
requis
Le salon ou fil, tel qu’il est maintenant.
Guild
requis
Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.

channelDelete

GuildChannel | ThreadChannel
requis
Le salon ou fil tel qu’il était.
Guild
requis
Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.

messageCreate

MemberMessage
requis
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.
Guild
requis
Le serveur. Avec where: 'dm' il n’existe pas ; avec where: 'both' il vaut null pour un message privé.

messageUpdate

MemberMessage
requis
Le message, tel qu’il est maintenant. Le type suit les options du fichier, comme pour messageCreate.
Guild
requis
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 :
DeletedMessage
requis
Le message qui a été supprimé.
Guild
requis
Le serveur où était le message.
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 :
AddedReaction
requis
La réaction qui a été ajoutée.
Guild
requis
Le serveur.
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 :
UserReaction
requis
La réaction qui a été retirée.
Guild
requis
Le serveur.
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 :
ClearedReactions
requis
Les réactions qui ont été retirées.
Guild
requis
Le serveur.
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 :
PollVote
requis
Le vote.
Guild
requis
Le serveur.
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 :
Typing
requis
Qui écrit, et où.
Guild
requis
Le serveur.
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

ThreadChannel
requis
Le fil.
GuildMember
requis
Qui a été ajouté, en tant que membre du serveur.
Guild
requis
Le serveur du fil.

threadMemberLeave

ThreadChannel
requis
Le fil.
Snowflake
requis
L’identifiant de qui a été retiré.
GuildMember | null
requis
Qui a été retiré, en tant que membre du serveur, quand le bot s’en souvient.
Guild
requis
Le serveur du fil.

voiceJoin

VoiceActivity
requis
Qui est arrivé, le salon, et son état vocal.
Guild
requis
Le serveur du salon.

voiceLeave

VoiceActivity
requis
Qui est parti, le salon quitté, et son état vocal tel qu’il était.
Guild
requis
Le serveur du salon.

voiceMove

VoiceMove
requis
Qui a changé de salon, d’où, vers où.
Guild
requis
Le serveur des salons.

voiceUpdate

VoiceChange
requis
Qui a changé, son état vocal maintenant et avant.
Guild
requis
Le serveur du salon.

presenceUpdate

PresenceChange
requis
La présence telle qu’elle est maintenant, et à qui elle est : les champs de UserPresence (status, activities, clientStatus), plus :
Guild
requis
Le serveur d’où le changement est vu.

guildUpdate

Guild
requis
Le serveur, tel qu’il est maintenant.

banAdd

User
requis
Le compte banni.
Guild
requis
Le serveur dont la personne a été bannie.

banRemove

User
requis
Le compte qui n’est plus banni.
Guild
requis
Le serveur du bannissement.

auditLogEntryCreate

AuditLogEntry
requis
Ce qui a été fait, par qui, sur quoi. Voir AuditLogEntry.
Guild
requis
Le serveur du journal d’audit.

emojiCreate

GuildEmoji
requis
Le nouvel emoji.
Guild
requis
Le serveur de l’emoji.

emojiUpdate

GuildEmoji
requis
L’emoji, tel qu’il est maintenant.
Guild
requis
Le serveur de l’emoji.

emojiDelete

GuildEmoji
requis
L’emoji tel qu’il était.
Guild
requis
Le serveur où était l’emoji.

inviteCreate

Invite
requis
La nouvelle invitation. invite.channel est le salon où elle mène.
Guild
requis
Le serveur où mène l’invitation.

inviteDelete

DeletedInvite
requis
L’invitation qui a été supprimée.
Guild
requis
Le serveur où menait l’invitation.

scheduledEventCreate

ScheduledEvent
requis
Le nouvel événement programmé : voir ScheduledEvent.
Guild
requis
Le serveur de l’événement programmé.

scheduledEventUpdate

ScheduledEvent
requis
L’événement programmé, tel qu’il est maintenant.
Guild
requis
Le serveur de l’événement programmé.

scheduledEventDelete

ScheduledEvent
requis
L’événement programmé tel qu’il était.
Guild
requis
Le serveur où était l’événement programmé.

scheduledEventUserAdd

ScheduledEventInterest
requis
Qui est intéressé, par quel événement planifié.
Guild
requis
Le serveur de l’événement planifié.

scheduledEventUserRemove

ScheduledEventInterest
requis
Qui n’est plus intéressé, par quel événement planifié.
Guild
requis
Le serveur de l’événement planifié.

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 :