aboutsummaryrefslogtreecommitdiff
path: root/discord/user.py
diff options
context:
space:
mode:
authorAlex Nørgaard <[email protected]>2021-07-29 00:41:43 +0100
committerGitHub <[email protected]>2021-07-28 19:41:43 -0400
commitb47133dfb28781495c74b3e4354ebe57cbbf0978 (patch)
treed21fdae29d7bef3711c7da460b8d189ad50daa48 /discord/user.py
parentAdd a new view example for link buttons (diff)
downloaddiscord.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.py52
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`.