Скачать Simple Login — Minecraft Моды — MetaMods

Simple Login

Активный

Установок

14

Последнее обновление

2 года назад
Клиент
Fabric
Quilt
Forge
Neoforge
Утилиты

Simple Login

Simple Login - это мод для Forge, предназначенный для защиты серверов, работающих в офлайн-режиме.

Обзор функционала

Данный мод выполняет функции, схожие с плагинами авторизации вроде AuthMe для Bukkit: он проверяет пароль игрока при входе на сервер. Однако есть важное отличие - вместо ввода пароля через команду, пароли сохраняются в специальном файле на стороне клиента и автоматически отправляются на сервер при подключении игрока. Это избавляет от необходимости каждый раз вводить пароль вручную. При первом запуске клиент предложит выбрать пароль, поэтому в большинстве случаев игрокам не придется выполнять дополнительные действия.

Установка

Для работы мода необходимо поместить файл simplelogin-xxx.jar в папку mods как на сервере, так и на клиенте.

Начало работы

Если вас устраивают настройки по умолчанию, никакой дополнительной настройки не требуется.

Пароли игроков не нужно вводить вручную - клиент генерирует случайный UUID в качестве пароля и сохраняет его в файле .minecraft/.sl_password, отправляя затем на сервер при подключении. Сервер запоминает пароль игрока при первом входе и проверяет его соответствие при последующих подключениях.

Частые вопросы

Насколько безопасен мой пароль?

Пароль хэшируется с помощью SHA256 на стороне клиента и дополнительно хэшируется BCrypt перед сохранением на сервере. Однако на стороне клиента пароль хранится без шифрования, поэтому будьте осторожны и не копируйте файл .minecraft/.sl_password при передаче клиента другим пользователям.

Что делать при смене клиента?

Создайте резервную копию файла minecraft/.sl_password и скопируйте его в новый клиент.

Системы хранения данных

Simple Login предлагает различные способы хранения пользовательских данных на сервере, каждый из которых имеет свои преимущества и недостатки. Мод предоставляет абстрактный уровень для реализации разных систем хранения, называемых "провайдерами хранилища".

Каждый провайдер имеет уникальный идентификатор ресурса (например, simplelogin:file).

В комплекте с модом поставляются два провайдера: file и sqlite.

Файловое хранилище

Идентификатор: simplelogin:file

Это самая простая реализация системы хранения, которая сохраняет все пользовательские данные в формате JSON по пути world/sl_entries.dat.

SQLite хранилище

Идентификатор: simplelogin:sqlite

SQLite провайдер может быть более эффективным, чем файловое хранилище, но требует установки SQLite JDBC коннектора объемом около 6 МБ, который не входит в состав Simple Login. Для использования этого провайдера необходимо самостоятельно установить JDBC коннектор.

Пользовательские системы хранения

Если вы знакомы с Java и разработкой модов для Forge, создать собственный провайдер не составит труда.

Необходимо реализовать интерфейс top.seraphjack.simplelogin.server.storage.StorageProvider и зарегистрировать свой провайдер до запуска сервера через вызов top.seraphjack.simplelogin.server.SLRegistries.STORAGE_PROVIDERS::register.

Плагины Simple Login

Плагины Simple Login расширяют функциональность обработки событий входа, авторизации и выхода игроков с сервера.

Как и системы хранения, каждый плагин имеет уникальный идентификатор ресурса.

Ключевые функции Simple Login также реализованы как встроенные плагины:

AutoSave

Идентификатор: simplelogin:autosave

Этот плагин автоматически сохраняет все данные через систему хранения каждые пять минут. Включен по умолчанию.

ProtectCoord

Идентификатор: simplelogin:protect_coord

Телепортирует игроков к точке спавна перед выходом с сервера и возвращает их обратно после успешной авторизации, предотвращая возможную утечку координат при несанкционированных попытках входа. Отключен по умолчанию из-за возможных проблем с большими сборками модов.

ResendRequest

Идентификатор: simplelogin:resend_request

Запрашивает повторную авторизацию у клиента каждые пять секунд, если предыдущий пакет входа по какой-то причине не дошел до сервера. Включен по умолчанию.

RestrictGameType

Идентификатор: simplelogin:restrict_game_type

Изменяет режим игры игрока на наблюдателя при выходе или входе на сервер, возвращая исходный режим игры (сохраненный в системе хранения) после успешной авторизации. Включен по умолчанию.

RestrictMovement

Идентификатор: simplelogin:restrict_movement

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

Timeout

Идентификатор: simplelogin:timeout

Отключает игроков, которые не прошли аутентификацию в течение определенного времени (по умолчанию 600 секунд, настраивается в конфигурации Simple Login по пути //serverconfig/simplelogin-server.toml). Изначально таймаут составлял 60 секунд, но был увеличен до 600 из-за проблем с большими сборками модов, где синхронизация при входе могла занимать более минуты. Включен по умолчанию.

Команды

Все команды поддерживают автодополнение.

  • /simplelogin unregister <PlayerName> - удаляет регистрацию игрока
  • /simplelogin save - сохраняет все записи игроков
  • /simplelogin setDefaultGameType <PlayerName> <GameType> - настраивает режим игры после авторизации для игрока
  • /simplelogin about - показывает информацию о версии
  • /simplelogin plugin available - отображает список доступных плагинов
  • /simplelogin plugin loaded - показывает список загруженных плагинов
  • /simplelogin plugin load <ResourceLocation> - загружает указанный плагин
  • /simplelogin plugin unload <ResourceLocation> - выгружает указанный плагин
  • /sl_change_password <NewPassword> - изменяет пароль на новый (реализован на стороне клиента по соображениям безопасности)

Настройки

Конфигурация сервера

  • secs: Целое число

    • Время ожидания аутентификации игрока. Если авторизация не произойдет за это время, игрок будет отключен.
    • По умолчанию: 600 секунд
    • Изначально было 60 секунд, но увеличено до 10 минут из-за проблем с таймаутами в больших сборках модов
  • plugins: Массив строк

    • Плагины для загрузки по умолчанию
  • commandNames: Массив строк

    • Команды, которые разрешено выполнять игроку до авторизации
    • Необходимо указывать полную команду без символа /, например: give @p minecraft:apple 16
  • storageProvider: Строка

    • Используемая система хранения данных
  • defaultGameType: Целое число

    • Режим игры по умолчанию для новых пользователей
    • 0, 1, 2, 3 соответствуют выживанию, творчеству, приключению и наблюдателю
Участники проекта
seraph_jack

seraph_jack

Создан: 9 сен 2023

ID: 18709