向静音命令添加权限,但是遇到错误

时间:2019-06-05 17:33:47

标签: python python-3.x discord discord.py python-3.7

我正在尝试设置静音命令的权限,但是它们不起作用,而且我不知道如何解决

这是一个非常简单的静音命令,仅是我受限制的权限

@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 个答案:

答案 0 :(得分:1)

initialiser for Permissions需要一个数字,即权限值。不用将关键字参数传递给初始化程序,而应将它们传递到update()方法中,该方法接受关键字参数。

/feed