Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions docs/3.autres/6.variables.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
---
title: Variables
description: Le système de variables permet d'insérer dynamiquement des informations contextuelles dans vos messages. Ces variables suivent un format spécifique et peuvent être enrichies avec des paramètres et modificateurs pour personnaliser l'affichage.
navigation.icon: 'twemoji:dna'
contributors: ['elbaguetto']
updatedAt: '2025-10-14'
---

## Syntaxe générale

- `{variable}` : Variable simple
- `{variable:paramètres}` : Variable avec paramètres
- `{variable?modifieur}` : Variable avec modificateur
- `{variable:paramètres?modifieur}` : Variable avec paramètres et modificateur

## Paramètres

Les paramètres permettent d'affiner le comportement d'une variable en lui transmettant des informations complémentaires. Ils s'ajoutent après le nom de la variable, chacun étant précédé du symbole deux-points `:`.

Chaque paramètre suit la structure `nom=valeur`. Lorsque vous souhaitez utiliser plusieurs paramètres simultanément, ajoutez simplement un nouveau `:` suivi du paramètre suivant.

**Exemple :**

- `{level.rank:user_id=123456789012345678}`
- `{user.created_at:user_id=123456789012345678:format=DD MMMM YYYY}`

## Modificateurs

Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajoutent après le nom de la variable ou après le ou les paramètres, précédés du symbole point d'interrogation `?`.

::hint{ type="warning" }
Les modificateurs ne sont pas cumulables sur une même variable.
::

| Modificateur | Description | Exemple |
|--------------|-------------|---------|
| `uppercase` | Texte en majuscules | `{user.username?uppercase}` → DRAFTBOT |
| `lowercase` | Texte en minuscules | `{server.name?lowercase}` → draftbot support |
| `capitalize` | Première lettre majuscule | `{user.username?capitalize}` → Draftbot |
| `ordinal` | Nombre ordinal | `{level.rank?ordinal}` → 3ème |
| `maxLength=N` | Limitation de longueur | `{suggest.title?maxLength=50}` |
| `formatNumber` | Format de nombre localisé | `{money?formatNumber}` → 1 234 |

## Variables de base

### Variables utilisateur

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{user}` | Mention de l'utilisateur | @draftbot |
| `{user.id}` | Identifiant de l'utilisateur | 318312854816161792 |
| `{user.username}` | Pseudo du compte | draftbot |
| `{user.globalname}` | Nom affiché global | DraftBot |
| `{user.nickname}` | Surnom sur le serveur | ❕DraftBot |
| `{user.tag}` | Tag (déprécié) | draftbot#0535 |
| `{user.rolecount}` | Nombre de rôles | 2 |
| `{user.created_at}` | Date de création du compte | 28/05/2017 |
| `{user.joined_at}` | Date d'arrivée sur le serveur | 11/03/2018 |

**Paramètres :**
- `user_id` : Identifiant d'un utilisateur.
- `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`.

### Variables serveur

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{server}` | Nom du serveur | DraftBot Support |
| `{server.id}` | Identifiant du serveur | 422112414964908042 |
| `{server.name}` | Nom du serveur | DraftBot Support |
| `{server.membercount}` | Nombre total de membres | 65536 |
| `{server.humancount}` | Nombre de membres humains | 65535 |
| `{server.botcount}` | Nombre de bots | 1 |
| `{server.rolecount}` | Nombre de rôles | 69 |
| `{server.channelcount}` | Nombre de salons | 20 |
| `{server.created_at}` | Date de création du serveur | 10/03/2018 |

**Paramètres :**
- `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`.

### Variables salon

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{channel}` | Mention du salon | #bavardage➖🐱 |
| `{channel.id}` | Identifiant du salon | 700375095297835096 |
| `{channel.name}` | Nom du salon | bavardage➖🐱 |
| `{channel.created_at}` | Date de création | 16/04/2020 |
| `{channel.parent}` | Mention du salon parent | #▬▬▬ Communauté ▬▬▬ |
| `{channel.parent.id}` | ID du salon parent | 700370977019658332 |
| `{channel.parent.name}` | Nom du salon parent | ▬▬▬ Communauté ▬▬▬ |
| `{channel.parent.created_at}` | Date de création parent | 16/04/2020 |

**Paramètres :**
- `channel_id` : Identifiant d'un salon.
- `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`.

### Variables rôle

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{role}` | Mention du rôle | @Equipe |
| `{role.id}` | ID du rôle | 698990778084491314 |
| `{role.name}` | Nom du rôle | Equipe |
| `{role.color}` | Couleur hexadécimale | #FD9A60 |
| `{role.position}` | Position du rôle | 5 |
| `{role.membercount}` | Nombre de membres | 13 |
| `{role.created_at}` | Date de création | 12/04/2020 |

**Paramètres :**
- `role_id` : Identifiant d'un rôle.
- `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`.

::hint{ type="warning" }
Le paramètre `role_id` est obligatoire.
::

### Variables de temporalité

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{date}` | Date actuelle | 28/05/2017 |
| `{time}` | Heure actuelle | 11:01 |
| `{timestamp}` | Timestamp Discord | 1495962098 |

**Paramètres (date et time) :**
- `format` : Format d'affichage de la date ou de l'heure (par défaut : `L` ou `LT`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY` ou `hh:mm a`. La liste des différents formats est disponible sur la [documentation](https://day.js.org/docs/en/display/format) de la bibliothèque **dayjs**.

**Paramètres (timestamp) :**
- `style` : Style d'affichage du timestamp. Vous pouvez retrouver la liste complète sur la [documentation](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) de Discord.