我是python的新手,并且通常会创建不和谐的bot,我一生都无法解决如何根据用户的请求使我的bot为用户分配角色。
我已经连续数小时搜寻互联网,并找到了一些示例,但它们都会产生错误。
这是命令的代码:
@client.command(pass_context=True)
@commands.has_role("Bots")
async def add_bot(ctx):
member = ctx.message.author
role = discord.utils.get(member.server.roles, name="Bots")
await client.add_roles(member, role)
这是我得到的错误:
in _verify_checks raise CheckFailure('The check functions for command {0.qualified_name} failed.'.format(self))
discord.ext.commands.errors.CheckFailure: The check functions for command add_bot failed.
答案 0 :(得分:2)
对于重写版本,情况有所变化,add_roles
不再是client
的一部分,而是discord.Member
类的一部分,因此discord.py重写版本的代码是:
`@client.command(pass_context=True)
async def add_role(ctx):
member = ctx.author
role = discord.utils.get(member.guild.roles, name="Bots")
await discord.Member.add_roles(member, role)`
重写版本的次要更新。
答案 1 :(得分:1)
删除has_role
检查。检查调用方是否具有角色,以便他们可以为自己分配该角色,这没有任何意义。
@client.command(pass_context=True)
async def add_bot(ctx):
member = ctx.message.author
role = discord.utils.get(member.server.roles, name="Bots")
await client.add_roles(member, role)