Make Client.edit_channel_permissions use PermissionOverwrite.
This commit is contained in:
		| @@ -2288,7 +2288,7 @@ class Client: | ||||
|         return role | ||||
|  | ||||
|     @asyncio.coroutine | ||||
|     def edit_channel_permissions(self, channel, target, *, allow=None, deny=None): | ||||
|     def edit_channel_permissions(self, channel, target, overwrite=None): | ||||
|         """|coro| | ||||
|  | ||||
|         Sets the channel specific permission overwrites for a target in the | ||||
| @@ -2304,11 +2304,10 @@ class Client: | ||||
|  | ||||
|         Setting allow and deny: :: | ||||
|  | ||||
|             allow = discord.Permissions.none() | ||||
|             deny = discord.Permissions.none() | ||||
|             allow.mention_everyone = True | ||||
|             deny.manage_messages = True | ||||
|             yield from client.edit_channel_permissions(message.channel, message.author, allow=allow, deny=deny) | ||||
|             overwrite = discord.PermissionOverwrite() | ||||
|             overwrite.read_messages = True | ||||
|             overwrite.ban_members = False | ||||
|             yield from client.edit_channel_permissions(message.channel, message.author, overwrite) | ||||
|  | ||||
|         Parameters | ||||
|         ----------- | ||||
| @@ -2316,10 +2315,8 @@ class Client: | ||||
|             The channel to give the specific permissions for. | ||||
|         target | ||||
|             The :class:`Member` or :class:`Role` to overwrite permissions for. | ||||
|         allow : :class:`Permissions` | ||||
|             The permissions to explicitly allow. (optional) | ||||
|         deny : :class:`Permissions` | ||||
|             The permissions to explicitly deny. (optional) | ||||
|         overwrite: :class:`PermissionOverwrite` | ||||
|             The permissions to allow and deny to the target. | ||||
|  | ||||
|         Raises | ||||
|         ------- | ||||
| @@ -2330,27 +2327,26 @@ class Client: | ||||
|         HTTPException | ||||
|             Editing channel specific permissions failed. | ||||
|         InvalidArgument | ||||
|             The allow or deny arguments were not of type :class:`Permissions` | ||||
|             The overwrite parameter was not of type :class:`PermissionOverwrite` | ||||
|             or the target type was not :class:`Role` or :class:`Member`. | ||||
|         """ | ||||
|  | ||||
|         allow = Permissions.none() if allow is None else allow | ||||
|         deny = Permissions.none() if deny is None else deny | ||||
|         overwrite = PermissionOverwrite() if overwrite is None else overwrite | ||||
|  | ||||
|         if not (isinstance(allow, Permissions) and isinstance(deny, Permissions)): | ||||
|             raise InvalidArgument('allow and deny parameters must be discord.Permissions') | ||||
|  | ||||
|         deny =  deny.value | ||||
|         allow = allow.value | ||||
|         if not isinstance(overwrite, PermissionOverwrite): | ||||
|             raise InvalidArgument('allow and deny parameters must be PermissionOverwrite') | ||||
|  | ||||
|         allow, deny = overwrite.pair() | ||||
|  | ||||
|         if isinstance(target, Member): | ||||
|             perm_type = 'member' | ||||
|         elif isinstance(target, Role): | ||||
|             perm_type = 'role' | ||||
|         else: | ||||
|             raise InvalidArgument('target parameter must be either discord.Member or discord.Role') | ||||
|             raise InvalidArgument('target parameter must be either Member or Role') | ||||
|  | ||||
|         yield from self.http.edit_channel_permissions(channel.id, target.id, allow, deny, perm_type) | ||||
|         yield from self.http.edit_channel_permissions(channel.id, target.id, allow.value, deny.value, perm_type) | ||||
|  | ||||
|     @asyncio.coroutine | ||||
|     def delete_channel_permissions(self, channel, target): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user