我试图创建一个响应消息,但是每当我尝试在.con中使用console.log时,它仅在消息被删除后才执行。
async execute(message) {
const role = message.guild.roles.cache.find(r => r.name == 'Founder');
if (!role) return message.channel.send(`**${message.author.username}**, role not found`);
await message.delete();
const filter = (reaction) => reaction.emoji.name === '✅';
const ReactionMessage = await message.channel.send('React to this message to get the Founder role');
ReactionMessage.react('✅');
ReactionMessage.awaitReactions(filter, { max: 10, time: 15000 })
.then(collected => console.log(collected.size))
.catch(err => console.error(err));
}
我的最终游戏是让它对所有对此做出反应的用户添加角色,但是直到我删除该消息之前,它甚至都不会console.log收集的大小。有人能帮助我完成这项工作吗?
答案 0 :(得分:2)
仅当删除消息或时间用完后,awaitMessages()才会解析。相反,您可以做的是创建一个reactCollector并等待collect事件。
以下是一些资源:https://discordjs.guide/popular-topics/collectors.html#reaction-collectors,https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=createReactionCollector
答案 1 :(得分:0)
尝试将console.log(collected.size)
替换为console.log(collected)
,看看效果如何。