discord.py中角色的命令

时间:2020-10-24 22:08:09

标签: python discord discord.py

我正在尝试为我的discord机器人添加一个验证系统,该系统会c.verify来获得“已验证”角色,但是我在赋予该角色时遇到了麻烦,并且我发现的所有内容均无法正常工作。这就是我所拥有的:

    @commands.command(pass_context=True)
    async def verify(self, ctx):
        role = get(ctx.author.roles, name="TOS Verified")
        if ctx.channel.id == 769016529450303519:
            await ctx.message.delete()
            await ctx.send(f"{ctx.author.mention} has been verified.")
            sleep(1)
            await ctx.channel.purge(limit = 1)
            await bot.add_roles(ctx.message.author, role)
        else:
            await ctx.message.delete()
            await ctx.send("You can not verify here.")

我得到的错误是“机器人没有属性add_roles”。一切正常,直到必须添加角色,但是我不知道为什么我不能添加角色。

1 个答案:

答案 0 :(得分:1)

好吧,让我们从头开始,

role = get(ctx.author.roles, name="TOS Verified")

在这里,您正试图从运行命令的人那里获得一个名为TOS Verified的角色,这没有任何意义,因为如果他们试图验证自己将没有该角色。我们实际上是想从公会这样的角色中获取这一点:

role = get(ctx.guild.roles, name="TOS Verified")

第二个问题

await bot.add_roles(ctx.message.author, role)

Bot没有add_roles属性,查看它告诉我们的文档,它实际上是Member方法。在您的情况下,您的Member对象将为ctx.author

await ctx.author.add_roles(role)