Discord.py Переписать проверку иерархии ролей - PullRequest
0 голосов
/ 29 апреля 2020

Я написал бота в discord.py переписать. Пока у него есть только базовые опции c, такие как! Kick,! Ban и! Unban. Тем не менее, в настоящее время установлено, что любой, имеющий соответствующие разрешения, может сделать это с кем угодно. Это означает, что кто-то с рангом «Модератор» может забанить кого-то с рангом «Администратор», что недопустимо. Как добавить простую проверку, чтобы увидеть, является ли ранг человека выше / ниже человека, которого он пытается пнуть / заблокировать?

1 Ответ

0 голосов
/ 30 апреля 2020

Member объекты имеют атрибут top_role, и вы можете сравнивать роли напрямую (более высокие роли "больше"):

@bot.command()
async def ban(ctx, target: Member):
    if target.top_role >= ctx.author.top_role:
        await ctx.send("You can only ban people below you")
        return
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...