Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Discord.js 统计经过一定时间后对消息的反应_Discord.js - Fatal编程技术网

Discord.js 统计经过一定时间后对消息的反应

Discord.js 统计经过一定时间后对消息的反应,discord.js,Discord.js,所以我制作了一个机器人,它有一个投票命令,你让它说一个可投票的东西,人们只能在discord.js中用勾号、叉号或N/a来做出反应 我现在需要的是一个响应(通过命令或随时间自动,但最好在24小时内自动) 到目前为止,我已经尝试了许多不同的方法,并查看了所有Discord.js文档,但没有任何结果。下面是代码的最终结果,尽管它不起作用: var textToEcho = args.join(" "); Client.channels.cache.get('channel ID'

所以我制作了一个机器人,它有一个投票命令,你让它说一个可投票的东西,人们只能在discord.js中用勾号、叉号或N/a来做出反应

我现在需要的是一个响应(通过命令或随时间自动,但最好在24小时内自动)

到目前为止,我已经尝试了许多不同的方法,并查看了所有Discord.js文档,但没有任何结果。下面是代码的最终结果,尽管它不起作用:

var textToEcho = args.join(" ");
Client.channels.cache.get('channel ID').send(textToEcho).then(async m => {
                await m.react('✅');
                await m.react('❎');
                await m.react('801426534341541919');
            });
message.channel.fetchMessage(textToEcho).then(msg => {
    let downVoteCollection = msg.reactions.filter(rx => rx.emoji.name == '✅');
    console.log(downVoteCollection.first().count);
}).catch(console.error);

注意:此仅检查勾号响应。

您似乎试图在消息发送后直接获取所有反应,这将仅返回机器人的反应(如果有)。
为了准确地获得一定时间后的反应,您必须添加
.setTimeout(…)
函数

var textToEcho=args.join(“”);
Client.channels.cache.get('channel ID').send(textToEcho).then(async m=>{
等待m✅');
等待m❎');
等待m.react('8014265341541919');
});
设置超时(()=>{
message.channel.messages.fetch(message.id).then(msg=>{
let downVoteCollection=msg.reactions.filter(rx=>rx.emoji.name='✅'); // 过滤反应
msg.author.send(`You have received**${downVoteCollection.first().count}**您最近的投票!`);//向投票所有者发送他们收到的投票数
}).catch(控制台错误);
},86400000);//这将在消息发送到计数反应后等待24小时

您在哪里定义了textToEcho&您有任何错误吗?textToEcho是在这段代码之前定义的(当发送人们投票的消息时),只有当它尝试计算反应时才会出现错误。您可以显示testToEcho是什么,您收到的错误在您的问题中。这将帮助我们提供准确的答案。好的,但我需要它将反应的数量发送给用户,而不只是在console@CKStudios2018查看我的最新编辑这应该是什么您正在寻找。谢谢!我可能因为用新代码重新启动bot而失去了两张选票,但一点牺牲是远远不够的。-除此之外,非常感谢您的帮助!!等等,这不起作用,它现在只允许发送一个表情符号。而且,完全崩溃了bot。
TypeError:message.channel.fetchMessage不是一个函数
如果您在24小时内重新启动bot,bot将不会计票。