Skip to content

Commit ef6ca61

Browse files
committed
fix: match behavior to discord docs pr
discord/discord-api-docs#6130
1 parent d27875a commit ef6ca61

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

interactions/models/discord/user.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ class BaseUser(DiscordObject, _SendDMMixin):
5151
global_name: str | None = attrs.field(
5252
repr=True, metadata=docs("The user's chosen display name, platform-wide"), default=None
5353
)
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
5557
avatar: "Asset" = attrs.field(repr=False, metadata=docs("The user's default avatar"))
5658

5759
def __str__(self) -> str:
@@ -62,14 +64,16 @@ def _process_dict(cls, data: Dict[str, Any], client: "Client") -> Dict[str, Any]
6264
if not isinstance(data["avatar"], Asset):
6365
if data["avatar"]:
6466
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}")
6569
else:
6670
data["avatar"] = Asset(client, f"{Asset.BASE}/embed/avatars/{int(data['discriminator']) % 5}")
6771
return data
6872

6973
@property
7074
def tag(self) -> str:
7175
"""Returns the user's Discord tag."""
72-
if not self.discriminator or self.discriminator == "0":
76+
if self.discriminator == "0":
7377
return f"@{self.username}"
7478
return f"{self.username}#{self.discriminator}"
7579

interactions/models/discord/user.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class _SendDMMixin(SendMixin):
3939
class FakeBaseUserMixin(DiscordObject, _SendDMMixin):
4040
username: str
4141
global_name: str | None
42-
discriminator: str | None
42+
discriminator: str
4343
avatar: Asset
4444
def __str__(self) -> str: ...
4545
@classmethod

0 commit comments

Comments
 (0)