@@ -322,6 +322,7 @@ class Member(discord.abc.Messageable, _UserTag):
322322 '_user' ,
323323 '_state' ,
324324 '_avatar' ,
325+ '_banner' ,
325326 '_flags' ,
326327 '_avatar_decoration_data' ,
327328 )
@@ -358,6 +359,7 @@ def __init__(self, *, data: MemberWithUserPayload, guild: Guild, state: Connecti
358359 self .nick : Optional [str ] = data .get ('nick' , None )
359360 self .pending : bool = data .get ('pending' , False )
360361 self ._avatar : Optional [str ] = data .get ('avatar' )
362+ self ._banner : Optional [str ] = data .get ('banner' )
361363 self ._permissions : Optional [int ]
362364 self ._flags : int = data ['flags' ]
363365 self ._avatar_decoration_data : Optional [AvatarDecorationData ] = data .get ('avatar_decoration_data' )
@@ -649,6 +651,28 @@ def guild_avatar(self) -> Optional[Asset]:
649651 return None
650652 return Asset ._from_guild_avatar (self ._state , self .guild .id , self .id , self ._avatar )
651653
654+ @property
655+ def display_banner (self ) -> Optional [Asset ]:
656+ """Optional[:class:`Asset`]: Returns the member's displayed banner, if any.
657+
658+ This is the member's guild banner if available, otherwise it's their
659+ global banner. If the member has no banner set then ``None`` is returned.
660+
661+ .. versionadded:: 2.5
662+ """
663+ return self .guild_banner or self ._user .banner
664+
665+ @property
666+ def guild_banner (self ) -> Optional [Asset ]:
667+ """Optional[:class:`Asset`]: Returns an :class:`Asset` for the guild banner
668+ the member has. If unavailable, ``None`` is returned.
669+
670+ .. versionadded:: 2.5
671+ """
672+ if self ._banner is None :
673+ return None
674+ return Asset ._from_guild_banner (self ._state , self .guild .id , self .id , self ._banner )
675+
652676 @property
653677 def activity (self ) -> Optional [ActivityTypes ]:
654678 """Optional[Union[:class:`BaseActivity`, :class:`Spotify`]]: Returns the primary
0 commit comments