I just learnt how to make a button in discord.js, and I even learnt how to make a cookie counter, but the only problem is that I can only click it once. If I do it again, it doesn't work. My code is:
let button = new ButtonBuilder()
.setCustomId('cookie')
.setLabel('0')
.setStyle(ButtonStyle.Primary)
let clicker = new ActionRowBuilder()
.addComponents(
button,
);
console.log(button);
console.log(button.data.label);
for the components and
const filter = i => i.customId === 'cookie' && i.user.id === `${interaction.user.id}`;
const collector = interaction.channel.createMessageComponentCollector({ filter, time: 15000 });
collector.on('collect', async i => {
if (i.customId === 'cookie'){
// cookieCount(guildid, messageid);
const newCookie = Number(button.data.label + 1);
clicker = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('cookie')
.setLabel(`${newCookie}`)
.setStyle(ButtonStyle.Primary),
);
await i.update({ embeds: [embed], components: [clicker]})
}
});
for the update. Btw I'm relatively new to discord.js.
The time
option is how long the collector will run in milliseconds. If you remove that option, it should go forever.
const collector = interaction.channel.createMessageComponentCollector({ filter });