diff options
Diffstat (limited to 'discord')
| -rw-r--r-- | discord/audit_logs.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/discord/audit_logs.py b/discord/audit_logs.py index 8ac5722b..b0fef41a 100644 --- a/discord/audit_logs.py +++ b/discord/audit_logs.py @@ -121,10 +121,10 @@ class AuditLogChanges: # special cases for role add/remove if attr == '$add': - self._handle_role(self.before, self.after, entry, elem) + self._handle_role(self.before, self.after, entry, elem['new_value']) continue elif attr == '$remove': - self._handle_role(self.after, self.before, entry, elem) + self._handle_role(self.after, self.before, entry, elem['new_value']) continue transformer = self.TRANSFORMERS.get(attr) @@ -157,17 +157,22 @@ class AuditLogChanges: self.before.color = self.before.colour def _handle_role(self, first, second, entry, elem): - setattr(first, 'role', None) + setattr(first, 'roles', None) - # TODO: partial data? - role_id = int(elem['id']) - role = utils.find(lambda r: r.id == role_id, entry.guild.roles) + data = [] + roles = entry.guild.roles - if role is None: - role = discord.Object(id=role_id) - role.name = elem['name'] + for e in elem: + role_id = int(e['id']) + role = utils.find(lambda r: r.id == role_id, roles) + + if role is None: + role = discord.Object(id=role_id) + role.name = e['name'] + + data.append(role) - setattr(second, 'role', role) + setattr(second, 'roles', data) class AuditLogEntry: """Represents an Audit Log entry. |