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

# Role

> Lire les permissions, la position et les membres d’un rôle, et le modifier ou le supprimer

Un `Role` est un rôle d’un serveur. Vous en obtenez un depuis `guild.roles`, `member.roles`, `member.highestRole`, une option `role` d’une [commande](https://www.chapterjs.org/fr/commands/options.md) ou `guild.createRole()`. Chaque serveur a un rôle @everyone que chaque membre possède : `guild.everyoneRole`, dont l’identifiant est celui du serveur.

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

async function createModerators(guild: Guild) {
  const role = await guild.createRole({
    name: 'Modérateurs',
    permissions: ['KickMembers', 'BanMembers', 'ModerateMembers'],
    hoist: true,
  });
  return `${role} a été créé.`; // "<@&id> a été créé."
}
```

> [!NOTE]
>
> Comment vérifier et donner des permissions est dans [Permissions](https://www.chapterjs.org/fr/reference/permissions.md) ; comment une commande reçoit un rôle est dans [Options](https://www.chapterjs.org/fr/commands/options.md).

## Propriétés

**id** `Snowflake`

L’identifiant unique que Discord lui a donné.

**createdAt** `Date`

Quand il a été créé : un identifiant Discord contient sa date de création.

**guildId** `Snowflake`

L’identifiant du serveur du rôle.

**guild** `Guild`

Le serveur du rôle.

**name** `string`

Le nom du rôle.

**color** `number`

La couleur sous forme de nombre (`0xff0000`) ; `0` veut dire pas de couleur.

**hoist** `boolean`

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

**position** `number`

Où se trouve le rôle dans la hiérarchie : plus il est haut, plus il est puissant.

**permissions** `Permissions`

Ce que le rôle permet sur le serveur. Voir [Permissions](https://www.chapterjs.org/fr/reference/permissions.md).

**managed** `boolean`

Si le rôle appartient à une intégration (un bot, les boosters...).

**mentionable** `boolean`

Si tout le monde peut mentionner le rôle.

**unicodeEmoji** `string | null`

L’emoji standard affiché à côté du rôle, quand il en a un.

**isEveryone** `boolean`

Si c’est le rôle @everyone, que chaque membre a.

**members** `GuildMember[]`

Les membres qui ont ce rôle, parmi ceux que connaît le bot.

> [!NOTE]
>
> `members` est lu parmi les membres dont le bot se souvient (voir [Mémoire](https://www.chapterjs.org/fr/memory.md)), donc ce n’est pas toujours chaque membre qui a le rôle.

## Helpers

Ils lisent ce dont le bot se souvient : ils n’envoient jamais de requête.

### iconURL()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
iconURL(options?: ImageOptions): string | null
```

L’URL de l’icône du rôle, quand il en a une. Voir [ImageOptions](https://www.chapterjs.org/fr/reference/helpers.md#imageoptions).

### isHigherThan()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
isHigherThan(other: Role): boolean
```

Si ce rôle est au-dessus d’un autre dans la hiérarchie. À position égale, le rôle le plus ancien est au-dessus.

[Documentation de Discord](https://docs.discord.com/developers/topics/permissions#permission-hierarchy)

### toString()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
toString(): string
```

`<@&id>` : mentionne le rôle quand il est mis dans un message.

### toJSON()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
toJSON(): object
```

Les données de Discord sous forme d’objet simple, avec des noms en camelCase.

## Actions

### edit()

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

Modifie le rôle. Voir [RoleEditOptions](https://www.chapterjs.org/fr/reference/options.md#roleeditoptions).

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

### delete()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
delete(reason?: string): Promise<void>
```

Supprime le rôle.

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

## Types

`RoleEditOptions` est dans [Options](https://www.chapterjs.org/fr/reference/options.md#roleeditoptions), à côté de `RoleCreateOptions`. `Permissions` est dans [Permissions](https://www.chapterjs.org/fr/reference/permissions.md).


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