我希望我的discord.js机器人能够提供具有提供的ID的用户信息,但我无法使它正常工作。我尝试使用guild#fetchUser(id),但它只是返回未定义。即使有效,我仍然需要用户加入成员类,例如,即使在行会之外也能够提供用户的基本信息(在...处创建)。 这是我的代码:
if(!args[0]){
const profileEmbed = new Discord.MessageEmbed()
.setAuthor(message.author.tag, message.author.displayAvatarURL())
//rest of the code
message.channel.send(profileEmbed);
}else{
let taggedUser = message.mentions.users.first();
if (!taggedUser){
taggedUser = args[0];
}
const profileEmbed = new Discord.MessageEmbed()
.setAuthor(taggedUser.tag, taggedUser.displayAvatarURL())
//rest of the code
message.channel.send(profileEmbed);
}
我如何通过ID查找用户名和所有用户属性? 谢谢:)
更新 我发现我可以使用aggedUser = bot.users.fetch(args [0]);获取用户属性,但不显示诸如创建日期之类的属性,我将如何找到它?
client#users.fetch(id)
返回
Promise {
User {
id: 'bla bla bla',
bot: false,
username: 'bla bla bla',
discriminator: 'bla bla bla',
avatar: 'bla bla bla',
lastMessageID: null,
lastMessageChannelID: null
}
}
如何找到创建日期和创建时间?
答案 0 :(得分:0)
首先。 const
是一个常量变量,这意味着无法通过覆盖它来更改其值。为此,您需要使用var
或let
通过添加此代码,可以使代码更简单。
const taggedUser = message.mentions.users.first() || message.author
此代码将导致什么:
function convertDate(inputFormat) {
function pad(s) { return (s < 10) ? '0' + s : s; }
var d = new Date(inputFormat)
return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('/')
}
const taggedUser = message.mentions.users.first() || message.author //if mention does not exists message.author will be used
if(taggedUser){
const profileEmbed = new Discord.MessageEmbed()
.setAuthor(taggedUser.tag, taggedUser.displayAvatarURL())
//rest of the code
message.channel.send(profileEmbed);
}
希望这有助于解决您的问题!
编辑:taggedUser.createdAt();
答案 1 :(得分:0)
我想通了!要知道不在公会中的用户的创建日期,您可以根据ID猜测年龄! here's the article from discord