mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-09-08 10:53:10 +00:00
Allow editing of overwrites in Channel.edit()
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user