@@ -51,7 +51,9 @@ class BaseUser(DiscordObject, _SendDMMixin):
51
51
global_name : str | None = attrs .field (
52
52
repr = True , metadata = docs ("The user's chosen display name, platform-wide" ), default = None
53
53
)
54
- discriminator : str | None = attrs .field (repr = True , metadata = docs ("The user's 4-digit discord-tag" ), default = None )
54
+ discriminator : str = attrs .field (
55
+ repr = True , metadata = docs ("The user's 4-digit discord-tag" )
56
+ ) # will likely be removed in future api version
55
57
avatar : "Asset" = attrs .field (repr = False , metadata = docs ("The user's default avatar" ))
56
58
57
59
def __str__ (self ) -> str :
@@ -62,14 +64,16 @@ def _process_dict(cls, data: Dict[str, Any], client: "Client") -> Dict[str, Any]
62
64
if not isinstance (data ["avatar" ], Asset ):
63
65
if data ["avatar" ]:
64
66
data ["avatar" ] = Asset .from_path_hash (client , f"avatars/{ data ['id' ]} /{{}}" , data ["avatar" ])
67
+ elif data ["discriminator" ] == "0" :
68
+ data ["avatar" ] = Asset (client , f"{ Asset .BASE } /embed/avatars/{ (int (data ['id' ]) >> 22 ) % 5 } " )
65
69
else :
66
70
data ["avatar" ] = Asset (client , f"{ Asset .BASE } /embed/avatars/{ int (data ['discriminator' ]) % 5 } " )
67
71
return data
68
72
69
73
@property
70
74
def tag (self ) -> str :
71
75
"""Returns the user's Discord tag."""
72
- if not self . discriminator or self .discriminator == "0" :
76
+ if self .discriminator == "0" :
73
77
return f"@{ self .username } "
74
78
return f"{ self .username } #{ self .discriminator } "
75
79
0 commit comments