Discord 等待消息从不收集任何消息

Discord await messages never collects any messages

出于某种原因,无论我尝试什么,awaitMessages 函数永远不会从频道中获取 any 消息。我试过等待它,我试过使用不同的功能,比如收集器,但没有任何东西被拾起。原始命令可以正常接收,但在等待消息时不会。

        const filter = m => m.author == interaction.author;

        interaction.reply('Recieved')
        .then(() =>
        interaction.channel.awaitMessages(filter, {
                max: 1,
                time: 3000,
                errors: ['time']
            })
            .then(collected => {
                interaction.channel.send(collected.first());
            })
            .catch(collected => {
                interaction.channel.send('Timeout');
            })
        );

Interaction#author 不存在,比较对象会产生意想不到的结果。使用 Interaction#user 并比较 ID

const filter = m => m.author.id == interaction.user.id

我已经找到这个问题了!以防其他人遇到这个问题,因为我认为这在 discord.js v13.

中很常见

问题出在意图上。 Discord.js 指南建议的意图是 [Intents.FLAGS.GUILDS];但是,这不允许直接读取消息。如果您想使用 awaitMessages 或什至向您需要包含 "GUILD_MESSAGES" 意图的消息事件添加侦听器。