VTRegister — полное руководство
Русский · English · Все настройки · Безопасность · GitHub
Название плагина — VTRegister. «RegisterPlugin» — его старое, больше не используемое имя (так он назывался до версии 1.1.0 включительно). С версии 1.1.5 это один и тот же плагин под новым именем: jar
VTRegister-vX.jar, папкаplugins/VTRegister/, в/pluginsон виден как VTRegister. Внутренний Java-пакетme.vorchun.registerplugin, главный классRegisterPluginи правоregisterplugin.adminсохранили старое имя только ради совместимости с настройками серверов и API других плагинов.
Содержание
- Коротко
- Кому подходит
- Как проходит вход игрока
- Установка
- Главные настройки по умолчанию
- Антибот подробно
- Пароли, 2FA, почта, сессии
- Прокси: Velocity и BungeeCord
- Команды, права, плейсхолдеры
- Файлы и папки
- Обновление с RegisterPlugin 1.1.0 и переход с других плагинов
- Нагрузка и оптимизация
- Совместимость с другими плагинами
- Частые проблемы
- Чем отличается от других плагинов входа
1. Коротко
| Что это | Плагин регистрации и авторизации (/register, /login) со встроенным антиботом |
| Название | VTRegister (старое имя — RegisterPlugin, больше не используется) |
| Версия | 1.1.7 (ветка 1.1.5+) — актуальная и самая продвинутая за всю историю плагина. 1.1.0 и ниже (в том числе под именем RegisterPlugin) устарели: без обновлений и исправлений безопасности |
| Автор | Vorchun (на MineLeak.pro — vitaliy21) |
| Происхождение | авторский плагин: с первой версии публикуется самим автором, код никогда не обфусцировался, исходники с историей изменений — на GitHub |
| Цена | бесплатно |
| Исходный код | открыт: https://github.com/Vitaliy222121/VTRegister |
| Лицензия | GPL-3.0 с доп. условиями или VMIT (на выбор) — можно использовать, изучать и распространять с указанием автора |
| Серверы | CraftBukkit, Spigot, Paper, Purpur, Pufferfish, Leaf, Leaves, Folia и другие форки; гибридные Mohist, Arclight, CatServer, Magma |
| Прокси | Velocity 3.x–4.x, BungeeCord — тот же jar (Waterfall закрыт и отдельно не проверялся) |
| Minecraft | ядро 1.13 → 1.21.x → 26.x; клиенты 1.7 → новейшие через ViaVersion/ViaBackwards/ViaRewind |
| Java | 8 → 25 |
| Bedrock | Geyser + Floodgate |
| Хранилище | YAML, SQLite, MySQL, MariaDB, PostgreSQL |
| Языки | русский и английский, выбор по языку клиента |
| Где скачать | Releases на GitHub — новые версии выходят там первыми; вторая официальная страница — SpigotMC |
2. Кому подходит
- Серверам в offline-mode («пиратским»). Без плагина входа любой может зайти под чужим ником. VTRegister требует пароль, хранит только его хеш Argon2id и даёт 2FA.
- Серверам, которые атакуют ботами. Антибот встроен в сам вход: новичок проходит проверку физики и заданий в отдельном пустом мире, а волны подключений режутся лимитами ещё до входа. Отдельный плагин-антибот не обязателен.
- Сетям на Velocity/BungeeCord. Тот же jar ставится на прокси: он не пускает на другие серверы до входа и связывает серверы сети общим входом.
- Тем, кто любит настраивать. Всё — в YAML-файлах, у каждой строки есть описание на русском, любую функцию и любой этап антибота можно выключить.
Почему именно 1.1.5. Это технологический рубеж проекта: антибот перешёл от простых проверок к поведенческому анализу — физика клиента по пакетам, задания в мире, темп ответов, контроль пакетов с первой секунды. Защита построена по принципу «безопасно по умолчанию», вход оптимизирован (игрок сразу появляется на платформе, без лишних перелётов между мирами), а один jar обслуживает и сервер, и прокси. Версии 1.1.0 и ниже устарели и не поддерживаются.
Нужна только простая авторизация без антибота? Поставь 1.1.7 и выключи антибот строкой antibot.enabled: false в config.yml (подробнее — в README, раздел «Нужна только простая регистрация и вход?»). Останутся /reg и /login с защищённым вводом пароля, Argon2id и защитой от подбора. Устаревшую 1.0.3 из архива ставить ради простоты не нужно: она не получает исправлений безопасности.
3. Как проходит вход игрока
Новый игрок (аккаунта ещё нет), настройки по умолчанию:
- Игрок сразу появляется на платформе входа в отдельном пустом мире проверки (
security.spawn_on_platform: true). Основной мир ему не загружается, другие неавторизованные игроки его не видят. - Начинается проверка на бота на своей арене: падения с разной физикой (5 повторов), пазл «оставь только свинок», задание с сундуком и блоком. Вверху — боссбар с этапом и таймером.
- Проверка пройдена — игрок сразу переносится обратно на платформу входа и получает подсказку зарегистрироваться.
/reg, затем пароль пишется следующим сообщением в чат (защищённый режим — пароль не попадает в консоль и логи), потом повтор пароля.- После регистрации игрок возвращается в основной мир — туда, куда указывает
after_auth: по умолчанию на спавн мира для новичков.
Зарегистрированный игрок: появляется на платформе входа → /l → пароль в чат → (код 2FA, если включена) → возвращается на точку, где вышел в прошлый раз. Антибот проверяет новичков всегда, а постоянных игроков — снова раз в 24 часа при входе (antibot.recheck_hours: 24; 0 — не перепроверять).
До входа игрок ничего не может: чат, команды (кроме разрешённых), ломать/ставить блоки, драться, получать урон, выкидывать и подбирать предметы, телепортироваться. Эффекты, голод и прочность вещей не тратятся. На вход даётся 60 секунд после проверки (auth.timeout_seconds).
4. Установка
Один сервер
- Скачай
VTRegister-v1.1.7.jarиз Releases, положи вplugins/. - Запусти сервер. Появится
plugins/VTRegister/сconfig.yml,advanced.yml,lang/ru.yml,lang/en.yml,easy-passwords.yml. - Всё уже работает с безопасными настройками. Если в консоли видишь просьбу перезапустить сервер из-за
commands.log— перезапусти один раз (так пароли из команд точно не попадут в лог ядра).
Сеть на Velocity
- Тот же jar — в
plugins/Velocity. Появитсяplugins/vtregister/config.yml(настройки прокси-модуля). - На всех Paper-серверах за прокси — VTRegister и переадресация: Paper 1.19+ —
config/paper-global.yml→proxies.velocity.enabled: true,online-mode: true,secretизforwarding.secret; Paper ≤1.18.2 —paper.yml→settings.velocity-support. Вserver.properties—online-mode=false. - В конфиге прокси-модуля укажи
auth_servers(имя сервера изvelocity.toml, где вводят пароль) и при желанииafter_login_server. - Чтобы вход на одном сервере засчитывался на других, задай одинаковую длинную строку в
secret(прокси) и вsecurity.proxy_bridge.secret(каждый сервер).
Сеть на BungeeCord
Так же, но переадресация — spigot.yml → settings.bungeecord: true, и обязательно BungeeGuard или proxy.firewall (иначе можно зайти мимо прокси с чужим UUID). Подробно — PROXY_SETUP.txt внутри jar.
Bedrock (Geyser/Floodgate)
Работает без настройки: физика антибота для Bedrock мягче, этап slots пропускается. Вход Bedrock-игроков без пароля — bedrock.trust_floodgate_players: true (по умолчанию выкл).
5. Главные настройки по умолчанию
Все 472 параметра с описаниями — в CONFIG.ru.md. Самое важное:
| Параметр | По умолчанию | Смысл |
|---|---|---|
language |
auto |
язык по клиенту (ru/en): сообщения, задания антибота, боссбары, лобби |
security.secure_password_input |
true |
пароль — следующим сообщением в чат, не в команде |
security.command_logging |
fix |
ставит commands.log: false в spigot.yml, чтобы ядро не писало пароли |
security.hash_algorithm |
argon2id |
хеш паролей (19 МБ, 2 прохода, 1 поток — рекомендация OWASP) |
security.max_login_attempts / lock_seconds |
5 / 300 |
неверных паролей до блокировки и её длительность |
security.single_session |
true |
вторая сессия под тем же ником не выбивает играющего |
security.hide_during_auth |
true |
неавторизованные невидимы друг для друга |
security.spawn_on_platform |
true |
появление сразу на платформе входа |
auth.timeout_seconds |
60 |
время на вход после проверки |
password.min_length / max_length |
8 / 64 |
длина пароля |
ip_limit.enabled / max_accounts |
true / 3 |
не больше 3 аккаунтов с одного IP |
ip_limit.exempt_ips |
[] |
IP без лимита аккаунтов (клубы, общежития, общий NAT) |
session.duration_seconds |
7200 |
время жизни сессии |
session.auto_login_by_ip |
false |
вход по IP без пароля выключен |
antibot.enabled |
true |
антибот включён |
antibot.fast_mode / fast_stages |
true / [fall, puzzle] |
быстрая проверка сразу при входе: физика + пазл |
antibot.only_new_players |
true |
при каждом входе проверяются только новички |
antibot.recheck_hours |
24 |
постоянные игроки — снова раз в 24 часа |
antibot.bypass.names / ips |
[] |
белый список: без проверки и лимитов подключений |
antibot.stages |
fall, puzzle |
этапы обычного режима (fast_mode: false) |
antibot.physics_repetitions |
5 |
повторов физики |
antibot.queue_mode |
bossbar |
лишние ждут на месте с боссбаром |
antibot.bans.free_fails |
2 |
первые 2 доказанных провала — только кик |
antibot.bans.tiers_minutes |
[1, 5, 15] |
ступени бана по IP |
antibot.bans.permanent |
false |
вечный бан выключен |
antibot.connection_limit |
вкл | лимиты подключений в секунду/минуту |
antibot.surge.enabled |
true |
режим наплыва |
antibot.packet_watch.enabled |
true |
контроль пакетов с первой секунды |
antibot.ping_check.mode |
attack |
проверка пинга только во время атаки |
antibot.guard.attack_admit_per_second |
2 |
во время атаки — сколько незнакомых новичков пускать в секунду |
antibot.guard.max_mspt |
45 |
сервер не успевает за тиком — новички ждут, свои входят |
antibot.guard.verified_ip_hours |
72 |
сколько часов IP, прошедший проверку, входит при атаке без очереди |
antibot.queue_hide_above |
60 |
в лобби-очереди больше 60 ждущих — они не видят друг друга |
antibot.datacenter_block.enabled |
false |
блок хостингов/VPN выключен |
twofactor.enabled |
true |
игроки могут включить 2FA сами |
twofactor.force_admins |
false |
обязательная 2FA для админов выключена |
email.enabled |
false |
почта выключена, пока не настроишь SMTP |
premium.enabled |
false |
премиум-автовход выключен |
afk.kick_after_login |
false |
после входа за AFK не кикает |
global_blacklist.enabled |
false |
общий чёрный список выключен |
selfdefense.enabled |
false |
остановка сервера при атаке на плагин выключена |
advanced.yml → storage.type |
yaml |
аккаунты в data/accounts.yml |
advanced.yml → auto_restart.enabled |
true |
перезапуск раз в 48 ч в 00:00 МСК с предупреждениями |
6. Антибот подробно
Этапы (antibot.stages)
| Этап | По умолчанию | Как проверяет | Почему бот не проходит |
|—|—|—|—|
| fall | вкл | 5 падений по случайному плану: обычное, высокое с разгоном, в паутину, подброс вверх. Траектория сверяется с физикой ванили по пакетам | бот не рассчитывает гравитацию и сопротивление; заточенный под один сценарий ломается на другом |
| puzzle | вкл | стена 3×3 из рамок с картинками: «оставь только свинок — остальное ударь». Картинки случайные, у каждого свои | нужно видеть и понимать картинку; 1 ошибка — кик |
| block | выкл | пройти случайный путь, открыть и закрыть сундук, взять инструмент, сломать нужный блок, подобрать его | много последовательных действий в мире |
| camera | выкл | накрутить обороты камерой | робот крутит с одинаковой дельтой — такие пакеты не засчитываются |
| slots | выкл | переключить слоты; сервер сам дёргает камеру и слот | живой клиент отвечает пакетами, бот молчит |
| captcha | выкл | код в чате или на карте в руке (map_captcha); «зачёркнутый» вариант — captcha_strike | карту и зачёркнутый код не прочитать из чата |
| click | выкл | нажать «Я НЕ БОТ» среди кнопок-обманок, порядок и цвета меняются | бот, жмущий любую ссылку, попадает в обманку |
| math | выкл | пример на сложение (умножение — math_operations) | — |
| secret | выкл | написать в чат строку вроде .bind | чит-клиенты перехватывают такие команды и не отправляют |
| air_captcha | выкл | игрок в воздухе крутит камерой — появляется код из огромных разноцветных блоков по диагонали | код существует только блоками в мире |
Быстрый режим (по умолчанию): antibot.fast_mode: true — проверка сразу при входе, без очередей, этапы из fast_stages (по умолчанию [fall, puzzle]). fast_mode: false — обычный режим с очередью и этапами из stages.
Простая и расширенная защита. По умолчанию — простая и лёгкая: быстрый режим, физика + пазл, остальные этапы выключены. Для расширенной защиты (крупный сервер, частые атаки): antibot.fast_mode: false — очередь (боссбар или лобби, queue_mode) и шаг «сдвинься с места»; включи нужные этапы в antibot.stages (например block, click, air_captcha); при атаках «спящими» аккаунтами — antibot.recheck_on_restart: true; для сетей — блок хостингов/VPN (antibot.datacenter_block) и общий чёрный список.
Подсказки на экране (screen_hints): крупная надпись по центру — что делать прямо сейчас. Отдельно включаются для входа (auth), этапов проверки (antibot), отсчёта «Готовься!» (prepare) и «Готово!» (done). Время на экране — stay_seconds, повтор — refresh_seconds (0 — один раз), сколько раз показать — max_repeats, плавность — fade_in_ticks/fade_out_ticks. Тексты — ключи hint_* в lang/ru.yml и lang/en.yml.
Защита до входа
- Лимит подключений (
antibot.connection_limit): всего и с одного IP в секунду и минуту; зарегистрированных не трогает. - Проверка пинга (
antibot.ping_check): живой клиент сначала видит сервер в списке серверов. По умолчанию — только во время атаки. - Фильтр ников (
antibot.guard.name_regex), лимиты аккаунтов и онлайна с IP, режим атаки. - Щит от потока ботов (
antibot.guard): режим атаки включается сразу; незнакомые новички пускаются дозированно (attack_admit_per_second: 2), а если сервер не успевает за тиком (max_mspt: 45) — ждут. Свои игроки с привычного IP и IP, прошедшие проверку (verified_ip_hours: 72), входят без очереди. Замер: 8 000 ботов за 40 секунд — ни один не прошёл, сервер держал TPS 20, свои входили за ~130 мс. - Белый список и исключения:
antibot.bypass.names/ips— без проверки и лимитов подключений (админы, свои сервисы);ip_limit.exempt_ips— IP без лимита аккаунтов. - «Осада» (
afk.siege): если подряд много AFK-киков, неавторизованных онлайн не большеmax_pending. Зарегистрированного игрока с привычного IP это не касается — бот не знает его пароля. - Блок хостингов/VPN (
antibot.datacenter_block, выкл). - Режим наплыва (
antibot.surge): при волне входов проверки стартуют дозированно. - Контроль пакетов (
antibot.packet_watch): флуд и невозможные координаты с первой секунды. - Темп ответов (
antibot.answer_timing): слишком быстрые и слишком ровные ответы — робот.
Баны только по фактам
- Доказанный провал: неверная физика, флуд пакетами, робот-ответы, кнопка-обманка, ошибка в пазле или на блоке.
- Таймаут, лаг и AFK — никогда не бан, только кик.
- Первые 2 доказанных провала — кик. Дальше бан IP: 1 мин → 5 мин → 15 мин. Через 24 ч без провалов ступень сбрасывается. Баны переживают рестарт (
data/ip-bans.txt). Снять все:/authadmin unban.
Очередь
Если проверок больше, чем max_concurrent_checks (8), остальные ждут: bossbar (по умолчанию) — на месте с боссбаром; lobby — общее лобби с паркуром и PvP-зоной; none — только сообщение. Всего мест (проверки + очередь) — antibot.influx.burst (64), лишним — вежливый отказ «сервер перегружен».
Лобби-очередь (fast_mode: false, queue_mode: lobby) — платформа 55×55 в мире проверки: паркур (6 полос), PvP-арена с сундуком-набором (у каждого своё окно, раз в 30 секунд), кнопка «Скорость II на 30 секунд», голограммы и боссбар с позицией. Убийство в PvP-зоне двигает очередь: убийца +1 место, погибший −1 (одна и та же пара — не чаще раза в минуту). Нельзя: команды, драться вне PvP-зоны, ломать, летать без разрешения; упал в пустоту — возврат на спавн. Сначала все ждут в лобби lobby_first_seconds (8, максимум 60). Если ждущих больше queue_hide_above (60), они перестают видеть друг друга (кроме PvP-зоны) — иначе трафик растёт как квадрат числа игроков. Замер: 50 ждущих — средний тик 6 мс; 156 ждущих — пик 140 мс, TPS не ниже 19,7.
7. Пароли, 2FA, почта, сессии
- Ввод пароля. Защищённый режим:
/reg→ пароль в чат. Сообщение перехватывается на самом раннем приоритете и отменяется — его не видят игроки, консоль и логи. Обычный режим (secure_password_input: false):/reg парольс честным предупреждением, что пароль попадёт в лог. - Хранение. Argon2id (соль, параметры в PHC-формате), опционально pepper. Старые хеши PBKDF2 из 1.1.0 обновляются при входе.
- Перебор. 5 неверных паролей → блокировка на 5 минут; параллельные проверки пароля ограничены (
advanced.yml→limits). - 2FA.
/2fa on→ в руку выдаётся карта с QR-кодом → сканируешь в Google Authenticator / Яндекс Ключе / Aegis →/2fa 123456. Нет места в хотбаре — в чате ключ (клик копирует)./2fa cancel— отмена,/2fa off— выключить (с кодом). Один код дважды не сработает. - Почта.
email.enabled: true,email.provider: gmail | yandex | mailru— сервер и порт подставятся сами;smtp.user— адрес,smtp.password— пароль приложения. Проверка:/authadmin testmail <почта>. Игрок:/email <адрес>→ код в письме → в чат или/email 123456. Забыл пароль:/recover→ код на почту →/recover <код> <новый пароль>(таймаут входа продлевается на время письма). - Сессии. После входа сессия живёт 2 часа (
session.duration_seconds: 7200): перезашёл с того же IP в это время — пароль не нужен, если включёнsession.auto_login_by_ip(по умолчанию выкл; за прокси — только с настоящими IP).session.ip_prefix_octets— считать «тем же IP» адреса из одной подсети (0 — только точное совпадение; подсеть ослабляет привязку),session.invalidate_on_restart— сбрасывать сессии при перезапуске. - Очистка базы.
advanced.yml → purge: удаляются аккаунты, которые не входилиinactive_daysдней (180, минимум 30); аккаунты с почтой и 2FA не трогаются. По умолчанию выкл. Команды ручной очистки пока нет. - Связь с сайтом. REST API пока нет, но сайт может работать с базой напрямую (MySQL/MariaDB/PostgreSQL): таблица
rp_accounts(префикс —advanced.yml → storage.table_prefix), поляname,name_lower,password,email,last_ip,last_auth. Пароль хранится в стандартном формате$argon2id$v=19$m=…,t=…,p=…$соль$хеш— его проверяетpassword_verify()в PHP илиargon2-cffiв Python. Если заданsecurity.password_pepper, перед проверкой допиши его к введённому паролю. Аккаунты, перенесённые из других плагинов, хранят старый хеш до первого входа в игру. Сайту лучше только читать базу: плагин держит аккаунты в памяти и не увидит запись в базу в обход себя. - Премиум.
premium.enabled: trueна online-mode серверах: лицензия входит без пароля (с 2FA код всё равно спросят).
8. Прокси: Velocity и BungeeCord
Прокси-модуль (plugins/vtregister/config.yml на Velocity, plugins/VTRegister/config.yml на BungeeCord):
| Параметр | Смысл |
|---|---|
auth_servers |
серверы, где вводят пароль; неавторизованный всегда попадает на первый доступный |
after_login_server |
куда отправить после входа ([] — остаться) |
allowed_proxy_commands |
прокси-команды, разрешённые до входа |
secret |
общий секрет с серверами — единый вход по сети |
connection_limit.* |
лимиты по IP и режим атаки на прокси |
connection_limit.attack_admit_per_second |
во время атаки — сколько незнакомых новичков в секунду пускать (2); свои и проверенные IP — без очереди |
ping_check |
проверка пинга на прокси |
Задай одинаковый secret на прокси и серверах — тогда прокси знает своих игроков и пускает их без очереди даже во время атаки. Единый вход работает и при отдельной базе на каждом сервере.
До входа запрещены /server и смена сервера. Если имени из auth_servers нет среди серверов прокси, игроков не кикает, а консоль раз в минуту напоминает. Для фильтрации флуда подключений прямо на прокси можно поставить рядом Sonar.
9. Команды, права, плейсхолдеры
Игроки
| Команда | Что делает |
|—|—|
| /register, /reg | регистрация (дальше пароль в чат) |
| /login, /l | вход |
| /changepassword (/changepw, /cp, /passwd) | смена пароля (старый и новый — в чат) |
| /2fa on \| off \| cancel \| <код> | двухфакторная защита |
| /email <адрес> \| <код> | привязать почту |
| /recover, затем /recover <код> <пароль> | восстановить пароль |
| /vtregister (/vtr, /vreg) help \| status \| cmds | справка |
Админы (registerplugin.admin, по умолчанию OP)
| Команда | Что делает |
|—|—|
| /vtregister reload | перечитать настройки |
| /vtregister reset <config\|advanced\|lang\|all> | вернуть настройки по умолчанию (config.yml, advanced.yml, тексты или всё). Сначала просит подтвердить, старые файлы копирует в backups/reset-<время>/; «перец» паролей и подключение к базе не трогает |
| /authadmin reload | то же |
| /authadmin status | состояние плагина и хранилища |
| /authadmin info <ник> | данные аккаунта |
| /authadmin list [страница] | список аккаунтов |
| /authadmin reset <ник> | удалить аккаунт и заставить зарегистрироваться заново |
| /authadmin unregister <ник> | удалить аккаунт |
| /authadmin setpw <ник> | задать пароль (вводится в чат) |
| /authadmin logout <ник> | разлогинить |
| /authadmin forcelogin <ник> | войти за игрока (онлайн) |
| /authadmin setspawn <prelogin\|postlogin\|firstjoin> | точки спавна |
| /authadmin import [--overwrite] | импорт из AuthMe (и форков), nLogin, OpeNLogin, LoginSecurity, LimboAuth |
| /authadmin unban | снять все баны IP антибота |
| /authadmin testmail <почта> | проверить отправку писем |
| /authadmin pvpkit | набор PvP-зоны лобби |
| /authadmin lobby | телепорт в лобби проверки |
Права
| Право | По умолчанию | Даёт |
|—|—|—|
| registerplugin.admin | OP | все админ-команды; признак админа для оповещений и обязательной 2FA |
| vtregister.afk.bypass | нет | не кикает за AFK после входа |
PlaceholderAPI
%vtregister_authenticated%, %vtregister_registered%, %vtregister_storage%, %vtregister_totp%, %vtregister_email%, %vtregister_waiting%, %vtregister_mode%, %vtregister_antibot_queue%, %vtregister_accounts%
10. Файлы и папки
plugins/VTRegister/
├── config.yml основные настройки (472 параметра с описаниями)
├── advanced.yml база данных, лимиты, автоперезапуск
├── easy-passwords.yml разрешённые «лёгкие» пароли
├── lang/ru.yml, en.yml все тексты игрокам (HEX-цвета &#RRGGBB)
├── puzzles/tiles/ картинки пазла (можно свои PNG 128×128)
├── logs/logins/ журнал входов по дням
├── stash/ копия вещей игрока на время проверки (на случай краша)
└── data/
├── accounts.yml | accounts.db аккаунты (yaml/sqlite)
├── spawns.yml точки спавна
├── ip-bans.txt баны антибота
├── backups/ резервные копии базы при запуске
└── lib/ драйвер PostgreSQL (скачивается и проверяется по SHA-256)
Внутри jar: INSTRUCTION_RU.txt, INSTRUCTION_EN.txt, PROXY_SETUP.txt.
11. Обновление с RegisterPlugin 1.1.0 и переход с других плагинов
- С RegisterPlugin 1.1.0: удали старый jar
registerplugin-1.1.0.jar, положиVTRegister-v1.1.7.jar. Папкаplugins/RegisterPluginскопируется вplugins/VTRegisterавтоматически, аккаунты сохранятся, старые хеши PBKDF2 обновятся при входе. Новые параметры допишутся вconfig.ymlвместе с описаниями, устаревшие ключи уберутся сами. - С AuthMe (и старых форков), nLogin, OpeNLogin, LoginSecurity или LimboAuth: поставь VTRegister рядом, не удаляя папку старого плагина (сам плагин можно выключить), выполни
/authadmin import. Настройки базы берутся из егоconfig.yml(SQLite, MySQL, MariaDB, PostgreSQL, файлauths.db), аккаунты переносятся с паролями — игроки входят старым паролем, после входа он перехешируется в Argon2id. Хеши, которые проверить нельзя (WHIRLPOOL, форумные), не переносятся — их число будет в отчёте, такие игроки просто зарегистрируются заново.--overwrite— заменить пароли уже существующих аккаунтов.
12. Нагрузка и оптимизация
- Мир проверки пустой, дальность прорисовки в нём — 3 чанка.
- Игрок появляется сразу на платформе входа — основной мир при заходе не загружается зря.
- После проверки — прямо на платформу, без перелёта «арена → основной мир → платформа».
- Хеширование паролей и работа с базой — вне главного потока; число одновременных проверок пароля ограничено.
- Арены восстанавливаются порциями, картинки пазла готовятся заранее, цветной текст кэшируется.
- При волне входов проверки стартуют дозированно (режим наплыва).
- Замеры 1.1.7: 8 000 ботов за 40 секунд — TPS 20, плагин 1–4 % главного потока; Paper 1.13.2–1.21.11, 26.2 и Folia при 2 000 ботов — TPS 19,7–20; сам прокси Velocity/BungeeCord при 6 000 ботов — 0,5–1,2 ядра в среднем. Подробно — AI_AUDIT.md, раздел 11.
- Большая лобби-очередь — см.
queue_hide_aboveв разделе «Очередь». - Проверить:
/spark profiler.
13. Совместимость с другими плагинами
- ViaVersion / ViaBackwards / ViaRewind — старые и новые клиенты.
- Geyser / Floodgate — Bedrock-игроки.
- LuckPerms — права, в том числе
registerplugin.admin. - EssentialsX — телепорт на спавн после входа через
after_auth(spawn {player}). - Citizens — NPC не считаются неавторизованными игроками.
- PlaceholderAPI — плейсхолдеры выше.
- Multiverse-Core, MultiWorld, MyWorlds — загружаются раньше, чтобы их миры были доступны для спавнов.
- Sonar (на Velocity) — можно ставить вместе для фильтра флуда подключений на прокси.
- Paper 1.21+ — VTRegister не слушает устаревший
PlayerLoginEvent(кроме включённогоproxy.firewall), поэтому не отключает API переконфигурации у других плагинов. - Folia — вход и регистрация работают полностью; этапы антибота на Folia недоступны, сервер защищают лимиты подключений, проверка пинга и AFK-проверка.
14. Частые проблемы
| Симптом | Причина и решение |
|---|---|
За прокси у всех IP 127.0.0.1 |
не включена переадресация (Velocity modern / BungeeCord + BungeeGuard) — раздел 4 |
| Velocity не пускает на сервер | в auth_servers имя не как в velocity.toml — консоль прокси подскажет |
| Письма не приходят | нужен пароль приложения, а не обычный; /authadmin testmail покажет причину |
| В консоли «сборка повреждена» | jar изменён или скачан не с официальной страницы — скачай из Releases и сверь SHA-256 |
| Пароль виден в логе | включён обычный режим или не перезапущен сервер после command_logging: fix |
| Folia | проверка на бота с этапами и платформа входа отключены (ограничение Folia); вход, регистрация, 2FA, лимиты подключений, пинг, баны и AFK работают |
15. Чем отличается от других плагинов входа
- Антибот встроен в сам вход и проверяет поведение клиента в мире (физика, пазл, задание с блоком), а не только лимит подключений или одну капчу.
- Баны только по фактам — живых игроков за лаг и AFK не наказывает.
- 2FA настраивается QR-кодом прямо в игре, без сайта и ссылок.
- Один jar для сервера и прокси, общий вход по сети без отдельного плагина-моста.
- Настройка в YAML с описанием каждой строки, при обновлении ничего не теряется.
- Открытый код; ники, IP и пароли не уходят с сервера; по умолчанию включена только анонимная статистика bStats (
advanced.yml→bstats.enabled), остальное сетевое выключено (SECURITY.md).