Discord.py,如何删除角色?

问题描述 投票:1回答:2

我已经尝试过很多次但仍然找不到它。我想创建一个删除服务器中所选角色的命令。这是我想出的(目前不关心权限):

@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()。谢谢你的阅读。如果您有解决方案,请随时对其进行评论。

python python-3.5 discord.py
2个回答
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删除它,server有2个参数,你要删除角色的服务器和角色本身


0
投票

所有你缺少的是delete_roleRole的论证,(它不应该,因为每个Server知道它是什么@bot.command(pass_context=True) async def delrole(ctx, role: discord.Role): await bot.delete_role(role.server, role) await bot.say("The role {} has been deleted!".format(role.name))

converters

你已经使用qazxswpoi在正确的轨道上了

© www.soinside.com 2019 - 2024. All rights reserved.