2
votes

Discord Js donne NULL avatarURL pour les membres du serveur qui ont l'avatar par défaut

Voici mon code qui essaie d'accéder à l'avatar de l'utilisateur:

Client.on("guildMemberAdd", newMember => {
    console.log("Welcomed member avatar: " + newMember.user.avatar);
    console.log("Welcomed member avatarURL: " + newMember.user.avatarURL);
});

Le code ci-dessus fonctionne bien si c'est un utilisateur qui vient de rejoindre le serveur et a configuré un avatar différent de l'avatar par défaut de discord. Mais pour les utilisateurs qui ont l'avatar par défaut de Discord, avatar et avatarURL sont nuls.

Alors, comment puis-je faire fonctionner cela pour de tels utilisateurs?

BTW c'est possible parce que des bots comme https://welcomer.fun/ le font déjà.


0 commentaires

4 Réponses :


3
votes

Vous pouvez utiliser displayAvatarURL qui (selon la documentation) donne l'avatarURL si l'utilisateur en a un, et sinon, retournera l'URL par défaut de l'avatar. Exemple de code:

Client.on("guildMemberAdd", newMember => {
    console.log("Welcomed member avatarURL: " + newMember.user.displayAvatarURL);
});

Pour la propriété avatar , je ne pense pas qu'il y ait une propriété displayAvatar ou quelque chose de similaire. J'ai vérifié la documentation, mais je n'ai rien trouvé à ce sujet


1 commentaires

Hors sujet, mais quel serait l'équivalent dans discord.py ? =)



0
votes

Je pense que c'est normal, pas d'avatar pas d'url Si avatarURL est nul, gérez ce cas et prenez plutôt l'URL d'une image générique


0 commentaires

5
votes

Si un utilisateur n'a pas d'avatar, son avatar par défaut sera son discriminateur modulo 5. Le point de terminaison de l'avatar serait https://cdn.discordapp.com/embed/avatars/0.png avec 0 étant la valeur.


0 commentaires

0
votes

Pour les curieux, voici comment le faire en Python ( discord.py )

# Returns .gif if it has been set (Nitro feature) else .png
# Returns default 0.png 1.png 2.png 3.png 4.png if no image set
str(person.avatar_url_as(static_format='png'))


0 commentaires