aboutsummaryrefslogtreecommitdiff
path: root/discord
diff options
context:
space:
mode:
authorRapptz <[email protected]>2016-07-15 22:03:22 -0400
committerRapptz <[email protected]>2016-07-15 22:03:22 -0400
commit91351a3238c8b0ddf9710a870e3933323bcceabc (patch)
tree3c2c880cce48f4f9b41b2e19184b754b31f20672 /discord
parentMake PrivateChannel.__str__ more useful for groups. (diff)
downloaddiscord.py-91351a3238c8b0ddf9710a870e3933323bcceabc.tar.xz
discord.py-91351a3238c8b0ddf9710a870e3933323bcceabc.zip
Handle adding and removal of group members.
Diffstat (limited to 'discord')
-rw-r--r--discord/state.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/discord/state.py b/discord/state.py
index 7a8fc466..cf2af379 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -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