Как только в server.properties выставлено online-mode=false, сервер перестаёт спрашивать у Mojang, кто к нему подключился. Ник вводится любой — включая ваш собственный. Установка AuthMe закрывает эту дыру: плагин требует пароль при входе и не пускает игрока в мир, пока тот не авторизуется.
Нужен он не только «пиратским» проектам. Офлайн-режим включают и легальные сборки за прокси, и локальные сервера для сети — везде, где проверка лицензий вынесена наружу или отключена намеренно.
Что сделать до установки AuthMe
Первое — сам офлайн-режим. В server.properties:
online-mode=falseВторое — понимать риск. В офлайне UUID генерируется из ника, а не выдаётся Mojang. Значит, при смене ника игрок теряет всё: дом, приваты, деньги, инвентарь. И наоборот, любой, кто подберёт ник, получит чужие вещи, если не будет авторизации.
Третье — отключить или перенастроить всё, что раздаёт права по нику до входа. Особенно права операторов: OP-аккаунт с простым паролем — это готовый способ потерять сервер.
Общая картина по офлайн-серверу разобрана в статье как сделать пиратский сервер Minecraft.
Установка
- Скачайте сборку из официального репозитория AuthMeReloaded. В новых версиях плагин выходит отдельными jar-файлами под платформу: для Paper 1.21+, для Spigot 1.20–1.21, для Folia и отдельная Legacy-сборка для старых версий 1.16–1.19. Берите файл, который соответствует вашему ядру.
- Остановите сервер, положите файл в
plugins(через панель или по SFTP). - Запустите. Плагин создаст
plugins/AuthMe/config.ymlи базуauthme.dbв формате SQLite. - Зайдите на сервер и проверьте: должно появиться требование
/register <пароль> <пароль>.
Если сообщения нет — смотрите консоль. Чаще всего AuthMe не стартует из-за конфликта с другим плагином авторизации или из-за того, что сервер всё ещё в online-режиме (тогда плагин пишет предупреждение и часть функций отключает).
Ключевые настройки config.yml
Файл большой, но менять нужно немного.
Регистрация:
settings:
registration:
enabled: true
force: true
enableConfirmPassword: trueforce: true — без регистрации в мир не пустят. Оставляйте включённым, иначе смысл теряется.
Пароли:
settings:
security:
minPasswordLength: 6
maxPasswordLength: 30
unsafePasswords:
- '123456'
- 'password'
- 'qwerty'Шесть символов — минимум, ниже опускать не стоит. Список unsafePasswords реально помогает: половина игроков без него ставит 12345.
Ограничения до авторизации:
settings:
restrictions:
allowChat: false
allowCommands:
- /login
- /register
- /l
- /reg
timeout: 60
maxRegPerIp: 2
ProtectInventoryBeforeLogIn: true
teleportUnAuthedToSpawn: trueProtectInventoryBeforeLogIn скрывает инвентарь до входа — иначе чужой человек с вашим ником увидит, что у вас лежит. teleportUnAuthedToSpawn уносит неавторизованного на спавн, чтобы он не запоминал координаты базы. maxRegPerIp режет массовую регистрацию ботов.
Сессии:
settings:
sessions:
enabled: true
timeout: 30Полчаса сессии — компромисс: при обрыве связи игрок вернётся без пароля, но чужой с другого IP не зайдёт (проверка по IP включена по умолчанию).
База данных
SQLite годится для сервера на 20–50 человек. Когда игроков больше или серверов несколько, переходите на MySQL:
DataSource:
backend: MYSQL
mySQLHost: 127.0.0.1
mySQLPort: '3306'
mySQLUsername: authme
mySQLPassword: пароль
mySQLDatabase: authme
mySQLTablename: authmeОбщая база — единственный нормальный способ сделать одну авторизацию на всю сеть под BungeeCord или Velocity. Игрок вводит пароль один раз в лобби и дальше ходит между серверами свободно.
Алгоритм хэширования по умолчанию — SHA256, для нового сервера лучше сразу BCRYPT: медленнее при входе, зато перебор украденной базы становится бессмысленным.
Команды администратора
/authme register Steve пароль
/authme changepassword Steve новыйпароль
/authme unregister Steve
/authme purge 60
/authme reloadpurge 60 чистит аккаунты, не заходившие 60 дней — заодно уменьшает базу и освобождает ники. Перед чисткой проверьте, что она не тронет постройки: удаление аккаунта не удаляет регионы, но владелец превратится в «мёртвую» запись.
Права раздаются через LuckPerms, нужное админу — authme.admin.*.
Работа за прокси
Если сервер стоит за BungeeCord или Velocity, офлайн-режим включается на бэкендах, а лицензия проверяется на прокси. В этом случае:
- на бэкендах обязательно закройте порты снаружи, иначе кто угодно подключится напрямую в офлайне;
- в конфиге AuthMe включите поддержку прокси и укажите правильный
bungeecord: trueв разделеHooks; - ставьте AuthMe на бэкенды, а не на прокси, либо используйте специальный мост.
Открытые порты бэкендов — самая частая дыра в сборках с авторизацией. Проверьте их по инструкции как открыть порты на сервере, только в обратную сторону.
Частые ошибки
Игрок пишет «Вы уже авторизованы», но управление не работает. Конфликт с другим плагином, который двигает игрока при входе. Обычно это эссеншлы со спавн-телепортом; отключите teleportUnAuthedToSpawn или спавн-телепорт у второго плагина.
Пароль не принимается после смены хэша. Смена алгоритма не перешифровывает старые пароли. Используйте legacyHashes или заставьте игроков восстановить доступ.
Боты регистрируются пачками. Поднимите maxRegPerIp до 1, включите капчу (useCaptcha) и антибот-режим antiBot.
Всё легло после обновления версии игры. AuthMe жёстко завязан на NMS в части управления игроком. Обновляйте плагин вместе с ядром, а не после.
Коротко
Схема: online-mode=false → AuthMe в plugins → force: true, нормальная длина пароля, защита инвентаря и телепорт на спавн → BCRYPT → MySQL, если серверов больше одного. После этого офлайн-сервер перестаёт быть проходным двором.
Готовую площадку с панелью, где конфиги правятся без SFTP, можно взять на тарифах TeaHost.