我正在尝试为我的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”。一切正常,直到必须添加角色,但是我不知道为什么我不能添加角色。
答案 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)