@taqud

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

Хотел бы сделать так, чтобы определённая роль могла выдать другому человеку ту или иную роль, без прав админа, пример:
Роль: САПОРТ
Могла выдать только роль: 1, 2
И только эти две роли, никаких больше

Сам код:
@client.command()
@commands.has_permissions(administrator = True)
async def role(ctx, member: discord.Member, *, role: discord.Role):
    await member.add_roles(role)
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
Сделай структуру данных, скажем, словарь вида "id выдающей роли - список id выдаваемых ролей".
При вызове команды проверяй те роли, которые есть у отправителя команды, и смотри, может ли та или иная роль выдать указанную.

Альтернативно, сделай словарь вида "id выдаваемой роли - множество id ролей, которые могут её выдать". Так будет гораздо проще проверить права - ищешь элемент, соответствующий выдаваемой роли. Если это множество пересекается с множеством ролей отправителя команды, то он может выдать роль.

Как ты эту структуру будешь хранить - уже второй вопрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы