我有一个头像命令,该命令可让您查找成员以在Discord中获取其头像。问题是,无论何时我运行带有任何参数的命令(这意味着您要查找别人的头像,它都会发送一个空白的嵌入。发送消息作者头像而不是其他人的头像可以正常工作。
exports.run = (client, message, args) => {
let mem = args.join(' ');
let memb = message.guild.members.find(m => [m.displayName.toLowerCase(), m.user.username.toLowerCase()].includes(mem.toLowerCase()));
let embed = new Discord.RichEmbed()
.setImage(memb ? memb.displayAvatarURL : message.author.displayAvatarURL)
.setColor(client.config.embedColor);
message.channel.send(embed);
}
任何帮助将不胜感激,谢谢。
答案 0 :(得分:2)
它不起作用,因为您尝试使用GuildMember.displayAvatarURL
,但这是一个User
属性:尝试使用memb.user.displayAvatarURL
:
exports.run = (client, message, args) => {
let mem = args.join(' ');
let memb = message.guild.members.find(m => [m.displayName.toLowerCase(), m.user.username.toLowerCase()].includes(mem.toLowerCase()));
let embed = new Discord.RichEmbed()
.setImage(memb ? memb.user.displayAvatarURL : message.author.displayAvatarURL)
.setColor(client.config.embedColor);
message.channel.send(embed);
}
答案 1 :(得分:0)
您不必键入用户名,而是像这样使命令接受带标签的用户;
exports.run = (client, message, args) => {
if(!message.mentions.users.first()) return no.mention.function();
let member = message.mentions.users.first();
let memberAvatar = member.avatarURL;
let embed = new Discord.RichEmbed()
.setColor(client.config.embedColor)
.setImage(memberAvatar);
message.channel.send(embed);
}