Вы можете сделать что-то подобное, чтобы избежать удаления только тех ролей, которые упоминаются
@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
, который принимает 2 аргумента: сервер, с которого вы хотите удалить роль, и сама роль