aboutsummaryrefslogtreecommitdiff
path: root/discord/state.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/state.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/state.py')
-rw-r--r--discord/state.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/discord/state.py b/discord/state.py
index ea6b89de..7180509a 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -743,10 +743,9 @@ class ConnectionState:
guild = self._get_guild(int(data['guild_id']))
if guild is not None:
role_id = int(data['role_id'])
- role = utils.find(lambda r: r.id == role_id, guild.roles)
try:
- guild._remove_role(role)
- except ValueError:
+ role = guild._remove_role(role_id)
+ except KeyError:
return
else:
self.dispatch('guild_role_delete', role)
@@ -758,7 +757,7 @@ class ConnectionState:
if guild is not None:
role_data = data['role']
role_id = int(role_data['id'])
- role = utils.find(lambda r: r.id == role_id, guild.roles)
+ role = guild.get_role(role_id)
if role is not None:
old_role = copy.copy(role)
role._update(role_data)