Discord Js为具有默认头像的服务器成员提供空的avatarURL

时间:2019-02-06 15:05:25

标签: discord discord.js

这是我的尝试访问用户头像的代码:

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/这样的机器人已经在这样做了。

4 个答案:

答案 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