> ## 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.

# Options

> Trouver chaque champ que vous pouvez passer à edit() et aux méthodes qui créent des salons, des fils, des publications, des rôles et des invitations

Les méthodes qui créent ou modifient quelque chose prennent un objet d’options. Ses champs sont ceux de Discord, écrits en camelCase ; votre éditeur les complète.

> [!NOTE]
>
> Ces options appartiennent aux actions de [Guild](https://www.chapterjs.org/fr/reference/guild.md), des [salons](https://www.chapterjs.org/fr/reference/channels) et de [Role](https://www.chapterjs.org/fr/reference/role.md). Ce que prend un message est dans [Options des messages](https://www.chapterjs.org/fr/reference/message-options.md), ce que prend un membre dans [GuildMember](https://www.chapterjs.org/fr/reference/member.md#types).

Quelques règles valent partout :

* À la modification, seul ce que vous passez change. `null` retire une valeur quand le type le permet.
* Les images sont des data URI : `data:image/png;base64,...`.
* Les identifiants sont des `Snowflake` : l’`id` d’une structure, ou le texte copié depuis Discord.
* Les permissions s’écrivent par leur nom (`'ManageThreads'`), jamais sous forme de nombres : voir [Permissions](https://www.chapterjs.org/fr/reference/permissions.md).

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
import type { Guild } from 'chapterjs';

async function setUp(guild: Guild) {
  const role = await guild.createRole({ name: 'Aidant', permissions: ['ManageMessages'] });
  await guild.createChannel({ name: 'aide', topic: `Demandez n’importe quoi à ${role}` });
}
```

## GuildEditOptions

Ce que prend `edit()` sur un serveur : seul ce qui est passé change. Les images sont des data URI (`data:image/png;base64,...`).

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
guild.edit(options: GuildEditOptions, reason?: string): Promise<Guild>
```

**name** `string`

Le nom du serveur.

**verificationLevel** `VerificationLevel | null`

Ce que Discord demande aux nouveaux membres avant qu’ils puissent écrire : une valeur de [`VerificationLevel`](https://www.chapterjs.org/fr/reference/enums#verificationlevel).

**defaultMessageNotifications** `DefaultMessageNotificationLevel | null`

Si les membres reçoivent par défaut une notification pour chaque message ou seulement quand ils sont mentionnés : une valeur de [`DefaultMessageNotificationLevel`](https://www.chapterjs.org/fr/reference/enums#defaultmessagenotificationlevel).

**explicitContentFilter** `ExplicitContentFilterLevel | null`

Les images et vidéos de qui Discord analyse à la recherche de contenu explicite : une valeur de [`ExplicitContentFilterLevel`](https://www.chapterjs.org/fr/reference/enums#explicitcontentfilterlevel).

**afkChannelId** `Snowflake | null`

L’identifiant du salon vocal où sont déplacés les membres inactifs.

**afkTimeout** `number`

Au bout de combien de secondes d’inactivité un membre y est déplacé : `60`, `300`, `900`, `1800` ou `3600`.

**icon** `string | null`

L’icône : un PNG, JPEG ou GIF de 1024x1024 (un GIF animé seulement quand le serveur a la fonctionnalité `ANIMATED_ICON`).

**splash** `string | null`

L’arrière-plan de la page d’invitation : un PNG ou JPEG en 16:9 (quand le serveur a la fonctionnalité `INVITE_SPLASH`).

**discoverySplash** `string | null`

L’arrière-plan affiché dans la découverte de serveurs : un PNG ou JPEG en 16:9 (quand le serveur a la fonctionnalité `DISCOVERABLE`).

**banner** `string | null`

La bannière : un PNG ou JPEG en 16:9 (quand le serveur a la fonctionnalité `BANNER` ; un GIF animé quand il a la fonctionnalité `ANIMATED_BANNER`).

**systemChannelId** `Snowflake | null`

L’identifiant du salon où Discord publie les messages de bienvenue et les avis de boost.

**systemChannelFlags** `number`

Lesquels de ces avis sont masqués, sous forme de champ de bits.

**rulesChannelId** `Snowflake | null`

L’identifiant du salon qui affiche le règlement, sur un serveur Communauté.

**publicUpdatesChannelId** `Snowflake | null`

L’identifiant du salon où les administrateurs et modérateurs d’un serveur Communauté reçoivent les avis de Discord.

**preferredLocale** `Locale | null`

La langue d’un serveur Communauté, utilisée dans la découverte de serveurs et dans les avis qu’envoie Discord ; `'en-US'` par défaut. Une valeur de [`Locale`](https://www.chapterjs.org/fr/reference/enums#locale).

**features** `GuildFeature[]`

Les fonctionnalités activées sur le serveur : voir [`GuildFeature`](https://www.chapterjs.org/fr/reference/guild#types).

**description** `string | null`

La description du serveur.

**premiumProgressBarEnabled** `boolean`

Si la barre de progression des boosts est affichée.

**safetyAlertsChannelId** `Snowflake | null`

L’identifiant du salon où les administrateurs et modérateurs d’un serveur Communauté reçoivent les alertes de sécurité de Discord.

[Documentation de Discord](https://docs.discord.com/developers/resources/guild#modify-guild-json-params)

## ChannelCreateOptions

Ce que prend `createChannel()` : un nom, un type, et les réglages de cette sorte de salon.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
guild.createChannel(options: ChannelCreateOptions, reason?: string): Promise<GuildChannel>
```

Seul `name` est nécessaire : sans `type`, Discord crée un salon textuel. Les autres champs ne s’appliquent qu’à la sorte de salon qu’ils décrivent.

**name** `string` *required*

Le nom du salon (1 à 100 caractères).

**type** `ChannelType | null`

La sorte de salon : une valeur de [`ChannelType`](https://www.chapterjs.org/fr/reference/enums#channeltype).

**topic** `string | null`

Le sujet affiché en haut du salon (0 à 1024 caractères).

**bitrate** `number | null`

La qualité audio d’un salon vocal ou de conférence, en bits par seconde ; 8000 au moins.

**userLimit** `number | null`

Combien de personnes peuvent rejoindre un salon vocal.

**rateLimitPerUser** `number | null`

Mode lent : combien de secondes un membre attend entre deux messages (0 à 21600). Les bots et les membres avec la permission `BypassSlowmode` ne sont pas concernés.

**position** `number | null`

Où se trouve le salon dans la liste (les salons de même position sont triés par identifiant).

**permissionOverwrites** `object[] | null`

Ce que les rôles et les membres ont le droit ou non de faire dans le salon.

**champs d’un remplacement**

**id** `Snowflake`

L’identifiant du rôle ou du membre.

**type** `0 | 1`

`0` pour un rôle, `1` pour un membre.

**allow** `string`

Ce qui est autorisé, sous la forme de texte qu’attend Discord : `new Permissions(['SendMessages']).toString()`.

**deny** `string`

Ce qui est refusé, écrit de la même façon.

**parentId** `Snowflake | null`

L’identifiant de la catégorie où mettre le salon.

**nsfw** `boolean | null`

Si le salon est soumis à une limite d’âge.

**rtcRegion** `string | null`

La région vocale d’un salon vocal ou de conférence ; `null` laisse Discord la choisir.

**videoQualityMode** `VideoQualityMode | null`

La qualité des caméras d’un salon vocal : une valeur de [`VideoQualityMode`](https://www.chapterjs.org/fr/reference/enums#videoqualitymode).

**defaultAutoArchiveDuration** `number | null`

Au bout de combien de minutes sans activité l’app Discord propose d’archiver un nouveau fil du salon.

**defaultReactionEmoji** `object | null`

L’emoji du bouton « ajouter une réaction » sur les publications d’un salon forum ou média.

**champs**

**emojiId** `Snowflake | null`

L’identifiant d’un emoji personnalisé du serveur.

**emojiName** `string | null`

Un emoji standard, sous forme de son caractère.

**availableTags** `ForumTag[] | null`

Les étiquettes que peuvent avoir les publications d’un salon forum ou média : voir [`ForumTag`](https://www.chapterjs.org/fr/reference/data#forumtag). Une nouvelle étiquette n’a pas encore d’`id` : Discord lui en donne un.

**defaultSortOrder** `ForumSortOrderType | null`

Comment sont triées les publications d’un salon forum ou média : une valeur de [`ForumSortOrderType`](https://www.chapterjs.org/fr/reference/enums#forumsortordertype).

**defaultForumLayout** `ForumLayoutType | null`

Comment sont affichées les publications d’un forum : une valeur de [`ForumLayoutType`](https://www.chapterjs.org/fr/reference/enums#forumlayouttype).

**defaultThreadRateLimitPerUser** `number | null`

Le mode lent donné aux nouveaux fils du salon. Il est copié à la création du fil et ne suit pas les changements ultérieurs.

**flags** `number | null`

Les drapeaux du salon, sous forme de champ de bits.

[Documentation de Discord](https://docs.discord.com/developers/resources/guild#create-guild-channel-json-params)

## GuildChannelEditOptions

Ce que prend `edit()` sur un salon d’un serveur.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
channel.edit(options: GuildChannelEditOptions, reason?: string): Promise<this>
```

Cela fonctionne sur chaque salon d’un serveur qui n’est pas un fil : salons textuels, vocaux, catégories et forums. Un champ qui ne s’applique pas à la sorte de salon est refusé par Discord.

**name** `string`

Le nom du salon (1 à 100 caractères).

**type** `ChannelType`

La sorte de salon : une valeur de [`ChannelType`](https://www.chapterjs.org/fr/reference/enums#channeltype). Seul un salon textuel peut devenir un salon d’annonces et inversement, sur un serveur qui a la fonctionnalité `NEWS`.

**position** `number | null`

Où se trouve le salon dans la liste (les salons de même position sont triés par identifiant).

**topic** `string | null`

Le sujet affiché en haut du salon : 0 à 1024 caractères, ou 0 à 4096 pour un salon forum ou média.

**nsfw** `boolean | null`

Si le salon est soumis à une limite d’âge.

**rateLimitPerUser** `number | null`

Mode lent : combien de secondes un membre attend entre deux messages (0 à 21600). Les bots et les membres avec la permission `BypassSlowmode` ne sont pas concernés.

**bitrate** `number | null`

La qualité audio d’un salon vocal ou de conférence, en bits par seconde ; 8000 au moins.

**userLimit** `number | null`

Combien de personnes peuvent rejoindre : jusqu’à 99 dans un salon vocal, 10 000 dans un salon de conférence ; `0` veut dire pas de limite.

**permissionOverwrites** `object[] | null`

Ce que les rôles et les membres ont le droit ou non de faire dans le salon ou la catégorie : les mêmes objets que dans [`ChannelCreateOptions`](#channelcreateoptions).

**parentId** `Snowflake | null`

L’identifiant de la catégorie où déplacer le salon.

**rtcRegion** `string | null`

La région vocale du salon ; `null` laisse Discord la choisir.

**videoQualityMode** `VideoQualityMode | null`

La qualité des caméras d’un salon vocal : une valeur de [`VideoQualityMode`](https://www.chapterjs.org/fr/reference/enums#videoqualitymode).

**defaultAutoArchiveDuration** `number | null`

Au bout de combien de minutes sans activité l’app Discord propose d’archiver un nouveau fil du salon.

**flags** `number`

Les drapeaux du salon, sous forme de champ de bits.

**availableTags** `ForumTag[]`

Les étiquettes que peuvent avoir les publications d’un salon forum ou média, 20 au plus : voir [`ForumTag`](https://www.chapterjs.org/fr/reference/data#forumtag). Une étiquette sans `id` est nouvelle ; les autres gardent le leur.

**defaultReactionEmoji** `object | null`

L’emoji du bouton « ajouter une réaction » sur les publications d’un salon forum ou média : `{ emojiId, emojiName }`, comme dans [`ChannelCreateOptions`](#channelcreateoptions).

**defaultThreadRateLimitPerUser** `number`

Le mode lent donné aux nouveaux fils du salon. Il est copié à la création du fil et ne suit pas les changements ultérieurs.

**defaultSortOrder** `ForumSortOrderType | null`

Comment sont triées les publications d’un salon forum ou média : une valeur de [`ForumSortOrderType`](https://www.chapterjs.org/fr/reference/enums#forumsortordertype).

**defaultForumLayout** `ForumLayoutType`

Comment sont affichées les publications d’un forum : une valeur de [`ForumLayoutType`](https://www.chapterjs.org/fr/reference/enums#forumlayouttype).

[Documentation de Discord](https://docs.discord.com/developers/resources/channel#modify-channel-json-params-guild-channel)

## ThreadCreateOptions

Ce que prend `startThread()` sur un salon textuel.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
textChannel.startThread(options: ThreadCreateOptions, reason?: string): Promise<ThreadChannel>
```

Pour démarrer un fil depuis un message, utilisez plutôt `message.startThread()` : voir [Message](https://www.chapterjs.org/fr/reference/message.md).

**name** `string` *required*

Le nom du fil (1 à 100 caractères).

**autoArchiveDuration** `number`

Au bout de combien de minutes sans activité le fil quitte la liste des salons : `60`, `1440`, `4320` ou `10080`.

**type** `ChannelType`

La sorte de fil : `ChannelType.PublicThread`, `ChannelType.PrivateThread` ou `ChannelType.AnnouncementThread` (voir [`ChannelType`](https://www.chapterjs.org/fr/reference/enums#channeltype)).

**invitable** `boolean`

Si les membres qui ne sont pas modérateurs peuvent ajouter d’autres membres au fil. Seulement pour un fil privé.

**rateLimitPerUser** `number | null`

Mode lent : combien de secondes un membre attend entre deux messages (0 à 21600).

[Documentation de Discord](https://docs.discord.com/developers/resources/channel#start-thread-without-message-json-params)

## ThreadEditOptions

Ce que prend `edit()` sur un fil.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
thread.edit(options: ThreadEditOptions, reason?: string): Promise<this>
```

`thread.archive()` et `thread.unarchive()` sont des raccourcis pour `{ archived: true }` et `{ archived: false }`.

**name** `string`

Le nom du fil (1 à 100 caractères).

**archived** `boolean`

Si le fil est archivé.

**autoArchiveDuration** `number`

Au bout de combien de minutes sans activité le fil quitte la liste des salons : `60`, `1440`, `4320` ou `10080`.

**locked** `boolean`

Si le fil est verrouillé : seuls les membres avec la permission `ManageThreads` peuvent alors le désarchiver.

**invitable** `boolean`

Si les membres qui ne sont pas modérateurs peuvent ajouter d’autres membres au fil. Seulement pour un fil privé.

**rateLimitPerUser** `number | null`

Mode lent : combien de secondes un membre attend entre deux messages (0 à 21600). Les bots et les membres avec la permission `BypassSlowmode` ne sont pas concernés.

**flags** `number`

Les drapeaux du fil, sous forme de champ de bits. Seule une publication d’un salon forum ou média peut être épinglée ainsi.

**appliedTags** `Snowflake[]`

Les identifiants des étiquettes d’une publication d’un salon forum ou média, 5 au plus.

[Documentation de Discord](https://docs.discord.com/developers/resources/channel#modify-channel-json-params-thread)

## ForumPostOptions

Ce que prend `createPost()`.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
forum.createPost(options: ForumPostOptions, reason?: string): Promise<ThreadChannel>
```

**name** `string` *required*

Le titre de la publication.

**message** `MessageInput` *required*

Le premier message de la publication : un texte, ou tout ce qu’un message peut contenir (voir [`MessageInput`](https://www.chapterjs.org/fr/reference/message-options#messageinput)).

**appliedTags** `Snowflake[]`

Les identifiants des étiquettes de la publication.

**autoArchiveDuration** `60 | 1440 | 4320 | 10080`

Au bout de combien de minutes sans activité la publication est archivée.

**slowmode** `number`

Mode lent de la publication, en secondes.

Le message est vérifié comme n’importe quel autre avant d’être envoyé : voir [Options des messages](https://www.chapterjs.org/fr/reference/message-options.md).

[Documentation de Discord](https://docs.discord.com/developers/resources/channel#start-thread-in-forum-or-media-channel-jsonform-params)

## RoleCreateOptions

Ce que prend `createRole()`. Les permissions se donnent par leur nom, sous forme de liste de noms ou d’ensemble `Permissions`.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
guild.createRole(options?: RoleCreateOptions, reason?: string): Promise<Role>
```

Chaque champ peut être laissé de côté : `guild.createRole()` crée un rôle avec les valeurs par défaut de Discord.

**name** `string`

Le nom du rôle, 100 caractères au plus.

**permissions** `PermissionResolvable | string`

Ce que le rôle permet : un nom, une liste de noms, un ensemble `Permissions`, ou le texte qu’utilise Discord. Voir [`PermissionResolvable`](https://www.chapterjs.org/fr/reference/permissions#permissionresolvable).

**colors** `object`

Les couleurs du rôle.

**champs**

**primaryColor** `number` *required*

La couleur principale, sous forme de nombre (`0xff0000` pour le rouge).

**secondaryColor** `number | null`

Une deuxième couleur : le rôle est alors affiché en dégradé entre les deux.

**tertiaryColor** `number | null`

Une troisième couleur : le dégradé devient alors holographique.

**hoist** `boolean`

Si les membres qui ont le rôle sont affichés à part dans la liste des membres.

**icon** `string | null`

L’icône du rôle, sous forme de data URI (quand le serveur a la fonctionnalité `ROLE_ICONS`).

**unicodeEmoji** `string | null`

Un emoji standard affiché comme icône du rôle (quand le serveur a la fonctionnalité `ROLE_ICONS`).

**mentionable** `boolean`

Si tout le monde peut mentionner le rôle.

[Documentation de Discord](https://docs.discord.com/developers/resources/guild#create-guild-role-json-params)

## RoleEditOptions

Ce que prend `edit()` sur un rôle : seul ce qui est passé change. Les permissions se donnent par leur nom, sous forme de liste de noms ou d’ensemble `Permissions`.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
role.edit(options: RoleEditOptions, reason?: string): Promise<Role>
```

**name** `string`

Le nom du rôle, 100 caractères au plus.

**permissions** `PermissionResolvable | string`

Ce que le rôle permet : un nom, une liste de noms, un ensemble `Permissions`, ou le texte qu’utilise Discord. Cela remplace les permissions du rôle : partez de `role.permissions.add()` ou `.remove()` pour en changer une. Voir [`PermissionResolvable`](https://www.chapterjs.org/fr/reference/permissions#permissionresolvable).

**colors** `object`

Les couleurs du rôle : `{ primaryColor, secondaryColor, tertiaryColor }`, comme dans [`RoleCreateOptions`](#rolecreateoptions).

**hoist** `boolean`

Si les membres qui ont le rôle sont affichés à part dans la liste des membres.

**icon** `string`

L’icône du rôle, sous forme de data URI (quand le serveur a la fonctionnalité `ROLE_ICONS`).

**unicodeEmoji** `string`

Un emoji standard affiché comme icône du rôle (quand le serveur a la fonctionnalité `ROLE_ICONS`).

**mentionable** `boolean`

Si tout le monde peut mentionner le rôle.

[Documentation de Discord](https://docs.discord.com/developers/resources/guild#modify-guild-role-json-params)

## InviteCreateOptions

Ce que prend `createInvite()`.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
channel.createInvite(options?: InviteCreateOptions, reason?: string): Promise<Invite>
```

Chaque champ peut être laissé de côté : `channel.createInvite()` crée une invitation avec les valeurs par défaut de Discord.

**maxAge** `number`

Au bout de combien de secondes l’invitation expire, de 0 (jamais) à 604800 (7 jours).

**maxUses** `number`

Combien de fois elle peut être utilisée, de 0 (pas de limite) à 100.

**temporary** `boolean`

Si l’invitation ne donne qu’une adhésion temporaire : les membres qui arrivent avec elle sont expulsés quand ils se déconnectent.

**unique** `boolean`

`true` pour toujours créer un nouveau lien, au lieu de réutiliser un lien semblable qui existe déjà. Utile pour beaucoup de liens à usage unique.

**targetType** `1 | 2`

Ce qu’ouvre une invitation vers un salon vocal : `1` un stream, `2` une activité intégrée.

**targetUserId** `Snowflake`

L’identifiant de l’utilisateur dont montrer le stream. Nécessaire quand `targetType` vaut `1` ; l’utilisateur doit être en train de streamer dans le salon.

**targetApplicationId** `Snowflake`

L’identifiant de l’activité à ouvrir. Nécessaire quand `targetType` vaut `2` ; l’application doit avoir le drapeau `EMBEDDED`.

**targetUserIds** `Snowflake[]`

Les identifiants des seuls utilisateurs qui peuvent voir et accepter l’invitation, 1000 au plus.

**roleIds** `Snowflake[]`

Les identifiants des rôles donnés à qui arrive avec l’invitation.

[Documentation de Discord](https://docs.discord.com/developers/resources/channel#create-channel-invite-jsonform-params)

## FetchMessagesOptions

Ce que prend `fetchMessages()` : combien de messages, et à partir d’où.

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
channel.fetchMessages(options?: FetchMessagesOptions): Promise<Message[]>
```

**limit** `number`

Combien de messages, de 1 à 100. Par défaut : 50.

**before** `Snowflake | \{ id: Snowflake \}`

Seulement les messages avant celui-ci.

**after** `Snowflake | \{ id: Snowflake \}`

Seulement les messages après celui-ci.

**around** `Snowflake | \{ id: Snowflake \}`

Les messages autour de celui-ci.

`limit` est vérifié avant tout envoi. Une mauvaise valeur lève une `RangeError` :

```text theme={"theme":{"light":"github-light","dark":"vesper"}}
limit is a whole number between 1 and 100, got 500.
```

Pour partir d’une date plutôt que d’un message, transformez la date en identifiant avec [`snowflakeFromTimestamp()`](https://www.chapterjs.org/fr/reference/helpers#snowflakefromtimestamp).

[Documentation de Discord](https://docs.discord.com/developers/resources/message#get-channel-messages-query-string-params)


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