我想做的是当嵌入的消息改变时,反应被重置,而不是被删除。 我的意思是,当有人对表情符号做出反应并嵌入其更改后,反应会返回 1 而不会停留在 2。 当它返回到 1 时,我可以发送第三个嵌入
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);
}
})
});
答案 0 :(得分:0)
您可以使用 message.reactions.removeAll().catch(error => console.error('Failed to clear reactions: ', error));
删除所有反应,然后根据需要重新添加反应。我会在一个函数中执行此操作,这样您就不必在每次想要更新嵌入时一遍又一遍地添加所有反应。