【问题标题】:The command removes the role from everyone who owns it该命令从拥有它的每个人中删除该角色
【发布时间】:2022-06-10 19:24:06
【问题描述】:

我想要一个命令从拥有它的每个人中删除该角色。我尝试如下,但它不起作用。谁能帮帮我。
`

@commands.command()
async def keyall(self, ctx):
        guild = ctx.guild
        role1 = discord.utils.get(guild.roles, name="test1")
        role2 = discord.utils.get(guild.roles, name="test2")
        role3 = discord.utils.get(guild.roles, name="key 3")
        roles = {role1, role2, role3}
        for user in guild.members:
            for role in roles:
                if role in user.roles:
                    await user.remove_roles(role)

`

【问题讨论】:

  • 为什么不起作用?你能告诉我们错误和完整的回溯吗?

标签: discord.py


【解决方案1】:

您可以使用role.members,而不是使用guild.members。因此,该命令仅适用于具有该角色的成员。对于这些文档,您可以查看here

@commands.command()
async def removerole(self, ctx):
    role_name_list = ['role1', 'role2', 'etc..']
    for role_name in role_name_list:
        role = get(ctx.guild.roles, name=role_name)
        for member in roles.members:
            await member.remove_roles(role)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2021-08-13
    • 2021-11-06
    • 1970-01-01
    • 2021-08-26
    • 2021-07-31
    相关资源
    最近更新 更多