我正在尝试创建一个反应消息,但是每当我尝试在。中使用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));
}
我的最终目的是让它为所有响应它的用户添加一个角色,但它甚至不会安慰。记录收集的大小,直到我删除消息。有人能帮我把它弄好吗?
awaitMessages()仅在消息被删除或时间用完后才会解析。您可以做的是创建一个reactionCollector并等待collect事件。
以下是一些参考资料:https://discordjs.guide/population-topics/collectors.html#reaction-collectors,https://discord.js.org/#/docs/main/stable/class/message?scrollto=CreateReactionCollectors
尝试用console.log(collected.size)
替换console.log(collected)
,看看效果如何。