discord.js v13错误:rangeerror [embed_field_value]:邮件缩放的字段值必须是非空字符串

发布于 2025-02-06 06:03:29 字数 1812 浏览 2 评论 0原文

我正在使用discord.js v13中的userInfo命令,我不知道如何解决此错误

错误:

[照片错误]: https://i.sstatic.net/71ewe.png

if(typeof data!=='string')投掷新错误(errormessage);
rangeerror [embed_field_value]:消息安装的字段值必须是非空字符串。



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}:-
              

I'm working on a userinfo command in discord.js v13 and I don't know how to fix this error

ERROR:

[Photo Error]: https://i.sstatic.net/71eWe.png

if (typeof data !== 'string') throw new error(errorMessage);
RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings.



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.sstatic.net/71eWe.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒中人 2025-02-13 06:03:29

错误来自您试图访问公会中所有者属性的事实。 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

试图发送对象而不是像这里这样的字符串=&gt;

.addField('Highest Role:-', guild.roles.highest)

属性是包含完整角色的对象,您可以使用 gixes.name )。因此,在所有这些地方,您可以使用模板文字将数字转换为字符串(通过将它们围绕着Backticks`)。

The error comes from the fact that you are trying to access the owner property in the guild. The guild variable does not have this property. If you want to fetch the owner, you can either get their id by using this:

const ownerId = guild.ownerId

Or, if you want to fetch the owner's complete details, you can use this:

const owner = await guild.fetchOwner()

I also noticed that you are trying to send numbers instead of strings in many places such as:

.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

and trying to send objects instead of strings like here =>

.addField('Highest Role:-', guild.roles.highest)

(the highest property is an object which contains the complete role, you can access the name by using highest.name). So in all these places, you can convert the numbers to strings by using template literals (by surrounding them with backticks `).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文