Skip to content

Commit 9048b93

Browse files
authored
Merge pull request #1757 from mifuyutsuki/feat-member-banner
feat: add guild member banner field
1 parent 26ca893 commit 9048b93

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

interactions/models/discord/user.py

+14
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,9 @@ class Member(DiscordObject, _SendDMMixin):
328328
metadata=docs("Whether the user has **not** passed guild's membership screening requirements"),
329329
)
330330
guild_avatar: "Asset" = attrs.field(repr=False, default=None, metadata=docs("The user's guild avatar"))
331+
guild_banner: Optional["Asset"] = attrs.field(
332+
repr=False, default=None, metadata=docs("The user's guild banner, if any")
333+
)
331334
communication_disabled_until: Optional["Timestamp"] = attrs.field(
332335
default=None,
333336
converter=optional_c(timestamp_converter),
@@ -372,6 +375,12 @@ def _process_dict(cls, data: Dict[str, Any], client: "Client") -> Dict[str, Any]
372375
f"[DEBUG NEEDED - REPORT THIS] Incomplete dictionary has been passed to member object: {e}"
373376
)
374377
raise
378+
if data.get("banner"):
379+
data["guild_banner"] = Asset.from_path_hash(
380+
client,
381+
f"guilds/{data['guild_id']}/users/{data['id']}/banners/{{}}",
382+
data.pop("banner", None),
383+
)
375384

376385
data["role_ids"] = data.pop("roles", [])
377386

@@ -440,6 +449,11 @@ def avatar_url(self) -> str:
440449
"""The users avatar url."""
441450
return self.display_avatar.url
442451

452+
@property
453+
def banner(self) -> Optional["Asset"]:
454+
"""The user's banner, if any, will return `guild_banner` if one is set, otherwise will return user banner."""
455+
return self.guild_banner or self.user.banner
456+
443457
@property
444458
def premium(self) -> bool:
445459
"""Is this member a server booster?"""

interactions/models/discord/user.pyi

+3
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ class Member(FakeUserMixin):
116116
premium_since: Optional["Timestamp"]
117117
pending: Optional[bool]
118118
guild_avatar: Asset
119+
guild_banner: Optional[Asset]
119120
communication_disabled_until: Optional["Timestamp"]
120121
_guild_id: Snowflake_Type
121122
_role_ids: List["Snowflake_Type"]
@@ -143,6 +144,8 @@ class Member(FakeUserMixin):
143144
@property
144145
def avatar_url(self) -> str: ...
145146
@property
147+
def banner(self) -> Optional[Asset]: ...
148+
@property
146149
def premium(self) -> bool: ...
147150
@property
148151
def guild_permissions(self) -> Permissions: ...

0 commit comments

Comments
 (0)