Mikachu
Mikachu

Reputation: 157

Discord.js interaction won't update

I have a message with 3 buttons and I want to disable all 3 of the buttons after they have been clicked.

handle: async function(interaction) {

        interaction.deferUpdate();

        let components = interaction.message.components[0].components.forEach(c => {
            c.setDisabled(true)
        })

        await interaction.message.edit({embeds: interaction.message.embeds, components: components})
        // Do some other stuff
}

I have tried it with 

interaction.update()

and multiple other ways but i can't get it to work.

Upvotes: 1

Views: 4151

Answers (1)

Vxrious
Vxrious

Reputation: 87

After you deferred your reply with .deferReply() or .deferUpdate() you need to use .editReply()

Code @ discordjs.guide

collector.on('collect', async i => {
    if (i.customId === 'primary') {
        await i.deferUpdate();
        await wait(4000);
        await i.editReply({ content: 'A button was clicked!', components: [] });
    }
});

Upvotes: 2

Related Questions