首页 > 解决方案 > 你如何创建一个反应收集器,它可以输出做出反应的用户的名字并将它们保存在 discord.js 中?

问题描述

我想制作一个反应收集器,它将存储点击嵌入的用户,以便我可以将它们用于其他事情,并输出在我制作饥饿游戏模拟器机器人时做出反应的每个人。

if (msg.content === prefix + 'start') {
    msg.channel.send("React too the message above too join!");
    msg.react("");
    msg.awaitReactions(filter, {max: 24, time: 60000});
}

我目前有这个代码,我很确定你可以添加一些东西,但我不知道如何将它添加到这个上面并让它也收集反应并输出它们我已经尝试添加反应收集器但只是不能不要让他们太工作。

标签: javascriptdiscord.js

解决方案


Message#awaitReactionsMessage#createReactionCollector您提到的反应收集器不同,我将举一个例子来回答。

例子:

const filter = (reaction, user) => {
    return reaction.emoji.name === '';
};

const collector = message.createReactionCollector(filter, { max: 24, time: 60000 });

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

collector.on('end', collected => {
    console.log(`Collected ${collected.size} reactions`);
});

Message#createReactionCollector有两个事件collectend,您可以收听这些事件以获得反应数量、做出反应的用户以及使用什么表情符号。

可以在此处找到相关文档


推荐阅读