ServerInfo DiscordJS 问题

ServerInfo DiscordJS Issue

我的问题是,当我执行命令时,所有者只是未定义,而不是服务器的实际所有者。我该如何解决这个问题?

module.exports.run = async (client, message, args) => {
    const { MessageEmbed } = require('discord.js');

    message.delete();
    const guild = message.guild;
    const Emojis = guild.emojis.cache.size || "No Emoji!";
    const Roles = guild.roles.cache.size || "No Roles!";
    const Members = guild.memberCount;
    const Humans = guild.members.cache.filter(member => !member.user.bot).size;
    const Bots = guild.members.cache.filter(member => member.user.bot).size;
    const owner = guild.owner.user.tag 

    const embed = new MessageEmbed()
      .setTitle(guild.name + " Information!")
      .setColor("2F3136")
      .setThumbnail(guild.iconURL())
      .addField(`Name`, `${guild.name}`, true)
      .addField(`Owner`, `${owner}`, true)
      .addField(`ID`, `${guild.id}`, true)
      .addField(`Roles Count`, `${Roles}`, true)
      .addField(`Emojis Count`, `${Emojis}`, true)
      .addField(`Members Count`, `${Members}`, true)
      .addField(`Humans Count`, `${Humans}`, true)
      .addField(`Bots Count`, `${Bots}`, true)
      .addField(`Server Created At`, guild.createdAt.toDateString())
      .setFooter(`Requested by ${message.author.username}`)
      .setTimestamp();

    message.channel.send({ embeds: [embed] });
}

module.exports.config = {
    name: "serverinfo",
    aliases: [""]
}

我很确定 Guild 中没有 owner 属性。要获得所有者,您有两种方法:

方法 1 使用 .fetchOwner() 方法 Guild

const owner = await message.guild.fetchOwner().user.tag

方法 2 是获取所有者 ID,然后从 guild.members:

获取用户
const owner = message.guild.members.cache.get(message.guild.ownerId)

您可以选择更适合您的方法