您好,我想知道如何从所有用户中删除所有角色。如果您有任何想法,请告诉我,我已经尝试过此代码,但是没有用。
@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
答案 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