我做了一个命令,服务器中的任何人都可以使用,但是我试图使该成员在我身上使用时失去最高的角色,并用特定的角色代替。而且我遇到了麻烦,我无法从成员中删除角色,尝试了以下代码:
role=member.top_role
await member.remove_roles(role)
和
roles=member.roles
role_list=roles[:-1]
await member.edit(roles=role_list)
编辑: 这是我用来测试“删除角色功能”是否正常的命令:
@client.command()
async def take(ctx , member:discord.Member):
roles = member.roles
roles.reverse()
top_role = roles[0]
await member.remove_roles(top_role)
await ctx.send('top role removed')
我尝试了这些,没有任何反应,没有错误,没有任何反应。我进行了一些测试,将代码分成几部分,所有工作正常,直到在第一种情况下是“ await member.remove_roles(role)”,在第二种情况下是“ await member.edit(roles = role_list)”。我是否缺少某些功能?
答案 0 :(得分:0)
编辑:答案已更新。 ctx.author是成员。 您可以在官方文档中找到所有内容。 Discord.py
@client.command()
async def take(ctx):
roles = ctx.author.roles #list of roles, lowest role first
roles.reverse() #list of roles, highest role first
top_role = roles[0] #first entry of list
await ctx.author.remove_roles(top_role)
await ctx.send('top role removed')