From 9235a34916b7909ccff028c1d7ff4b36fb2dfd7a Mon Sep 17 00:00:00 2001 From: Rapptz Date: Wed, 14 Oct 2015 21:09:31 -0400 Subject: [PATCH] Handle GUILD_ROLE_CREATE websocket events. --- discord/client.py | 9 ++++++++- docs/api.rst | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/discord/client.py b/discord/client.py index 3640b2e71..1b2bf9b87 100644 --- a/discord/client.py +++ b/discord/client.py @@ -113,7 +113,8 @@ class WebSocket(WebSocketBaseClient): 'MESSAGE_UPDATE', 'PRESENCE_UPDATE', 'USER_UPDATE', 'CHANNEL_DELETE', 'CHANNEL_UPDATE', 'CHANNEL_CREATE', 'GUILD_MEMBER_ADD', 'GUILD_MEMBER_REMOVE', - 'GUILD_MEMBER_UPDATE', 'GUILD_CREATE', 'GUILD_DELETE'): + 'GUILD_MEMBER_UPDATE', 'GUILD_CREATE', 'GUILD_DELETE', + 'GUILD_ROLE_CREATE'): self.dispatch('socket_update', event, data) else: @@ -308,6 +309,12 @@ class ConnectionState(object): self.servers.remove(server) self.dispatch('server_delete', server) + def handle_guild_role_create(self, data): + server = self._get_server(data.get('guild_id')) + role = Role(**data.get('role', {})) + server.roles.append(role) + self.dispatch('server_role_create', server, role) + def get_channel(self, id): if id is None: return None diff --git a/docs/api.rst b/docs/api.rst index d796c3b17..a276233de 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -160,6 +160,13 @@ to handle it, which defaults to log a traceback and ignore the exception. :param server: The :class:`Server` that got created or deleted. +.. function:: on_server_role_create(server, role) + + Called when a :class:`Server` creates a new :class:`Role`. + + :param server: The :class:`Server` that was created. + :param role: The :class:`Role` that was created. + Utility Functions -----------------