如何获取特定频道Discord.js的最后一条消息

时间:2019-08-23 07:12:10

标签: javascript node.js discord.js

我正在尝试获取特定频道的最后一条消息,但我做不到,我希望如果我在另一个频道(频道1)中编写命令,该命令会给我另一个频道的最后一条消息频道(频道2)。

我尝试过:

client.on('message', (message)=>{
    if(message.channel.id === '613553889433747477'){
        if(message.content.startsWith('start')){

                message.channel.fetchMessages({ limit: 1 }).then(messages => {
                    let lastMessage = messages.first();
                    console.log(lastMessage.content);
                  })
                  .catch(console.error);
        }
    }
    });

但是没有用。我该如何解决?

1 个答案:

答案 0 :(得分:0)

我为您整理了一些代码,并添加了一些注释以解释发生了什么。
如果您还有其他疑问,建议您访问官方的Discord.js Discord服务器。
https://discord.gg/bRCvFy9

client.on('message', message => {

  // Check if the message was sent in the channel with the specified id.
  // NOTE, this defines the message variable that is going to be used later.
  if(message.channel.id === '613553889433747477'){
    if(message.content.startsWith('start')) {

      // Becuase the message varibable still refers to the command message,
      // this method will fetch the last message sent in the same channel as the command message.
      message.channel.fetchMessages({ limit: 1 }).then(messages => {
        const lastMessage = messages.first()
        console.log(lastMessage.content)
      }).catch(err => {
        console.error(err)
      })
    }
  }
})

如果您想从其他渠道获得消息,则可以执行以下操作。
并使用命令start #channel

client.on('message', message => {

  // Check if the message was sent in the channel with the specified id.
  if(message.channel.id === '613553889433747477'){
    if(message.content.startsWith('start')) {

      // Get the channel to fetch the message from.
      const channelToCheck = message.mentions.channels.first()

      // Fetch the last message from the mentioned channel.
      channelToCheck.fetchMessages({ limit: 1 }).then(messages => {
        const lastMessage = messages.first()
        console.log(lastMessage.content)
      }).catch(err => {
        console.error(err)
      })
    }
  }
})

有关消息中提及渠道的更多信息,请参见此处。  https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=mentions