aboutsummaryrefslogtreecommitdiff
path: root/discord/abc.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2018-09-24 21:05:41 -0400
committerRapptz <[email protected]>2018-09-24 21:08:48 -0400
commit3d03dbc45179f645b59838729047e896cc387049 (patch)
tree63592f4d631c33ee0b22b7f6bb57818ad48b2671 /discord/abc.py
parentTake the default role property into account when comparing roles. (diff)
downloaddiscord.py-3d03dbc45179f645b59838729047e896cc387049.tar.xz
discord.py-3d03dbc45179f645b59838729047e896cc387049.zip
Change internal role storage in Guild to a dict instead of a list.
This adds the following APIs: * Guild.get_role This removes the following APIs: * Guild.role_hierarchy To compensate for the removed APIs, Guild.roles is now a sorted list based on hierarchy. The first element will always be the @everyone role. This speeds up access at the cost of some memory, theoretically.
Diffstat (limited to 'discord/abc.py')
-rw-r--r--discord/abc.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/discord/abc.py b/discord/abc.py
index 0ca11452..8482104a 100644
--- a/discord/abc.py
+++ b/discord/abc.py
@@ -288,8 +288,9 @@ class GuildChannel:
"""Returns a :class:`list` of :class:`Roles` that have been overridden from
their default values in the :attr:`Guild.roles` attribute."""
ret = []
+ g = self.guild
for overwrite in filter(lambda o: o.type == 'role', self._overwrites):
- role = utils.get(self.guild.roles, id=overwrite.id)
+ role = g.get_role(overwrite.id)
if role is None:
continue
@@ -358,8 +359,7 @@ class GuildChannel:
overwrite = PermissionOverwrite.from_pair(allow, deny)
if ow.type == 'role':
- # accidentally quadratic
- target = utils.find(lambda r: r.id == ow.id, self.guild.roles)
+ target = self.guild.get_role(ow.id)
elif ow.type == 'member':
target = self.guild.get_member(ow.id)