从特定消息中删除特定成员的反应

时间:2021-06-09 23:33:35

标签: discord.js

我想删除成员因任何原因离开服务器时对特定消息的反应。下面的代码设置为在有人发送消息时工作,但这只是为了测试,我稍后会更改该部分。

我一开始以为代码会删除所有反应,结果发现它不是删除所有用户,而是删除机器人反应,因为他们是帖子的作者。

bot.channels.cache.get('786073099685593088').messages.fetch('842501905292066857').then((message) => {
    const userId = message.author.id
    const userReactions = message.reactions.cache.filter(reaction => reaction.users.cache.has(userId));
    try {
        for (const reaction of userReactions.values()) {
            reaction.users.remove(userId)
        }
    } catch (error) {
        console.log(error)
    }
})

这一个什么都不做,但我试图让常量在外面,这样它就不会看是谁写的消息正在被删除,而是看触发动作的帖子的作者是谁(将以后改成离开的成员)

const author = message.author.id
bot.channels.cache.get('786073099685593088').messages.fetch('852625430950838302').then((message) => {
const userReactions = message.reactions.cache.filter(reaction => reaction.users.cache.has(author));
try {
    for (const reaction of userReactions.values()) {
        reaction.users.remove(author)
    }
} catch (error) {
    console.log(error)
}

})

2 个答案:

答案 0 :(得分:1)

尝试执行以下操作,它可能会解决您的问题。这将消除用户的反应。

reaction.users.remove(user.id)

答案 1 :(得分:0)

用更少的代码解决了我自己的问题

bot.channels.cache.get('channelID').messages.fetch('messageID').then((message) => {
    message.reactions.cache.filter(reaction => reaction.users.remove(member.user.id));
})