diff options
| author | CapnS <[email protected]> | 2019-06-02 13:53:07 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2019-12-04 18:40:38 -0500 |
| commit | 072cef3bb61842396c2fc6202ec660a370016079 (patch) | |
| tree | 65f4067ef2676af425cab32f0a368bf38f1af5e5 /discord/abc.py | |
| parent | Fix more deprecation warnings for 3.8 (diff) | |
| download | discord.py-072cef3bb61842396c2fc6202ec660a370016079.tar.xz discord.py-072cef3bb61842396c2fc6202ec660a370016079.zip | |
Allow editing of overwrites in Channel.edit()
Diffstat (limited to 'discord/abc.py')
| -rw-r--r-- | discord/abc.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/discord/abc.py b/discord/abc.py index bebe8f21..dc69ff27 100644 --- a/discord/abc.py +++ b/discord/abc.py @@ -259,6 +259,28 @@ class GuildChannel: options['permission_overwrites'] = [c._asdict() for c in category._overwrites] else: await self._move(position, parent_id=parent_id, lock_permissions=lock_permissions, reason=reason) + + overwrites = options.get('overwrites', None) + if overwrites: + perms = [] + for target, perm in overwrites.items(): + if not isinstance(perm, PermissionOverwrite): + raise InvalidArgument('Expected PermissionOverwrite received {0.__name__}'.format(type(perm))) + + allow, deny = perm.pair() + payload = { + 'allow': allow.value, + 'deny': deny.value, + 'id': target.id + } + + if isinstance(target, Role): + payload['type'] = 'role' + else: + payload['type'] = 'member' + + perms.append(payload) + options['permission_overwrites'] = perms if options: data = await self._state.http.edit_channel(self.id, reason=reason, **options) |