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

# GuildMember

> Lire le surnom, les rôles et les permissions d’un membre et le modérer : exclusion temporaire, expulsion, bannissement

Un `GuildMember` est un [utilisateur](https://www.chapterjs.org/fr/reference/user.md) en tant que membre d’un serveur : la même personne a un seul `User`, et un `GuildMember` par serveur où elle se trouve. Vous en obtenez un comme `member` d’une [commande](https://www.chapterjs.org/fr/reference/interaction.md) utilisée sur un serveur, avec les événements sur les membres et les messages, et depuis `guild.members` ou `guild.fetchMember()`.

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

async function mute(member: GuildMember, moderator: GuildMember) {
  if (!moderator.permissions.has('ModerateMembers')) return 'Vous n’avez pas le droit de faire cela.';
  if (!moderator.isHigherThan(member)) return 'Vous ne pouvez exclure que les membres en dessous de vous.';
  await member.timeout(10 * 60 * 1000, `Exclu par ${moderator.displayName}`);
  return `${member.displayName} est exclu pour 10 minutes.`;
}
```

> [!NOTE]
>
> Comment vos fonctions reçoivent un membre est dans [Commandes](https://www.chapterjs.org/fr/commands.md) et [Événements](https://www.chapterjs.org/fr/events.md). De quels membres le bot se souvient est dans [Mémoire](https://www.chapterjs.org/fr/memory.md).

## Propriétés

**guildId** `Snowflake`

L’identifiant du serveur.

**user** `User`

Le compte du membre.

**id** `Snowflake`

L’identifiant de l’utilisateur.

**guild** `Guild`

Le serveur où se trouve le membre.

**nick** `string | null`

Le surnom du membre sur ce serveur, quand il en a un.

**displayName** `string`

Le nom à afficher : le surnom, sinon le nom d’affichage, sinon le nom d’utilisateur.

**roleIds** `readonly Snowflake[]`

Les identifiants des rôles du membre (@everyone n’est pas listé).

**roles** `Role[]`

Les rôles du membre, @everyone compris, le plus haut en premier.

**highestRole** `Role`

Le rôle le plus haut du membre dans la hiérarchie ; @everyone au moins.

**voiceChannel** `VoiceChannel | null`

Le salon vocal où se trouve le membre ; `null` quand il n’est dans aucun. Le bot le sait quand Discord lui envoie les états vocaux : dans un projet avec un fichier qui rejoint un salon vocal ou écoute un événement vocal.

**joinedAt** `Date | null`

Quand le membre a rejoint le serveur.

**boostingSince** `Date | null`

Depuis quand le membre booste le serveur.

**pending** `boolean`

Si le membre n’a pas encore passé le filtrage d’adhésion.

**timeoutUntil** `Date | null`

Jusqu’à quand le membre est exclu temporairement ; `null` quand il ne l’est pas.

**isTimedOut** `boolean`

Si le membre est exclu temporairement en ce moment.

**isOwner** `boolean`

Si le serveur appartient au membre.

**permissions** `Permissions`

Ce que le membre peut faire sur le serveur (les salons peuvent le changer : voir `permissionsIn`). Voir [Permissions](https://www.chapterjs.org/fr/reference/permissions.md).

## Helpers

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

### permissionsIn()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
permissionsIn(channel: GuildChannel): Permissions
```

Ce que le membre peut faire dans un salon du serveur.

### avatarURL()

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

L’avatar du membre sur ce serveur, sinon celui de son compte. Voir [ImageOptions](https://www.chapterjs.org/fr/reference/helpers.md#imageoptions).

### isHigherThan()

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

Si ce membre est au-dessus d’un autre dans la hiérarchie des rôles, ce qui permet de l’expulser, de le bannir ou de le renommer.

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

### hasRole()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
hasRole(role: Snowflake | Role): boolean
```

Si le membre a un rôle.

### toString()

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

`<@id>` : mentionne le membre 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: MemberEditOptions, reason?: string): Promise<GuildMember>
```

Modifie le membre. Voir [MemberEditOptions](#membereditoptions).

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

### setNick()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
setNick(nick: string | null, reason?: string): Promise<GuildMember>
```

Change le surnom du membre ; `null` le retire.

### addRole()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
addRole(role: Snowflake | Role, reason?: string): Promise<void>
```

Donne un rôle au membre.

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

### removeRole()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
removeRole(role: Snowflake | Role, reason?: string): Promise<void>
```

Retire un rôle au membre.

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

### timeout()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
timeout(duration: number, reason?: string): Promise<GuildMember>
```

Empêche le membre d’écrire, de réagir et de parler pendant un moment. `duration` est la durée, en millisecondes (28 jours au plus).

### removeTimeout()

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

Met fin à l’exclusion temporaire du membre.

### kick()

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

Retire le membre du serveur ; il peut revenir avec une invitation.

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

### ban()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
ban(options?: BanOptions): Promise<void>
```

Bannit le membre du serveur. Voir [BanOptions](#banoptions).

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

### send()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
send(message: MessageInput): Promise<Message>
```

Envoie un message privé au membre. Voir [MessageInput](https://www.chapterjs.org/fr/reference/message-options.md#messageinput).

## Types

### BanOptions

Ce que prend `ban()`, sur un membre ou sur un [serveur](https://www.chapterjs.org/fr/reference/guild.md#ban). Chaque champ peut être laissé de côté.

**reason** `string`

Pourquoi, affiché dans le journal d’audit du serveur.

**deleteMessageSeconds** `number`

Supprime aussi les messages que l’utilisateur a envoyés pendant les dernières secondes données : de 0 (par défaut, rien) à 604800 (7 jours).

### MemberEditOptions

Ce que prend `edit()`. Chaque champ peut être laissé de côté : seul ce que vous passez change.

**nick** `string | null`

Le surnom ; `null` le retire.

**roles** `(Snowflake | Role)[]`

Remplace tous les rôles du membre.

**mute** `boolean`

Rend le membre muet dans les salons vocaux.

**deaf** `boolean`

Rend le membre sourd dans les salons vocaux.

**voiceChannel** `Snowflake | \{ id: Snowflake \} | null`

Déplace le membre vers un autre salon vocal ; `null` le déconnecte.

**timeoutUntil** `Date | null`

Jusqu’à quand le membre est exclu temporairement ; `null` met fin à l’exclusion.


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