清除反应编辑嵌入消息

时间:2021-02-04 20:03:57

标签: node.js discord.js embed

我想做的是当嵌入的消息改变时,反应被重置,而不是被删除。 我的意思是,当有人对表情符号做出反应并嵌入其更改后,反应会返回 1 而不会停留在 2。 当它返回到 1 时,我可以发送第三个嵌入

enter image description here enter image description here

ty

这是我使用的代码:

const embed = new MessageEmbed()
      .setTitle("Test1")
      .setFooter("Test1");
    message.channel.send(embed).then(sentEmbed => {
      sentEmbed.react("➡");
      const filter = (reaction, user) => {
        return (
          ["➡"].includes(reaction.emoji.name) &&
          user.id === message.author.id
        );
      };

      sentEmbed
        .awaitReactions(filter, { max: 1, time: 30000, errors: ["time"] })
        .then(collected => {
          const reaction = collected.first();

          if (reaction.emoji.name === "➡") {

            const embed2 = new MessageEmbed()
            .setTitle('test2')
            .setDescription('test2')
             sentEmbed.edit(embed2);
          }
        })
    });

1 个答案:

答案 0 :(得分:0)

您可以使用 message.reactions.removeAll().catch(error => console.error('Failed to clear reactions: ', error)); 删除所有反应,然后根据需要重新添加反应。我会在一个函数中执行此操作,这样您就不必在每次想要更新嵌入时一遍又一遍地添加所有反应。