bot如何从用户python

时间:2020-06-05 13:27:48

标签: python bots discord roles

您好,我想知道如何从所有用户中删除所有角色。如果您有任何想法,请告诉我,我已经尝试过此代码,但是没有用。

@client.command(pass_context=True)
async def rl(ctx):
    guild=ctx.message.guild
    for member in tuple(guild.members):
        try:
            await removeRoles(all)
        except:
            continue

2 个答案:

答案 0 :(得分:0)

我不确定是否有一个功能可以一次删除所有角色。我会用两个for循环来解决它:

async def rl(ctx):
    async for member in ctx.guild.fetch_members():
        for role in member.roles:
            await member.remove_roles(role)

ctx.guild.fetch_members()应该返回公会/服务器的所有成员对象。那么您可以一个接一个地删除所有角色。也许不是最好的方法,但是它应该可以工作。只需确保fetch_members()具有异步功能即可,因为它具有异步迭代器。

答案 1 :(得分:0)

removeRoles()不是函数。我使用member.roles来获取discord.Role的列表,然后将其解压缩到member.remove_roles()中。

此外,您无需使其成为一个元组。

这是最终代码:

@client.command(pass_context=True)
async def rl(ctx):
    guild = ctx.message.guild
    for member in guild.members:
        try:
            roles = member.roles
            await member.remove_roles(*roles)
        except:
            continue