You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js V12中,me命令报错:member.displayAvatarURL不是函数

解决Discord.js中TypeError: member.displayAvatarURL is not a function的问题

我刚看了你的代码,遇到的这个错误其实很好解决——你混淆了GuildMember和User对象的属性方法!

错误原因

你代码里的member是GuildMember实例(message.guild.member(message.member)拿到的就是公会成员对象),而displayAvatarURL()是User对象的专属方法,GuildMember本身并没有这个方法。所以你需要通过member.user来调用头像获取方法。

额外的代码优化点

你判断昵称的语句写法有问题:

if(nickName == null || undefined) nickName = "None";

这里的|| undefined逻辑无效,应该改成if(nickName == null),因为== null会同时匹配null和undefined,能更简洁准确地处理昵称不存在的情况。

修正后的完整代码

var member = message.member; // 简化代码,message.member本身就是GuildMember实例
var status = member.presence.status;
var nickName = member.nickname;
if(nickName == null) nickName = "None"; // 修正判断逻辑
var accountCreated = moment(member.user.createdAt).format("LL"); // 从User对象取账号创建时间更准确
var joinedGuild = moment(member.joinedAt).format("LL");
var game = member.presence.activities[0] ? member.presence.activities[0].name : "None";
var botEmbed = new discord.MessageEmbed()
.setTitle(`USER INFO`)
.setDescription(`See info about ${member.user.username} below!`) // 从User对象取用户名
.setColor(embedColor)
.setFooter(embedFooter)
.setTimestamp()
.setThumbnail(member.user.displayAvatarURL({size: 4096})) // 核心修正:通过member.user调用头像方法
.addFields(
{name: "User Name", value: member.user.username, inline: true},
{name: "User ID", value: member.user.id, inline: true}, // 从User对象取用户ID
{name: "User Account Created", value: accountCreated, inline: true},
{name: "​", value: "​"},
{name: "User Status", value: status, inline: true},
{name: "User Game", value: game, inline: true},
{name: "User Nickname", value: nickName, inline: true},
{name: "​", value: "​"},
{name: "User Joined Server At", value: joinedGuild}
);
return message.channel.send(botEmbed);

内容的提问来源于stack exchange,提问作者SkyblockSquad Guild

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 21:12:51