mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-17 03:09:05 +00:00
Add Role.server attribute.
This breaks events that expected a server parameter for the role events.
This commit is contained in:
parent
8638ff4414
commit
5016f12079
@ -2447,8 +2447,7 @@ class Client:
|
|||||||
yield from utils._verify_successful_response(r)
|
yield from utils._verify_successful_response(r)
|
||||||
|
|
||||||
data = yield from r.json(encoding='utf-8')
|
data = yield from r.json(encoding='utf-8')
|
||||||
everyone = server.id == data.get('id')
|
role = Role(server=server, **data)
|
||||||
role = Role(everyone=everyone, **data)
|
|
||||||
|
|
||||||
# we have to call edit because you can't pass a payload to the
|
# we have to call edit because you can't pass a payload to the
|
||||||
# http request currently.
|
# http request currently.
|
||||||
|
@ -54,6 +54,8 @@ class Role(Hashable):
|
|||||||
The name of the role.
|
The name of the role.
|
||||||
permissions : :class:`Permissions`
|
permissions : :class:`Permissions`
|
||||||
Represents the role's permissions.
|
Represents the role's permissions.
|
||||||
|
server : :class:`Server`
|
||||||
|
The server the role belongs to.
|
||||||
colour : :class:`Colour`
|
colour : :class:`Colour`
|
||||||
Represents the role colour. An alias exists under ``color``.
|
Represents the role colour. An alias exists under ``color``.
|
||||||
hoist : bool
|
hoist : bool
|
||||||
@ -68,10 +70,10 @@ class Role(Hashable):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__slots__ = ['id', 'name', 'permissions', 'color', 'colour', 'position',
|
__slots__ = ['id', 'name', 'permissions', 'color', 'colour', 'position',
|
||||||
'managed', 'mentionable', '_is_everyone', 'hoist' ]
|
'managed', 'mentionable', 'hoist', 'server' ]
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self._is_everyone = kwargs.get('everyone', False)
|
self.server = kwargs.pop('server')
|
||||||
self._update(**kwargs)
|
self._update(**kwargs)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@ -87,13 +89,11 @@ class Role(Hashable):
|
|||||||
self.managed = kwargs.get('managed', False)
|
self.managed = kwargs.get('managed', False)
|
||||||
self.mentionable = kwargs.get('mentionable', False)
|
self.mentionable = kwargs.get('mentionable', False)
|
||||||
self.color = self.colour
|
self.color = self.colour
|
||||||
if 'everyone' in kwargs:
|
|
||||||
self._is_everyone = kwargs['everyone']
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_everyone(self):
|
def is_everyone(self):
|
||||||
"""Checks if the role is the @everyone role."""
|
"""Checks if the role is the @everyone role."""
|
||||||
return self._is_everyone
|
return self.server.id == self.id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def created_at(self):
|
def created_at(self):
|
||||||
|
@ -155,7 +155,7 @@ class Server(Hashable):
|
|||||||
self.icon = guild.get('icon')
|
self.icon = guild.get('icon')
|
||||||
self.unavailable = guild.get('unavailable', False)
|
self.unavailable = guild.get('unavailable', False)
|
||||||
self.id = guild['id']
|
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', []):
|
for data in guild.get('members', []):
|
||||||
roles = [self.default_role]
|
roles = [self.default_role]
|
||||||
|
@ -476,10 +476,9 @@ class ConnectionState:
|
|||||||
def parse_guild_role_create(self, data):
|
def parse_guild_role_create(self, data):
|
||||||
server = self._get_server(data.get('guild_id'))
|
server = self._get_server(data.get('guild_id'))
|
||||||
role_data = data.get('role', {})
|
role_data = data.get('role', {})
|
||||||
everyone = server.id == role_data.get('id')
|
role = Role(server=server, **role_data)
|
||||||
role = Role(everyone=everyone, **role_data)
|
|
||||||
server.roles.append(role)
|
server.roles.append(role)
|
||||||
self.dispatch('server_role_create', server, role)
|
self.dispatch('server_role_create', role)
|
||||||
|
|
||||||
def parse_guild_role_delete(self, data):
|
def parse_guild_role_delete(self, data):
|
||||||
server = self._get_server(data.get('guild_id'))
|
server = self._get_server(data.get('guild_id'))
|
||||||
@ -491,7 +490,7 @@ class ConnectionState:
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
self.dispatch('server_role_delete', server, role)
|
self.dispatch('server_role_delete', role)
|
||||||
|
|
||||||
def parse_guild_role_update(self, data):
|
def parse_guild_role_update(self, data):
|
||||||
server = self._get_server(data.get('guild_id'))
|
server = self._get_server(data.get('guild_id'))
|
||||||
|
@ -264,12 +264,13 @@ to handle it, which defaults to print a traceback and ignore the exception.
|
|||||||
:param before: The :class:`Server` prior to being updated.
|
:param before: The :class:`Server` prior to being updated.
|
||||||
:param after: The :class:`Server` after being updated.
|
:param after: The :class:`Server` after being updated.
|
||||||
|
|
||||||
.. function:: on_server_role_create(server, role)
|
.. function:: on_server_role_create(role)
|
||||||
on_server_role_delete(server, role)
|
on_server_role_delete(role)
|
||||||
|
|
||||||
Called when a :class:`Server` creates or deletes a new :class:`Role`.
|
Called when a :class:`Server` creates or deletes a new :class:`Role`.
|
||||||
|
|
||||||
:param server: The :class:`Server` that was created or deleted.
|
To get the server it belongs to, use :attr:`Role.server`.
|
||||||
|
|
||||||
:param role: The :class:`Role` that was created or deleted.
|
:param role: The :class:`Role` that was created or deleted.
|
||||||
|
|
||||||
.. function:: on_server_role_update(before, after)
|
.. function:: on_server_role_update(before, after)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user