Bienvenue dans ce nouveau chapitre dans lequel nous allons découvrir les commandes de messages. Les commandes messages ont été les premières à apparaître sur discord. Bien qu'aujourd'hui elles aient été remplacées majoritairement par les "slash-commands" elles restent utilisées dans certains cas. Étant donné que discord recommande de ne pas les utiliser, nous n'en parlerons que brièvement dans ce chapitre et le prochain. Ce chapitre fait partie d'une série de tutoriels. Bien qu'il soit possible de la suivre sans avoir lu les chapitres précédents, il est conseillé de les lire avant de commencer ce chapitre.
Modification de notre manager
Les message-commands ont besoins d'un préfixe pour fonctionner afin d'identifier votre bot, personne n'aimerai que des commandes se déclenchent pendant une conversation. Pour cela nous allons retourner dans notre fichier client.js, dans les options nous avons normalement notre commande manager :
Nous allons ajouter une ligne prefix avec une chaîne de caractères qui sera le préfixe de nos commandes.
Le manager finale devrait ressembler à ceci :
On oublis pas de sauvegarder notre fichier puis on peut le fermer.
Création de la commande
La structure de base
On va créer une commande de base grâce à la structure Command que l'on va importer de sheweny. Nous allons commencer par créer un nouveau fichier qui va contenir notre commande. Vous êtes libres d'appeler ce fichier comme vous le souhaitez du moment qu'il se situe dans le dossier commands . De plus, dans le dossier commands vous pouvez créer autant de sous-dossiers que vous le souhaitez.
Le résultat devrait être :
Importation et instanciation de la classe Command
Tout d'abord on importe la classe Command de la librairie Sheweny. Cette classe contient tous ce qui est nécéssaire a la création de n'importe quelle commande. On utilise le mot clé extends pour étendre la classe et pouvoir définir le code de nos fonctions.
Options de la commande
Nous allons donc maintenant parler de l'objet suivant :
Cet objet contient toutes les options de la commande, en premier le nom de la commande, cette key est obligatoire. Ensuite il y a le type, les valeurs possibles sont :
- Le type "SLASH_COMMAND" : Il s'agit d'une commande qui est appelée par un slash ( / ).
- Le "MESSAGE_COMMAND" : Comme son nom l'indique, elle est appelée par un message.
- Le type "CONTEXT_MENU_USER" : Ici il s'agit d'une commande qui est appelée avec un menu contextuel d'un utilisateur (le menu qui s'affiche lorsque l'on fait un clic droit sur un utilisateur).
- Le type "CONTEXT_MENU_MESSAGE" : Il s'agit en fait du même principe que le précédent type, mais cette fois pour un message. Nous auront la possibilité de reparler des types et de détailler l'utilisation de chacun d'eux. Ensuite on a la description de la commande, cette key est obligatoire. Enfin on a la catégorie, cette key est optionnelle. Il existe d'autres options qui seront détaillées plus tard mais vous pouvez les retrouver dans la documentation de Sheweny : CommandOptions
Fonction execute
On retrouve une fonction execute(), cette fonction contiendra l'ensemble du code de notre commande, ici nous avons simplement mis une réponse à l'utilisateur. Pour les message-commands la fonction execute aura toujours un paramètre de type Message. On voit donc sur la documentation de discord.js que nous avons accès a la fonction reply() ce qui nous permet de répondre à l'utilisateur. Il existe d'autres fonctions que execute() mais nous aurons l'occasion d'en reparler plus tard.
La classe Message
Nous avons vu que la fonction prend un paramètre message quand la commande est de type MESSAGE_COMMAND. Il s'agit d'une classe de discord.js, elle contient toutes les informations sur le message. Il est possible d'accéder a beaucoup d'informations comme le serveur avec message.guild, le channel avec message.channel, le message contenu du message avec message.content, l'utilisateur avec message.author etc. Vous pouvez retrouver toutes les informations sur la documentation de discord.js : Message
Le code source final
Vous pouvez retrouver le code complet du bot sur github client.js
msg-command.js
Conclusion
Dans ce chapitre sur le création de notre première commande nous avons vu :
- Comment créer une commande
- Comment importer et instancier une commande
- Comment définir les options de la commande
- Comment définir la fonction execute
- Comment utiliser la classe Message
Rejoindre la communauté de développeurs
Rejoins notre communauté de développeurs pour progresser et t'améliorer
Passer au chapitre suivant :
Partager sur
Sommaire
Configuration initiale pour créer un bot Discord avec Sheweny
Structure du projet et modules pour un bot Discord avec Sheweny
Connecter son bot à l'API de Discord avec Sheweny
Créer sa première commande sur son bot Discord avec Sheweny
Créer sa première slash commande sur son bot Discord avec Sheweny
Protéger une commande sur son bot Discord avec Sheweny
Créer des événements sur son bot Discord avec Sheweny
Créer des boutons sur son bot Discord avec Sheweny
Créer des select-menus sur son bot Discord avec Sheweny
Documentation pour créer un bot Discord avec Sheweny
