Discord.py,如何删除角色?

时间:2018-09-07 03:49:57

标签: python python-3.5 discord.py

我已经尝试和研究了很多次,但仍然找不到。我要发出删除服务器中选定角色的命令。这是我想出的(目前不在乎权限):

@bot.command(pass_context=True)
async def delrole(ctx, role: discord.Role):
    await bot.delete_role(role)
    await bot.say("The role {} has been deleted!".format(role.name))

如果您可以帮助,那就太好了。我使用过以下角色:discord.Roledelete_role()。感谢您的阅读。如果您有解决方案,请随时发表评论。

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作以避免只能删除可提及的角色

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

在其中进行!delrole name_of_role并使用discord.utils.get从服务器上的角色列表中按角色名称查找角色。
然后,如果找到它,则可以使用带有两个参数的bot.delete_role将其删除,您要从中删除角色的服务器以及角色本身

答案 1 :(得分:0)

您所缺少的只是server的{​​{1}}参数(它不需要使用,因为每个delete_role都知道Role的来源)< / p>

Server

您已经使用converters

进入了正确的轨道