aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2020-09-17 02:45:53 -0400
committerRapptz <[email protected]>2020-09-17 02:45:53 -0400
commita183c4f75264a67015b6cbd6969b3e44397aa2bf (patch)
treefa2fd6da8f3af726884f246f0cee778018cd47a9
parentRevert "Add fetch_message_fast using history endpoint" (diff)
downloaddiscord.py-a183c4f75264a67015b6cbd6969b3e44397aa2bf.tar.xz
discord.py-a183c4f75264a67015b6cbd6969b3e44397aa2bf.zip
Completely update member references from message inner members.
Fixes #5819
-rw-r--r--discord/member.py8
-rw-r--r--discord/message.py3
2 files changed, 8 insertions, 3 deletions
diff --git a/discord/member.py b/discord/member.py
index 1fb11e63..b9d1ffa7 100644
--- a/discord/member.py
+++ b/discord/member.py
@@ -199,6 +199,12 @@ class Member(discord.abc.Messageable, _BaseUser):
data['user'] = author._to_minimal_user_json()
return cls(data=data, guild=message.guild, state=message._state)
+ def _update_from_message(self, data):
+ self.joined_at = utils.parse_time(data.get('joined_at'))
+ self.premium_since = utils.parse_time(data.get('premium_since'))
+ self._update_roles(data)
+ self.nick = data.get('nick', None)
+
@classmethod
def _try_upgrade(cls, *, data, guild, state):
# A User object with a 'member' key
@@ -433,7 +439,7 @@ class Member(discord.abc.Messageable, _BaseUser):
guild = self.guild
if len(self._roles) == 0:
return guild.default_role
-
+
return max(guild.get_role(rid) or guild.default_role for rid in self._roles)
@property
diff --git a/discord/message.py b/discord/message.py
index 7e8440f4..c7de78d1 100644
--- a/discord/message.py
+++ b/discord/message.py
@@ -476,8 +476,7 @@ class Message:
author = self.author
try:
# Update member reference
- if author.joined_at is None:
- author.joined_at = utils.parse_time(member.get('joined_at'))
+ author._update_from_message(member)
except AttributeError:
# It's a user here
# TODO: consider adding to cache here