【问题标题】:How do I remove a reaction from a message by a specific user in Discord.js?如何删除 Discord.js 中特定用户对消息的反应?
【发布时间】:2020-02-21 22:43:48
【问题描述】:

我想删除特定用户对我提取的消息的反应。但是我无法让它工作(可能是因为我是一个不会做 Javascript 的 weeb),所以如果我能得到一些帮助会很好:)

我尝试环顾四周,例如 [this]Remove a users reaction from fetchMessage? - Discord JS 线程,但它返回为 map 未定义。

我最近想出的是这样的:

            var messageEmbed = message.channel.fetchMessage('637189841418846208')
                .catch(console.error);
                messageEmbed.reactions.remove(message.author.id)

我希望它消除反应,但我收到错误“UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'remove' of undefined”

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    “reactions”是反应的集合,因此您需要首先找到您要查找的特定反应,此示例获取消息的第一个反应并尝试从反应中删除用户。

    let messageEmbed = message.channel.fetchMessage('637189841418846208')
    .catch(console.error);
    messageEmbed.reactions.first().remove(message.author.id)
    

    还有许多其他方法可以在集合中搜索特定反应,一般一种是 .get() 方法,在这种情况下,它将根据反应的 ID 搜索反应

    messageEmbed.reactions.get("REACTION ID")
    

    要查看所有可用的方法,请参阅CollectionReaction

    【讨论】:

    • 我试过你说的,但它返回一个错误:TypeError: Cannot read property 'get' of undefined
    • 运行代码时,有问题的消息是否有任何反应?如果是这样,可能值得添加 console.log(messageEmbed.reactions) 以检查是否有任何反应,或者更好的是,检查它是否获取正确的消息。
    • 非常感谢!显然它没有正确获取消息!其他一切都很好!
    • 很高兴看到它成功了!在这种情况下,从下往上调试总是好的,所以从一开始就找到您正在处理的数据开始,直到实际处理。
    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2021-08-11
    • 2020-09-07
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2020-07-15
    相关资源
    最近更新 更多