Skip to main content

Chapitre 6

Nous rejoindre sur Discord

Ping un utilisateur (Facile)

require('log-timestamp');

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

module.exports = {
    data: new SlashCommandBuilder()
        .setName('ping')
        .setDescription('Envoi en réponse pong !')
        .setDMPermission(false)
        .addUserOption((option) => // J'ajoute l'option d'un membre/utilisateur
            option.setName('user').setDescription('Sélectionner un utilisateur').setRequired(true) // Je rend l'option obligatoire
        ),
    async execute(interaction) {
        const user = interaction.options.getMember('user'); // Ou .getUser(); || On récupère l'utilisateur
        const response = `${user}, vous avez été ping par ${interaction.user}`; // On construit notre phrase de réponse
        await interaction.reply({ // On envoi la réponse
            content: response,
        });
    },
};

Minuteur 2.0 (Facile)

Pour demander à l'utilisateur de sélectionner un temps :

  1. On ajoute une option Integer que l'on rend obligatoire
  2. On précise que la valeur doit être entre 0 et 900 (Pas de valeur négative et on doit être en dessous des 15 minutes)
  3. On récupère la valeur de notre durée
  4. On adapte notre minuteur avec la durée
module.exports = {
    data: new SlashCommandBuilder()
        .setName('minuteur')
        .setDescription('Afficher un compte à rebours de 10 secondes')
        .addIntegerOption((option) =>
            option
                .setName('duree')
                .setDescription('Sélectionner la durée du minuteur !')
                .setRequired(true)
                .setMinValue(0)
                .setMaxValue(900)
        ),
    async execute(interaction) {
        const duree = interaction.options.getInteger('duree');

        await interaction.reply({
            content: `Lancement du minuteur de ${duree}s!`,
        });

        for (let i = duree; i > 0; i--) {
            await wait(1000);
            await interaction.editReply({
                content: i.toString(),
            });
        }

        await interaction.editReply({
            content: 'Minuteur terminé !',
        });
    },
};