From 9075d46efdc9d1b430558d7d4d67816a26d04c28 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Thu, 17 Dec 2015 18:22:16 -0500 Subject: Add on_member_ban and on_member_unban events. Fixes #58. --- discord/state.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'discord/state.py') diff --git a/discord/state.py b/discord/state.py index a200fc83..a4ba1526 100644 --- a/discord/state.py +++ b/discord/state.py @@ -251,6 +251,26 @@ class ConnectionState: else: 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 + # hence we don't remove it from cache or do anything + # strange with it, the main purpose of this event + # is mainly to dispatch to another event worth listening to for logging + server = self._get_server(data.get('guild_id')) + if server is not None: + user_id = data.get('user', {}).get('id') + member = utils.get(server.members, id=user_id) + if member is not None: + self.dispatch('member_ban', member) + + def parse_guild_ban_remove(self, data): + server = self._get_server(data.get('guild_id')) + if server is not None: + if 'user' in data: + user = User(**data['user']) + self.dispatch('member_unban', server, user) + def parse_guild_role_create(self, data): server = self._get_server(data.get('guild_id')) role_data = data.get('role', {}) -- cgit v1.2.3