【问题标题】:How can bot remove all roles from users pythonbot如何从用户python中删除所有角色
【发布时间】:2020-09-24 17:24:37
【问题描述】:

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

@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

【问题讨论】:

    标签: python bots discord roles


    【解决方案1】:

    我不确定,是否有一次删除所有角色的功能。我会用两个 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() 有一个异步,因为它是一个异步迭代器。

    【讨论】:

      【解决方案2】:

      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
      

      【讨论】:

        猜你喜欢
        • 2020-12-27
        • 2019-11-01
        • 2019-04-07
        • 2017-04-25
        • 1970-01-01
        • 2020-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多