Я делаю Discord BOT с использованием библиотеки discord.py-rewrite
, и у меня возникла проблема. Действительно, я делаю команду, которая может удалить все разрешения из указанных нами ролей. Но я хочу, чтобы эту команду могли использовать только участники с разрешением Manage Roles
, но участники также должны иметь все разрешения ролей, которые они изменяют. Например, участник с разрешением Manage Roles
, но без разрешения View Audit Log
НЕ СМОЖЕТ выполнить эту команду для ролей с разрешение View Audit Log
. Кто-нибудь, пожалуйста, как я могу справиться с этим?
discord.py - Команда для изменения ролей, которые нельзя использовать, если у роли есть разрешения, которых у пользователя нет
Ответы (1)
Получите Permissions
роли и автора, затем подтвердите, что разрешения роли являются подмножеством разрешений авторов:
@bot.command()
@has_permissions(manage_roles=True)
async def remove_role(ctx, *, role: Role):
if role.permissions <= ctx.author.permissions_in(ctx.message.channel):
...
else:
await ctx.send("You are missing permissions")
person
Patrick Haugh
schedule
15.04.2019
Большое спасибо за ответ Патрик Хо, но это не работает :(
- person TheOneMusic; 16.04.2019
Нужно ли нам зацикливать разрешения каждой роли и смотреть, есть ли у автора все эти разрешения?
- person TheOneMusic; 16.04.2019
Нет, объект
Permissions
предоставляет нам функции подмножества. Что вы имеете в виду, когда говорите, что это не работает? Вы видите ошибку, разрешает ли это людям без правильных разрешений или ограничивает людей, у которых есть правильные разрешения?
- person Patrick Haugh; 16.04.2019
Я тестировал это на собственном сервере, но он не позволяет мне использовать команду
- person TheOneMusic; 30.04.2019