aboutsummaryrefslogtreecommitdiff
path: root/discord/user.py
diff options
context:
space:
mode:
authormental <[email protected]>2018-08-17 19:44:45 +0100
committerRapptz <[email protected]>2018-08-22 22:01:19 -0400
commitee57e89488640cd3eb5c43f41a4bc1ea90a00dfc (patch)
treeba453e332e88ed6d540d7e6df1bd41b2b09eb4f1 /discord/user.py
parentMove conditional RTD dependencies to 'docs' extra (diff)
downloaddiscord.py-ee57e89488640cd3eb5c43f41a4bc1ea90a00dfc.tar.xz
discord.py-ee57e89488640cd3eb5c43f41a4bc1ea90a00dfc.zip
Added hypesquad house functionality
Diffstat (limited to 'discord/user.py')
-rw-r--r--discord/user.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/discord/user.py b/discord/user.py
index e6307636..381687a5 100644
--- a/discord/user.py
+++ b/discord/user.py
@@ -25,7 +25,7 @@ DEALINGS IN THE SOFTWARE.
"""
from .utils import snowflake_time, _bytes_to_base64_data, parse_time, valid_icon_size
-from .enums import DefaultAvatar, RelationshipType, UserFlags
+from .enums import DefaultAvatar, RelationshipType, UserFlags, HypeSquadHouse
from .errors import ClientException, InvalidArgument
from collections import namedtuple
@@ -60,6 +60,10 @@ class Profile(namedtuple('Profile', 'flags user mutual_guilds connected_accounts
def partner(self):
return self._has_flag(UserFlags.partner)
+ @property
+ def hypesquad_houses(self):
+ flags = (UserFlags.hypesquad_bravery, UserFlags.hypesquad_brilliance, UserFlags.hypesquad_balance)
+ return [house for house, flag in zip(HypeSquadHouse, flags) if self._has_flag(flag)]
_BaseUser = discord.abc.User
@@ -337,6 +341,10 @@ class ClientUser(BaseUser):
email: str
The new email you wish to change to.
Only applicable to user accounts.
+ Optional[:class:`HypeSquadHouse`]
+ The hypesquad house you wish to change to.
+ Could be ``None`` to leave the current house.
+ Only applicable to user accounts.
username :str
The new username you wish to change to.
avatar: bytes
@@ -351,6 +359,7 @@ class ClientUser(BaseUser):
Wrong image format passed for ``avatar``.
ClientException
Password is required for non-bot accounts.
+ House field was not a HypeSquadHouse.
"""
try:
@@ -382,6 +391,17 @@ class ClientUser(BaseUser):
http = self._state.http
+ if 'house' in fields:
+ house = fields['house']
+ if house is None:
+ await http.leave_hypesquad_house()
+ elif not isinstance(house, HypeSquadHouse):
+ raise ClientException('`house` parameter was not a HypeSquadHouse')
+ else:
+ value = house.value
+
+ await http.change_hypesquad_house(value)
+
data = await http.edit_profile(**args)
if not_bot_account:
self.email = data['email']