簡體   English   中英

Discord.js v13 錯誤:RangeError [EMBED_FIELD_VALUE]:MessageEmbed 字段值必須是非空字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM