我正在尝试创建一个带有审批系统的请求系统,并试图让基本的反应系统正常工作(希望它最终会对一个嵌入(它创建的是命令)作出反应),无论如何,它会对命令作出反应,但是当您作出反应时,它不承认它,并且在设定的时间之后,它只会发送超时消息。
const filter = (reaction, user) => {
return ['', ''].includes(reaction.emoji.name) && user.id === message.user.id;
};
message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] } )
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === '') {
message.channel.send('you reacted with a thumbs up.');
}
else {
message.reply('you reacted with a thumbs down.');
}
})
.catch(collected => {
console.log(`After a minute, only ${collected.size} out of 4 reacted.`);
message.reply('you didn\'t react with neither a thumbs up, nor a thumbs down.');
});发布于 2021-08-05 23:11:08
您的filter中有一个小错误,它检查user的ID。message没有user属性。相反,您应该使用author,它返回一个User。
这意味着你必须使用
user.id === message.author.id而不是
user.id === message.user.id下面是您可以参考的discord.js文档。
https://stackoverflow.com/questions/68673166
复制相似问题