Добавлен модуль «Роли за реакции»
Новый модуль создаёт Discord-плашки, где emoji выдаёт роль, а управление доступно через сайт и Discord admin-меню.
В HELPER добавлен полноценный модуль Reaction Roles: loader-cog в общей архитектуре, пакет cogs/reaction_roles, сайт-панель, persistent view, реакции, выдача и снятие ролей, сохранение message_id и защита от дублей.
Что умеет модуль
Роли за реакции закрывают базовую задачу Discord-сервера: дать пользователю самому получить нужный доступ без участия staff.
- Создание нескольких плашек emoji → роль.
- Публикация embed-сообщения в выбранный канал.
- Редактирование старой плашки по message_id без дублей.
- Выдача роли при добавлении реакции.
- Снятие роли при удалении реакции, если это разрешено настройкой плашки.
- Discord-кнопка ⚙ Управление для администраторов.
Архитектура
Модуль сделан по той же логике, что и остальные core-модули HELPER: loader-файл активирует папку, настройки лежат в JSON, сайт ставит deploy_requested, а cog синхронизирует Discord.
- cogs/reaction_roles_cog.py — loader.
- cogs/reaction_roles/cog.py — основной Cog и sync-loop.
- settings.py / json_store.py — нормализация и atomic save.
- embeds.py / views.py / modals.py — Discord UI.
- module_reaction_roles.html — сайт-панель управления.
Файлы
cogs/reaction_roles_cog.pyloader, который активирует пакет модуляcogs/reaction_roles/основная логика Reaction Rolesweb/templates/modules/module_reaction_roles.htmlстраница управления на сайтеdata/reaction_roles_settings.jsonнастройки плашек по серверамПроверки
- Cog загружается и пишет reaction_roles_ready.
- /rolepanel открывает админ-меню.
- Сайт сохраняет systems_json.
- Пользователь получает роль при реакции.
- Повторное снятие зависит от режима плашки.