Добавьте разрешения для команды отключения звука, но обнаружите ошибку - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь настроить разрешения для команды отключения звука, но они не работают, и я не знаю, как их исправить

Это довольно простая команда отключения звука, только разрешения, которые я застрялна

@client.command()
@has_permissions(kick_members=True)
async def mute(ctx, member:discord.Member, *, reason=None):
 arg=reason
 author=ctx.author
 guild=ctx.message.guild
 perms=discord.Permissions(connect=False, speak=False, read_text_channels_and_see_voice_channels=False, add_reactions=False, send_messages=False)
 role=discord.utils.get(ctx.guild.roles, name="muted")

 await guild.create_role(name="muted", colour=discord.Colour(0x808080), permissions=perms)
 await member.send(f'You got muted for: ```\n{arg}\n``` Muted by: {author}')
 await member.add_roles(role)
 await ctx.send(f'{member.mention} got muted for: ```\n{arg}\n``` Muted by: {author}!')

ошибка: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: __init__() got an unexpected keyword argument 'connect' Я уверен, что я получу аналогичные ошибки для других разрешений, хотя я не знаю, как это исправить, кто-нибудь сможет помочь?

1 Ответ

1 голос
/ 05 июня 2019

Инициализатор для Permissions ожидает число, значение разрешения. Вместо передачи аргументов ключевого слова в инициализатор, передайте их в метод update(), который принимает аргументы ключевого слова.

perms=discord.Permissions()
perms.update(connect=False, speak=False, read_text_channels_and_see_voice_channels=False, add_reactions=False, send_messages=False)    
...