Как мне удалить все роли discord?

#python #discord #discord.py

#python #Discord #discord.py

Вопрос:

У меня есть несколько серверов, где я хотел бы удалить все роли, которые я ранее создал, но их количество оставляет желать лучшего.. Я создал команду, которая удаляет одну роль. Пожалуйста, помогите создать команду, которая удалит все роли с сервера discord

 @client.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 client.delete_role(ctx.message.server, role)
      await client.say("The role {} has been deleted!".format(role.name))
    except discord.Forbidden:
      await client.say("Missing Permissions to delete this role!")
  else:
    await client.say("The role doesn't exist!")
  

Комментарии:

1. for role in ctx.message.server.roles: [your deletion logic here] должно получиться просто отлично

Ответ №1:

Как сказал Лукас Талер, вы можете просто перебирать все роли на сервере, но если вы хотите просто удалить несколько ролей, вы можете попробовать это.

 @client.command()
async def delrole(ctx, *, roles: discord.Role):
    for role in roles:
        try:
            await client.delete_role(ctx.message.guild, role)
        except discord.Forbidden:
            await client.say("Missing Permissions to delete this role!")
  

Формат для использования этой команды будет следующим: !delrole @role1 @role2 @role3 и т.д. С любым количеством ролей, которые вы хотите.