Бот для автоматической выдачи игровых серверов через Pterodactyl панель с проверкой подписки на Telegram канал.
- ✅ Проверка подписки на канал (минимум 10 минут)
- ✅ Указание email для входа в панель
- ✅ Автоматическое создание сервера в Pterodactyl
- ✅ Просмотр своих серверов
- ✅ Защита от спама
- ✅ Красивый интерфейс с кнопками
- ✅ Бан/разбан пользователей по ID или username
- ✅ Выдача серверов пользователям
- ✅ Удаление серверов пользователей
- ✅ Логирование всех действий
- ✅ Панель управления с кнопками
git clone https://github.com/CloudSPB-RU/bot/
cd botpip install -r requirements.txtСоздайте файл .env на основе env_example.txt:
# Telegram Bot Token
BOT_TOKEN=your_bot_token_here
# Pterodactyl API
PTERODACTYL_TOKEN=your_pterodactyl_token_here
PTERODACTYL_URL=https://your-panel-domain.ru
# Telegram Channel
CHANNEL_USERNAME=@your_channel_username
# Admin IDs (через запятую)
ADMIN_IDS=123456789,987654321База данных SQLite создается автоматически при первом запуске в папке db/users.db.
python test_connection.pypython bot.py- Войдите в панель Pterodactyl как администратор
- Перейдите в Settings → API Credentials
- Создайте новый API ключ с правами:
- Server Creation
- Server Management
- User Management
В файле pterodactyl_api.py настройте параметры серверов:
nest- ID гнездаegg- ID яйцаlimits- лимиты ресурсовenvironment- переменные окружения
/start- Главное меню/check- Проверить подписку/help- Справка
/ban <user_id или @username> [причина]- Забанить пользователя/unban <user_id или @username>- Разбанить пользователя/giveserver <user_id или @username>- Выдать сервер (с автоматической генерацией учетных данных)/deleteserver <user_id или @username>- Удалить сервер/admin- Панель администратора
- 📊 Статистика - Подробная статистика пользователей и серверов
- 👥 Управление пользователями - Бан/разбан пользователей
- 🖥️ Управление серверами - Выдача/удаление серверов
- 📝 Логи действий - История действий администраторов
bot/
├── bot.py # Основной файл бота
├── requirements.txt # Зависимости
├── env_example.txt # Пример переменных окружения
├── README.md # Документация
├── db/
│ ├── database.py # Работа с базой данных
│ └── users.db # База данных SQLite
├── commands/
│ ├── start.py # Команда /start
│ ├── check.py # Команда /check
│ └── admin.py # Админские команды
├── utils/
│ └── credentials.py # Генератор безопасных учетных данных
├── subscription_checker.py # Проверка подписки
├── pterodactyl_api.py # API Pterodactyl
└── test_admin_functions.py # Тест админских функций
- Ограничение 3 запроса за 10 секунд
- Проверка подписки на канал
- Логирование всех действий
- Автоматическая генерация уникальных учетных данных
- Хеширование паролей для безопасного хранения
- Проверка существования пользователей в панели
- Проверка email формата
- Валидация Telegram ID
- Проверка прав администратора
- SQLite с индексами для быстрой работы
- Транзакции для целостности данных
- Логирование всех изменений
Бот ведет подробные логи всех действий:
- Создание/удаление серверов
- Бан/разбан пользователей
- Ошибки API
- Действия администраторов
При возникновении проблем:
- Запустите
python test_connection.pyдля диагностики - Проверьте логи в консоли
- Убедитесь в правильности токенов
- Проверьте доступность Pterodactyl API
- Убедитесь в правах бота в канале (должен быть администратором)
- См. файл
SETUP_INSTRUCTIONS.mdдля подробных инструкций
MIT License