提问者:小点点

有没有一种方法可以让我从一个成员对一条消息的反应中获取信息?


我正在Discord.js中编写一个Discord bot。我希望这样做,当一个成员加入服务器时,他们必须对某个通道中的消息作出反应,以获得一个角色。但是由于某种原因,如果在我打开bot之前发送了一条消息,如果对该消息作出了反应,它将不会检测到该消息,并且只检测到在bot打开之后的消息。

下面是我首先尝试的代码:

bot.on("messageReactionAdd", (reaction, users) => {

    console.log("reaction");

    if (reaction.message.channel.name == "rules") {
        console.log("rules")
    } else {
        console.log("not rules");
    }

});

它告诉该频道的反应,如果一个消息被反应,但只有当消息是在机器人启动后发送的。

无奈之下,我接下来尝试了这段代码:

bot.on("messageReactionAdd", () => {

    console.log("reaction");

});

它和其他代码做了同样的事情。

我想让它检测到一个反应,即使消息是在bot启动之前发送的。


共1个答案

匿名用户

messageReactionAdd处理缓存的消息,这意味着当bot打开时,很少有解决方案。

第一个选项:.CreateReActionCollector()

第二个选项:使用该消息手动设置缓存

第三种选择。在bot连接上创建新消息

第四种选择。使用命令,而不是像。同意这样的反应

我找到了一个可能有用的链接:https://github.com/anidiotsguide/discordjs-bot-guide/blob/master/coding-guides/raw-events.md

这个线程也很有用:为什么messageReactionAdd不做discord.js