如何使用discord.py删除角色?

时间:2019-12-16 22:03:11

标签: python python-3.x discord discord.py

使用以下代码行:

@bot.command(pass_context=True)
async def ban_role(ctx, *,role_name):
  role = discord.utils.get(ctx.message.server.roles, name=role_name)
  if role:
    try:
      await ctx.delete_role(ctx.message.server, role)
      await ctx.send("The role {} has been deleted!".format(role.name))
    except discord.Forbidden:
      await ctx.send("Missing Permissions to delete this role!")
  else:
    await ctx.send("The role doesn't exist!")

我得到了错误:

traceback

1 个答案:

答案 0 :(得分:1)

您使用的Discord.py v0.16版本过时的语法不再受支持。
请参见migration guide for v1,特别是Server is now Guild

您也可以直接从Context object's guild attribute获取公会,而不用通过其message属性。

另外,除非覆盖了Context,否则它将没有delete_role方法。
您将改为使用Role.delete方法。

有关降价的帮助,请参见https://stackoverflow.com/editing-help