diff options
| author | Rapptz <[email protected]> | 2021-04-11 00:57:59 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2021-04-11 00:57:59 -0400 |
| commit | 7d79b4ba559b1b4c41fe9c05fb3c57838c442c45 (patch) | |
| tree | 39d294588f5539ab7e7813c48cad2c1b817d2847 | |
| parent | Fix stray AttributeError in Guild._from_data with member cache (diff) | |
| download | discord.py-7d79b4ba559b1b4c41fe9c05fb3c57838c442c45.tar.xz discord.py-7d79b4ba559b1b4c41fe9c05fb3c57838c442c45.zip | |
Remove Member related handling in PRESENCE_UPDATE
| -rw-r--r-- | discord/member.py | 11 | ||||
| -rw-r--r-- | discord/state.py | 16 |
2 files changed, 6 insertions, 21 deletions
diff --git a/discord/member.py b/discord/member.py index 753780d9..62bdbfcc 100644 --- a/discord/member.py +++ b/discord/member.py @@ -263,17 +263,6 @@ class Member(discord.abc.Messageable, _BaseUser): 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) - to_return._client_status = { - sys.intern(key): sys.intern(value) - for key, value in data.get('client_status', {}).items() - } - to_return._client_status[None] = sys.intern(data['status']) - return to_return, clone - - @classmethod def _copy(cls, member): self = cls.__new__(cls) # to bypass __init__ diff --git a/discord/state.py b/discord/state.py index d35ff7df..fc6974d1 100644 --- a/discord/state.py +++ b/discord/state.py @@ -602,17 +602,13 @@ class ConnectionState: member_id = int(user['id']) member = guild.get_member(member_id) if member is None: - if 'username' not in user: - # sometimes we receive 'incomplete' member data post-removal. - # skip these useless cases. - return + log.debug('PRESENCE_UPDATE referencing an unknown member ID: %s. Discarding', member_id) + return - member, old_member = Member._from_presence_update(guild=guild, data=data, state=self) - else: - old_member = Member._copy(member) - user_update = member._presence_update(data=data, user=user) - if user_update: - self.dispatch('user_update', user_update[0], user_update[1]) + old_member = Member._copy(member) + user_update = member._presence_update(data=data, user=user) + if user_update: + self.dispatch('user_update', user_update[0], user_update[1]) self.dispatch('member_update', old_member, member) |