Discord 如何制作从消息读取数据的嵌入?

Discord 如何制作从消息读取数据的嵌入?,discord,discord.js,Discord,Discord.js,我正试图制造一个不和谐的机器人来发布公告。我想创建一个命令,从消息中读取数据并将其转换为嵌入消息 示例命令:!宣布标题、说明、链接、图像 const Discord = require('discord.js'); const bot = new Discord.Client(); //listener bot.on('ready', () => { bot.user.setGame('Hello!') }); bot.on('message', (message) => {

我正试图制造一个不和谐的机器人来发布公告。我想创建一个命令,从消息中读取数据并将其转换为嵌入消息

示例命令:
!宣布标题、说明、链接、图像

const Discord = require('discord.js');
const bot = new Discord.Client();

//listener
bot.on('ready', () => {
  bot.user.setGame('Hello!')
});

bot.on('message', (message) => {

if(message.content == 'text') {
    const embed = new Discord.RichEmbed()

    .setTitle("Title!")
    .setDescription("Description")
    .setImage("https://i.imgur.com/xxxxxxxx.png")
    .setURL("https://google.com")
    .addField("Text", true)

    //Nope
    .setThumbnail("https://i.imgur.com/Rmiwd1j.png")
    .setColor(0x00AE86)
    .setFooter("Footer", "https://i.imgur.com/xxxxxxxx.png")

    .setTimestamp()

    /*
     * Blank field, useful to create some space.
     */      
    message.channel.send({embed});

}});

bot.login('token');
我想根据文本进行更改。
如何执行此操作?

首先,您需要检测命令:您可以使用来检测
!宣布

if (message.content.startsWith('!announce')) {...}
然后,您必须通过拆分字符串来获取命令的其他部分:您可以使用逗号分隔它们,就像您所做的那样(标题、描述等),或者使用您想要的任何字符(在我的示例中我将使用逗号)。
将帮助您摆脱
!宣布
part,同时将创建一个包含其他部分的数组

这段代码将从命令
生成一个嵌入类!宣布标题、描述、名称,http://example.com/, http://www.hardwarewhore.com/wp-content/uploads/2018/03/dcord.png

client.on("message", message => {
  if (message.content.startsWith('!announce')) {
    let rest_of_the_string = message.content.slice('!announce'.length); //removes the first part
    let array_of_arguments = rest_of_the_string.split(','); //[title, description, link, image]

    let embed = new Discord.RichEmbed()
      .setTitle(array_of_arguments[0])
      .setDescription(array_of_arguments[1])
      .setImage(array_of_arguments[3])
      .setURL(array_of_arguments[2])
      .addField("Text", true)
      .setThumbnail("https://i.imgur.com/Rmiwd1j.png")
      .setColor(0x00AE86)
      .setFooter("Footer", array_of_arguments[3])
      .setTimestamp();

    message.channel.send({ embed });
  }
});
我建议使用文本而不是描述,并提醒
.addField()
的第二个参数是文本,而不是内联值