当前位置: 首页 > 知识库问答 >
问题:

discord.js获取通道中所有消息的数组

傅恺
2023-03-14

我正在对一个不和谐的机器人进行编码,我想在其中执行命令!quote并且它将从id为quoteSid的特定通道(该通道可能是!quote发送的不同通道,也可能不是)拉出一个随机的of消息。我一直在查看文档中的discord.js,但我找不到一种方法,可以通过它的ID获取一个TextChannel,然后使用TextChannels.messages函数,从而获得MessageManager和一个消息集合。

我知道我可以使用msg.guild获得公会(其中msg!quote的触发器)或获得特克斯

我是JavaScript和discord.js的新手,所以任何信息都有帮助。(我使用的是discord.js版本12.2.0)

共有2个答案

长孙文栋
2023-03-14

正如https://discord.js.org/#/docs/collection/master/class/collection?scrollto=array中所说的,您可以使用 .array() 方法获取集合中值的数组。它类似于[...collection.values()]array.from(collection.values())

汤英豪
2023-03-14

如果您希望获得具有id的特定通道,则需要执行以下操作:

const channel = client.channels.cache.get("Your channel ID");

然后,在此通道中收集消息(限制设置为最多100条消息,因此您在此通道中收集的消息不能超过100条,除非您有自己的消息存储系统)。

channel.messages.fetch({ limit: 100 }).then(messages => {
  console.log(`Received ${messages.size} messages`);
  //Iterate through the messages here with the variable "messages".
  messages.forEach(message => console.log(message.content))
})
 类似资料:
  • 我重用了一个snipe命令代码来执行这个fetch命令,但这并不是我的问题。 我正试图从一个频道获取一条消息,并将其发布到指定的频道中,例如:在X中抓取消息,并将其发布到Y中。如果这有意义,那么到目前为止,我所拥有的只有: 非常感谢您的帮助! ps:到现在为止,它从它运行的命令的通道中获取消息。如果我在X通道中发送了一条消息,并在X通道中运行该命令,它将在X通道中获取消息。我的目标是尝试从一个频道

  • 注意:我使用的是discord.jsV11,我知道我打算下个月在我解开我的意大利面条代码之后将它更新到V12。 所以我不知道如何从一条消息中获取messageID,而这条消息已经在机器人中引发了反应。 我希望它的工作方式如下:一个用户对一个消息做出反应,任何消息,反应在bot中编程。然后,bot获取给出该反应的消息url,然后向发送消息。 所以我尝试使用这段代码,但真的无法达到我需要达到的目的:

  • 我试图发出一个静音命令,我正在添加一个系统,在这个系统中,你可以出于某种原因将它们静音。机器人将回复“(用户用户名)已禁用。原因:(原因)”。对我来说,args[0]只是提到了要禁用的用户,但我不知道如何获取args[0]之后的所有内容。我试过做类似于。但这显然不起作用-我有点猜测-我转向清单4这样的参数。 但显然,这不是很有效——有人知道如何获取args[0]之后的所有参数吗?

  • 我觉得我对这个话题的所有研究只会让我找到过时的解决方案。 与我的不和。js机器人,我有一个命令。为了让它工作,我需要在命令发出之前获取通道中的最后一条消息。我正在努力处理所有的抓取、分区和缓存等问题。 有时,当我在机器人启动后立即发布消息并使用上面的命令时,它会起作用,但是如果我重新启动机器人,它似乎会得到错误的消息。另外,超过14天的邮件怎么办? 我不能真正提供代码,因为它只有一行,比如:

  • 大家好。我有一个Kafka项目,使用SpringKafka来听一个明确的主题。我需要一天听一次所有的信息,把它们放到一个集合中,然后在那里找到特定的信息。我无法理解如何用一个@KafkaListener方法读取所有消息。我的班级是: 我的事件集合的大小始终为1;我尝试使用不同的循环,但后来,我的收藏被归档了530000次。 更新:我已经找到了一种方法来做它与factory.setBatchList

  • 我尝试在Kafka中创建新主题时启动动态消费者,但动态启动的消费者总是缺少起始/第一条消息,但从那里开始消费消息。我正在使用kafka-python模块,并且正在使用更新的KafkaConsumer和KafkaProducer。 请建议一些解决这个问题的方法,或者我必须包含在我的生产者和消费者实例中的任何配置。