I have a set of buttons with different options and want to know what i could do for preventing them to click the buttons if they already did.
heres my interaction buttons event function
client.on('interactionCreate', async interaction => {
if (!interaction.isButton()) return
const interactionButton = interaction.customId
const interactionEmbedMessage = interaction.message.embeds.pop()
const interactionEdit = new EmbedBuilder()
.setColor(interactionEmbedMessage.hexColor)
.setTitle(interactionEmbedMessage.title)
.setDescription(interactionEmbedMessage.description)
let interactionFields = interactionEmbedMessage.fields
// the next if is for preventing them to interact once they did once
if (!interactionButton.endsWith(interaction.user.id))
return interaction.reply({
content: 'you can only click once',
ephemeral: true
})
switch (interactionButton) {
case 'btn-0':
interactionFields[0].value = (parseInt(interactionFields[0].value) + 1).toString()
interactionEdit.addFields(interactionFields)
break
case 'btn-1':
interactionFields[1].value = (parseInt(interactionFields[1].value) + 1).toString()
interactionEdit.addFields(interactionFields)
break
case 'btn-2':
interactionFields[2].value = (parseInt(interactionFields[2].value) + 1).toString()
interactionEdit.addFields(interactionFields)
break
case 'btn-3':
interactionFields[3].value = (parseInt(interactionFields[3].value) + 1).toString()
interactionEdit.addFields(interactionFields)
break
default:
break
}
await interaction.update({ embeds: [interactionEdit] })
})