【问题标题】:Cannot read property 'name' of null in discord.js无法在 discord.js 中读取 null 的属性“名称”
【发布时间】:2023-03-11 10:15:02
【问题描述】:
if (command === "info") {
    let user = message.mentions.users.first();
    const status2 = message.author.presence.status;
    const games2 = message.author.presence.game.name;
    const untaggedembed = new Discord.RichEmbed()
        .setThumbnail(message.author.avatarURL)
        .setColor(0xE69A49)
        .addField("Account Username:", `${message.author.username}#${message.author.tag}`)
        .addField("User ID:", message.author.id)
        .addField("Discord user was created on:", message.author.createdAt.toDateString())
        .addField("Discord user joined on:", message.guild.joinedAt.toDateString())
        .addField("Playing: ", games2 !== null ? games2 : "None", true)
        .addField("Last Message: ", message.author.lastMessage !== null ? message.author.lastMessage : "None", true)
        .addField("User Status: ", status2)
    if (message.mentions.users.size < 1) return message.channel.sendEmbed(untaggedembed)
    if (!user === '@Robot Hamster') return message.channel.send("Can't get info for Robot Hamster ")
    const status = user.presence.status;
    const games = user.presence.game.name;
    // If a user is tagged
    const taggedembed = new Discord.RichEmbed()
        .setThumbnail(user.avatarURL)
        .setColor(0xE69A49)
        .setDescription("This is " + user.username + "'s" + " Discord Info!")
        .addField("Account Username:", `${user.username}#${user.discriminator}`)
        .addField("User ID:", user.id)
        .addField("Is this User a Bot [T/F]: ", user.bot)
        .addField("Discord user was created on:", user.createdAt.toDateString())
        .addField("Discord user joined on:", message.guild.joinedAt.toDateString())
    addField("Playing: ", games !== null ? games : "None", true)
    .addField("Last Message: ", user.lastMessage !== null ? user.lastMessage : "None", true)
    .addField("User Status: ", status)
    .setFooter("Requested by: " + message.author.username) message.channel.sendEmbed(taggedembed);
}

我在 addField("Playing: ", games !== null ? games : "None", true) 处无法读取 null 的属性 'name' 不确定是什么问题,但任何帮助将不胜感激丢了

【问题讨论】:

  • 根据错误消息,它指的是代码中您尝试在第 4 行读取 message.author.presence.game.name 或稍后在下面的 user.presence.game.name 的不同位置(所以message.author.presence.game 或 user.presence.game 为 null)

标签: javascript discord discord.js


【解决方案1】:
if (command === "info") {
let user = message.mentions.users.first();
const status2 = message.author.presence.status;
const games2 = message.author.presence.game.name;
const untaggedembed = new Discord.RichEmbed()
    .setThumbnail(message.author.avatarURL)
    .setColor(0xE69A49)
    .addField("Account Username:", `${message.author.username}#${message.author.tag}`)
    .addField("User ID:", message.author.id)
    .addField("Discord user was created on:", message.author.createdAt.toDateString())
    .addField("Discord user joined on:", message.guild.joinedAt.toDateString())
    .addField("Playing: ", games2 !== null ? games2 : "None", true)
    .addField("Last Message: ", message.author.lastMessage !== null ? message.author.lastMessage : "None", true)
    .addField("User Status: ", status2)
if (message.mentions.users.size < 1) return message.channel.sendEmbed(untaggedembed)
if (!user === '@Robot Hamster') return message.channel.send("Can't get info for Robot Hamster ")
const status = user.presence.status;
const games = user.presence.game.name;
// If a user is tagged
const taggedembed = new Discord.RichEmbed()
    .setThumbnail(user.avatarURL)
    .setColor(0xE69A49)
    .setDescription("This is " + user.username + "'s" + " Discord Info!")
    .addField("Account Username:", `${user.username}#${user.discriminator}`)
    .addField("User ID:", user.id)
    .addField("Is this User a Bot [T/F]: ", user.bot)
    .addField("Discord user was created on:", user.createdAt.toDateString())
    .addField("Discord user joined on:", message.guild.joinedAt.toDateString())
.addField("Playing: ", games !== null ? games : "None", true)
.addField("Last Message: ", user.lastMessage !== null ? user.lastMessage : "None", true)
.addField("User Status: ", status)
.setFooter("Requested by: " + message.author.username) message.channel.sendEmbed(taggedembed);

这行得通吗?我想它应该可以工作。

【讨论】:

  • 虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。
  • 问题是,code maker 没有把 . to .addField("Playing: ", games !== null ? games : "None", true)
  • 您应该将其添加到您的答案中并删除其余代码,因为您的答案不可读
猜你喜欢
  • 2020-08-31
  • 2021-10-14
  • 1970-01-01
  • 2021-06-26
  • 2022-01-02
  • 2022-01-14
  • 2021-03-08
  • 2020-09-08
相关资源
最近更新 更多