如何在Discord.JS V13中使用waitMessages

2022-07-24 00:00:00 javascript discord.js
因此,我想等待来自用户使用的特定命令的消息。我知道过滤器可能有问题,但我现在不知道如何处理此问题。

我尝试了这样的操作:

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(),或者执行您想要对消息执行的任何其他操作。

相关文章