bot如何从用户python中删除所有角色
Posted
技术标签:
【中文标题】bot如何从用户python中删除所有角色【英文标题】:How can bot remove all roles from users 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
【问题讨论】:
【参考方案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
【讨论】:
以上是关于bot如何从用户python中删除所有角色的主要内容,如果未能解决你的问题,请参考以下文章