как сделать что бы участник с правами бана не мог забанить другого участника у которого выше роль но такие же права discord.py

Рейтинг: 0Ответов: 1Опубликовано: 15.07.2023

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

Ответы

▲ 1

Чтобы проверить, что роль одного участника ниже в иерархии другого участника, достаточно сравнить две роли оператором <.

from discord import Member
from discord.ext import commands

bot = commands.Bot()


@bot.command()
async def check(ctx: commands.Context, member: Member):
    role_author = ctx.author.roles[-1]
    role_member = member.roles[-1]
    # Если роль ниже, то не даём забанить пользователя
    if role_author < role_member:
        ...
    # Иначе, даём такую возможность
    else:
        ...

В данном примере для сравнения, использовал самые высокие роли пользователей в иерархии. Узнать подробнее про класс Role можно тут.