因此,我想出了与createrole命令类似的命令。除了最后一行代码,其他所有内容都可以正常工作。我只是不明白为什么它不会删除。每次发送代码时,都会出现此错误:discord.ext.commands.errors.CommandInvokeError:命令引发了异常:TypeError:delete()收到了意外的关键字参数“名称”。我正在使用最新版本的python和discord.py。
@client.command(aliases=['delrole'])
@commands.has_permissions(manage_roles=True)
async def deleterole(ctx, *,role, reason=None):
delrole = role
guild = ctx.guild
for role in guild.roles:
if role.name == delrole:
await ctx.send(delrole)
await role.delete(name=delrole)
答案 0 :(得分:0)
摆脱name = delrole,将其保留为role.delete(),这应该删除该角色!最后添加ctx.send(“角色已删除”),以便您知道何时删除该角色。您也可以删除ctx.send(delrole)使其更干净,但我还是留下了。
@commands.has_permissions(manage_roles=True)
async def deleterole(ctx, *,role, reason=None):
delrole = role
guild = ctx.guild
for role in guild.roles:
if role.name == delrole:
await ctx.send(delrole)
await role.delete()
await ctx.send(f’The role {delrole} has been created!’)```