basic poll command

This commit is contained in:
Tutur33
2024-02-16 17:19:16 +01:00
parent 5d5a0a508b
commit cd684f863f
+50
View File
@@ -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());
});
}
});
})
},
}