Система наград через Telegram для Minecraft-серверов
by QuickProducts
QuickTgReward — современный плагин для Paper, который связывает Minecraft-аккаунты с Telegram и выдаёт настраиваемые награды за подписку на канал.
Игроки привязывают аккаунт одноразовым кодом, подписываются на ваш канал и получают еженедельные (или любые другие) награды прямо на сервере.
- Красивое меню в чате Minecraft (MiniMessage, градиенты, кликабельные кнопки)
- Полноценный Telegram-бот с inline-меню
- Проверка подписки через
getChatMember - Гибкая система наград: команды, предметы, Vault, опыт, LuckPerms, случайные награды
- Кулдауны, одноразовые и повторяемые награды
- SQLite + HikariCP, транзакции, защита от повторной выдачи
- Полностью настраиваемые сообщения, кнопки, цвета
- Модульная архитектура, асинхронные запросы к Telegram
- Tab-completion и permissions
Реальные скриншоты появятся после установки на сервер. Ниже — описание интерфейса.
Minecraft-чат
QuickTgReward • Telegram Rewards
Статус аккаунта: Не привязан
Статус награды: Доступна после привязки
Привяжите Telegram, подпишитесь на канал и получайте награды!
[Привязать аккаунт] [Открыть Telegram]
Telegram-бот
- Главное меню с кнопками «Получить награду», «Привязать Minecraft», «Мой профиль» и др.
- Профиль с ником, статусом подписки и временем следующей награды
- Скачайте последний
QuickTgReward-x.x.x.jarиз Releases. - Поместите JAR в папку
plugins/вашего Paper-сервера (1.21.1+). - Запустите сервер один раз, чтобы создались конфиги.
- Настройте
plugins/QuickTgReward/telegram.yml— укажите токен бота и ID канала. - Перезапустите сервер или выполните
/qtgreward reload.
- Откройте @BotFather в Telegram.
/newbot→ укажите имя и username.- Скопируйте токен в
telegram.yml→bot.token. - Укажите
bot.usernameбез@.
- Добавьте бота в ваш канал/группу как администратора.
- Выдайте право «Просмотр участников» / «Add Users» (нужно для
getChatMember). - Укажите ID канала (
@usernameили-100...) вtelegram.yml→channel.id. - Укажите invite-ссылку в
channel.invite-link.
Основные файлы:
| Файл | Назначение |
|---|---|
config.yml |
Основные настройки, кулдауны, лимиты |
messages.yml |
Все сообщения Minecraft |
telegram.yml |
Токен, тексты и кнопки бота |
rewards.yml |
Награды и действия |
gui.yml |
Цвета и оформление |
database.yml |
SQLite и пул соединений |
Пример config.yml уже содержит рекомендуемые значения. Все параметры реально используются в коде.
Важно: токен бота никогда не должен попадать в публичные репозитории. Используйте .gitignore или секреты CI.
| Команда | Описание | Permission |
|---|---|---|
/tg |
Главное меню | qtgreward.use |
/tg link |
Получить код привязки | qtgreward.link |
/tg unlink confirm |
Отвязать аккаунт | qtgreward.unlink |
/tg reward |
Получить награду | qtgreward.reward |
/tg status |
Статус аккаунта | qtgreward.status |
/tg help |
Справка | qtgreward.use |
| Команда | Описание | Permission |
|---|---|---|
/qtgreward reload |
Перезагрузить конфиги | qtgreward.admin.reload |
/qtgreward status |
Статус Telegram-бота | qtgreward.admin |
/qtgreward give <player> <reward> |
Выдать награду | qtgreward.admin.give |
/qtgreward reset <player> |
Сбросить награды | qtgreward.admin.reset |
/qtgreward unlink <player> |
Принудительно отвязать | qtgreward.admin.unlink |
/qtgreward check <player> |
Проверить данные | qtgreward.admin.check |
qtgreward.use — базовые команды (default: true)
qtgreward.link — привязка
qtgreward.unlink — отвязка
qtgreward.reward — получение наград
qtgreward.status — просмотр статуса
qtgreward.admin — все админ-команды (default: op)
qtgreward.admin.reload
qtgreward.admin.give
qtgreward.admin.reset
qtgreward.admin.unlink
qtgreward.admin.check
Требуется JDK 21.
git clone https://github.com/QuickProducts/QuickTgReward.git
cd QuickTgReward
./gradlew buildГотовый JAR: build/libs/QuickTgReward-1.0.0.jar
На Windows (PowerShell):
.\gradlew.bat buildБот не запускается
Проверьте токен и наличие интернета. В логах не должно быть «token not set».
Проверка подписки не работает
Бот должен быть администратором канала с правом просмотра участников. ID канала должен быть корректным.
Награда не выдаётся
Игрок должен быть онлайн. Проверьте rewards.yml и наличие Vault/LuckPerms при необходимости.
Код привязки не принимается
Код одноразовый и живёт 5 минут (настраивается). Не превышайте лимит попыток.
| Проблема | Решение |
|---|---|
ClassNotFoundException |
Используйте Shadow JAR из Releases |
| SQLException | Проверьте права на папку plugins/QuickTgReward/data |
| TelegramApiException | Проверьте токен и права бота |
| Двойная выдача | Плагин использует транзакции; убедитесь, что не запускаете два инстанса |
MIT © QuickProducts
Made with ❤️ by QuickProducts