Handle adding and removal of group members.

This commit is contained in:
Rapptz
2016-07-15 22:03:22 -04:00
parent 18bdd3e7dd
commit 91351a3238
2 changed files with 25 additions and 1 deletions

View File

@ -325,6 +325,22 @@ class ConnectionState:
self.dispatch('channel_create', channel)
def parse_channel_recipient_add(self, data):
channel = self._get_private_channel(data.get('channel_id'))
user = User(**data.get('user', {}))
channel.recipients.append(user)
self.dispatch('group_join', channel, user)
def parse_channel_recipient_remove(self, data):
channel = self._get_private_channel(data.get('channel_id'))
user = User(**data.get('user', {}))
try:
channel.recipients.remove(user)
except ValueError:
pass
else:
self.dispatch('group_remove', channel, user)
def _make_member(self, server, data):
roles = [server.default_role]
for roleid in data.get('roles', []):
@ -480,7 +496,6 @@ class ConnectionState:
self._remove_server(server)
self.dispatch('server_remove', server)
def parse_guild_ban_add(self, data):
# we make the assumption that GUILD_BAN_ADD is done
# before GUILD_MEMBER_REMOVE is called