aboutsummaryrefslogtreecommitdiff
path: root/discord/member.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2019-07-10 04:32:11 -0400
committerRapptz <[email protected]>2019-07-10 04:51:27 -0400
commitbbc50c92d006398496bfee098dad20087ea86b6f (patch)
tree8bc8e6c4c1260c1fc8174649268d0622c1a6f930 /discord/member.py
parentAdd VoiceChannel.voice_states low level helper. (diff)
downloaddiscord.py-bbc50c92d006398496bfee098dad20087ea86b6f.tar.xz
discord.py-bbc50c92d006398496bfee098dad20087ea86b6f.zip
Add upgraded Member to Message.mentions in case of no cache.
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)