Discord bot 寻找反应

时间:2021-07-28 22:49:39

标签: javascript discord discord.js

所以很难解释我的情况,因为我是 discord.js 的新手,我一直在努力解决这个问题

我需要的是我的机器人查看某个频道并看到工作人员(或任何人,因为普通用户无法添加反应)对“?”做出反应并记录下来。

后来我的最终目标是它看到这个并回复并向我的世界服务器发送命令。但以后我会弄明白这一切。我只需要机器人来查看对消息的特定反应

就像我说我是新人一样,discord.js 的文档没有帮助,我能找到/做的就是:

const Discord = require('discord.js');
const client = new Discord.Client();

client.once('ready', () => {
    console.log('Ready!');
});

const filter = (reaction, user) => {
    return reaction.emoji.name === '?' && user.id === Discord.Message.author.id;
};

const collector = Discord.Message.createReactionCollector(filter, { time: 15000 });

collector.on('collect', (reaction, user) => {
    console.log(`Collected ${reaction.emoji.name} from ${user.tag}`);
});

它会抛出关于 Message.createReactionCollector 的错误

1 个答案:

答案 0 :(得分:0)

要使用 ReactionCollector,您需要一个 Message 实例来创建收集器。

如果您没有特定的消息并希望在全球范围内收集反应,您可以监听事件 messageReactionAdd

client.on("messageReactionAdd", (reaction, user) => {

    // Ignore the bot's reactions
    if (client.user.id == user.id) return;

    // Look only for thumbs up reaction
    if (reaction.emoji.name != "?") return;

    // Accept reactions only from specific channel
    if (reaction.message.channel.id != "870115890367176724") return;

    console.log(`${user.tag} reacted with ?.`);

});

请注意,这不适用于对机器人启动之前发送的消息的反应。解决方案是启用Partial Structures(如果您正在处理部分数据,请不要忘记获取