Skip to content

Repository files navigation

SMP Bot

Телеграм-бот сообщества Minecraft-сервера Warden SMP. Закрывает всю рутину серверного комьюнити: приём в вайтлист, обратную связь, отзывы, предложку новостей, модерацию и живой мониторинг сервера — из одного чата, без захода в консоль.

Написан на Python и Aiogram 3, состояние в SQLite, связь с игровым сервером по RCON.

Возможности

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

Обратная связь и тикеты. Жалобы и вопросы через бота: игрок выбирает тип обращения, текст падает админам в отдельном формате.

Отзывы. Кнопка «Оставить отзыв» — отзывы публикуются в отдельную группу отзывов. Оставить может только участник группы.

Предложка новостей. Игроки предлагают новости, бот собирает их и передаёт на модерацию перед публикацией.

Модерация. Баны и муты прямо из бота, со сроком или навсегда. Себя забанить бот не даст.

Панель сервера. Статус в реальном времени по RCON: сколько игроков из скольких онлайн, список плагинов, TPS.

Мониторинг. Фоновый цикл следит за сервером и шлёт админам уведомления: упал сервер или поднялся, детект причины краша, TPS с цветовой индикацией (✅ ≥19, ⚠️ ≥15, ❌ ниже), частота и температура ЦП, память, диск, состояние бэкапов.

Роли админов. Главный админ (владелец) управляет вайтлистом и рассылкой. Младшие админы — всё остальное: модерация, тикеты, панель.

Защита. Middleware проверки членства в группе (не участник — не пользуется), троттлинг от флуда.

Устройство

bot.py                точка входа: роутеры, middleware, запуск мониторинга
config.py             настройки из .env, роли админов
db.py                 SQLite: пользователи
storage.py            кэш пользователей в памяти
rcon.py               связь с Minecraft-сервером по RCON
monitor.py            фоновый мониторинг: аптайм, краши, TPS, железо
notify.py             рассылка уведомлений админам
keyboards.py          клавиатуры
states.py             FSM-состояния анкет и форм
middlewares/
  membership.py       доступ только участникам группы
  throttle.py         антифлуд
handlers/
  start.py            старт, меню, обратная связь
  form.py             анкета вайтлиста
  ticket.py           жалобы и вопросы
  review.py           отзывы
  suggest.py          предложка новостей
  moderation.py       баны и муты со сроком
  admin.py            одобрение заявок, вайтлист по RCON
  panel.py            статус сервера: игроки, плагины, TPS
  rules.py            правила
  welcome.py          приветствие новичков

Запуск

python -m venv .venv && .venv/bin/pip install -r requirements.txt
cp .env.example .env    # заполнить токен, ADMIN_ID, RCON и пути
.venv/bin/python bot.py

Настройка (.env)

BOT_TOKEN, ADMIN_ID (владелец), JUNIOR_ADMINS (список id через запятую), RCON_HOST / RCON_PORT / RCON_PASS, MC_LOG_PATH (лог сервера для детекта крашей), BACKUP_ROOT, REVIEWS_GROUP_ID, PROXY_URL (SOCKS5, если нужен).

Стек

Python · Aiogram 3 · SQLite · RCON

About

A Telegram bot for developing your local Minecraft Server! Based on Py+Aiogram3 + RCON for doing for SMP's routine

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages