Как сделать чтобы команду можно было использовать только против людей с низшей ролью?

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


Ответы (2 шт):

Автор решения: Merka

Вы можете сравнивать позиции высшей роли(Либо позицию сразу же роли модератора, если выше вдруг у вас что то ещё есть) у модератора и пользователя и если роль пользователя ниже позиции модератора, то что то выполнять

roleOne = get(ctx.guild.roles, id=guild.get_member(ctx.author.id).top_role.id) # Высшая роль
roleMember = get(guild.roles, id=ctx.guild.get_member(int(ИД пользователя)).top_role.id) # Высшая роль у пользователя
                    
if roleOne.position > roleMember.position:
    print(" > ")
→ Ссылка
Автор решения: denisnumb

В документации можно найти атрибут position класса discord.Role.

Применяем его к роли модератора и к роли участника, и смотрим, чтобы у модератора значение было больше

→ Ссылка