我将如何从公会的所有成员中删除某些角色?

问题描述 投票:0回答:1

我正在尝试拥有用户可以分配的自定义角色,以便可以访问特定的语音/文本通道,并且我希望能够通过一个命令从所有拥有该角色的人中删除所述角色(因此我正在努力为上述角色添加更多功能,因此我可以确保没有人真正干涉过)。

[目前,到目前为止,我正在使用它,它的意思是从键入命令的人员中删除所有自定义角色,因为现在我仅是为管理员使用的,但实际上并没有工作哈哈哈。

@bot.command()
@commands.has_permissions(ban_members=True)
async def swipe(ctx):
    member = ctx.message.author
    role1 = get(member.guild.roles, name = "Minecraft")
    role2 = get(member.guild.roles, name = "CS:GO")
    role3 = get(member.guild.roles, name = "Valorant")
    role4 = get(member.guild.roles, name = "PUBG")
    role5 = get(member.guild.roles, name = "TF2")
    role6 = get(member.guild.roles, name = "COD")
    await member.remove_roles(role1, role2, role3, role4, role5, role6)
    await ctx.send(f'Removed **all** experimental roles.')

总而言之,我正在尝试创建一个命令,使管理员能够从服务器中所有具有上述角色的人中删除某些角色(Minecraft,CS:GO,Valorant,PUBG,TF2,COD)用一个命令(滑动)。欢迎所有建议和想法!

谢谢你!

python python-3.x discord.py discord.py-rewrite
1个回答
0
投票

假设正在从get()导入discord.utils

@bot.command()
@commands.has_permissions(ban_members=True)
async def swipe(ctx):
    member = ctx.message.author
    role_names = ("Minecraft", "CS:GO", "Valorant", "PUBG", "TF2", "COD")
    roles = tuple(get(member.guild.roles, name=n) for n in role_names)
    await member.remove_roles(*roles)
    await ctx.send(f'Removed **all** experimental roles.')

参考:

© www.soinside.com 2019 - 2024. All rights reserved.