Безопасные роли
Одно правило на весь продукт: бот не выдаёт автоматически роль, которая является правом. Проверка одна и та же для меню ролей, наград за уровень, автоматизаций, проверки на входе, магазина экономики, авторолей приветствия и возврата ролей.
Три причины отказа
| Причина | Что это значит | Что делать |
|---|---|---|
| Роль несёт административное право | У роли выставлен один из опасных битов Discord | Уберите право у роли или выберите другую роль |
| Роль управляется интеграцией | Роль бота, подписки или буста: Discord её всё равно не отдаст | Выберите обычную роль сервера |
| Роль не ниже роли бота | Discord откажет в выдаче | Поднимите роль Kizora выше |
Какие права считаются опасными
Роль не будет выдана автоматически, если у неё есть хотя бы одно из: Администратор, Управление сервером, Управление ролями, Управление каналами, Управление вебхуками, Управление сообщениями, Бан участников, Исключение участников, Тайм-аут участникам, а также роль @everyone.
Причина простая: кнопка «получить роль» не должна быть кнопкой «стать модератором».
Когда проверка выполняется
Дважды, и это не перестраховка:
- при сохранении настройки — чтобы вы увидели проблему сразу, а не через месяц;
- непосредственно перед выдачей — потому что роль могли изменить после сохранения.
Что происходит в фоновых выдачах
Там, где объяснять некому — возврат ролей вернувшемуся участнику, снятие временной роли по сроку — Kizora выдаёт безопасное подмножество и записывает в журнал, что выдала не всё. Это лучше, чем не выдать ничего или выдать опасное.