mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +02:00
basic poll command
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: 'poll',
|
||||
description: 'Crée un sondage',
|
||||
emote: '📊',
|
||||
utilisation: 'poll <question> <réponse1> <réponse2> <réponse3> ...',
|
||||
category: 'utils',
|
||||
async execute(message, args, client) {
|
||||
message.reply('Veuillez entrer la question du sondage');
|
||||
const filter = m => m.author.id === message.author.id;
|
||||
const collector = message.channel.createMessageCollector({ filter, max: 1, time: 60000 });
|
||||
collector.on('collect', async (m) => {
|
||||
const question = m.content;
|
||||
|
||||
const pollEmbed = new EmbedBuilder()
|
||||
.setTitle(question)
|
||||
|
||||
message.reply('Combien de réponses voulez-vous ajouter ?');
|
||||
const collector2 = message.channel.createMessageCollector({ filter, max: 1, time: 60000 });
|
||||
collector2.on('collect', async (m) => {
|
||||
const responseCount = parseInt(m.content);
|
||||
if (isNaN(responseCount)) return message.reply('Veuillez entrer un nombre valide.');
|
||||
if (responseCount < 2) return message.reply('Veuillez entrer un nombre supérieur à 1.');
|
||||
if (responseCount > 10) return message.reply('Veuillez entrer un nombre inférieur à 10.');
|
||||
|
||||
let repsonce;
|
||||
for (let i = 0; i < responseCount; i++) {
|
||||
message.reply(`Veuillez entrer la réponse ${i + 1}`);
|
||||
const collector3 = message.channel.createMessageCollector({ filter, max: 1, time: 60000 });
|
||||
collector3.on('collect', async (m) => {
|
||||
repsonce = repsonce ? `${repsonce}\n${i + 1}\u20e3 : ${m.content}` : `${i + 1}\u20e3 : ${m.content}`;
|
||||
|
||||
if (i === responseCount - 1) {
|
||||
pollEmbed.setDescription(repsonce);
|
||||
const Embed = await message.channel.send({ embeds: [pollEmbed] });
|
||||
for (let i = 0; i < responseCount; i++) {
|
||||
await Embed.react(`${i + 1}\u20e3`);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await new Promise(resolve => {
|
||||
collector3.on('end', () => resolve());
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user