Add support for public user flags

This commit is contained in:
JohnyTheCarrot
2020-04-12 21:08:39 +02:00
committed by Rapptz
parent cbdf660ddc
commit ab5f995d78
5 changed files with 115 additions and 2 deletions

View File

@ -27,6 +27,7 @@ DEALINGS IN THE SOFTWARE.
from collections import namedtuple
import discord.abc
from .flags import PublicUserFlags
from .utils import snowflake_time, _bytes_to_base64_data, parse_time
from .enums import DefaultAvatar, RelationshipType, UserFlags, HypeSquadHouse, PremiumType, try_enum
from .errors import ClientException
@ -82,7 +83,7 @@ class Profile(namedtuple('Profile', 'flags user mutual_guilds connected_accounts
_BaseUser = discord.abc.User
class BaseUser(_BaseUser):
__slots__ = ('name', 'id', 'discriminator', 'avatar', 'bot', 'system', '_state')
__slots__ = ('name', 'id', 'discriminator', 'avatar', 'bot', 'system', '_public_flags', '_state')
def __init__(self, *, state, data):
self._state = state
@ -105,6 +106,7 @@ class BaseUser(_BaseUser):
self.id = int(data['id'])
self.discriminator = data['discriminator']
self.avatar = data['avatar']
self._public_flags = data.get('public_flags', 0)
self.bot = data.get('bot', False)
self.system = data.get('system', False)
@ -130,6 +132,11 @@ class BaseUser(_BaseUser):
'bot': self.bot,
}
@property
def public_flags(self):
""":class:`PublicFlags`: The publicly available flags the user has."""
return PublicUserFlags._from_value(self._public_flags)
@property
def avatar_url(self):
"""Returns an :class:`Asset` for the avatar the user has.