![](/img/trans.png)
[英]Discord bot not able to create the embed RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings
[英]Discord.js v13 error: RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings
我正在處理 discord.js v13 中的 userinfo 命令,但我不知道如何解決此錯誤
錯誤:
[照片錯誤]: https ://i.stack.imgur.com/71eWe.png
if (typeof data !== 'string') throw new error(errorMessage);
RangeError [EMBED_FIELD_VALUE]:MessageEmbed 字段值必須是非空字符串。
const { MessageEmbed } = require("discord.js")
module.exports = {
name: "serverinfo",
description: 'Gives Info About A Server',
run: async (client, 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
let 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)
message.channel.send({ embeds: [embed] })
}
}
[1]: https://i.stack.imgur.com/71eWe.png
該錯誤來自您試圖訪問公會中的owner
屬性的事實。 guild
變量沒有這個屬性。 如果要獲取所有者,可以使用以下方法獲取其 id:
const ownerId = guild.ownerId
或者,如果您想獲取所有者的完整詳細信息,可以使用以下命令:
const owner = await guild.fetchOwner()
我還注意到您正在嘗試在許多地方發送數字而不是字符串,例如:
.addField('Boost Count:-', guild.premiumSubscriptionCount)
.addField('Member Count:-', `${members.size}\n${members.filter(member => !member.user.bot).size}(Human)\n${members.filter(member => member.user.bot).size}(BOT)`) // members.size is a number
.addField('Emoji Count:-', `${emojicount.size}\n${emojicount.filter(emoji => !emoji.animated).size}(Non Animated)\n${emojicount.filter(emoji => emoji.animated).size}(Animated)`) // emojicount.size is a number
並嘗試發送對象而不是像這里的字符串 =>
.addField('Highest Role:-', guild.roles.highest)
( highest
屬性是一個包含完整角色的對象,您可以使用highest.name
的名稱訪問名稱)。 因此,在所有這些地方,您都可以使用模板文字將數字轉換為字符串(通過用反引號 ` 將它們括起來)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.