Skip to main content

Chapitre 6 - Les commandes (partie 2)

Nous rejoindre sur Discord

Le chapitre précédent nous avons vu la structure à adopter lorsque l'on veut créer une commande et comment envoyer une réponse à celle-ci. Lorsque l'on met en place des commandes, il est également possible d'ajouter des options à celle-ci. C'est ce que nous allons voir dans ce chapitre.

Rappel sur la structure d'une commande :

require('log-timestamp');

const { SlashCommandBuilder } = require('discord.js'); // Constructeur de notre commande

module.exports = {
    data: new SlashCommandBuilder()
      .setName('command_name') // Nom de notre commande
      .setDescription('descriptoin'), // Description de notre commande
    async execute(interaction) { // Lorsque l'on éxécute une commande, on réalise une interaction
        /**
         * Instruction de l'évènement
         */
    },
};

Les options

Les options sont des paramètres que l'on peut ajouter à nos commandes. En fonction du type d'option que l'on choisit, il sera possible de récupérer des informations par la suite.

Liste des options disponibles :

  • Subcommand : défini l'option comme une sous commande
  • SubcommandGroup : défini l'option comme étant un groupe de sous commande
  • String : demande à l'utilisateur de saisir une chaine de caractères
  • Integer : demande à l'utilisateur de saisir un entier
  • Number : demande à l'utilisateur de saisir un nombre (la présence d'une , est possible)
  • Boolean : demande à l'utilisateur de sélectionner une valeur booléenne
  • User : demande à l'utilisateur de sélectionner un utilisateur
  • Channel : demande à l'utilisateur de sélectionner un channel
  • Role : demande à l'utilisateur de sélectionner un rôle
  • Mentionable : demande à l'utilisateur de sélectionner un élément mentionale (channel, role, utilisateur, ...)
  • Attachment : demande à l'utilisateur d'envoyer un fichier dans la commande

Les choix : les choix sont des valeurs prédéterminées auquels on a associé une valeur lorsqu'elles sont sélectionnées.

Lorsque dans une commande vous ajoutez des choix, l'utilisateur ne sera pas en mesure de choisir une valeur personnelle. L'ajout de choix est possible sur les options de types : String, Number et Integer. Pour définir les choix dans une option, il faudra ajouter la méthode suivante dans la déclaration de l'option :

option
  .addChoices(
    { name: 'Nom option 1', value: "valeur de l'opion 1" },
    { name: 'Nom option 2', value: "valeur de l'opion 2" },
  )

Ajouter une option

const data = new SlashCommandBuilder()
	.setName('nom de la commande')
	.setDescription('Description de la commande')
	.addStringOption(option => option.setName('string').setDescription('Sélectionner une phrase'))
	.addIntegerOption(option => option.setName('int').setDescription('Sélectionner un entier'))
	.addBooleanOption(option => option.setName('choice').setDescription('Sélectionner un booléen'))
	.addUserOption(option => option.setName('user').setDescription('Sélectionner un utilisateur'))
	.addChannelOption(option => option.setName('channel').setDescription('Sélectionner un channel'))
	.addRoleOption(option => option.setName('muted').setDescription('Select a role'))
	.addNumberOption(option => option.setName('num').setDescription('Enter a number'))
	.addMentionableOption(option => option.setName('mentionable').setDescription('Mention something'))
	.addAttachmentOption(option => option.setName('attachment').setDescription('Attach something'));

Exercice (Facile) - Minuteur 2.0

Reprenez l'exercice du minuteur du chapitre précedent, et gràce aux options, demander à l'utilisateur de sélectionner la valeur du minuteur