HELPER CONSTRUCTOR ДВИЖОК ФОРМ DISCORD MODAL / 10 QUESTIONS / STAFF REVIEW / VOICE CALL
Конструктор форм — универсальный модуль для заявок, whitelist, набора staff, регистрации на ивенты, RP-анкет и заказов. Владелец создаёт форму на сайте, публикует её через Discord, а HELPER ведёт весь путь: плашка → modal → staff review → обзвон → вердикт → архив.
Что делает Constructor
Это универсальный конструктор процессов. Вместо отдельного модуля под каждую анкету владелец создаёт сколько угодно форм: staff-заявку, whitelist, регистрацию на турнир, партнёрку, заказ услуги или RP-анкету.
Создание формы
На сайте задаются название, описание, вопросы, каналы и роли staff.
Публикация
Команда /constructor setup ставит выбранную форму в текущий Discord-канал.
Проверка
Ответы уходят в staff-канал с кнопками взять / одобрить / отклонить / обзвон.
Архив
Итог сохраняется в approved/rejected каналах, а временные ресурсы очищаются.
Больше информации картинками
Показываем весь путь в виде интерфейсных картинок: публичная форма, modal, продолжение второй части, staff-карточка, обзвон, архив и сайт.
Команды Discord
Discord-команды нужны для публикации уже созданных на сайте форм. Создание и тонкая настройка формы делается через Dashboard.
/constructor setup form_id:staff_applicationПубликует выбранную форму в текущем канале. Если формы нет, бот предлагает создать её на сайте.
/constructor deploy_allОбновляет все формы сервера, у которых сохранён канал публикации.
Важно
Команды работают только на сервере и только для администраторов. Если модуль выключен, бот показывает disabled-панель и не даёт заполнять старые кнопки.
Путь формы от клика до архива
публичная плашка
до 5 вопросов
часть 2/2
staff-карточка
обзвон
архив + DM
Защита от дублей
Пока у пользователя есть активная форма, новая такая же форма не создаётся.
Cooldown после отказа
После отклонения можно поставить блокировку повторной подачи на заданное число часов.
TTL и очистка
Зависшие creating/interview и старые финальные записи очищаются автоматически.
Что видит пользователь
Как работает staff
Staff не копается в базе и не пишет команды. Всё делается кнопками на карточке ответа.
Взять в работу
Ответ закрепляется за конкретным проверяющим, чтобы два staff не конфликтовали.
Назначить обзвон
Бот создаёт приватный voice-канал и переводит статус в interview.
Одобрить
Итог уходит в approved-архив, пользователю отправляется DM.
Отклонить
Staff указывает причину, включается cooldown, итог уходит в rejected-архив.
Приватный обзвон
Если ответ нужно проверить голосом, HELPER создаёт отдельный voice-канал с ограниченными правами.
Настройка на сайте
На сайте владелец собирает форму как конструктор: название, описание, вопросы, каналы, роли, cooldown, баннер и публикация.
name/custom_titleназвание формы и заголовок публичной плашки.custom_descriptionописание для пользователя перед заполнением.custom_button_textтекст кнопки “Заполнить форму”.custom_bannerсвоя картинка формы или fallback из центра баннеров.banner_channel_idканал публичной формы.log_channel_idзакрытый канал staff-карточек.approved_channel_idархив одобренных ответов.rejected_channel_idархив отклонённых ответов.staff_role_idsроли проверяющих.Что делает cog
site_sync_loop читает deploy_requested, публикует/обновляет форму и сохраняет deployed_forms.
Что можно собирать
Набор staff
Анкета для модераторов, кураторов, саппорта или хелперов.
Whitelist
Отбор игроков на закрытый сервер, RP-проект или клан.
Ивенты
Регистрация на турнир, рейд, гонку, RP-событие или конкурс.
Заказы
Форма заказа услуги, товара, дизайна, приватки или консультации.
Партнёрки
Заявка на сотрудничество с сервером, брендом или сообществом.
RP анкета
Карточка персонажа, фракции, биография или вступление в отдел.
Если модуль выключен
Отключение не удаляет настройки и историю. Старые кнопки становятся безопасными: они показывают disabled embed и не открывают новые формы.
module_states.jsonхранит состояние constructor/forms alias.is_module_active()проверяется перед командами и кликами.DisabledModuleEmbedобъясняет пользователю, что система временно обесточена.Карта технической логики
data/constructor_settings.json — формы, вопросы, каналы, роли и deploy_requested.
data/constructor.db — активные формы, cooldown, admin stats, deployed forms.
Сайт ставит deploy_requested, cog обновляет Discord-плашку и пишет результат.
Чистит зависшие creating/interview, старые active и финальные записи.
active_formsответы и статусыform_cooldownsповторная подачаadmin_statsдействия staffdeployed_formsmessage_id панелирезерв
новый
staff
канал
обзвон
итог
await update_form_config(
guild_id,
form_id,
{"banner_channel_id": channel_id},
deploy=True
)
message_id = await cog.deploy_form(guild_id, form_id, channel_id)Ошибки и решения
Команда пишет “форма не найдена”
Сначала создайте форму на сайте в Dashboard → Сервер → Конструктор / Forms. Потом используйте /constructor setup.
Форма не публикуется в канал
Проверьте права бота: View Channel, Send Messages, Embed Links, Attach Files и Use External Emojis, если используются emoji.
Пользователь не может отправить форму
Проверьте, включён ли модуль, открыта ли форма, не действует ли cooldown и нет ли уже активной формы этого пользователя.
Staff не может нажимать кнопки
Нужны права администратора или роль из staff_role_ids. Иначе HELPER не даст проверять ответы.
Обзвон не создаётся
Проверьте права Manage Channels и категорию для обзвонов. Бот должен уметь создавать voice-каналы и настраивать overwrites.
DM кандидату не пришёл
У пользователя могут быть закрыты личные сообщения. Ответ всё равно обработается и попадёт в архив.