Discord.js机器人不会执行.then

时间:2020-09-06 07:30:48

标签: javascript discord discord.js

我试图创建一个响应消息,但是每当我尝试在.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收集的大小。有人能帮助我完成这项工作吗?

2 个答案:

答案 0 :(得分:2)

仅当删除消息或时间用完后,awaitMessages()才会解析。相反,您可以做的是创建一个reactCollector并等待collect事件。

以下是一些资源:https://discordjs.guide/popular-topics/collectors.html#reaction-collectorshttps://discord.js.org/#/docs/main/stable/class/Message?scrollTo=createReactionCollector

答案 1 :(得分:0)

尝试将console.log(collected.size)替换为console.log(collected),看看效果如何。