Discord.js V12 用户信息 createdAt /joinedAt 未定义

Posted

技术标签:

【中文标题】Discord.js V12 用户信息 createdAt /joinedAt 未定义【英文标题】:Discord.js V12 Userinfo createdAt / joinedAt undefined 【发布时间】:2020-05-20 05:56:04 【问题描述】:

我对此很陌生,并尝试在这里学习,但我在这段代码中苦苦挣扎,我完全糊涂了。 iv 设法使一切正常工作(最终),除了以下问题,.userinfo @randomUser 生成除

之外的所有用户详细信息

*注册日期 & *加入日期

删除这些行可以让其他一切正常工作。是否也可以显示用户角色?

错误

userinfo.registered = moment.gmt(m.guild.members.fetch(user.id).user.createdAt); ^

TypeError: 无法读取未定义的属性“createdAt”

const Discord = require("discord.js");
const moment = require("moment");

const bot = new Discord.Client( disableEveryone: true);

bot.on("ready", () => console.log(`Connected to Discord!`))

bot.on("message", m => 
    let prefix = ".";
    if (m.author.bot || !m.guild) return;
    if (!m.content.startsWith(prefix)) return;

if (m.content.startsWith(prefix + "userinfo")) 
    let user = (m.mentions.users.first()) || m.author;
    let member = m.mentions.members.first() || m.member;


    let userinfo = ;
    userinfo.avatar = user.displayAvatarURL()
    userinfo.name = user.username;
    userinfo.discrim = `#$user.discriminator`;
    userinfo.id = user.id;
    userinfo.status = user.presence.status;
    userinfo.registered = moment.gmt(m.guild.members.fetch(user.id).user.createdAt);
    userinfo.joined = moment.gmt(m.guild.members.fetch(user.id).joinedAt);

    const embed = new Discord.MessageEmbed()
    .setAuthor(user.tag, userinfo.avatar)
    .setThumbnail(userinfo.avatar)
    .addField(`Username`, userinfo.name, true)
    .addField(`Discriminator`, userinfo.discrim, true)
    .addField(`Status`, userinfo.status, true)
    .addField(`ID`, userinfo.id)
    .addField(`Registered`, userinfo.registered)
    .addField(`Joined`, userinfo.joined)

    return m.channel.send(embed);




);

bot.login("XXX")

【问题讨论】:

【参考方案1】:

.fetch 是一个异步函数,所以你需要使用await.then,你已经有了Userlet user = (m.mentions.users.first()) || m.author 的实例,那么为什么不使用它呢?

userinfo.registered = moment.gmt(user.createdAt);
userinfo.joined = moment.gmt(user.joinedAt);

【讨论】:

非常感谢!!!!所以你的解决方案解决了错误,但 user.joinedAt 回来未定义,我意识到应该是 member.joinedAt。

以上是关于Discord.js V12 用户信息 createdAt /joinedAt 未定义的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js v12 角色添加到提到的用户问题

如何检查用户是不是具有特定角色 discord.js v12? [复制]

如何从用户 discord.js v12 中删除所有角色?

如何在 Discord.JS v12 中查看用户正在玩的游戏

discord.js v12 解禁命令

从 v11 迁移后,无法在 discord.js v12 中从服务器设置用户状态和记录用户数量