diff options
| author | Rapptz <[email protected]> | 2020-09-17 02:45:53 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2020-09-17 02:45:53 -0400 |
| commit | a183c4f75264a67015b6cbd6969b3e44397aa2bf (patch) | |
| tree | fa2fd6da8f3af726884f246f0cee778018cd47a9 | |
| parent | Revert "Add fetch_message_fast using history endpoint" (diff) | |
| download | discord.py-a183c4f75264a67015b6cbd6969b3e44397aa2bf.tar.xz discord.py-a183c4f75264a67015b6cbd6969b3e44397aa2bf.zip | |
Completely update member references from message inner members.
Fixes #5819
| -rw-r--r-- | discord/member.py | 8 | ||||
| -rw-r--r-- | discord/message.py | 3 |
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 |