#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 и т.д. С любым количеством ролей, которые вы хотите.