如何从频道中获取消息?不和谐.js

时间:2021-04-05 14:16:09

标签: node.js discord discord.js fetch message

我重用了一个 snipe 命令代码来制作这个 fetch 命令,但这并不是我真正的问题。

我正在尝试从频道获取消息并将其发布到指定频道,例如: 获取 X 中的消息,然后将其发布到 Y 中。如果这是有道理的,那么我目前所拥有的就是:

const Discord = require('discord.js');

module.exports = class FetchCommand extends BaseCommand {
  constructor() {
    super('fetch', 'fun', []);
  }

  async run(client, message, args) {
    const msg = client.snipes.get(message.channel.id);
    if (!msg) return message.channel.send('There are no messages to fetch.');
    
    const fetchEmbed = new Discord.MessageEmbed()
      .setAuthor(msg.author.tag, msg.author.displayAvatarURL())
      .setDescription(msg.content)
      .setTimestamp()

    message.channel.send(fetchEmbed);
  }
}

非常感谢您的帮助!

PS:截至目前,它从运行命令的通道中获取消息。如果我在 X 通道中发送消息,并在 X 通道中运行命令,它将在 X 通道中获取消息。 我的目标是尝试从一个频道获取消息并将其发布到另一个频道中。

1 个答案:

答案 0 :(得分:1)

如果您有频道 ID 和消息 ID:await message.guild.channels.cache.get('channel-id').messages.fetch('message-id')(仅限异步函数)

如果您只有频道 ID 并且想要不是命令的最后一条消息:(await message.guild.channels.cache.get('channel-id').messages.fetch({ count: 2 })).first()