diff options
| author | Alex Nørgaard <[email protected]> | 2021-07-29 00:41:43 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-07-28 19:41:43 -0400 |
| commit | b47133dfb28781495c74b3e4354ebe57cbbf0978 (patch) | |
| tree | d21fdae29d7bef3711c7da460b8d189ad50daa48 /discord/user.py | |
| parent | Add a new view example for link buttons (diff) | |
| download | discord.py-b47133dfb28781495c74b3e4354ebe57cbbf0978.tar.xz discord.py-b47133dfb28781495c74b3e4354ebe57cbbf0978.zip | |
Add BaseUser.banner for all subclasses to access new banners
Diffstat (limited to 'discord/user.py')
| -rw-r--r-- | discord/user.py | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/discord/user.py b/discord/user.py index 261eea87..d0a3960a 100644 --- a/discord/user.py +++ b/discord/user.py @@ -41,8 +41,8 @@ class _UserTag: id: int -class BaseUser(_UserTag): - __slots__ = ('name', 'id', 'discriminator', '_avatar', 'bot', 'system', '_public_flags', '_state') +class BaseUser(_BaseUser): + __slots__ = ('name', 'id', 'discriminator', '_avatar', '_banner', '_accent_colour', 'bot', 'system', '_public_flags', '_state') if TYPE_CHECKING: name: str @@ -78,6 +78,8 @@ class BaseUser(_UserTag): self.id = int(data['id']) self.discriminator = data['discriminator'] self._avatar = data['avatar'] + self._banner = data.get('banner', None) + self._accent_colour = data.get('accent_color', None) self._public_flags = data.get('public_flags', 0) self.bot = data.get('bot', False) self.system = data.get('system', False) @@ -90,6 +92,8 @@ class BaseUser(_UserTag): self.id = user.id self.discriminator = user.discriminator self._avatar = user._avatar + self._banner = user._banner + self._accent_colour = user._accent_colour self.bot = user.bot self._state = user._state self._public_flags = user._public_flags @@ -128,6 +132,50 @@ class BaseUser(_UserTag): return Asset._from_default_avatar(self._state, int(self.discriminator) % len(DefaultAvatar)) @property + def banner(self) -> Optional[Asset]: + """Optional[:class:`Asset`]: Returns the user's banner asset, if available. + + .. versionadded:: 2.0 + + + .. note:: + This information is only available via :meth:`Client.fetch_user`. + """ + if self._banner is None: + return None + return Asset._from_user_banner(self._state, self.id, self._banner) + + @property + def accent_colour(self) -> Optional[Colour]: + """Optional[:class:`Colour`]: Returns the user's accent colour, if applicable. + + There is an alias for this named :attr:`accent_color`. + + .. versionadded:: 2.0 + + .. note:: + + This information is only available via :meth:`Client.fetch_user`. + """ + if self._accent_color is None: + return None + return Colour(self._accent_color) + + @property + def accent_color(self) -> Optional[Colour]: + """Optional[:class:`Colour`]: Returns the user's accent color, if applicable. + + There is an alias for this named :attr:`accent_colour`. + + .. versionadded:: 2.0 + + .. note:: + + This information is only available via :meth:`Client.fetch_user`. + """ + return self.accent_colour + + @property def colour(self): """:class:`Colour`: A property that returns a colour denoting the rendered colour for the user. This always returns :meth:`Colour.default`. |