如何在Discord.JS V13中使用waitMessages
因此,我想等待来自用户使用的特定命令的消息。我知道过滤器可能有问题,但我现在不知道如何处理此问题。
我尝试了这样的操作:
const msg_filter = m => m.author.id === message.author.id;
message.channel.awaitMessages(msg_filter, {
max: 1
});
但现在,我如何才能让它正常工作呢?因为我在谷歌上搜索了几个小时,也没有找到解决这个问题的方法。我只想从使用该命令的同一用户那里获取一条消息(我只能从bot获取消息,仅此而已)。
解决方案
Here's a link to the documentation on TextChannel#awaitMessages
但简而言之,awaitMessages
返回您必须解析的承诺,如下所示:
const msg_filter = (m) => m.author.id === message.author.id;
const collected = await message.channel.awaitMessages({ filter: msg_filter, max: 1 });
// Or without async/await
const msg_filter = (m) => m.author.id === message.author.id;
message.channel.awaitMessages({ filter: msg_filter, max: 1 })
.then((collected) => {
// ...
});
和collected
将是消息的Collection
。由于您只收集了1条消息,因此您可以使用collected.first()
获取集合中的第一条(也是唯一条)消息,然后您可以从那里获取它的.content
或.reply()
,或者执行您想要对消息执行的任何其他操作。
相关文章