javascript - MessageEmbed 字段值必须是非空字符串
问题描述
节点版本:13
当我输入 like !server 它给我这个错误:
if (typeof data !== 'string') throw new error(errorMessage);
RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings.
我不知道该怎么做。
服务器信息.js:
const { MessageEmbed } = require("discord.js")
module.exports = {
commands: ['serverinfo', 'server-info', 'si', 'server'], // You Can Keep Any Name
description: 'Gives Info About A Server', // Optional
callback: (message, args) => {
const { guild } = message
const icon = message.guild.iconURL() // Icon Of Server
const roles = message.guild.roles.cache.map(e => e.toString()) // Roles Of Server
const emojis = message.guild.emojis.cache.map(e => e.toString()) // Emojis Of Server
const emojicount = message.guild.emojis.cache
const members = message.guild.members.cache // Members In Server
const create = message.guild.createdAt.toLocaleDateString() // Server Create Date
const embed = new MessageEmbed()
.setColor('RANDOM')
.setTitle('Server Info')
.setThumbnail(`${icon}`)
.addField('Server Onwer:-', guild.owner)
.addField('Server ID:-', guild.id)
.addField('Server Creation Date:-', create)
.addField('Boost Count:-', guild.premiumSubscriptionCount)
.addField('Boost Level:-', guild.premiumTier)
// You Can Add Any Emoji
.addField('Member Count:-', `${members.size}\n${members.filter(member => !member.user.bot).size}(Human)\n${members.filter(member => member.user.bot).size}(BOT)`)
.addField('Mmeber Stats:-', `${guild.members.cache.filter(member => member.presence.status == 'online').size}:-\n${guild.members.cache.filter(member => member.presence.status == 'idle').size}:-\n${guild.members.cache.filter(member => member.presence.status == 'dnd').size}:-\n${guild.members.cache.filter(member => member.presence.status == 'offline').size}:-⚫\n`)
.addField('Highest Role:-', guild.roles.highest)
.addField('Roles:-', `${roles}`, true) // <true> Means All Roles Will Come In Line
.addField('Emoji Count:-', `${emojicount.size}\n${emojicount.filter(emoji => !emoji.animated).size}(Non Animated)\n${emojicount.filter(emoji => emoji.animated).size}(Animated)`)
.addField('Emojis:-', `${emojis}`, true) // <true> Means All Emojis Will Come In Line // This Will All Emojis Of Server
// You Can Add Any Emoji
.addField('Server Stats:-', `${guild.channels.cache.filter(channel => channel.type == 'text').size}⌨️\n${guild.channels.cache.filter(channel => channel.type == 'voice').size}\n${guild.channels.cache.filter(channel => channel.type == 'news').size}\n${guild.channels.cache.filter(channel => channel.type == 'category').size}`)
.setFooter('Server Info', icon)
// Add More Fields If You Want, I Have Added Main One's
message.channel.send({ embeds: [embed] })
}
}
解决方案
当我开始在 djs v13 而不是 v12.5.3 上编码时,我也遇到了这个问题!这不是解决此问题的真正正确方法,但您可以尝试添加'** **' + your_value
every .addField
,对我来说这是一个解决方案。(例如.addField('Server ID:-', `** **` + guild.id)
:)