whitelisted_roles = [12345678910, 11121314151617] #example ids
@client.command(aliases=['deleteroles', 'removeroles'])
async def clearroles(ctx, member: discord.Member=None):
if not member:
member = ctx.message.author
for role in member.roles:
if role.id in whitelisted_roles:
pass
else:
await role.delete()
我已尝试将通行证更改为
print(f"{role.id} (whitelisted))
并等待 role.delete() 到
print(f"{role.id})
它打印出的 ID 很好,所以我不知道为什么我在尝试删除角色时会收到“HTTPException: 400 Bad Request (error code: 50028): Invalid Role”。
答案 0 :(得分:1)
您要遍历所有成员角色,因此他们也必须是@everyone 角色。
除了它,使用 if role.id in whitelisted_roles or role == ctx.guild.default_role
并传递 if-Statement,因为您已经在这样做了。