Discord.py为用户添加角色

时间:2019-04-02 15:20:55

标签: python bots discord.py

我是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.

2 个答案:

答案 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)