Chapitre 7
Nous rejoindre sur DiscordManager de rôles (Facile)
Exemple de solution :
require('log-timestamp');
const wait = require('node:timers/promises').setTimeout;
const { SlashCommandBuilder } = require('discord.js'); // Constructeur de notre commande
module.exports = {
data: new SlashCommandBuilder()
.setName('role')
.setDescription("Gérer les rôles d'un utilisateur")
.setDMPermission(false)
.addSubcommand((subcommand) =>
subcommand
.setName('add')
.setDescription('Ajouter un rôle')
.addUserOption((option) =>
option.setName('user').setDescription("Sélectionner l'utilisateur").setRequired(true)
)
.addRoleOption((option) =>
option.setName('role').setDescription('Sélectionner le role').setRequired(true)
)
)
.addSubcommand((subcommand) =>
subcommand
.setName('remove')
.setDescription('Supprimer un role')
.addUserOption((option) =>
option.setName('user').setDescription("Sélectionner l'utilisateur").setRequired(true)
)
.addRoleOption((option) =>
option.setName('role').setDescription('Sélectionner le role').setRequired(true)
)
),
async execute(interaction) {
const subcommand = interaction.options.getSubcommand();
const role = interaction.options.getRole('role');
const user = interaction.options.getMember('user');
switch (subcommand) {
case 'add': // On est dans le protocole d'ajout
await user.roles.add(role);
return await interaction.reply({
content: `Le rôle ${role} a été ajouté à ${user}`,
});
case 'remove': // On est dans le protocole de suppression
await user.roles.remove(role);
return await interaction.reply({
content: `Le rôle ${role} a été retiré pour l'utilisateur ${user}`,
});
}
},
};