Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyTGWhiteListMC

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+)

⚙️ ОБЯЗАТЕЛЬНАЯ НАСТРОЙКА

1️⃣ Главный администратор (v1.0.5+: через .env)

MAIN_ADMIN_USERNAME=Errnick

В старых версиях:

const MAIN_ADMIN = 'Errnick'; // заменить на свой username

2️⃣ Токены ботов (v1.0.5+: через .env)

TG_TOKEN_MAIN=YOUR_MAIN_BOT_TOKEN
TG_TOKEN_TEST=YOUR_TEST_BOT_TOKEN

В коде:

const TEST_MODE = 1; // 0 — основной бот, 1 — тестовый

3️⃣ Настройка RCON (v1.0.5+: через .env)

RCON_HOST=your_rcon_host
RCON_PORT=12345
RCON_PASSWORD=YOUR_RCON_PASSWORD

4️⃣ Дополнительные переменные окружения (v1.0.5+)

TG_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

📜 Полный список команд

👤 Пользовательские команды (без !EC)

Команда Что делает
заявка Создать заявку на 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+)

🔐 Админ-команды (требуют !EC или !ЕС)

Команда Описание
админ 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
Играть и помогать новичкам
Выбрал сервер за дружелюбную атмосферу

После отправки:

  • Бот отвечает на сообщение игрока
  • Появляется заявка
  • Только администратор может принять или отклонить её

📝 Система жалоб (v1.0.4+)

Игроки могут отправлять жалобы на других игроков.

Как написать жалобу

Жалоба
<ник игрока>
<причина>

Пример:

Жалоба
Errnick_
Гриф

Как работает

  1. Игрок отправляет жалобу — создаётся карточка.
  2. Админ может рассмотреть жалобу.
  3. После рассмотрения:
    • Автор жалобы видит, что она рассмотрена ⚡
    • Автор может:
      • Закрыть жалобу ✅
      • Возобновить жалобу ↩️ (ещё не решена)
  4. Возобновлённая жалоба снова активна — админ может пересмотреть.

Оформление карточки

📄 Жалоба
От: <кликабельный ник автора>
На: <кликабельный ник цели>
Причина: <текст жалобы>
❗ Статус: 🔴 Не решена / ⚡ Рассмотрена / ещё не закрыта автором

Кнопки управления

  • Рассмотреть ⚡ — для админа
  • Закрыть ✅ / Оставить открытой ↩️ — для автора жалобы

Только игрок, который создал жалобу, может закрыть или возобновить её. Только админ может пометить жалобу как рассмотренную.


🎫 Система тикетов (v1.0.5+)

Игроки могут создавать тикеты в поддержку прямо в чате.

Как создать тикет

тикет <описание проблемы>

Пример:

тикет Не могу зайти на сервер, пишет Not whitelisted

Как работает

  1. Игрок пишет тикет <текст> — создаётся карточка тикета.
  2. Кулдаун между тикетами: 3 минуты.
  3. Только игрок с привязанным ником может создать тикет.
  4. Адмнин нажимает Рассмотреть ⚡.
  5. После рассмотрения автор может:
    • Закрыть тикет ✅
    • Возобновить тикет ↩️

Оформление карточки

📄 Тикет
От: <кликабельный ник>
📝 <описание>
❗ Статус: 🔴 Новый / ⚡ Рассмотрен

🎁 Донат-система и промокоды (v1.0.5+)

Бот поддерживает выдачу и активацию промокодов для донатов.

Типы промокодов

Тип Описание
подписка Подписка "Плюс" (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.


🎨 Смена ника, цвета и префикса (v1.0.5+)

Смена отображаемого ника /setnick

/setnick &cPro Gamer
  • Поддерживаются коды цветов Minecraft: &0-9, &a-f, HEX &#RRGGBB
  • Длина ника без цветовых кодов: 2–16 символов
  • Кулдаун: 30 минут между сменами
  • Требует активированный промокод типа ник

Смена цвета ника /nickcolor

/nickcolor

Выбор из купленных цветов через кнопки. Требует промокод цвет_<цвет>.

Смена префикса /setprefix

/setprefix [PRO]
  • Поддерживаются цветовые коды
  • Длина префикса без кодов: 1–8 символов
  • Требует промокод префикс

🛡 Фильтр никнеймов (v1.0.5+)

При подаче заявки и смене ника автоматически проверяется:

  • Формат: только A-Z a-z 0-9 _, длина 3–16 символов
  • Чёрный список слов (оскорбления, имперсонация и пр.)
  • Нечёткое сравнение через триграммы (схожесть > 75% — блок)
  • Нормализация символов (0→o, 1→i, 3→e и т.д.)

⏱ Rate Limit (v1.0.5+)

Действие Кулдаун
Подача заявки 5 минут
Отправка жалобы 2 минуты
Создание тикета 3 минуты
Смена ника 30 минут

📂 Команда "Список"

Показывает игроков из локальной базы бота.

Особенности:

  • Ник привязан к Telegram ID
  • Ники кликабельные
  • Есть ссылка на профиль Telegram

🔍 Команда "Проверить <ник>"

Проверяет:

  • Есть ли игрок в базе
  • Привязан ли к Telegram
  • Есть ли в whitelist на сервере

Возможные статусы:

  • Есть в базе и на сервере
  • Только в базе
  • Только на сервере
  • Не найден

🌐 Команда "сайт"

В коде:

if (command === 'сайт')
  return sendSafe(msg, `🌐 Наш магазин / донат: https://errnicraft.cdonate.ru/#shop`);

Замените ссылку на свою.


🛠 Админ-команды подробнее

!EC админ add|remove

Пример:

!ЕС админ add @username

Даёт полный доступ к админ-командам.


/addadmin и /removeadmin (v1.0.5+)

/addadmin username
/removeadmin username

Альтернатива команде через !EC.


/admin — панель промокодов (v1.0.5+)

Интерактивная кнопочная панель для генерации промокодов.

/admin

!EC команда

Выполняет команды через RCON.

Пример:

!ЕС команда
ban Errnick_ гриф
say Грифер устранён

Каждая команда — с новой строки.


!EC добавить

Использование:

  1. Ответить на сообщение игрока
  2. Написать:
!EC добавить
UserName
Лицензия

Игрок будет добавлен в базу и whitelist без заявки.


!EC удалить

Можно удалить:

Ответом на сообщение:

!ЕС удалить

Или по нику:

!ЕС удалить
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_

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages