aboutsummaryrefslogtreecommitdiff
path: root/discord/state.py
diff options
context:
space:
mode:
Diffstat (limited to 'discord/state.py')
-rw-r--r--discord/state.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/discord/state.py b/discord/state.py
index ab3f2ac7..3d420a0a 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -461,11 +461,14 @@ class ConnectionState:
# skip these useless cases.
return
- member = Member(guild=guild, data=data, state=self)
+ member, old_member = Member._from_presence_update(guild=guild, data=data, state=self)
guild._add_member(member)
+ 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)
- member._presence_update(data=data, user=user)
self.dispatch('member_update', old_member, member)
def parse_user_update(self, data):