Я работаю над ботом discord.py, никаких проблем, мой код работает нормально, но я хотел знать, как предоставить разрешения владельца бота, он должен удалить роль, которая дает все высокие разрешения (все разрешения, которые есть в Сервер ›Настройки сервера› роли ›имя роли), поэтому ему следует удалить свою роль, но он выдает эту ошибку:
discord.errors.Forbidden: 403 Forbidden (код ошибки: 50013): Отсутствуют разрешения
@bot.command(name="godRemove")
async def godremover(ctx, persona, numerogod):
channel = bot.get_channel(id=786285288469037197)
numerogod=int(numerogod)
if not numerogod>1:
numerogod=1
#hasadded=False
#hasgod=False
rolenumber=0
try:
guild=ctx.guild
if ctx.author.name in canAddGod:
for i in guild.members:
if str(i)[:-5].lower().strip()==persona.lower().strip():
for role in i.roles:
#if str(role)=="God":
#hasgod=True
if representsint(str(role)):
rolename=str(int(str(role))-numerogod).strip().lower()
rolenumber=int(rolename)
if rolenumber>1:
if discord.utils.get(ctx.guild.roles, name=rolename)!=None:
togiverole=discord.utils.get(guild.roles, name=rolename)
await i.add_roles(togiverole)
await i.remove_roles(role)
#hasadded=True
await channel.send(removedliteral)
return
else:
togiverole=await ctx.guild.create_role(name=str(int(str(role))+numerogod), colour=discord.Colour(0xFFFFFF))
await i.add_roles(togiverole)
await i.remove_roles(role)
#hasadded=True
await channel.send(removedliteral)
return
elif rolenumber==0:
await i.remove_roles(discord.utils.get(ctx.guild.roles, name="God"))
else:
await i.remove_roles(discord.utils.get(ctx.guild.roles, name="God"))
await i.remove_roles(role)
except Exception:
traceback.print_exc()
await channel.send(errorliteral)
Код немного запутан, но какое-то время я не кодировал на python, поэтому вот небольшое объяснение (ps, это небольшая забавная вещь, которую я хочу добавить на свой сервер, например, все - бог, если они делают что-то забавное, я добавляю богов, если не удаляю богов, поэтому, если у них недостаточно богов (‹0), я удалю настоящую роль бога, который дает разрешения): я получаю канал, на который я должен отправлять сообщения, которые я получаю количество богов, которых нужно удалить, я установил номер роли равным 0, затем я получаю гильдию, если имя принадлежит народам, которые могут это сделать, для каждого члена я буду искать персону, которая будет членом, из которого будут удалены боги, если роль - это int, что означает, что я нашел роль, которую хочу изменить, если количество его богов больше 1, я удаляю таких богов, как если 27 и я удаляю 20, это, возможно, создаст новую роль или дайте уже созданный, если 0, он удалит роль номера, а если ‹0, то я хочу удалить роль Бога, который дает разрешения.
ОТВЕТ: Переместите роль, у которой должно быть больше разрешений, выше, чем роль, которая должна доминировать в списке ролей!