diff options
| author | Rapptz <[email protected]> | 2015-08-27 17:44:31 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2015-08-27 17:45:43 -0400 |
| commit | 795b8ceffefa64262c8ebecaaaf4e1f051162fae (patch) | |
| tree | 36d2b5e0abde68831e3ec7e1ba4cdc3659ae0b8c /discord/client.py | |
| parent | Give members their server as an attribute. (diff) | |
| download | discord.py-795b8ceffefa64262c8ebecaaaf4e1f051162fae.tar.xz discord.py-795b8ceffefa64262c8ebecaaaf4e1f051162fae.zip | |
on_status now takes only a member.
Diffstat (limited to 'discord/client.py')
| -rw-r--r-- | discord/client.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/discord/client.py b/discord/client.py index f5e86bb9..46f23bda 100644 --- a/discord/client.py +++ b/discord/client.py @@ -264,17 +264,21 @@ class Client(object): server = next((s for s in self.servers if s.id == guild_id), None) if server is not None: status = data.get('status') - user = User(**data.get('user')) + member_id = data['user']['id'] # check to see if the member is in our server list of members - member = next((u for u in server.members if u == user), None) + member = next((u for u in server.members if u.id == member_id), None) + + if member is None: + # create the member if it doesn't exist + member = Member(**data) + if status == 'online': - if member is None: - server.members.append(user) - if status == 'offline' and user in server.members: - server.members.remove(user) + server.members.append(member) + elif status == 'offline' and self.no_offline_members: + server.members.remove(member) # call the event now - self._invoke_event('on_status', server, user, status, data.get('game_id')) + self._invoke_event('on_status', member) elif event == 'USER_UPDATE': self.user = User(**data) elif event == 'CHANNEL_DELETE': |