Телеграм-бот сообщества Minecraft-сервера Warden SMP. Закрывает всю рутину серверного комьюнити: приём в вайтлист, обратную связь, отзывы, предложку новостей, модерацию и живой мониторинг сервера — из одного чата, без захода в консоль.
Написан на Python и Aiogram 3, состояние в SQLite, связь с игровым сервером по RCON.
Вайтлист. Игрок подаёт анкету прямо в боте, заявка уходит админам с кнопками. При одобрении бот сам добавляет ник в вайтлист сервера командой RCON — руками в консоль лезть не нужно.
Обратная связь и тикеты. Жалобы и вопросы через бота: игрок выбирает тип обращения, текст падает админам в отдельном формате.
Отзывы. Кнопка «Оставить отзыв» — отзывы публикуются в отдельную группу отзывов. Оставить может только участник группы.
Предложка новостей. Игроки предлагают новости, бот собирает их и передаёт на модерацию перед публикацией.
Модерация. Баны и муты прямо из бота, со сроком или навсегда. Себя забанить бот не даст.
Панель сервера. Статус в реальном времени по RCON: сколько игроков из скольких онлайн, список плагинов, TPS.
Мониторинг. Фоновый цикл следит за сервером и шлёт админам уведомления: упал сервер или поднялся, детект причины краша, TPS с цветовой индикацией (✅ ≥19,
Роли админов. Главный админ (владелец) управляет вайтлистом и рассылкой. Младшие админы — всё остальное: модерация, тикеты, панель.
Защита. 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.pyBOT_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