Telegram-бот для управления whitelist Minecraft сервера через RCON.
Подходит для:
- Локального запуска
- Запуска на хостинге
- Белый IP не требуется
Бот работает с любым сервером, где есть поддержка RCON.
- Подача заявок на whitelist
- Автоматическая проверка шаблона заявки
- Фильтрация ника (A-Z, a-z, 0-9, _)
- Разделение лицензии и пиратки
- Привязка Telegram ID к нику
- Локальная база игроков
- Управление whitelist через RCON
- Админ-система
- Отправка сборки (.mrpack)
- Выполнение серверных команд через Telegram
- Система жалоб (v1.0.4+)
- Система тикетов (v1.0.5+)
- Донат-система с промокодами (v1.0.5+)
- Смена ника, цвета ника и префикса через промокоды (v1.0.5+)
- Поддержка
.envдля конфигурации (v1.0.5+) - Фильтр никнеймов с чёрным списком слов (v1.0.5+)
- Rate limit на заявки, жалобы и тикеты (v1.0.5+)
- Кулдаун на смену ника (v1.0.5+)
MAIN_ADMIN_USERNAME=ErrnickВ старых версиях:
const MAIN_ADMIN = 'Errnick'; // заменить на свой usernameTG_TOKEN_MAIN=YOUR_MAIN_BOT_TOKEN
TG_TOKEN_TEST=YOUR_TEST_BOT_TOKENВ коде:
const TEST_MODE = 1; // 0 — основной бот, 1 — тестовыйRCON_HOST=your_rcon_host
RCON_PORT=12345
RCON_PASSWORD=YOUR_RCON_PASSWORDTG_CHAT_ID=YOUR_CHAT_ID
TG_CHAT_LINK=https://t.me/your_chat
TG_CHANNEL_LINK=https://t.me/your_channel
WIKI_LINK=https://your_wiki_link
MC_SERVER_ADDRESS=your.server.address| Команда | Что делает |
|---|---|
заявка |
Создать заявку на whitelist |
жалоба |
Создать жалобу на игрока (v1.0.4+) |
тикет <текст> |
Создать тикет в поддержку (v1.0.5+) |
список |
Показать список игроков (локальная база) |
проверить <ник> |
Проверить ник в базе и на сервере |
промокод / промо |
Активировать промокод (v1.0.5+) |
админы |
Показать список админов |
сайт |
Отправить ссылку на магазин / донат |
мой ник |
Показать свой ник из базы |
ник (ответом на сообщение) |
Показать ник пользователя |
| Команда | Что делает |
|---|---|
/start |
Приветствие и ссылки на ресурсы сервера (v1.0.5+) |
/help |
Список всех команд (v1.0.5+) |
/profile |
Профиль: ник, активные донаты (v1.0.5+) |
/donate |
Интерактивное меню донатов (v1.0.5+) |
/promo [код] |
Активировать промокод (v1.0.5+) |
/link |
Привязать игровой ник (v1.0.5+) |
/nickcolor |
Сменить цвет ника (v1.0.5+) |
/setnick |
Сменить отображаемый ник (v1.0.5+) |
/setprefix |
Установить префикс (v1.0.5+) |
| Команда | Описание |
|---|---|
админ add @user |
Добавить администратора |
админ remove @user |
Удалить администратора |
/addadmin <username> |
Добавить администратора (v1.0.5+) |
/removeadmin <username> |
Удалить администратора (v1.0.5+) |
/admin |
Панель генерации промокодов (v1.0.5+) |
генерировать [тип] |
Сгенерировать промокод вручную (v1.0.5+) |
коды / промокоды |
Список активных промокодов (v1.0.5+) |
сборка |
Отправить .mrpack файл |
команда |
Выполнить команды через RCON |
добавить |
Добавить игрока без заявки |
удалить |
Удалить игрока из базы и whitelist |
Заявка должна содержать ровно 7 строк:
Заявка
Ник в Minecraft
Лицензия / пиратка
Возраст
Откуда узнали о сервере
Чем будете заниматься на сервере
Почему выбрали наш сервер
- Ник: только
A-Z a-z 0-9 _ - Строго 7 строк
- Если шаблон нарушен — заявка отклоняется
- Фильтрация запрещённых слов в нике (v1.0.5+)
Заявка
Errnick_
Лицензия
16
Discord
Играть и помогать новичкам
Выбрал сервер за дружелюбную атмосферу
После отправки:
- Бот отвечает на сообщение игрока
- Появляется заявка
- Только администратор может принять или отклонить её
Игроки могут отправлять жалобы на других игроков.
Жалоба
<ник игрока>
<причина>
Пример:
Жалоба
Errnick_
Гриф
- Игрок отправляет жалобу — создаётся карточка.
- Админ может рассмотреть жалобу.
- После рассмотрения:
- Автор жалобы видит, что она рассмотрена ⚡
- Автор может:
- Закрыть жалобу ✅
- Возобновить жалобу ↩️ (ещё не решена)
- Возобновлённая жалоба снова активна — админ может пересмотреть.
📄 Жалоба
От: <кликабельный ник автора>
На: <кликабельный ник цели>
Причина: <текст жалобы>
❗ Статус: 🔴 Не решена / ⚡ Рассмотрена / ещё не закрыта автором
Рассмотреть ⚡— для админаЗакрыть ✅/Оставить открытой ↩️— для автора жалобы
Только игрок, который создал жалобу, может закрыть или возобновить её. Только админ может пометить жалобу как рассмотренную.
Игроки могут создавать тикеты в поддержку прямо в чате.
тикет <описание проблемы>
Пример:
тикет Не могу зайти на сервер, пишет Not whitelisted
- Игрок пишет
тикет <текст>— создаётся карточка тикета. - Кулдаун между тикетами: 3 минуты.
- Только игрок с привязанным ником может создать тикет.
- Адмнин нажимает Рассмотреть ⚡.
- После рассмотрения автор может:
- Закрыть тикет ✅
- Возобновить тикет ↩️
📄 Тикет
От: <кликабельный ник>
📝 <описание>
❗ Статус: 🔴 Новый / ⚡ Рассмотрен
Бот поддерживает выдачу и активацию промокодов для донатов.
| Тип | Описание |
|---|---|
подписка |
Подписка "Плюс" (1 / 3 / 6 мес.) |
ник / ник5 / ник10 |
Смена отображаемого ника (1 / 5 / 10 раз) |
префикс / префикс5 / префикс10 |
Смена префикса (1 / 5 / 10 раз) |
цвет_<цвет> |
Смена цвета ника (например цвет_красный) |
| Услуга | 1 раз | 5 раз | 10 раз |
|---|---|---|---|
| Смена ника | 350 руб. | 1500 руб. | 2800 руб. |
| Смена префикса | 250 руб. | 1100 руб. | 2000 руб. |
| Цвет ника | 150 руб./цвет | — | — |
| Подписка | 250 руб./мес. (-5% от 3 мес., -10% от 6 мес.) | — | — |
/promo КОД
или команда промокод / промо в чате.
генерировать ник
генерировать префикс5
генерировать цвет_красный
Или через интерактивную кнопочную панель /admin.
/setnick &cPro Gamer
- Поддерживаются коды цветов Minecraft:
&0-9,&a-f, HEX&#RRGGBB - Длина ника без цветовых кодов: 2–16 символов
- Кулдаун: 30 минут между сменами
- Требует активированный промокод типа
ник
/nickcolor
Выбор из купленных цветов через кнопки. Требует промокод цвет_<цвет>.
/setprefix [PRO]
- Поддерживаются цветовые коды
- Длина префикса без кодов: 1–8 символов
- Требует промокод
префикс
При подаче заявки и смене ника автоматически проверяется:
- Формат: только
A-Z a-z 0-9 _, длина 3–16 символов - Чёрный список слов (оскорбления, имперсонация и пр.)
- Нечёткое сравнение через триграммы (схожесть > 75% — блок)
- Нормализация символов (0→o, 1→i, 3→e и т.д.)
| Действие | Кулдаун |
|---|---|
| Подача заявки | 5 минут |
| Отправка жалобы | 2 минуты |
| Создание тикета | 3 минуты |
| Смена ника | 30 минут |
Показывает игроков из локальной базы бота.
Особенности:
- Ник привязан к Telegram ID
- Ники кликабельные
- Есть ссылка на профиль Telegram
Проверяет:
- Есть ли игрок в базе
- Привязан ли к Telegram
- Есть ли в whitelist на сервере
Возможные статусы:
- Есть в базе и на сервере
- Только в базе
- Только на сервере
- Не найден
В коде:
if (command === 'сайт')
return sendSafe(msg, `🌐 Наш магазин / донат: https://errnicraft.cdonate.ru/#shop`);Замените ссылку на свою.
Пример:
!ЕС админ add @username
Даёт полный доступ к админ-командам.
/addadmin username
/removeadmin username
Альтернатива команде через !EC.
Интерактивная кнопочная панель для генерации промокодов.
/admin
Выполняет команды через RCON.
Пример:
!ЕС команда
ban Errnick_ гриф
say Грифер устранён
Каждая команда — с новой строки.
Использование:
- Ответить на сообщение игрока
- Написать:
!EC добавить
UserName
Лицензия
Игрок будет добавлен в базу и whitelist без заявки.
Можно удалить:
!ЕС удалить
!ЕС удалить
Errnick_
Удаляет игрока:
- из базы бота
- из whitelist сервера
const PREFIXES = ['!EC', '!ЕС'];Можно изменить или добавить свои.
Команда:
!ЕС сборка
Отправляет .mrpack файл.
Поддерживается:
- Modrinth
- Prism Launcher
- другие лаунчеры с поддержкой mrpack
- Node.js 18+
- Включённый RCON
- Telegram Bot Token
npm install node-telegram-bot-api rcon-client dotenv(v1.0.5+: добавлен dotenv)- Файл
.envс переменными окружения (v1.0.5+) - (Без библиотек работать не будет)
Не публикуйте:
- токены
- пароль RCON
- файл
.env(v1.0.5+)
Бот не ограничен только Minecraft. Если игра поддерживает RCON — бот будет работать.
Автор проекта: Errnick_