与不和谐的py锁定等级

时间:2020-01-19 21:28:33

标签: python discord.py

我想锁定一些等级,以使董事会中只有一个等级,例如tab = [rank1, rank2, rank3, rank4, ...]。 例如,如果我有rank1,则无法获得rank2。 我的代码是:

async def rank(ctx, *, role:discord.Role):
member = ctx.message.author
for i in member.roles:
    for j in tab:
       if j in i:
           if role.name == j:
               await ctx.send(f"You can't get this role")
               return

该机器人在该板上排名。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

不管缩进是否正确,Member.roles都会返回listRole,因此i将是一个Role对象。
由于if j in i对象不可迭代,因此TypeError将引发Role

如果tabRole对象的列表,则只需检查i是否在该列表中。
否则,如果它是角色名称的列表,则可以使用name的{​​{1}}属性来检查它是否在列表中。