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"
意图的消息事件添加侦听器。
出于某种原因,无论我尝试什么,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"
意图的消息事件添加侦听器。