【发布时间】:2021-04-01 14:39:47
【问题描述】:
我有一个问题,我试图删除用户对某种静音角色的所有角色,但它给了我这个错误discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NotFound: 404 Not Found (error code: 10011): Unknown Role
这是我的代码
@client.command(aliases=['m'])
@commands.has_permissions(kick_members = True)
async def mute(ctx,member : discord.Member):
muteRole = ctx.guild.get_role(728203394673672333)
for i in member.roles:
await member.remove_roles(i)
await member.add_roles(muteRole)
await ctx.channel.purge(limit = 1)
await ctx.send(str(member)+' has been muted!')
我知道这种问题已经在这里问过:How to remove all roles at once (Discord.py 1.4.1)。 但它没有得到回答,根本没有帮助我
【问题讨论】:
-
正如它所说的“未知角色”,我认为问题出在
muteRole = ctx.guild.get_role(728203394673672333)。我建议您尝试使用其名称获取角色,例如muteRole = discord.utils.get(member.guild.roles, name='rolename')。 -
muttRole 变量对它用于添加而不是删除的循环没有影响,它在我添加
for i in member.roles: await member.remove_roles(i)循环之前也有效 -
根据here。您可以使用
await member.remove_roles(member.roles)删除用户的所有角色。也许你可以试试看。
标签: python discord.py