Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
61 changes: 31 additions & 30 deletions docs/2.modules/12.commandes-personnalisees.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Commandes personnalisées
description: Avec DraftBot, vous avez la possibilité de créer vos propres commandes !
navigation.icon: 'twemoji:magic-wand'
contributors: ['hugo-broc', 'clement669', 'theorik', 'elbaguetto']
contributors: ['hugo-broc', 'clement669', 'theorik', 'elbaguetto', 'draftproducts']
updatedAt: '2025-03-02'
---

Expand Down Expand Up @@ -85,17 +85,17 @@ Les actions sont le cœur de votre commande personnalisée, et se répartissent
![Exemple d'action Ajouter des rôles](../assets/commandes-personnalisees/ex_perso_role.png)

::hint{ type="success" }
Si j'écris sur Discord `!role-a @Draftman`, le membre Draftman reçoit le rôle \<@A> !
Si j'écris sur Discord `!role-a @DraftBot`, le membre DraftBot reçoit le rôle \<@A> !
::

::hint{ type="info" }
💡 Pour plus de clarté, n'hésitez pas à combiner cette action avec une action **Envoyer un message**, pour que Draftbot puisse prévenir le membre qu'il a reçu un nouveau rôle !
💡 Pour plus de clarté, n'hésitez pas à combiner cette action avec une action **Envoyer un message**, pour que DraftBot puisse prévenir le membre qu'il a reçu un nouveau rôle !
::
::

2. **Ajouter un rôle temporaire**

*Lors de l'exécution de la commande, Draftbot attribuera un rôle, puis le retirera après un temps de votre choix.*
*Lors de l'exécution de la commande, DraftBot attribuera un rôle, puis le retirera après un temps de votre choix.*

::collapse{ label="Afficher un exemple :" }
Depuis le [Panel](/dashboard/first/custom-commands), il est très facile de régler avec précision la durée souhaitée :
Expand All @@ -111,15 +111,15 @@ Les actions sont le cœur de votre commande personnalisée, et se répartissent

3. **Retirer des rôles**

*Lors de l'exécution de la commande, Draftbot retirera le/les rôles sélectionnés.*
*Lors de l'exécution de la commande, DraftBot retirera le/les rôles sélectionnés.*

::collapse{ label="Afficher un exemple :" }
Voici une fonction qui permet de retirer à un membre le rôle \<@A>, en le mentionnant :

![Exemple d'action Retirer des rôles](../assets/commandes-personnalisees/ex_perso_retirer_role.png)

::hint{ type="success" }
Si j'écris sur Discord `!retrograde-a @Draftman`, le membre \<@Draftman> perd instantanément le rôle \<@A> !
Si j'écris sur Discord `!retrograde-a @DraftBot`, le membre \<@DraftBot> perd instantanément le rôle \<@A> !
::
::

Expand Down Expand Up @@ -161,7 +161,7 @@ Les actions sont le cœur de votre commande personnalisée, et se répartissent
![Exemple d'action Ajouter de l'argent](../assets/commandes-personnalisees/ex_perso_ajouter_argent.png)

::hint{ type="success" }
Si j'écris sur Discord `!donation @Draftman`, le membre \<@Draftman> reçoit instantanément 10💰 !
Si j'écris sur Discord `!donation @DraftBot`, le membre \<@DraftBot> reçoit instantanément 10💰 !
::

::hint{ type="info" }
Expand All @@ -178,7 +178,7 @@ Les actions sont le cœur de votre commande personnalisée, et se répartissent
::tabs
::tab{ label="Via la commande /config" }
::hint{ type="success" }
Les options avancées vous seront directement proposées par Draftbot lors de la configuration de la commande : Vous n'avez qu'à vous laisser guider !
Les options avancées vous seront directement proposées par DraftBot lors de la configuration de la commande : Vous n'avez qu'à vous laisser guider !
::
::

Expand Down Expand Up @@ -265,37 +265,38 @@ Vous pouvez rendre les messages de vos commandes personnalisées plus personnels
::hint{ type="info" }
Un "argument" est une information que vous donnez lorsque vous utilisez une commande.

Par exemple, dans la commande `!compliment @Draftman cool`, `@Draftman` est le premier argument, et `cool` est le deuxième argument.
Par exemple, dans la commande `!compliment @DraftBot cool`, `@DraftBot` est le premier argument, et `cool` est le deuxième argument.
::

Voici les différentes variables d'arguments possibles avec **DraftBot** :
Voici les variables d'arguments disponibles avec **DraftBot** :

> `$1` ➜ Premier argument saisi après la commande.
>
> `$2` ➜ Deuxième argument saisi après la commande.
>
> `$1+` ➜ Tout ce qui est saisi après la commande.
>
> `$2+` ➜ Tout ce qui est saisi après la commande sauf le premier argument.
| Variable | Description | Exemple |
|----------|-------------|---------|
| `{args.1}` | Premier argument | @DraftBot |
| `{args.2}` | Deuxième argument | cool |
| `{args.N}` | Nième argument (jusqu'à 20) | foo |
| `{args.1+}` | Tous les arguments depuis le premier | @DraftBot cool |
| `{args.2+}` | Tous les arguments depuis le deuxième | cool |
| `{args.all}` | Tous les arguments | @DraftBot cool |
| `{args.count}` | Nombre d'arguments | 2 |

**Fonctionnalités :**
- Support des [modificateurs](#variables) : `{args.1?uppercase}`
- Valeurs par défaut : `{args.1:default=aucun}`
- Syntaxe cohérente avec les autres variables

::collapse{ label="💡 Exemple :" }
Reprenons la commande `!compliment @Draftman cool`.
Reprenons la commande `!compliment @DraftBot cool`.

Si je veux que mon action "**Envoyer un message**" fasse dire à Draftbot "@draftman est super cool", je dois régler le message de DraftBot de cette façon `$1 est super $2`.
Si je veux que mon action "**Envoyer un message**" fasse dire à DraftBot "@DraftBot est super cool", je dois régler le message de DraftBot de cette façon `{args.1} est super {args.2}`.

::hint{ type="info" }
Si je souhaite que la commande fonctionne avec plusieurs mots d'affilée, il suffit de remplacer `$2` par `$2+` !
Si je souhaite que la commande fonctionne avec plusieurs mots d'affilée, il suffit d'utiliser `{args.2+}` !
::
::

### Valeur par défaut

::hint{ type="success" }
Il est possible d'assigner une valeur par défaut à votre variable :

Pour cela, il suffit d'ajouter `={Votre valeur}` après les variables ci-dessus.

En gardant le même exemple de commande, je peux par exemple préciser à DraftBot que, si aucun adjectif n'est rempli, il doit écrire "génial" par défaut.
::hint{ type="success" }
Vous pouvez combiner avec des modificateurs : `{args.1} est {args.2+?uppercase}` donnera "@DraftBot est SUPER COOL" !
::
::

### Les variables
Expand Down Expand Up @@ -326,7 +327,7 @@ Vous pouvez personnaliser vos actions de type message avec des variables :
| `{xp.next_level}` | Expérience nécessaire pour atteindre le niveau suivant | 750 |
| `{xp.to_level:level=N}` | Expérience nécessaire pour atteindre le niveau N | 15 000 |
| `{xp.to_position:position=N}` | Expérience nécessaire pour atteindre la position N dans le classement | 5,000 |
| `{birthday.date}` | Date de naissance | 15 mars |
| `{birthday}` | Date de naissance | 15 mars |
| `{birthday.next}` | Prochain anniversaire | Dans 2 mois |
| `{age}` | Âge de l'utilisateur | 25 ans |

Expand Down
42 changes: 32 additions & 10 deletions docs/3.autres/6.variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo
| `{user.joined_at}` | Date d'arrivée sur le serveur | 11/03/2018 |

**Paramètres :**
- `user_id` : Identifiant d'un utilisateur.
- `user_id` : Identifiant d'un utilisateur (supporte les mentions `<@123>`).
- `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`.

### Serveur
Expand Down Expand Up @@ -95,7 +95,7 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo
| `{channel.parent.created_at}` | Date de création parent | 16/04/2020 |

**Paramètres :**
- `channel_id` : Identifiant d'un salon.
- `channel_id` : Identifiant d'un salon (supporte les mentions `<#123>`).
- `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`.

### Rôle
Expand All @@ -111,13 +111,9 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo
| `{role.created_at}` | Date de création | 12/04/2020 |

**Paramètres :**
- `role_id` : Identifiant d'un rôle.
- `role_id` : Identifiant d'un rôle (supporte les mentions `<@&123>`). **Obligatoire.**
- `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.
::

### Temporalité

| Variable | Description | Exemple |
Expand Down Expand Up @@ -149,7 +145,7 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo
| `{money.to_position:position=N}` | Argent nécessaire pour atteindre la position N dans le classement | 1 200 |

**Paramètres :**
- `user_id` : Identifiant d'un utilisateur.
- `user_id` : Identifiant d'un utilisateur (supporte les mentions `<@123>`, `<@!123>`).

### Niveaux

Expand All @@ -171,7 +167,7 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo
| `{xp.to_position:position=N}` | Expérience nécessaire pour atteindre la position N dans le classement | 5,000 |

**Paramètres :**
- `user_id` : Identifiant d'un utilisateur.
- `user_id` : Identifiant d'un utilisateur (supporte les mentions `<@123>`, `<@!123>`).

### Récompenses de niveaux

Expand Down Expand Up @@ -210,14 +206,40 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo

### Commandes personnalisées

#### Arguments

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{args.1}` | Premier argument | hello |
| `{args.2}` | Deuxième argument | world |
| `{args.N}` | Nième argument (jusqu'à 20) | foo |
| `{args.1+}` | Tous les arguments depuis le premier | hello world foo |
| `{args.2+}` | Tous les arguments depuis le deuxième | world foo |
| `{args.all}` | Tous les arguments | hello world foo |
| `{args.count}` | Nombre d'arguments | 3 |

**Paramètres :**
- `default` : Valeur par défaut si l'argument est manquant.

**Exemples :**
- `{args.1:default=aucun}` → Affiche "aucun" si aucun argument n'est fourni
- `{args.1?uppercase}` → HELLO
- `{args.1+:default=vide}` → hello world foo (ou "vide" si aucun argument)

::hint{ type="info" }
Les variables d'arguments peuvent être combinées avec des modificateurs comme `uppercase`, `lowercase`, etc.
::

#### Anniversaires

| Variable | Description | Exemple |
|----------|-------------|---------|
| `{birthday}` | Date de naissance | 15 mars |
| `{birthday.next}` | Prochain anniversaire | Dans 2 mois |
| `{age}` | Âge de l'utilisateur | 25 ans |

**Paramètres :**
- `user_id` : Identifiant d'un utilisateur.
- `user_id` : Identifiant d'un utilisateur (supporte les mentions `<@123>`, `<@!123>`).

::hint{ type="info" }
Les variables d'[économie](#economie) et de [niveaux](#niveaux) sont aussi disponibles dans les commandes personnalisées.
Expand Down