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

如何获取discord中的最新消息。js?

国阳
2023-03-14

每次在特定通道中发送消息时,我都想将其打印到控制台(console.log)。我还打算用npm安装颜色给它上色。我到处去,甚至在堆栈溢出,但我似乎找不到任何信息。我正在编写一个学术保龄球帮助机器人。下面是我尝试过的代码(我在Stack Overflow上找到了这个。)

message.fetch({ limit: 1 }).then(messages => {
  let lastMessage = message.first();
    if (message.channel.lastMessage = 'channel-id'){
      console.log(lastMessage.red);
  }
}) 

(请注意,当我说'channel-id'时,我指的是频道的实际id。)

我得到的错误是message.first不是一个东西。

如何修复此错误,以及如何在discord.js?中获取最新消息

编辑:我得到的确切错误是:

(node:12352) UnhandledPromiseRejectionWarning: TypeError: messages.first is not a function
    at C:\Users\[user redacted]\Desktop\SchoBot\index.js:57:32
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:12352) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:12352) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

以下是对该问题第三条评论的编辑(按最早的评论排序):

  message.channel.fetch({ limit: 1 }).then(messages => {
    let lastMessage = message.channel.first();
      if (message.channel.lastMessage = 'channel-id'){
        console.log(lastMessage.red);
    }
})

共有2个答案

李法
2023-03-14

我假设消息。获取需要是消息。频道获取

蓬长恨
2023-03-14

使用消息。频道信息。fetch()而不是消息。频道fetch()

我没有找到消息。首先在discord中起作用。js文档,所以我不确定它是否有效。但是,您并不真正需要该函数来获取消息。fetch函数已经为您完成了这项工作。

在您的情况下,选项Limited: 1只会返回最近的消息,这是您用来触发读取的命令。如果您想获取最近的消息,但不是您的命令,您应该使用限制: 2来代替,然后在以后删除对象中的命令。提取函数将返回一个包含消息id和内容的对象。

 类似资料:
  • 我对discord.js比较陌生,我已经开始构建一个bot项目,它允许用户通过命令创建一个消息,将该消息存储在我的专用服务器上的一个隐藏通道中,然后可以通过消息ID提取所述消息。 我使用了write,它返回在隐藏通道中发送的消息的消息ID,但我完全被get命令难住了。我试过在网上搜索,但我尝试的每个方法都会返回错误,如“无法读取未定义的属性'fetch'”或“'channel'未定义”。这里是我尝

  • 不一致js是一个用于Discord的API,允许开发人员为程序Discord制作插件。这是js中API代码的链接,https://github.com/hydrabolt/discord.js/ 不和谐被设置成像一个服务器,你在那里连接和聊天的渠道,我的问题是我如何从渠道拉消息数据。 他们所做的是在JSON缓存中设置所有通道,在通道中,对象是另一个带有消息对象的缓存(留档所说的)。但是当我到达消息

  • 我正试图制造一个不和谐的机器人,我有一些问题。我想要一种方法来获取某个频道的所有消息,但在bot重新启动后,他无法“看到”旧消息。以下是一个例子: 因此,我发送了3条随机消息,然后启动bot并启动命令。对于调用命令的消息,结果是1。

  • 假设我对同一个消息键有不同的值。 例如: 在上述情况下,我只需要用户更新的最新值,即“user789@xyz.com”。 我的kafka流应该只给我第三个值,而不是前两个值。

  • 我几乎没有lambda cron jobs函数。我想每天运行一次另一个lambda函数,并获取每个lambda的最新日志。基于此日志,我将生成一个简单的报告并通知slack。 lambda函数是使用boto3在python中编写的。 报告应如下所示: 目前,我面临着从Cloud Watch洞察中获取最新lambda日志和状态的问题。 我对这个查询玩了一点: 此查询返回具有此日志级别的最新日志。但是

  • 英文原文:http://www.phpconcept.net/pclzip/news 译注: 原文中描述了最新消息的 PclZip 版本是 v2.6,而不是翻译时看到的 v2.8.2 因此可忽略本页内容,因为不够新了 PclZip 2.5 新特性 PclZip v2.5 引入了一个安全功能,以及修改压缩包内的文件名的功能。 为了实现这些功能,进行了大量代码修改,以保证对压缩包内文件列表的属性的维护