删除成员最高角色的机器人(discord.py)

时间:2020-06-17 14:37:09

标签: python discord.py

我做了一个命令,服务器中的任何人都可以使用,但是我试图使该成员在我身上使用时失去最高的角色,并用特定的角色代替。而且我遇到了麻烦,我无法从成员中删除角色,尝试了以下代码:

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)”。我是否缺少某些功能?

1 个答案:

答案 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')