我重用了一个 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 通道中获取消息。 我的目标是尝试从一个频道获取消息并将其发布到另一个频道中。
答案 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()