diff --git a/docs/2.modules/12.commandes-personnalisees.md b/docs/2.modules/12.commandes-personnalisees.md index dc04eca75..a81d85122 100644 --- a/docs/2.modules/12.commandes-personnalisees.md +++ b/docs/2.modules/12.commandes-personnalisees.md @@ -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' --- @@ -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 : @@ -111,7 +111,7 @@ 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 : @@ -119,7 +119,7 @@ Les actions sont le cœur de votre commande personnalisée, et se répartissent ![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> ! :: :: @@ -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" } @@ -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 ! :: :: @@ -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 @@ -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 | diff --git a/docs/3.autres/6.variables.md b/docs/3.autres/6.variables.md index bd262ddd7..bf22bcbfd 100644 --- a/docs/3.autres/6.variables.md +++ b/docs/3.autres/6.variables.md @@ -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 @@ -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 @@ -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 | @@ -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 @@ -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 @@ -210,6 +206,32 @@ 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 | @@ -217,7 +239,7 @@ Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajo | `{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.