- Требуется UtilM
- https://mcdev.su/resources/utilm.73/
- Для версий
- BungeeCord
Привязка к Telegram, Привязка к VK, Функция двуфакторной авторизации, Запоминание сессией даже после рестарта, Простой логин, Простая регистрация
Конфигурация плагина:
# Плагин: mcAuth (BungeeCord авторизация)
#
# Описание:
# Плагин добавляет возможность авторизации на BungeeCord
# сервере с возмодностью задать двухфакторную аутентификацию.
#
# Зависимости: (плагины без которых этот работать не будет)
# - UtilM https://mcdev.su/resources/utilm.73/
#
# Команды:
# /register (пароль) (повтор пароля) [алиасы: /reg] - зарегистрироваться
# /login (пароль) [алиасы: /l] - авторизоваться
# /changepassword (текущий пароль) (новый пароль) [алиасы: /cp] - сменить пароль
# /changeplayerpassword (ник игрока) (новый пароль) [алиасы: /cpp] - сменить пароль игроку
# /pair - показать ссылки на ботов 2FA
# /unpair - отключить 2FA (разорвать пару с ботом)
#
# Команды требующие разрешения:
# /check (ник игрока) - выводит информацию о игроке
# /auth reload - перезагружает конфигурацию (не весь плагин иначе прийдется повторно аутентифицироваться с телепортацией на основной сервер)
message:
permission_denied: '&cОтказано в доступе.'
configuration_reload: '&aКонфигурация перезагружена.'
repeated_message_authentication_required: '&eАвторизуйтесь командой &b/login &e(пароль).'
repeated_message_registration_required: '&eЗарегистрируйтесь командой &b/register &e(пароль) (повтор пароля).'
repeated_message_2f_required: '&eПодтвердите вход с выполнив действие 2FA.'
registration_required: '&cСначала зарегистрируйтесь &b/register &c(пароль) (повтор пароля).'
authentication_required: '&cСначала авторизуйтесь командой &b/login &c(пароль).'
password_required: '&cПароль не указан.'
additional_arguments_required: '&cНедостаточно аргументов.'
already_authorized: '&cВы уже авторизованы!'
already_registered: '&cВы уже зарегистрированы!'
wrong_password: '&cНеправильный пароль.'
wrong_password_repeat: '&cПовтор пароля не совпадает.'
registration_complete: '&aРегистрация завершена!'
authentication_complete: '&aАвторизация завершена!'
password_change_complete: '&aПароль изменен!'
password_min_length: '&cМинимальная длина пароля 3 символа.'
password_max_length: '&cМаксимальная длина пароля 255 символов.'
user_not_registered: '&cИгрок не зарегистрирован.'
nickname_not_valid: '&cНикнейм содержит недопустимые символы.'
nickname_min_length: '&cМинимальная длина ника 3 символа.'
nickname_max_length: '&cМаксимальная длина ника 16 символов.'
changepassword_use: '&cИспользуйте &b/cp &c(текущий пароль) (новый пароль).'
pair_key_not_valid: '&cНедействительный ключ создания пары.'
pair_created: '&aПара создана!'
was_kicked: '&cКикнут!'
2fa_warning: '&6Подключите 2FA аутентификацию командой &c/pair&6.'
pair:
- '&eНапишите &b/пара &eодному из ботов сервера:'
- '&eTelegram: &btelegram.me/our_bot' # (короткая ссылка t.me не распознается как кликабельная)
- '&eVK: &bvk.com/our_group &e(в сообщения группы)'
check:
- '&eНикнейм: &b%player_name%'
- '&eПароль: &b%player_password%'
- '&e2FA Защита: &b%2fa%'
account_list:
- '&eС этого IP зарегистрированы:'
- '%account_list%'
auto_kick: '&cВремя авторизации вышло, попробуйте снова.'
max_account: '&cС этого IP зарегистрировано слишком много аккаунтов.'
self_banned: '&cВход на сервер под ником &b%player_name% &cзаблокирован.'
unpair_success: '&aПара разорвана (2FA отключена)!'
unpair_fail: '&c2FA не включена чтобы отключить ее.'
invalid_nickname_case: "&cНевалидный регистр никнейма '&b%current_player_name%&c', не совпадает с ранее зарегистрированным &c'&b%correct_player_name%&c'. Пожалуйста перезайдите в игру с никнеймом '&b%correct_player_name%&c'."
permission:
reload: bungee-auth-2f.reload # Разрешение на перезагрузку конфигурации этого плагина.
check: bungee-auth-2f.check # Разрешение использование команды /check (ник игрока).
changeplayerpassword: bungee-auth-2f.changeplayerpassword # Разрешение на использование команды /changeplayerpassword (ник игрока) (новый пароль).
migrate: bungee-auth-2f.migrate # Разрешение на выполнение команды миграции.
database:
# Поддерживается sqlite или mysql базы данных.
# SQLite - ничего заполнять и настраивать не нужно.
# MySQL - необходимо заполнить секцию ниже и "поднять" MySQL сервер самостоятельно.
type: sqlite
mysql:
database: database
host: 127.0.0.1
port: 3306
username: username
password: password
# Обратите внимание allowPublicKeyRetrieval=true полностью безопасен только в закрытой сети (как и SSL=false), вне ее подвержен MITM атаке.
# https://stackoverflow.com/questions/50379839/connection-java-mysql-public-key-retrieval-is-not-allowed
url_parameters: '?&createDatabaseIfNotExist=true&verifyServerCertificate=false&useSSL=false&allowPublicKeyRetrieval=true'
# Как плагин должен хешировать пароли игроков.
# Доступные варианты:
# - NO_HASH без хеширования, пароли игроков хранятся в чистом виде в базе данных их можно прочитать.
# - ARGON2 хешировать, пароли игроков хранятся в зашифрованном виде и их невозможно прочитать даже если украсть базу данных.
#
# Примечаниче:
# Задав алгоритм хэширования однажды его нельзя менять далее.
# Будте внимательны с выбором.
hash_type: NO_HASH
# Эксперементальная команда для переноса данных из плагина: https://www.spigotmc.org/resources/mc-auth-with-social-link.94870/
#
# Вот несколько примеров использования:
# /migrate com.mysql.cj.jdbc.Driver jdbc:mysql://127.0.0.1:3306/your_database_name database_username database_password
# /migrate org.mariadb.jdbc.Driver jdbc:mariadb://127.0.0.1:3306/your_database_name database_username database_password
# /migrate com.mysql.cj.jdbc.Driver jdbc:mysql://127.0.0.1:3306/mcauth root H72kL)8q
validator:
password:
min_length: 3 # Минимальная длина пароля.
nickname: # Валидность никнейма игрока.
regex: '^[_a-zA-Z0-9]+$' # Все латинские (английские) буквы, нижний прочекр и цифры (по умолчания как в Minecraft JavaEdition).
min_length: 3 # Минимальная длина ника (по умолчания как в Minecraft JavaEdition).
max_length: 16 # Максимальная длина ника (по умолчания как в Minecraft JavaEdition).
auto_kick:
delay: 60 # Сек. Полное время на завершение аутентификации, включая 2FA.
# Проверка IP + Timestamp с момента последней успешной аутентификации.
# Если пройдена, авторизовывает автоматически (без пароля и 2FA).
# По умолчанию -1 (выключено), рекомендуемое 86400 (сутки).
session:
time: -1 # Сек. Время действия сессии.
max_ip_registering:
enable: true # Проверять на максимальное число регистраций с одного IP?
max_account: 3 # Сколько аккаунтов можно создать с одного IP?
# Все боты имеют одинаковый интерфес команд и кнопок.
# Если пара создана с несколькими ботами, то 2FA оповещение
# появится у всех с кем есть пара, но подтверждение сработает
# с первого раза (не нужно у всех подтвержать, только у одного).
bot:
message:
start:
- 'Отправьте /пара чтобы связать аккаунт.'
- 'Отправьте /помощь чтобы получить список команд.'
authentication_complete: '2FA аутентификация выполнена!'
not_on_server_or_not_paired: 'Нужно быть на сервере или /пара с этим аккаунтом не создана.'
was_kicked: 'Кикнут, сессия сброшена!'
2fa_required: 'Выполнен вход на сервер с аккаунта %player_name% / %ip_address%, подтвердите или отклоните действие.'
untie: 'Пара разорвана, но ее можно создать снова командой /пара.'
authenticate_button_label: '🔑 Авторизовать'
kick_button_label: '👋 Кикнуть!'
not_paired: '/пара с этим аккаунтом не создана.'
self_banned: 'Вход на сервер под ником %player_name% заблокирован.'
self_unbanned: 'Вход на сервер под ником %player_name% разблокирован.'
command_list:
start:
command: '/старт'
description: 'показать приветствие'
help:
command: '/помощь'
description: 'показать список команд'
kick:
command: '/кик'
description: 'кикнуть связанный аккаунт на сервере'
authenticate:
command: '/авторизовать'
description: 'выполнить аутентификацию аккаунта'
pair:
command: '/пара'
description: 'получить команду создания пары на сервере'
untie:
command: '/отвязать'
description: 'разорвать пару с аккаунтом на сервере'
self_ban:
command: '/самобан'
description: 'заблокировать вход на сервер со своего аккаунта'
self_unban:
command: '/саморазбан'
description: 'разблокировать вход на сервер со своего аккаунта'
telegram:
enable: false # Вкл./выкл. бота.
token: 'XXXXXXXXXXXXXXXX' # Секретный токен. Будет доступен после создания бота через https://t.me/BotFather.
username: '@name_bot' # Юзернейм бота заданный при создании.
# Список Telegram-ID администраторов.
# Пользователь с Telegram-ID из списка может использовать команду рассылки сообщений /alert.
# Узнать свой Telegram-ID, бот "https://t.me/@myidbot", команда "/getid".
admin_telegram_user_id_list:
- 123456
# Команда "зазывалка" с целью привлечения игроков в Телеграм, например: "Напиши Телеграм боту /free и получи приз!".
# Привлеченным игрокам можно выполнить рассылку сообщений /alert с целью поддержания интереса к игровому проекту.
free_command:
# Команда которую нужно выполнить в Телеграм боте чтобы забрать приз.
command: "/free"
# Чтобы забрать приз сначала необходимо создать "/пара" (2FA)?
# Без "/пара" (2FA), Telegram-ID пользователя не будет сохранен и рассылка "/alert" его не достигнет.
# Если расчет на рассылку, оставьте значение true - необходима "/пара" (2FA) чтобы забрать приз.
2fa_required: true
# Конфигурация сообщений.
message:
2fa_required: 'Пожалуйста, сначала создайте пару с аккаунтом на сервере командой "/пара".'
free:
- "Бесплатный приз!"
- 'Пиши команду "/example QWE123" на сервере чтобы забрать!'
vk:
enable: false # Вкл./выкл. бота.
# После создания группы проверьте правильность настройки:
# "Управление" > "Сообщения" > "Настройки для ботов" > "Возможности ботов" = "Включены".
# "Управление" > "Сообщения" > "Сообщения сообщества" = "Включены".
# "Управление" > "Настройки" > "Работа с API" > "Long Poll API" > "Long Poll API" = "Включено".
token: 'XXXXXXXXXXXXXXXX' # Секретный токен. Будет доступен после создания группы VK "Управление" > "Настройки" > "Работа с API" > "Создать ключ".
group_id: 123456789 # ID группы VK. Узнать ID группы: https://vk.com/faq18062.
# Балансер автоматически направляет игрока на наиболее пустой сервер для распеределения нагрузки.
# Минимально необходим 1 или более auth сервер(ов) и 1 или более main сервер(ов).
balancer:
auth_server_list: # Список серверов авторизации, название сервера как в конфигурации BungeeCord.
- 'server_1'
main_server_list: # Список основных серверов (например лобби), название сервера как в конфигурации BungeeCord.
- 'server_2'
# Отправляет игрокам без 2FA напоминание о ее отсутствии.
# Сообщение берется из секции 'message.2fa_warning'.
2fa_reminder:
enable: true # Вкл./Выкл.
delay: 60 # Сек. Интервал напоминания о отсутствии 2FA на аккаунте.