@@ -288,6 +288,7 @@ class Member(discord.abc.Messageable, _UserTag):
288
288
"_user" ,
289
289
"_state" ,
290
290
"_avatar" ,
291
+ "_banner" ,
291
292
"communication_disabled_until" ,
292
293
"flags" ,
293
294
)
@@ -328,6 +329,7 @@ def __init__(
328
329
self .nick : str | None = data .get ("nick" , None )
329
330
self .pending : bool = data .get ("pending" , False )
330
331
self ._avatar : str | None = data .get ("avatar" )
332
+ self ._banner : str | None = data .get ("banner" )
331
333
self .communication_disabled_until : datetime .datetime | None = utils .parse_time (
332
334
data .get ("communication_disabled_until" )
333
335
)
@@ -406,6 +408,7 @@ def _copy(cls: type[M], member: M) -> M:
406
408
self .activities = member .activities
407
409
self ._state = member ._state
408
410
self ._avatar = member ._avatar
411
+ self ._banner = member ._banner
409
412
self .communication_disabled_until = member .communication_disabled_until
410
413
self .flags = member .flags
411
414
@@ -434,6 +437,7 @@ def _update(self, data: MemberPayload) -> None:
434
437
self .premium_since = utils .parse_time (data .get ("premium_since" ))
435
438
self ._roles = utils .SnowflakeList (map (int , data ["roles" ]))
436
439
self ._avatar = data .get ("avatar" )
440
+ self ._banner = data .get ("banner" )
437
441
self .communication_disabled_until = utils .parse_time (
438
442
data .get ("communication_disabled_until" )
439
443
)
@@ -603,6 +607,31 @@ def guild_avatar(self) -> Asset | None:
603
607
self ._state , self .guild .id , self .id , self ._avatar
604
608
)
605
609
610
+ @property
611
+ def display_banner (self ) -> Asset | None :
612
+ """Returns the member's display banner.
613
+
614
+ For regular members this is just their banner, but
615
+ if they have a guild specific banner then that
616
+ is returned instead.
617
+
618
+ .. versionadded:: 2.7
619
+ """
620
+ return self .guild_banner or self ._user .banner
621
+
622
+ @property
623
+ def guild_banner (self ) -> Asset | None :
624
+ """Returns an :class:`Asset` for the guild banner
625
+ the member has. If unavailable, ``None`` is returned.
626
+
627
+ .. versionadded:: 2.7
628
+ """
629
+ if self ._banner is None :
630
+ return None
631
+ return Asset ._from_guild_banner (
632
+ self ._state , self .guild .id , self .id , self ._banner
633
+ )
634
+
606
635
@property
607
636
def activity (self ) -> ActivityTypes | None :
608
637
"""Returns the primary
0 commit comments