const waitlistChannel = '1206386586107772979' const selectedUserIds = []; const { SlashCommandBuilder, EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, PermissionFlagsBits } = require('discord.js') module.exports = { data: new SlashCommandBuilder() .setName('host-event') .setDescription('host tierlist event!') .setDefaultMemberPermissions(PermissionFlagsBits.ManageGuild), userPermissions: [PermissionFlagsBits.ManageGuild], botPermissions: [], run: async(client, interaction) => { const fetch = await interaction.member.guild.channels.cache.get(waitlistChannel).messages.fetch({ limit: 1}) const lastMessage = fetch.first() interaction.member.guild.channels.cache.get(waitlistChannel).messages.fetch(lastMessage.id).then(msg => { msg.delete() }); const listEmbed = new EmbedBuilder() .setTitle('Some one is currently hosting an event!') .setColor('Red') .setDescription('No one currently in waitlist!') const filter = (i) =>(i.customId === "joinn") && i.user.id === interaction.user.id; const joinButton = new ButtonBuilder() .setCustomId('joinn') .setLabel('Join the waitlist') .setStyle(ButtonStyle.Primary) const row = new ActionRowBuilder() .addComponents(joinButton) const collector = interaction.channel.createMessageCollector({ filter: filter, time: 60_000 }); collector.on('collect', async(i) => { if(i.customId==='joinn') { const fetch = await interaction.member.guild.channels.cache.get(waitlistChannel).messages.fetch({ limit: 1}) const lastMessage = fetch.first() selectedUserIds.push(interaction.user.id) listEmbed.setDescription(generateUserList(interaction.guild)) interaction.member.guild.channels.cache.get(waitlistChannel).messages.fetch(lastMessage.id).then(msg => { msg.edit({ embeds: [listEmbed], components: [row]}) }); i.reply({content: 'Complete!', ephemeral: true}) } }); client.channels.cache.get(waitlistChannel).send({ embeds: [listEmbed], components: [row]}) } } function generateUserList(guild) { let userList = ''; let num = 1 selectedUserIds.forEach(userId => { const user = guild.members.cache.get(userId); if (user) { userList += `**${num}. ${user}**\n`; num + 1 } }); return userList || 'No users found'; }