这是我的尝试访问用户头像的代码:
Client.on("guildMemberAdd", newMember => {
console.log("Welcomed member avatar: " + newMember.user.avatar);
console.log("Welcomed member avatarURL: " + newMember.user.avatarURL);
});
如果上述代码的用户刚刚加入服务器并设置了与discord的默认头像不同的头像,则上述代码可以正常工作。 但是对于拥有不和谐默认头像的用户,avatar和avatarURL均为null。
那我如何让这种用户使用呢?
这是可能的,因为像https://welcomer.fun/这样的机器人已经在这样做了。
答案 0 :(得分:1)
您可以使用displayAvatarURL(根据文档),如果用户有一套,则提供avatarURL;否则,将返回默认的头像URL。示例代码:
Client.on("guildMemberAdd", newMember => {
console.log("Welcomed member avatarURL: " + newMember.user.displayAvatarURL);
});
对于avatar
属性,我认为没有displayAvatar
属性或类似属性。我检查了文档,但找不到与之相关的任何内容
答案 1 :(得分:1)
如果用户没有化身,则其默认化身将是其鉴别符模5。化身终结点将为https://cdn.discordapp.com/embed/avatars/0.png,值为0。
答案 2 :(得分:0)
我认为这很正常,没有头像也没有网址 如果avatarURL为null,则处理这种情况并改用通用图片的网址
答案 3 :(得分:0)
我找不到discord.py
的等效functipn,所以我写了自己的。正如另一个用户所说,化身URL可以由鉴别符(“标记”)以5为模(因此Jan#1052
将得到2.png
)制成。我另外要求png图片而不是webp,因为这是我的偏爱。
def get_avatar_url_png(person):
img_url = str(person.avatar_url).replace('webp', 'png')
if not img_url:
img_url = 'https://cdn.discordapp.com/embed/avatars/' + \
str(int(person.discriminator) % 5) + '.png'
return img_url