.joinedat proprety 总是在不和谐中返回未定义.js



im 现在试图在我的不和谐机器人上发出用户信息命令。 其中一个字段是用户加入服务器的时间。

这是我的代码

module.exports.run = async (Client, msg, args, UserDataBase, messages, commands_ran) => {
let user = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]))
if(!user) {
user = msg.author
}else {
user = user.user
}
const embed = new Discord.RichEmbed()
.setTitle('**User info**')
.setThumbnail(user.avatarURL)
.addField('Name:', user.username,true)
.addField('Tag:', `#${user.discriminator}`,true)
.addField('Date Joined:', user.createdAt)
.addField('Joined Server:', user.joinedAt)
msg.channel.send(embed)
}

它总是在最终产品中返回未定义

User

对象没有joinedAt属性,因为用户不特定于任何服务器。服务器中用户的表示形式是一个GuildMember,这是你在函数的第一行得到的。

您可以删除强制它成为 User 对象的部分,并且您的代码应该由于不和谐而工作.js为GuildMember上的所有用户属性添加 getter。

module.exports.run = async (Client, msg, args, UserDataBase, messages, commands_ran) => {
let user = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]))
const embed = new Discord.RichEmbed()
.setTitle('**User info**')
.setThumbnail(user.avatarURL)
.addField('Name:', user.username,true)
.addField('Tag:', `#${user.discriminator}`,true)
.addField('Date Joined:', user.createdAt)
.addField('Joined Server:', user.joinedAt)
msg.channel.send(embed)
}
user

没有任何joinedAt属性,因此您需要使用GuildMember。 这可以通过 member = msg.guild.member(user( 获得 然后.addField('Joined at:' member.joinedAt)

最新更新