HELPER Discord Bot
RP payout core

Центр контрактов

Модуль принимает выполненные RP-контракты от игроков, отправляет доказательства на проверку staff, считает сумму по тарифам, складывает одобренные заявки в очередь выплат и формирует TXT-файл для массовой загрузки в Majestic.

Discord 4 канала Панель, проверка, выплаты и история.
Проверка Staff Одобрение, отказ, дубль и senior-проверка.
Выплаты TXT Очередь сохраняется даже после перезапуска.
Баннер Центр Ключ contracts_main.
01 • Автоустановка

Что создаёт setup

При полном сетапе HELPER собирает отдельную категорию под контракты. Это удобно для покупателей: им не нужно вручную вспоминать, какие каналы нужны модулю.

Категория: 📑 КОНТРАКТЫ
📑
📑・центр-контрактов Публичная панель для игроков. Здесь стоит embed с кнопкой “Сдать контракт”.
panel_channel_id
📥
📥・проверка-контрактов Рабочий канал staff. Сюда приходят карточки заявок, скриншоты и предупреждения о дублях.
review_channel_id
💰
💰・выплаты-контрактов Очередь выплат, TXT-пакеты и команды `/выплаты создать`, `/выплаты выплачено`, `/выплаты отменить`.
payout_channel_id
📚
📚・история-контрактов Финальная история: выплаченные пакеты, отменённые пакеты и итоговые суммы.
log_channel_id
02 • Жизненный цикл

Как заявка проходит модуль

Игрок видит только простую форму сдачи. Внутри модуль ведёт заявку по статусам, проверяет похожие сдачи и не теряет очередь выплат при перезапуске сайта или бота.

Игрок сдаёт контракт

Нажимает кнопку в центре контрактов, выбирает работу, вводит Static ID, количество, дату или время скрина, если это включено, и прикладывает доказательство.

Staff проверяет карточку

В канал проверки приходит embed с суммой, скриншотом, риском дубля и кнопками действий: одобрить, отклонить или отметить как дубль.

Одобрение идёт в очередь

После approve заявка получает статус ожидания выплаты. Публичная очередь в канале выплат обновляется автоматически.

Админ формирует TXT

HELPER собирает строки staticId;amount;comment, создаёт batch и исключает эти заявки из следующего TXT, пока пакет не будет оплачен или отменён.

03 • Работы и тарифы

Каталог работ

Каждая работа — это шаблон, который игрок выбирает в Discord-меню. По нему бот понимает цену, единицу измерения, лимиты количества и комментарий для TXT.

Название Что увидит игрок

Например: “Металлургия II”, “Другая работа”, “Сдача руды”. Это название попадает в карточку проверки.

Цена Расчёт суммы

Формула простая: количество × цена за единицу. Лимиты защищают от случайных огромных чисел.

TXT Комментарий выплаты

Короткий комментарий попадает в файл выплат. Длинные списки модуль умеет сжимать до общего текста.

Поиск Алиасы

Можно добавить слова “метал”, “руда”, “металлургия”, чтобы staff и игрокам было проще найти работу.

04 • Выплаты

Очередь, TXT и история

Одобренные заявки не оплачиваются автоматически. Модуль готовит аккуратный файл и фиксирует, что именно попало в пакет выплат.

awaiting_payout Очередь выплат

Все approved-заявки остаются в базе contracts.db до создания TXT-пакета.

exported TXT создан

Заявки из batch уже не попадут в новый файл. Если ошиблись, пакет можно отменить.

paid Выплачено

После реальной оплаты админ отмечает batch выплаченным, а итог уходит в канал истории.

05 • Панель управления

Главные настройки

В dashboard модуль разделён на понятные блоки: Discord-панель, форма сдачи, анти-дубли, роли доступа, выплаты и предпросмотр.

Каналы

Выбираются канал панели, проверки, выплат и истории. После сохранения бот обновляет постоянную плашку.

  • 1Если панель не опубликована, проверьте panel_channel_id.
  • 2Если карточки не приходят, проверьте review_channel_id.
Роли доступа

Staff-роли проверяют обычные заявки. Senior-роли нужны для заявок с высоким риском дубля.

  • Можно выбрать несколько ролей.
  • !Админ сервера всё равно может управлять модулем.
Доказательства

Модуль принимает ссылку, файл или оба способа. Скрин можно показывать прямо в карточке проверки.

  • 📎Локальные файлы хранятся в data/contracts_proofs.
  • 🧹После выплаты скрины можно очищать автоматически.
Анти-дубли

HELPER сравнивает Static ID, работу, количество, дату и время скрина в заданном окне часов.

  • 45Порог предупреждения показывает staff похожие заявки.
  • 80Высокий риск можно отправлять на senior-проверку.
Баннеры

Главная панель может брать изображение из Центра баннеров, использовать свою ссылку или работать без картинки.

  • 🌌Центральный ключ: contracts_main.
  • После обновления баннера панель контрактов переобновляется.
Режим TXT

Доступны три режима: одна выплата на игрока, группировка по контракту или каждая заявка отдельно.

  • Aper_player — чаще всего самый удобный режим.
  • Bby_contract — если бухгалтерии нужны группы по работам.
06 • Проверка staff

Что делать проверяющему

Staff не работает с базой вручную. Все решения фиксируются кнопками в карточке заявки, а игрок получает уведомление в личные сообщения, если Discord позволяет отправить DM.

Одобрить Заявка верная

Сумма уходит в очередь выплат, карточка меняет статус, а игрок получает сообщение об одобрении.

Отклонить Есть ошибка

Используется, если скрин не подходит, неверный Static ID, неправильное количество или работа не выполнена.

Дубль Повторная сдача

Если заявка повторяет уже проверенную работу, она не попадает в выплаты и остаётся в истории проверки.

07 • Проверка неполадок

Если модуль не ведёт себя как надо

Самые частые причины обычно связаны с каналами, ролями или правами бота в Discord.

Панель не появилась в центре контрактов

Проверьте, включён ли модуль, выбран ли канал панели и есть ли у бота право отправлять embed-сообщения в этот канал.

Заявки не приходят на проверку

Проверьте канал проверки. Если он не задан, бот пытается использовать канал панели, но лучше указать отдельный staff-канал.

Команды выплат не выполняются

Команды изменения выплат разрешены только в канале выплат. Это защита от случайного создания TXT не там.

Баннер не обновился

В настройках контрактов должен стоять режим “Центр баннеров”, а в центре баннеров должна быть заполнена картинка contracts_main.

Слишком много предупреждений о дублях

Увеличьте порог предупреждения или отключите дату/время в проверке дублей, если игроки часто сдают одинаковые работы.

После перезапуска очередь не пропала

Это нормальное поведение: очередь живёт в data/contracts.db, а бот восстанавливает плашку выплат после запуска.