我正在执行用户信息命令,并且我试图显示创建帐户的时间。机器人会响应&profile {用户ping /用户ID},如果没有参数,则会显示有关命令执行者的信息。我的代码如下:
const { DiscordAPIError } = require("discord.js");
const Discord = require('discord.js');
const moment = require('moment');
module.exports = {
name: 'profile',
description: "The bot will return the info about the user",
execute(message, args){
let userinfoget = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.member(message.author)
const embed = new Discord.MessageEmbed()
.setColor('#DAF7A6') // or .setColor('RANDOM')
.setAuthor(`${userinfoget.user.tag}`, userinfoget.user.displayAvatarURL())
.addFields(
{name: `User ping`,
value: `<@${userinfoget.id}>`}
)
.addFields(
{name: `User ID`,
value: `${userinfoget.id}`}
)
.addFields(
{name: 'Joined server',
value: moment(userinfoget.joinedAt).format('LLLL')}
)
.addFields(
{name: 'Joined Discord',
value: moment(userinfoget.createdAt).format('LLLL')}
.addFields(
{name: 'Online Status',
value: `${userinfoget.presence.status}`}
)
.setFooter('Bot made by mkpanda')
message.channel.send(embed);
}
}
用户加入服务器的时间正确显示,但是帐户创建始终是当前时间。有什么办法解决吗?
答案 0 :(得分:3)
GuildMember
没有名为createdAt
的属性,只有joinedAt
。
您只能从createdAt
对象获得User
属性。
moment(userinfoget.user.createdAt)
答案 1 :(得分:0)
这已经晚了,但以防万一其他人看到这一点:客户端 ID 基于他们的创建日期,因此您可以轻松地将其转换为 unix 时间戳