如何获取嵌入并将其发布到另一个频道

时间:2020-07-18 04:43:26

标签: javascript discord discord.js

我正在尝试为Discord Bot创建报告功能。当前,如果用户输入 %report(用户名)(规则#破损)(详细信息)。机器人会在员工聊天中以嵌入方式创建待处理的报告。我希望工作人员能够使用命令来获取其ID所嵌入的内容,并将其发送到另一个不和谐的频道以进行进一步检查。目前,我想不出任何想法来实现这一目标,我想知道这里是否有人可以为我指明正确的方向。

我本来要像%review(消息ID)那样执行命令。 这将获取当前在工作人员聊天中的消息,并将其发送给上级机构进行进一步审核。

P.S我的代码安排得不好,对此我深表歉意。我会尽力回答您可能遇到的任何问题,以便消除困扰。

 bot.on("message", async message => {

if(message.author.bot) return;

if(!message.content.startsWith(config.prefix)) return;

const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();

if(command === 'report'){
        console.log((message.author.username)+ ' is trying to create a report');
            let username = args[0]
            let rule = args[1]
            let notes = args.splice(2).join(" ")
            const report = new discord.MessageEmbed()
            .setColor('#0099ff')
            .setTitle("Pending Report")
            .setFooter("UMA Report")
            .addField('username: ', username)
            .addField('Rule Broken: ', rule)
            .addField('Notes: ', notes)
            .addField('Report Set By: ', "<@" + message.author.id + ">")
            .setTimestamp()
            bot.channels.cache.get('53453453345').send({ embed: report })
            console.log((message.author.username)+ ' has created a report on: '+ username);
            
        
    }

}

1 个答案:

答案 0 :(得分:1)

这应该从职员频道获取消息,然后将其重新发送到另一个频道。

} else if (command === 'review') {
  let ID = args[0];
  const embedMessage = await message.channel.messages.fetch(ID);
  const embed = embedMessage.embeds[0];
  (await bot.channels.fetch(/* other channel ID */)).send(embedMessage.content, { embed });
}

参考: