> ## Documentation Index
> Fetch the complete documentation index at: https://www.chapterjs.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Événements

> Chaque événement auquel votre bot peut réagir : quand il se produit, ce dont il a besoin, et ce que reçoit votre fonction

> [!NOTE]
>
> Comment écrire un fichier d’événement est dans [Événements](https://www.chapterjs.org/fr/events.md) ; les événements sur les messages et leurs options dans [Messages](https://www.chapterjs.org/fr/events/messages.md) ; `event()` et ses types dans [event()](https://www.chapterjs.org/fr/reference/event.md).

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](https://www.chapterjs.org/fr/memory.md), 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](https://www.chapterjs.org/fr/setup/discord-application.md) : `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.

| Événement | `run` reçoit |
| - | - |
| [`ready`](https://www.chapterjs.org/fr/reference/events#ready) | `user`, `guilds` |
| [`guildJoin`](https://www.chapterjs.org/fr/reference/events#guildjoin) | `guild` |
| [`guildLeave`](https://www.chapterjs.org/fr/reference/events#guildleave) | `guild` |
| [`guildUpdate`](https://www.chapterjs.org/fr/reference/events#guildupdate) | `guild` |
| [`memberJoin`](https://www.chapterjs.org/fr/reference/events#memberjoin) | `member`, `guild` |
| [`memberUpdate`](https://www.chapterjs.org/fr/reference/events#memberupdate) | `member`, `guild` |
| [`memberLeave`](https://www.chapterjs.org/fr/reference/events#memberleave) | `user`, `guild` |
| [`roleCreate`](https://www.chapterjs.org/fr/reference/events#rolecreate) | `role`, `guild` |
| [`roleUpdate`](https://www.chapterjs.org/fr/reference/events#roleupdate) | `role`, `guild` |
| [`roleDelete`](https://www.chapterjs.org/fr/reference/events#roledelete) | `role`, `guild` |
| [`channelCreate`](https://www.chapterjs.org/fr/reference/events#channelcreate) | `channel`, `guild` |
| [`channelUpdate`](https://www.chapterjs.org/fr/reference/events#channelupdate) | `channel`, `guild` |
| [`channelDelete`](https://www.chapterjs.org/fr/reference/events#channeldelete) | `channel`, `guild` |
| [`messageCreate`](https://www.chapterjs.org/fr/reference/events#messagecreate) | `message`, `guild` |
| [`messageUpdate`](https://www.chapterjs.org/fr/reference/events#messageupdate) | `message`, `guild` |
| [`messageDelete`](https://www.chapterjs.org/fr/reference/events#messagedelete) | `message: DeletedMessage`, `guild` |
| [`reactionAdd`](https://www.chapterjs.org/fr/reference/events#reactionadd) | `reaction: AddedReaction`, `guild` |
| [`reactionRemove`](https://www.chapterjs.org/fr/reference/events#reactionremove) | `reaction: UserReaction`, `guild` |
| [`reactionClear`](https://www.chapterjs.org/fr/reference/events#reactionclear) | `reactions: ClearedReactions`, `guild` |
| [`pollVoteAdd`](https://www.chapterjs.org/fr/reference/events#pollvoteadd) | `vote: PollVote`, `guild` |
| [`pollVoteRemove`](https://www.chapterjs.org/fr/reference/events#pollvoteremove) | `vote: PollVote`, `guild` |
| [`typingStart`](https://www.chapterjs.org/fr/reference/events#typingstart) | `typing: Typing`, `guild` |
| [`threadMemberJoin`](https://www.chapterjs.org/fr/reference/events#threadmemberjoin) | `thread`, `member`, `guild` |
| [`threadMemberLeave`](https://www.chapterjs.org/fr/reference/events#threadmemberleave) | `thread`, `userId`, `member`, `guild` |
| [`voiceJoin`](https://www.chapterjs.org/fr/reference/events#voicejoin) | `voice: VoiceActivity`, `guild` |
| [`voiceLeave`](https://www.chapterjs.org/fr/reference/events#voiceleave) | `voice: VoiceActivity`, `guild` |
| [`voiceMove`](https://www.chapterjs.org/fr/reference/events#voicemove) | `voice: VoiceMove`, `guild` |
| [`voiceUpdate`](https://www.chapterjs.org/fr/reference/events#voiceupdate) | `voice: VoiceChange`, `guild` |
| [`presenceUpdate`](https://www.chapterjs.org/fr/reference/events#presenceupdate) | `presence: PresenceChange`, `guild` |
| [`banAdd`](https://www.chapterjs.org/fr/reference/events#banadd) | `user`, `guild` |
| [`banRemove`](https://www.chapterjs.org/fr/reference/events#banremove) | `user`, `guild` |
| [`auditLogEntryCreate`](https://www.chapterjs.org/fr/reference/events#auditlogentrycreate) | `entry`, `guild` |
| [`emojiCreate`](https://www.chapterjs.org/fr/reference/events#emojicreate) | `emoji`, `guild` |
| [`emojiUpdate`](https://www.chapterjs.org/fr/reference/events#emojiupdate) | `emoji`, `guild` |
| [`emojiDelete`](https://www.chapterjs.org/fr/reference/events#emojidelete) | `emoji`, `guild` |
| [`inviteCreate`](https://www.chapterjs.org/fr/reference/events#invitecreate) | `invite`, `guild` |
| [`inviteDelete`](https://www.chapterjs.org/fr/reference/events#invitedelete) | `invite: DeletedInvite`, `guild` |
| [`scheduledEventCreate`](https://www.chapterjs.org/fr/reference/events#scheduledeventcreate) | `scheduledEvent`, `guild` |
| [`scheduledEventUpdate`](https://www.chapterjs.org/fr/reference/events#scheduledeventupdate) | `scheduledEvent`, `guild` |
| [`scheduledEventDelete`](https://www.chapterjs.org/fr/reference/events#scheduledeventdelete) | `scheduledEvent`, `guild` |
| [`scheduledEventUserAdd`](https://www.chapterjs.org/fr/reference/events#scheduledeventuseradd) | `interest: ScheduledEventInterest`, `guild` |
| [`scheduledEventUserRemove`](https://www.chapterjs.org/fr/reference/events#scheduledeventuserremove) | `interest: ScheduledEventInterest`, `guild` |

## ready

| | |
| - | - |
| Quand | Le bot est connecté et connaît chaque serveur où il se trouve. Une fois par démarrage, jamais à nouveau lors d’un rechargement. |
| Intents | Aucun |
| Options | Aucune |
| Mémoire | Par défaut |

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`](https://www.chapterjs.org/fr/reference/messages#translationcontext).

**user** `User` *required*

Le bot lui-même.

**guilds** `ReadonlyMap\<Snowflake, Guild\>` *required*

Les serveurs où se trouve le bot.

## guildJoin

| | |
| - | - |
| Quand | Le bot a été ajouté à un serveur. Pas quand un serveur où le bot se trouvait déjà envoie ses données (après la connexion, ou après une panne). |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**guild** `Guild` *required*

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

## guildLeave

| | |
| - | - |
| Quand | Le bot a été retiré d’un serveur. Pas pendant une panne de Discord, quand un serveur devient indisponible mais que le bot y est toujours. |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**guild** `Guild` *required*

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

## memberJoin

| | |
| - | - |
| Quand | Quelqu’un a rejoint un serveur. |
| Intents | `GUILD_MEMBERS` (privilégié) |
| Options | Aucune |
| Mémoire | Par défaut |

**member** `GuildMember` *required*

Le nouveau membre.

**guild** `Guild` *required*

Le serveur qu’il a rejoint.

## memberUpdate

| | |
| - | - |
| Quand | Un membre a changé : surnom, rôles, exclusion temporaire, avatar... |
| Intents | `GUILD_MEMBERS` (privilégié) |
| Options | Aucune |
| Mémoire | Par défaut |

**member** `GuildMember` *required*

Le membre, tel qu’il est maintenant.

**guild** `Guild` *required*

Le serveur du membre.

## memberLeave

| | |
| - | - |
| Quand | Quelqu’un a quitté un serveur, ou a été expulsé ou banni. |
| Intents | `GUILD_MEMBERS` (privilégié) |
| Options | Aucune |
| Mémoire | Par défaut |

**user** `User` *required*

Le compte de la personne partie.

**guild** `Guild` *required*

Le serveur qu’elle a quitté.

## roleCreate

| | |
| - | - |
| Quand | Un rôle a été créé. |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**role** `Role` *required*

Le nouveau rôle.

**guild** `Guild` *required*

Le serveur du rôle.

## roleUpdate

| | |
| - | - |
| Quand | Un rôle a changé : nom, couleur, permissions, position... |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**role** `Role` *required*

Le rôle, tel qu’il est maintenant.

**guild** `Guild` *required*

Le serveur du rôle.

## roleDelete

| | |
| - | - |
| Quand | Un rôle a été supprimé. |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut : le bot connaît chaque rôle de ses serveurs |

**role** `Role` *required*

Le rôle tel qu’il était.

**guild** `Guild` *required*

Le serveur où était le rôle.

## channelCreate

| | |
| - | - |
| Quand | Un salon ou un fil a été créé. |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**channel** `GuildChannel | ThreadChannel` *required*

Le nouveau salon ou fil.

**guild** `Guild` *required*

Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.

## channelUpdate

| | |
| - | - |
| Quand | Un salon ou un fil a changé : nom, sujet, permissions... |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**channel** `GuildChannel | ThreadChannel` *required*

Le salon ou fil, tel qu’il est maintenant.

**guild** `Guild` *required*

Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.

## channelDelete

| | |
| - | - |
| Quand | Un salon ou un fil a été supprimé. |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**channel** `GuildChannel | ThreadChannel` *required*

Le salon ou fil tel qu’il était.

**guild** `Guild` *required*

Le serveur du salon : Discord n’envoie ces événements, avec l’intent Guilds, que pour les salons d’un serveur.

## messageCreate

| | |
| - | - |
| Quand | Un message a été envoyé, sur un serveur ou en privé. Par défaut, seulement par une personne, sur un serveur. |
| Intents | `MESSAGE_CONTENT` (privilégié), plus `GUILD_MESSAGES` pour un fichier qui écoute sur les serveurs et `DIRECT_MESSAGES` pour un fichier qui écoute en messages privés |
| Options | `bots`, `where` ([MessageEventOptions](https://www.chapterjs.org/fr/reference/event.md#messageeventoptions)) |
| Mémoire | Par défaut |

**message** `MemberMessage` *required*

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](https://www.chapterjs.org/fr/reference/message.md#types).

**guild** `Guild` *required*

Le serveur. Avec `where: 'dm'` il n’existe pas ; avec `where: 'both'` il vaut `null` pour un message privé.

## messageUpdate

| | |
| - | - |
| Quand | Un message a été modifié. Par défaut, seulement le message d’une personne, sur un serveur. |
| Intents | `MESSAGE_CONTENT` (privilégié), plus `GUILD_MESSAGES` pour un fichier qui écoute sur les serveurs et `DIRECT_MESSAGES` pour un fichier qui écoute en messages privés |
| Options | `bots`, `where` ([MessageEventOptions](https://www.chapterjs.org/fr/reference/event.md#messageeventoptions)) |
| Mémoire | Par défaut |

**message** `MemberMessage` *required*

Le message, tel qu’il est maintenant. Le type suit les options du fichier, comme pour `messageCreate`.

**guild** `Guild` *required*

Le serveur. Avec `where: 'dm'` il n’existe pas ; avec `where: 'both'` il vaut `null` pour un message privé.

## messageDelete

| | |
| - | - |
| Quand | Un message a été supprimé. Par défaut, seulement sur un serveur. Des messages supprimés ensemble (par un modérateur, ou par `bulkDelete()`) font un `messageDelete` chacun. |
| Intents | `GUILD_MESSAGES` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGES` pour un fichier qui écoute en messages privés |
| Options | `where` ([WhereEventOptions](https://www.chapterjs.org/fr/reference/event.md#whereeventoptions)) |
| Mémoire | Par défaut : aucun message, donc `message.before` est `null` aujourd’hui |

Ce que reçoit un fichier sans `where` :

**message** `DeletedMessage` *required*

Le message qui a été supprimé.

**propriétés**

**id** `Snowflake` *required*

L’identifiant du message supprimé.

**channelId** `Snowflake` *required*

L’identifiant du salon où était le message.

**channel** `GuildTextBasedChannel` *required*

Le salon où était le message.

**guildId** `Snowflake` *required*

L’identifiant du serveur.

**before** `GuildMessage | null` *required*

Le message tel qu’il était, quand le bot s’en souvenait.

**guild** `Guild` *required*

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

| | |
| - | - |
| Quand | Quelqu’un a ajouté une réaction à un message. Par défaut, seulement une personne, sur un serveur. |
| Intents | `GUILD_MESSAGE_REACTIONS` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGE_REACTIONS` pour un fichier qui écoute en messages privés |
| Options | `bots`, `where` ([ReactionEventOptions](https://www.chapterjs.org/fr/reference/event.md#reactioneventoptions)) |
| Mémoire | Par défaut : aucun message, donc `reaction.message` est `null` aujourd’hui |

Ce que reçoit un fichier sans `where` :

**reaction** `AddedReaction` *required*

La réaction qui a été ajoutée.

**propriétés**

**emoji** `ReactionEmoji` *required*

L’emoji de la réaction : [`ReactionEmoji`](https://www.chapterjs.org/fr/reference/data#reactionemoji).

**user** `User` *required*

Qui a réagi.

**member** `GuildMember` *required*

Qui a réagi, en tant que membre du serveur.

**burst** `boolean` *required*

Si c’est une super réaction.

**messageId** `Snowflake` *required*

L’identifiant du message.

**message** `GuildMessage | null` *required*

Le message, quand le bot s’en souvient.

**messageAuthorId** `Snowflake | null` *required*

L’identifiant de qui a écrit le message, quand Discord le dit.

**channelId** `Snowflake` *required*

L’identifiant du salon du message.

**channel** `GuildTextBasedChannel` *required*

Le salon du message.

**guildId** `Snowflake` *required*

L’identifiant du serveur.

**guild** `Guild` *required*

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

| | |
| - | - |
| Quand | Quelqu’un a retiré sa réaction d’un message. Par défaut, seulement une personne, sur un serveur. |
| Intents | `GUILD_MESSAGE_REACTIONS` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGE_REACTIONS` pour un fichier qui écoute en messages privés |
| Options | `bots`, `where` ([ReactionEventOptions](https://www.chapterjs.org/fr/reference/event.md#reactioneventoptions)) |
| Mémoire | Par défaut |

Ce que reçoit un fichier sans `where` :

**reaction** `UserReaction` *required*

La réaction qui a été retirée.

**propriétés**

**emoji** `ReactionEmoji` *required*

L’emoji de la réaction : [`ReactionEmoji`](https://www.chapterjs.org/fr/reference/data#reactionemoji).

**user** `User` *required*

Qui a réagi.

**member** `GuildMember | null` *required*

Qui a réagi, en tant que membre du serveur, quand le bot s’en souvient.

**burst** `boolean` *required*

Si c’est une super réaction.

**messageId** `Snowflake` *required*

L’identifiant du message.

**message** `GuildMessage | null` *required*

Le message, quand le bot s’en souvient.

**channelId** `Snowflake` *required*

L’identifiant du salon du message.

**channel** `GuildTextBasedChannel` *required*

Le salon du message.

**guildId** `Snowflake` *required*

L’identifiant du serveur.

**guild** `Guild` *required*

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

| | |
| - | - |
| Quand | Les réactions d’un message ont été retirées : toutes, ou toutes celles d’un emoji. Par défaut, seulement sur un serveur. |
| Intents | `GUILD_MESSAGE_REACTIONS` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGE_REACTIONS` pour un fichier qui écoute en messages privés |
| Options | `where` ([WhereEventOptions](https://www.chapterjs.org/fr/reference/event.md#whereeventoptions)) |
| Mémoire | Par défaut |

Ce que reçoit un fichier sans `where` :

**reactions** `ClearedReactions` *required*

Les réactions qui ont été retirées.

**propriétés**

**emoji** `ReactionEmoji | null` *required*

L’emoji dont les réactions ont été retirées ; `null` quand toutes l’ont été.

**messageId** `Snowflake` *required*

L’identifiant du message.

**message** `GuildMessage | null` *required*

Le message, quand le bot s’en souvient.

**channelId** `Snowflake` *required*

L’identifiant du salon du message.

**channel** `GuildTextBasedChannel` *required*

Le salon du message.

**guildId** `Snowflake` *required*

L’identifiant du serveur.

**guild** `Guild` *required*

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

| | |
| - | - |
| Quand | Quelqu’un a voté dans un sondage. Par défaut, seulement sur un serveur. |
| Intents | `GUILD_MESSAGE_POLLS` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGE_POLLS` pour un fichier qui écoute en messages privés |
| Options | `where` ([WhereEventOptions](https://www.chapterjs.org/fr/reference/event.md#whereeventoptions)) |
| Mémoire | Par défaut |

Ce que reçoit un fichier sans `where` :

**vote** `PollVote` *required*

Le vote.

**propriétés**

**answerId** `number` *required*

L’identifiant que Discord a donné à la réponse : aujourd’hui, sa position dans le sondage, `1` pour la première réponse.

**user** `User` *required*

Qui a voté.

**member** `GuildMember | null` *required*

Qui a voté, en tant que membre du serveur, quand le bot s’en souvient.

**messageId** `Snowflake` *required*

L’identifiant du message du sondage.

**message** `GuildMessage | null` *required*

Le message du sondage, quand le bot s’en souvient.

**channelId** `Snowflake` *required*

L’identifiant du salon du sondage.

**channel** `GuildTextBasedChannel` *required*

Le salon du sondage.

**guildId** `Snowflake` *required*

L’identifiant du serveur.

**guild** `Guild` *required*

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

| | |
| - | - |
| Quand | Quelqu’un a retiré son vote d’un sondage. Par défaut, seulement sur un serveur. |
| Intents | `GUILD_MESSAGE_POLLS` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGE_POLLS` pour un fichier qui écoute en messages privés |
| Options | `where` ([WhereEventOptions](https://www.chapterjs.org/fr/reference/event.md#whereeventoptions)) |
| Mémoire | Par défaut |

Reçoit la même chose que `pollVoteAdd` : `vote` est le vote retiré.

## typingStart

| | |
| - | - |
| Quand | Quelqu’un a commencé à écrire dans un salon. Par défaut, seulement sur un serveur. |
| Intents | `GUILD_MESSAGE_TYPING` pour un fichier qui écoute sur les serveurs, `DIRECT_MESSAGE_TYPING` pour un fichier qui écoute en messages privés |
| Options | `where` ([WhereEventOptions](https://www.chapterjs.org/fr/reference/event.md#whereeventoptions)) |
| Mémoire | Par défaut |

Ce que reçoit un fichier sans `where` :

**typing** `Typing` *required*

Qui écrit, et où.

**propriétés**

**user** `User` *required*

Qui écrit.

**member** `GuildMember` *required*

Qui écrit, en tant que membre du serveur.

**startedAt** `Date` *required*

Quand la personne a commencé.

**channelId** `Snowflake` *required*

L’identifiant du salon.

**channel** `GuildTextBasedChannel` *required*

Le salon.

**guildId** `Snowflake` *required*

L’identifiant du serveur.

**guild** `Guild` *required*

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

| | |
| - | - |
| Quand | Quelqu’un a été ajouté à un fil, ou l’a rejoint. |
| Intents | `GUILD_MEMBERS` (privilégié) : sans lui, Discord ne dit que quand le bot lui-même rejoint un fil |
| Options | Aucune |
| Mémoire | Par défaut |

**thread** `ThreadChannel` *required*

Le fil.

**member** `GuildMember` *required*

Qui a été ajouté, en tant que membre du serveur.

**guild** `Guild` *required*

Le serveur du fil.

## threadMemberLeave

| | |
| - | - |
| Quand | Quelqu’un a été retiré d’un fil, ou l’a quitté. |
| Intents | `GUILD_MEMBERS` (privilégié) |
| Options | Aucune |
| Mémoire | Par défaut |

**thread** `ThreadChannel` *required*

Le fil.

**userId** `Snowflake` *required*

L’identifiant de qui a été retiré.

**member** `GuildMember | null` *required*

Qui a été retiré, en tant que membre du serveur, quand le bot s’en souvient.

**guild** `Guild` *required*

Le serveur du fil.

## voiceJoin

| | |
| - | - |
| Quand | Quelqu’un a rejoint un salon vocal. |
| Intents | `GUILD_VOICE_STATES` |
| Options | Aucune |
| Mémoire | Qui est dans un salon vocal, tant que la personne y est |

**voice** `VoiceActivity` *required*

Qui est arrivé, le salon, et son état vocal.

**propriétés**

**member** `GuildMember` *required*

Qui c’est.

**channel** `VoiceChannel` *required*

Le salon vocal.

**state** `VoiceState` *required*

Son état vocal : coupé, sourd, en stream... ([`VoiceState`](https://www.chapterjs.org/fr/reference/data#voicestate))

**guild** `Guild` *required*

Le serveur du salon.

## voiceLeave

| | |
| - | - |
| Quand | Quelqu’un a quitté un salon vocal, ou a été déconnecté. |
| Intents | `GUILD_VOICE_STATES` |
| Options | Aucune |
| Mémoire | Qui est dans un salon vocal, tant que la personne y est |

**voice** `VoiceActivity` *required*

Qui est parti, le salon quitté, et son état vocal tel qu’il était.

**propriétés**

**member** `GuildMember` *required*

Qui c’est.

**channel** `VoiceChannel` *required*

Le salon vocal.

**state** `VoiceState` *required*

Son état vocal, tel qu’il était dans ce salon.

**guild** `Guild` *required*

Le serveur du salon.

## voiceMove

| | |
| - | - |
| Quand | Quelqu’un est passé d’un salon vocal à un autre, ou a été déplacé. |
| Intents | `GUILD_VOICE_STATES` |
| Options | Aucune |
| Mémoire | Qui est dans un salon vocal, tant que la personne y est |

**voice** `VoiceMove` *required*

Qui a changé de salon, d’où, vers où.

**propriétés**

**member** `GuildMember` *required*

Qui a changé de salon.

**from** `VoiceChannel` *required*

Le salon quitté.

**to** `VoiceChannel` *required*

Le salon où la personne est maintenant.

**state** `VoiceState` *required*

Son état vocal, tel qu’il est maintenant.

**guild** `Guild` *required*

Le serveur des salons.

## voiceUpdate

| | |
| - | - |
| Quand | Quelqu’un dans un salon vocal a changé : micro ou casque coupé, un stream ou une caméra lancés... Pas quand la personne rejoint, quitte ou change de salon. |
| Intents | `GUILD_VOICE_STATES` |
| Options | Aucune |
| Mémoire | Qui est dans un salon vocal, tant que la personne y est |

**voice** `VoiceChange` *required*

Qui a changé, son état vocal maintenant et avant.

**propriétés**

**member** `GuildMember` *required*

Qui c’est.

**channel** `VoiceChannel` *required*

Le salon vocal.

**state** `VoiceState` *required*

Son état vocal, tel qu’il est maintenant.

**before** `VoiceState` *required*

Son état vocal tel qu’il était.

**guild** `Guild` *required*

Le serveur du salon.

## presenceUpdate

| | |
| - | - |
| Quand | Le statut ou l’activité de quelqu’un a changé : en ligne, absent, en train de jouer... Envoyé pour chaque serveur que le bot partage avec la personne. |
| Intents | `GUILD_PRESENCES` (privilégié) |
| Options | Aucune |
| Mémoire | Par défaut |

**presence** `PresenceChange` *required*

La présence telle qu’elle est maintenant, et à qui elle est : les champs de [`UserPresence`](https://www.chapterjs.org/fr/reference/data#userpresence) (`status`, `activities`, `clientStatus`), plus :

**propriétés**

**userId** `Snowflake` *required*

L’identifiant de la personne dont la présence a changé.

**user** `User | null` *required*

Le compte de la personne, quand le bot le connaît.

**member** `GuildMember | null` *required*

La personne, en tant que membre du serveur, quand le bot s’en souvient.

**guild** `Guild` *required*

Le serveur d’où le changement est vu.

## guildUpdate

| | |
| - | - |
| Quand | Le serveur a changé : nom, icône, paramètres... |
| Intents | `GUILDS` |
| Options | Aucune |
| Mémoire | Par défaut |

**guild** `Guild` *required*

Le serveur, tel qu’il est maintenant.

## banAdd

| | |
| - | - |
| Quand | Quelqu’un a été banni d’un serveur. La personne le quitte aussi : `memberLeave` tourne aussi. |
| Intents | `GUILD_MODERATION` |
| Options | Aucune |
| Mémoire | Par défaut |

**user** `User` *required*

Le compte banni.

**guild** `Guild` *required*

Le serveur dont la personne a été bannie.

## banRemove

| | |
| - | - |
| Quand | Un bannissement a été levé : la personne peut de nouveau rejoindre le serveur. |
| Intents | `GUILD_MODERATION` |
| Options | Aucune |
| Mémoire | Par défaut |

**user** `User` *required*

Le compte qui n’est plus banni.

**guild** `Guild` *required*

Le serveur du bannissement.

## auditLogEntryCreate

| | |
| - | - |
| Quand | Quelque chose a été ajouté au journal d’audit d’un serveur. Seulement pour un bot qui y a la permission `ViewAuditLog`. |
| Intents | `GUILD_MODERATION` |
| Options | Aucune |
| Mémoire | Par défaut |

**entry** `AuditLogEntry` *required*

Ce qui a été fait, par qui, sur quoi. Voir [`AuditLogEntry`](https://www.chapterjs.org/fr/reference/data#auditlogentry).

**guild** `Guild` *required*

Le serveur du journal d’audit.

## emojiCreate

| | |
| - | - |
| Quand | Un emoji a été ajouté à un serveur. |
| Intents | `GUILD_EXPRESSIONS` |
| Options | Aucune |
| Mémoire | Par défaut : le bot connaît chaque emoji de ses serveurs |

**emoji** `GuildEmoji` *required*

Le nouvel emoji.

**guild** `Guild` *required*

Le serveur de l’emoji.

## emojiUpdate

| | |
| - | - |
| Quand | Un emoji d’un serveur a changé : son nom, ou qui peut l’utiliser. |
| Intents | `GUILD_EXPRESSIONS` |
| Options | Aucune |
| Mémoire | Par défaut |

**emoji** `GuildEmoji` *required*

L’emoji, tel qu’il est maintenant.

**guild** `Guild` *required*

Le serveur de l’emoji.

## emojiDelete

| | |
| - | - |
| Quand | Un emoji a été retiré d’un serveur. |
| Intents | `GUILD_EXPRESSIONS` |
| Options | Aucune |
| Mémoire | Par défaut |

**emoji** `GuildEmoji` *required*

L’emoji tel qu’il était.

**guild** `Guild` *required*

Le serveur où était l’emoji.

## inviteCreate

| | |
| - | - |
| Quand | Une invitation vers un serveur a été créée. Seulement pour un bot qui a la permission `ManageChannels` sur son salon. |
| Intents | `GUILD_INVITES` |
| Options | Aucune |
| Mémoire | Par défaut |

**invite** `Invite` *required*

La nouvelle invitation. `invite.channel` est le salon où elle mène.

**guild** `Guild` *required*

Le serveur où mène l’invitation.

## inviteDelete

| | |
| - | - |
| Quand | Une invitation a été supprimée, ou a expiré. Seulement pour un bot qui a la permission `ManageChannels` sur son salon. |
| Intents | `GUILD_INVITES` |
| Options | Aucune |
| Mémoire | Par défaut |

**invite** `DeletedInvite` *required*

L’invitation qui a été supprimée.

**propriétés**

**code** `string` *required*

Le code de l’invitation (`discord.gg/code`).

**channel** `GuildChannel` *required*

Le salon où menait l’invitation.

**guild** `Guild` *required*

Le serveur où menait l’invitation.

## scheduledEventCreate

| | |
| - | - |
| Quand | Un événement a été programmé sur un serveur. |
| Intents | `GUILD_SCHEDULED_EVENTS` |
| Options | Aucune |
| Mémoire | Par défaut |

**scheduledEvent** `ScheduledEvent` *required*

Le nouvel événement programmé : voir [`ScheduledEvent`](https://www.chapterjs.org/fr/reference/data#scheduledevent).

**guild** `Guild` *required*

Le serveur de l’événement programmé.

## scheduledEventUpdate

| | |
| - | - |
| Quand | Un événement programmé a changé : son heure, son lieu, ou il a commencé ou s’est terminé. |
| Intents | `GUILD_SCHEDULED_EVENTS` |
| Options | Aucune |
| Mémoire | Par défaut |

**scheduledEvent** `ScheduledEvent` *required*

L’événement programmé, tel qu’il est maintenant.

**guild** `Guild` *required*

Le serveur de l’événement programmé.

## scheduledEventDelete

| | |
| - | - |
| Quand | Un événement programmé a été supprimé. |
| Intents | `GUILD_SCHEDULED_EVENTS` |
| Options | Aucune |
| Mémoire | Par défaut |

**scheduledEvent** `ScheduledEvent` *required*

L’événement programmé tel qu’il était.

**guild** `Guild` *required*

Le serveur où était l’événement programmé.

## scheduledEventUserAdd

| | |
| - | - |
| Quand | Quelqu’un s’est dit intéressé par un événement programmé. |
| Intents | `GUILD_SCHEDULED_EVENTS` |
| Options | Aucune |
| Mémoire | Par défaut |

**interest** `ScheduledEventInterest` *required*

Qui est intéressé, par quel événement planifié.

**propriétés**

**scheduledEventId** `Snowflake` *required*

L’identifiant de l’événement planifié.

**user** `User` *required*

Qui c’est.

**member** `GuildMember | null` *required*

Qui c’est, en tant que membre du serveur, quand le bot s’en souvient.

**guild** `Guild` *required*

Le serveur de l’événement planifié.

## scheduledEventUserRemove

| | |
| - | - |
| Quand | Quelqu’un n’est plus intéressé par un événement programmé. |
| Intents | `GUILD_SCHEDULED_EVENTS` |
| Options | Aucune |
| Mémoire | Par défaut |

**interest** `ScheduledEventInterest` *required*

Qui n’est plus intéressé, par quel événement planifié.

**propriétés**

**scheduledEventId** `Snowflake` *required*

L’identifiant de l’événement planifié.

**user** `User` *required*

Qui c’est.

**member** `GuildMember | null` *required*

Qui c’est, en tant que membre du serveur, quand le bot s’en souvient.

**guild** `Guild` *required*

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](https://www.chapterjs.org/fr/events/messages.md#un-salon-que-le-bot-ne-connaît-pas), quand Discord refuse, l’événement n’est pas livré et on vous le dit :

```text theme={"theme":{"light":"github-light","dark":"vesper"}}
⚠ A reactionRemove event was not given to your files: Discord did not let the bot read the user who did it (Discord refused GET /users/{user.id}: Unknown User (10013)).
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.