aboutsummaryrefslogtreecommitdiff
path: root/discord/member.py
diff options
context:
space:
mode:
Diffstat (limited to 'discord/member.py')
-rw-r--r--discord/member.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/discord/member.py b/discord/member.py
index d7871066..bd65b237 100644
--- a/discord/member.py
+++ b/discord/member.py
@@ -193,6 +193,17 @@ class Member(discord.abc.Messageable, _BaseUser):
return cls(data=data, guild=message.guild, state=message._state)
@classmethod
+ def _try_upgrade(cls, *, data, guild, state):
+ # A User object with a 'member' key
+ try:
+ member_data = data.pop('member')
+ except KeyError:
+ return state.store_user(member_data)
+ else:
+ member_data['user'] = data
+ return cls(data=member_data, guild=guild, state=state)
+
+ @classmethod
def _from_presence_update(cls, *, data, guild, state):
clone = cls(data=data, guild=guild, state=state)
to_return = cls(data=data, guild=guild, state=state)