繁体   English   中英

从客户端获取消息 Discord.js

[英]Fetch message from the client Discord.js

我已经搜索了这个问题,并且我发现的数百个回复仅在消息事件 EG 中提及这一点

client.on('message', message => {
   message.id // <<< I don't think this is the right code for it but that's not the point I'm making so....
});

但是,我需要通过其 id 访问消息而不使用消息事件。 具体来说,我需要在 messageReactionAdd 事件中,但是我更愿意学习如何从客户端获取它,因为我过去也需要做同样的事情(但我被迫重新设计我的原始计划)。 这是我尝试使用的代码,但它不起作用:

client.channels.cache.get("Channel_Id").messages.fetch("Message_Id");

我从一个不同的项目中被引导到这个代码字符串,在那里我在一个频道中找到了第一条消息:

client.channels.cache.get("Channel_Id").messages.fetch({ limit: 1 }).then(messages => {var lastMessage = messages.first();});

这甚至可能吗? 我觉得有点奇怪,没有一种简单的方法可以直接针对消息而不跳过一堆箍(如 client.messages.fetch("Message_Id"))。 任何帮助将非常感激。

获取的第一个版本应该可以工作。 但是请注意,该messageReactionAdd事件针对由您的机器人缓存的消息发出。 缓存消息是在您启动机器人后收到的消息,每个通道最多(默认情况下)200 条消息。

如果您只想获取一条特定消息来接收反应事件,这应该可以工作,只要它位于您不必担心前面提到的限制的通道中。

但是,当您使用 v12 时,有一个功能允许接收未缓存结构的事件,称为Partials这里是它的指南页面)。 如果启用部分,您可以接收消息的事件,而无需事先获取它。 请记住,您只能通过这种方式接收 ID,但可以在需要时获取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM