我想锁定一些等级,以使董事会中只有一个等级,例如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
该机器人在该板上排名。有什么想法吗?
答案 0 :(得分:1)
不管缩进是否正确,Member.roles
都会返回list个Role
,因此i
将是一个Role
对象。
由于if j in i
对象不可迭代,因此TypeError
将引发Role
。
如果tab
是Role
对象的列表,则只需检查i
是否在该列表中。
否则,如果它是角色名称的列表,则可以使用name
的{{1}}属性来检查它是否在列表中。