diff options
| author | Rapptz <[email protected]> | 2016-06-01 19:27:48 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-06-01 19:27:48 -0400 |
| commit | 5016f120795cdd27f56f9949ff668accdc8d076c (patch) | |
| tree | 65456fe25f1c6b1d9eebf0152af961c0a20b42d9 /discord | |
| parent | Update voice client main ws references when reconnecting. (diff) | |
| download | discord.py-5016f120795cdd27f56f9949ff668accdc8d076c.tar.xz discord.py-5016f120795cdd27f56f9949ff668accdc8d076c.zip | |
Add Role.server attribute.
This breaks events that expected a server parameter for the role events.
Diffstat (limited to 'discord')
| -rw-r--r-- | discord/client.py | 3 | ||||
| -rw-r--r-- | discord/role.py | 10 | ||||
| -rw-r--r-- | discord/server.py | 2 | ||||
| -rw-r--r-- | discord/state.py | 7 |
4 files changed, 10 insertions, 12 deletions
diff --git a/discord/client.py b/discord/client.py index 29576845..74e5d5cb 100644 --- a/discord/client.py +++ b/discord/client.py @@ -2447,8 +2447,7 @@ class Client: yield from utils._verify_successful_response(r) data = yield from r.json(encoding='utf-8') - everyone = server.id == data.get('id') - role = Role(everyone=everyone, **data) + role = Role(server=server, **data) # we have to call edit because you can't pass a payload to the # http request currently. diff --git a/discord/role.py b/discord/role.py index 84cd9fbb..678d4d1f 100644 --- a/discord/role.py +++ b/discord/role.py @@ -54,6 +54,8 @@ class Role(Hashable): The name of the role. permissions : :class:`Permissions` Represents the role's permissions. + server : :class:`Server` + The server the role belongs to. colour : :class:`Colour` Represents the role colour. An alias exists under ``color``. hoist : bool @@ -68,10 +70,10 @@ class Role(Hashable): """ __slots__ = ['id', 'name', 'permissions', 'color', 'colour', 'position', - 'managed', 'mentionable', '_is_everyone', 'hoist' ] + 'managed', 'mentionable', 'hoist', 'server' ] def __init__(self, **kwargs): - self._is_everyone = kwargs.get('everyone', False) + self.server = kwargs.pop('server') self._update(**kwargs) def __str__(self): @@ -87,13 +89,11 @@ class Role(Hashable): self.managed = kwargs.get('managed', False) self.mentionable = kwargs.get('mentionable', False) self.color = self.colour - if 'everyone' in kwargs: - self._is_everyone = kwargs['everyone'] @property def is_everyone(self): """Checks if the role is the @everyone role.""" - return self._is_everyone + return self.server.id == self.id @property def created_at(self): diff --git a/discord/server.py b/discord/server.py index 618dab07..62bd9ad6 100644 --- a/discord/server.py +++ b/discord/server.py @@ -155,7 +155,7 @@ class Server(Hashable): self.icon = guild.get('icon') self.unavailable = guild.get('unavailable', False) self.id = guild['id'] - self.roles = [Role(everyone=(self.id == r['id']), **r) for r in guild.get('roles', [])] + self.roles = [Role(server=self, **r) for r in guild.get('roles', [])] for data in guild.get('members', []): roles = [self.default_role] diff --git a/discord/state.py b/discord/state.py index 268af188..b0c4ae15 100644 --- a/discord/state.py +++ b/discord/state.py @@ -476,10 +476,9 @@ class ConnectionState: def parse_guild_role_create(self, data): server = self._get_server(data.get('guild_id')) role_data = data.get('role', {}) - everyone = server.id == role_data.get('id') - role = Role(everyone=everyone, **role_data) + role = Role(server=server, **role_data) server.roles.append(role) - self.dispatch('server_role_create', server, role) + self.dispatch('server_role_create', role) def parse_guild_role_delete(self, data): server = self._get_server(data.get('guild_id')) @@ -491,7 +490,7 @@ class ConnectionState: except ValueError: return else: - self.dispatch('server_role_delete', server, role) + self.dispatch('server_role_delete', role) def parse_guild_role_update(self, data): server = self._get_server(data.get('guild_id')) |