Stats命令显示嵌入中的未定义数据

时间:2018-11-05 21:32:14

标签: javascript discord.js

我的stats命令有点问题,即使我将undefined设为嵌入属性。

if (command == "stats") {
  let mcount = bot.users.size;
  let scount = bot.guilds.size;
  let tcount = bot.channels.filter(c => c.type === 'text').size;
  let vcount = bot.channels.filter(c => c.type === 'voice').size;
  let embed = new Discord.RichEmbed()
    .setDescription(`:white_check_mark: Statistics of Tommy`)
    .setColor("2c2f33")
    .addField('**Users:**`' + `${mcount}` + '`')
    .addField('**Servers:**`' + `${scount}` + '`')
    .addField('**Text channels:**`' + `${tcount}` + '`')
    .addField('**Voice channels:**`' + `${vcount}` + '`');
  message.channel.send({
    embed
  });
}

enter image description here

1 个答案:

答案 0 :(得分:3)

您的示例在大多数情况下都有效,但是它在与字段名称相同的行上显示值,并且undefined文本出现在每个字段名称下方。

原因是addField方法有第二个参数,用于将文本(或字段值)设置在字段名称下方。

在您的示例中,对addField的调用可以更改为:

.addField('**Users:**', `${mcount}`)
.addField('**Servers:**', `${scount}`)
.addField('**Text channels:**', `${tcount}`)
.addField('**Voice channels:**', `${vcount}`)

Example output in Discord

我发现this tutorial for RichEmbed and addField帮助我了解其用法。