📝 История изменений
Все изменения и обновления BaronessAuth
3.0.0 (в разработке)
Четвёртая итерация:
2.10.1 (2.3.2024)
- Добавлена обработка более экзотичных ошибок от ВК.
2.10.0 (28.2.2024)
- Увеличено время ожидания перед рестартом ВК с 2 до 5 секунд.
- Добавлена обработка всех видов ошибок ВК с оптимальным поведением при каждой из них.
- Количество запросов к ВК при рестарте из-за ошибок снижено к минимуму, чтобы не утыкаться в количественный лимит.
- Исправлена генерация клавиатуры ВК при большом количестве твинков.
- Cкрыта ошибка "...invalid event_id", которую иногда начинал присылать ВК без адекватной причины. У неё нет побочных эффектов.
- Исправлена миграция привязок с LimboAuth (уже переехавшие, волноваться не о чем, у вас всё итак нормально).
- Обновлено множество библиотек.
- Добавлена настройка:
providers.yml
vk:
# Не трогайте без надобности.
optimize-long-poll-settings: true
2.9.0 (1.12.2024)
- Оптимизированы VK и Telegram боты. Также, они теперь избегают работы в Netty потоках, что хорошо повлияет на пинг игроков.
- Переписана реализация GeoIP:
- Теперь плагин не качает базу непонятно откуда, а включает её в себя. Так вы всегда имеете стабильный доступ к базе, а она сама будет обновляться переодически, вместе с обновлениями самого плагина.
- Теперь сама реализация базы более быстрая и более устойчива к ошибкам.
- Был добавлен кэш, чтобы часто запрашиваемые адреса не искать повторно, а отдавать гораздо быстрее.
- Был добавлен конфиг (geo-ip.yml), где можно настроить стандартные сообщения (типа "неизвестный город"), языки и работу кэша.
- База теперь тестирует сама себя, прежде чем запуститься. Так, в случае проблем, вы просто не будете видеть страны\города, но все системы будут работать.
- Переписана система дампов:
- Дамп представляет собой теперь не папку, а один файл, вне зависимости от размера базы данных.
- При создании дампа теперь используется более аккуратное и менее ОЗУ-ёмкое разделение базы данных на страницы.
- При импорте дампа теперь вовсю используется многопоточность, значительно увеличивая скорость.
- При создании и загрузке дампа теперь пишутся красивые и детальные логи, включая статус каждые 5 секунд, пока процесс идёт.
- Теперь дамп использует сжатие, из-за чего его размеры уменьшились в ~10 раз.
Результаты тестов:
Для 1 млн регистраций:
Вес файла: 56 мб
Создание дампа: 90 сек
Загрузка дампа: 68 сек
На настоящем сервере скорость должна быть гораздо выше из-за более мощных комплектующих.
- Была удалена "защита от VPN", так как она имела слишком много ложных срабатываний (вина поставщика базы).
- Теперь проверка на твинк при входе поддерживает знак "" в исключениях. Например, адрес "127.0..9" разрешит сразу все адреса, чьи первые. вторые и чётвертые числа совпадают (третье число игнорируется).
- Оптимизирована система IP адресов.
- Исправлено: в боте Telegram кнопки после нажатия долго светились, как будто бот очень долго обрабатывает запрос (хотя ответ приходил быстро).
- Исправлено: миграция с MCAuth при большом количестве регистраций.
- Добавлены детальные логи при выключении, чтобы можно было понять, что задерживает выключение плагина.
- Ускорено выключение Discord бота.
- Обновлено много библиотек.
2.8.0 (5.11.2024)
- Все команды, кроме /auth, переписаны на новом фреймворке - у них улучшен tab complete, полностью асинхронная обработка и автоматически генерируются сообщения об использовании. Из-за этого некоторые их настройки больше не работают, например, нельзя их переименовать или установить право (это всё равно никому и не было нужно). Админская /auth пока что осталась неизменной, так как её долго переписывать, а важность не такая высокая.
- Добавлена миграция с MCAuth, с поддержкой BCrypt, MD5, SHA256 паролей. Для помощи обращайтесь к <мне>.
- Логи о смене пароля больше не содержат старого и нового хеша пароля.
- Команда /link больше не регистрируется, если на сервере нет ни одной привязки.
- Отключаемые команды, типа /unregister, больше не регистрируются, если отключены. Ранее они просто писали ошибку при вводе.
- Команды, типа /vk /tg /discord, теперь полностью настраиваемые. В файле commands.yml вы теперь можете настроить любые подобные ярлыки, в том числе и которые вообще не связаны с этим плагином.
- Убрана возможность отключить повторение пароля при /register (техническое ограничение).
- Переписан модуль поддержки старых паролей (которые не bcrypt).
- Обновлено множество библиотек.
2.7.0 (24.9.2024)
Была сильно обновлена техническая часть бота ВК:
- Больше не логирует ошибки в случае истечения сессии.
- Не обновляет сессию сам преждевременно, а просто полагается на ВК,
- Автоматически обновляет настройки Long Poll в вашем сообществе: включает его, выставляет правильную версию, включает нужные события и выключает все ненужные.
- Пишет красивые логи при подключении.
Итого, теперь бот работает лучше и быстрее, а настраивать в ВК больше ничего не надо - достаточно дать ему токен с достаточными правами.
2.6.1 (23.9.2024)
- Исправлено: подключение к auth серверу не удавалось при определённой конфигурации priorities в BungeeCord.
2.6.0 (22.9.2024)
- Переписана обработка входа игроков, она стала отзывчивее. Вместо подключения к auth, а потом к lobby, игроки сразу подключаются в lobby, если допустимо (как при сохраненной сессии или лицензии).
- Добавлена самописная реализация long poll бота вк, которая отличается от старой:
- Не выключается, встретив ошибку
- Увеличивает время сна после каждой ошибки
- Если ошибка произошла 6 раз подряд, пробует сбросить сессию
- Чаще обновляет сессию (каждые 6 часов вместо 9)
- Более легковесна и работает быстрее
- Теперь коды для привязки Discord варьируются от 1000 до 9999.
- Исправлено: подключение с лицензии могло вызывать ошибки.
- Исправлено: фильтры при подключении игрока нагружали Netty потоки.
- Выделено больше потоков для задач плагина.
- Обновлено много библиотек.
- Почищен .jar от лишних файлов.
2.5.3 (3.9.2024)
- Исправлено, что настройка prevent-unlink-or-disable-2fa запрещала выключение 2FA всем, вне зависимости от наличия права.
- Обновлены библиотеки.
2.5.2 (31.8.2024)
- Исправлен конфликт UUID с LuckPerms для премиум-игроков.
- Отключено сообщение "already connecting" при слишком быстром подключении к лобби.
- Обновлены библиотеки.
2.5.1 (26.8.2024)
- Исправлено автоматическое добавление новых столбцов на некоторых базах данных.
2.5.0 (24.8.2024)
- Добавлена возможность требовать привязку при входе на избранные сервера только от игроков с определённым правом. Так вы можете обязать донатеров\админов привязываться. Кроме того, теперь эта проверка пропускает игроков с лицензией, так как им не нужна привязка.
2.4.0 (24.8.2024)
- Исправлена совместимость с NullCordX.
- Добавлен параметр
discord.yml/register-in-game-alias
для тех, кто хочет включать привязку к Discord, но не хочет иметь команду/discord
. - Добавлены дополнительные проверки, чтобы удостовериться, что при лицензионном входе у игрока всё ещё остаётся пиратский UUID (чтобы избежать потерь данных на проблемных форках банжи).
2.3.0 (23.8.2024)
- Добавлена поддержка лицензий! Обзор: https://youtu.be/US5A2yGaYTA
- Теперь напоминание о привязке появляется после перехода в лобби, чтобы оно не терялось на 1.20.2+.
- Оптимизирована работа с потоками при переодической отправке сообщений (как при требовании ввести пароль).
- Добавлена команда /discord (алиас /link discord).
- Добавлены дополнительные обработчики ошибок при подключении. Теперь, если возникла ошибка при обработке подключения (например, фильтры по IP), игрок будет кикнут. Ранее это происходило только при непосредственно входе.
- Теперь плагин сохраняет UUID игрока после логина, если тот ещё не сохранён (это может быть после миграции с другого плагина).
- Удалён параметр settings_security.connections.anti-proxy.keep-in-ram, теперь всегда используется режим ОЗУ.
- Исправлен баг, из-за которого пароли со старыми хешами не заменялись новыми. Теперь все пароли обновляются их более безопасными версиями при входе игрока.
- Обновлены драйверы SQLite, PostgreSQL.
- Обновлён Discord API.
- Обновлены библиотеки.
2.2.1 (19.8.2024)
- Исправлено, что Discord отображался в /link, даже если выключен.
2.2.0 (19.8.2024)
- Добавлен список серверов, к которому могут подключаться только люди с привязками. Это нужно для ситуаций, когда вы принципиально не хотите пускать на определённые сервера игроков с недостаточной степенью безопасности.
- Доработана система автоматического добавления недостающих столбцов в базу данных: она теперь лучше учитывает, в какой именно базе данных выполняется запрос.
- Обновлена база данных H2 (совместима, всё хорошо).
- Обновлены библиотеки.
2.1.1 (11.8.2024)
- Исправлено то, что уведомления в Discord отправлялись, даже если они выключены.
2.1.0 (10.8.2024)
- Добавлена привязка Discord! Обзор: https://youtu.be/2kw1xkIf22w
- Теперь плагин автоматически обновляет старый хеш пароля при логине игрока, если включён режим BCrypt. Кроме того, добавлены функции в API:
isLegacyHash(hash)
refreshPassword(profile, password)
- Плагин больше не загружает старый алгоритм хэша из конфига, если включён режим BCrypt, так что теперь вы можете указать "algorithm: []". Это не влияет на чтение старых паролей.
- Удалено много неиспользуемого кода.
- Добавлены методы в API IPlayerProfile:
getDiscordId
setDiscordId
hasLinks
- Теперь провайдеры (вк, тг, дискорд) корректно отключаются от своих соцсетей при выключении плагина.
- Теперь плагин автоматически добавляет недостающие поля в базе данных (теперь без багов!).
- Обновлены библиотеки.
2.0.1 (21.7.2024)
- Теперь BaronessAuthAPI.getInstance() выбрасывает информативное исключение, если вызван слишком рано (дождитесь включения самого плагина!)
- Убраны лишние логи
2.0.0 (18.7.2024)
Изменён API:
- Он приведён в порядок, изменён пакет, почти все сигнатуры. Улучшен нейминг
- Теперь используются интерфейсы и Optional
- Добавлены методы для отправки простых текстовых сообщений в бота тг/вк по айди пользователя
- IP автоматически конвертируются в нужный формат, теперь вы их получаете ввиде нормальных строк
Мелочи:
- Плагин перевёден на Gradle
- Почищен мусор
- Обновлено кой чего
- Теперь debug по умолчанию выключен
- Теперь плагин выключает банжу, если при запуске произошла ошибка
- Количество раундов BCrypt снижено до 12 по умолчанию
0.2.0-SNAPSHOT-4 (12.6.2024)
:::info Это всё ещё 0.2.0-SNAPSHOT, но прошло 6 месяцев, так что лучше разделим их.
Изменения описаны сверху вниз (сверху старые, снизу новые). :::
- Добавлено хеширование Bcrypt, старые пароли продолжат работать
- Обновлено 12 зависимостей, включая драйверы баз данных.
- Обновлены библиотеки. Исправлено скачивание одной из них.
- Теперь плагин совместим с лимбо, созданными https://www.spigotmc.org/resources/nanolimboplugin.105297/
0.2.0-SNAPSHOT-3 (4.1.2024)
:::info Это всё ещё 0.2.0-SNAPSHOT, но прошло 3 месяца, так что лучше разделим их.
Изменения описаны сверху вниз (сверху старые, снизу новые). :::
- Исправлено: не работал hex в причине кика /logout
- Исправлено: сообщения "you already connected..." и "you already connecting...", которые могли видеть игроки в некоторых случаях
- Исправлено: ошибки прошлого билда, которые приводили к переодическим неудачам подбора сервера. Доработано логирование пинга серверов, добавлены новые дебаг сообщения и улучшен лог о неудачном пинге.
- Улучшено: теперь есть больше настроек по поводу переноса игроков с сервера на сервер. Также, улучшено логирование - причина ошибок теперь подробно логируется.
- Теперь плагин переодически пингует привязанные сервера, чтобы проверить их валидность:
- Если доступны живые сервера, он отсылает игрока на тот, где меньше онлайна.
- Если живых серверов нет, но есть те, где банжа видит игроков - выборка идёт из них.
- Если живых серверов нет и все они пустые, плагин или отсылает на любой, или кикает игрока (зависит от ваших настроек).
- Удалены защиты от "null-ip" и подмены UUID, так как они не имеют практической пользы
- Удалены некоторые неактуальные функции конфига.
- Убрана нагрузка от событий PreLoginEvent, LoginEvent, PlayerDisconnectEvent, PostLoginEvent. Это избавит от нагрузки в потоках Netty (это могло вызывать подвисания игроков) и очистит консоль от жалоб прокси.
- Все фильтры, использующие базу данных, из PreLoginEvent перенесены в LoginEvent - это избавит от нагрузки со стороны плагина во время работы антибота прокси (по крайней мере, для nullcord)
- Переписаны многие фильтры; приведены в порядок все из них. Пересмотрен порядок фильтрации. Оптимизированы многие вещи.
- Оптимизирован кэш баз данных.
- Мелкие правки команды /auth unlink.
- Исправлены некоторые потенциальные ошибки.
- Удалено сообщение restricted-server-join-kick-reason, так как теперь плагин принудительно отправляет всех игроков на auth сервера - при попытке отправиться куда-то ещё они всё равно будут перенаправлены на нужный сервер.
- Фильтры в разделе nick-filter теперь представляют собой отдельные фильтры - соответственно, у них отдельные причины кика.
0.2.0-SNAPSHOT-2 (3.9.2023)
:::info Это всё ещё 0.2.0-SNAPSHOT, но прошло 3 месяца, так что лучше разделим их.
Изменения описаны сверху вниз (сверху старые, снизу новые). :::
- Добавлена функция force-set-player-uuid в файле bungeecord.yml. Трогать просто так не стоит
- Переработана загрузка дампов: она теперь многопоточная и каждые 5 секунд пишется прогресс. Это потому что дампы на сотни тысяч игроков загружались слишком долго
- Улучшено получение IP игрока (теперь корректно работает с RedisBungee)
- Обновлено всякое (в т.ч. tg api, драйвера h2, mariadb, sqlite)
- Теперь /auth migrate показывает все миграции
- Добавлена миграция с LimboAuth
- Новый формат HEX цветов: &#rrggbb. Старый убран, ибо всё равно работал крайне криво. Обычные цвета & § работают как раньше
- Исправлена /auth unlink
- Добавлена централизованная система кулдаунов на команды игроков:
Команды:
/link
/login
/register
/unregister
/changepassword
/logout
Если игрок пишет одну из этих команд, у него ставится кулдаун в том числе и на все остальные. Кулдаун не распространяется на админские команды (/auth *)
Проверка на кулдаун всегда идёт перед обращением в базу данных. Так игроки не смогут положить сервер и бд спамом запросами.
Новые настройки:
commands:
cooldown:
# Общий кулдаун на использование всех команд плагина. В миллисекундах.
cooldown-millis: 1500
message: "&cПодождите ещё немного, прежде чем использовать команды."
- Обновлены библиотеки, в т.ч. драйвер h2, vk api
- Исправлена работа скриптов (scripts в конфиге)
- Добавлен скрипт on-link-completed
- Если установлен Geyser, антибот-проверка "click" больше не будет влиять на игроков с бедрока. Потому что они не могут нажать на сообщение.
- Обновлены библиотеки
- Исправлена работа антибот проверки клик
- Добавлена миграция с LimboAuth H2 (ранее была только MySQL)
- Добавлены новые проверки сложности пароля:
# Запрещает пароли, состоящие только из чисел.
only-digits:
# Включена ли проверка?
enabled: false
# Сообщение об отклонении.
message: '§cПароль не должен быть только из чисел!'
#
# Запрещает пароли, не содержащие ни одного числа.
without-digits:
# Включена ли проверка?
enabled: false
# Сообщение об отклонении.
message: '§cВ пароле должно быть хотя бы одно число!'
- Исправлены /vk /tg
- Теперь можно освободить бота для общения, добавив команды. То есть чтобы он воспринимал только !аккаунт [код], например.
- Вызов команды без кода отправляет клавиатуру
- Теперь нажатие на неизвестную кнопку отправляет клавиатуру (раньше просто было сообщение)
- Теперь можно добавлять множество Auth и Lobby серверов. Плагин будет отправлять на любой доступный из них, в приоритете сервер с наименьшим количеством онлайна
- Добавлена возможность принуждать пользователей бота ВК подписываться на группу. Без подписки они не смогут ни отправлять сообщения, ни использовать кнопки.
- Теперь требование подписки бота ВК распространяется только на команды: можно разрешить общение без подписки, и ограничить только конкретно функционал
- Обновлен драйвер SQLite
- Теперь боты VK и Telegram полноценно выключаются вместе с плагином
- Исправлена ошибка потокобезопасности, которая иногда вызывала ошибки
- Обновлены библиотеки
- Исправлены сообщения, где используется hover/click
- Добавлена команда /auth global-2fa [vk/tg] [true/false]
- Улучшено: теперь, если вы указали недействительный сервер, плагин выдаст лог об этом при подключении игрока
- Улучшено: теперь вы можете отправлять игрока с определенных доменов на определенные сервера. Например:
- Исправлено: сообщение о неправильном пароле не поддерживало HEX
- Исправлено: статистика за день показывала неправильные числа + значительно ускорился её сбор
- Исправлено: балансировщик между серверами теперь пингует все сервера для получения онлайна. Если есть другие варианты, он не будет отсылать игрока на заведомо выключенный сервер. То есть вы можете иметь много серверов lobby и auth, и плагин будет избегать отправки на выключенные. Плагин будет логировать все подобные "выключенные" сервера
0.2.0-SNAPSHOT-2 (2.6.2023)
:::info Это всё ещё 0.2.0-SNAPSHOT, но прошло как минимум 6 месяцев, так что лучше разделим их. Изменения описаны сверху вниз (сверху старые, снизу новые). :::
- Обновление версии Java (8 -> 17).
- Обновил очень много библиотек в т.ч. ВК, Телеграм, драйвера баз данных, хеш-функции, YAML.
- Поправил много мелких недочетов (где-то конфиг игнорировался и тому подобное).
- Теперь в ботах, в настройках, появилась кнопка, позволяющая переключить сессии. Игрок с выключенными сессиями всегда должен логиниться. Если игрок отвяжет бота, сессии включатся обратно. Они по умолчанию включены.
- Теперь, если у человека есть право baronessauth.no_session, у него выключены сессии. Это позволяет добавить большую безопасность админам.
- Теперь проверка на UUID работает.
- Теперь в nick-filter.kickMessage можно указать плейсхолдер {realname}, который заменяется на ник в правильном регистре. Если игрок не зарегистрирован, вернёт -.
- Исправлено: на некоторых конфигурациях проверка на UUID вызывала ошибки
- Исправлено: дампы не сохраняли состояние включения\выключения сессий
- HSQLDB и SQLite запланированы к удалению. Добавлено предупреждение об этом.
- Переделана система дампов: увеличена скорость, теперь поддерживается любое количество регистраций (на нескольких сотен тысяч были непредвиденные ошибки). Старые дампы несовместимы: создайте новые.
- Добавлена H2 - быстрая локальная база данных. Она теперь стоит по умолчанию и рекомендуется как замена HSQLDB И SQLite.
- Уменьшен размер плагина.
- Обновлены библиотеки, в т.ч. Telegram API
- Исправлена работа MySQL (не влияет на MariaDB)
- Улучшено выключение базы данных (более безопасно, т.е. меньше шанс, что что-то сломается)
- Все ссылки baronessdev.ru изменены на craftlab.su. Замените у себя в конфигах тоже, иначе базы не скачиваются
- Исправлена работа некоторых баз данных - MySQL, MariaDB
0.2.0-SNAPSHOT-1 (4.11.2022)
:::info
Плагин где-то здесь отпочковался от своей Spigot версии и стал BungeeCord плагином.
Любопытно, что изначально эта Bungee версия была заказом одного крупного сервера (они хотели именно на банжу), но позже, с их согласия, она начала продаваться.
Правда, на протяжении порядка двух лет она продавалась только по сарафанному радио и нигде не рекламировалась.
Так как плагин был приватным, версии обычно никак не назывались.
Изменений было очень много (например, боты были полностью изменены), но они не документировались, по понятным причинам.
Так что я собрал сообщения, которые писал клиентам, в качестве очень неточной "истории изменений".
Изменения описаны сверху вниз (сверху старые, снизу новые). :::
- Починил sqlite
- ВК работает как и должен, всё нормально
- Обновил пару библиотек, в том числе и ВК апи
- Добавил смену сообщения "Ты попытался войти на подсервер {server_name} без авторизации. Не надо так." в bungeecord.yml
- Добавлена возможность изменить задержку перед отправлением сообщений провайдеров, типа "register.messages.required". Ранее она была равна repeat
- Теперь /link не работает, если уже что-то привязано
- Добавлено сообщение для тех, у кого не включено 2фа, но привязан бот
- (Вероятно) исправлен пермишен для /changepassword
- Исправлена редкая ошибка "Timer already cancelled."
- Обновлён geoip
- Добавлена миграция с AuthMe (нужно просто перекинуть в папку plugins от BungeeCord папку AuthMe, после чего прописать /auth migrate authme)
- Добавлена возможность сменить ссылку на geolite
- Добавлена возможность сменить ссылку на ip2proxy
- Исправлено скачивание файлов
- Downgrade GeoIP2 for Java 8 support
- Добавлено сообщение о необходимости привязки при логине через классический провайдер
- Исправлена ошибка при auth stats nick по отношению к игроку, импортированному с authme
- Добавлено сообщение о необходимости привязки при сохраненной сессии
- Добавил /auth unlink чтобы отвязывать игроков с админки (также сбрасывает блок аккаунта)
- Теперь телеграм бот работает
- Теперь боты не ломаются при перезагрузке плагина
- Теперь sqlite включена по дефолту (так как hsqldb почему то ошибки вызывает, ну всё равно это никто не использует)
- Теперь боты логируют в дебаг всё, что получают от пользователей. Если слишком много мусора, отключите дебаг в конфиге
- Исправлено создание дампов
- Исправлена потенциальная утечка памяти. могла быть при включённой защите uuid
- Теперь можно указать ник в правильном регистре, при отклонении входа
Третья итерация:
0.1.3-beta
Исправлено:
- Отправка сообщений игроку на старых версиях.
0.1.2-beta
Добавлено:
- Команда unregister.
- Новая система кэша базы данных с новыми, более гибкими настройками.
Изменено:
- Обновлён драйвер PostgreSQL.
- Обновлены многие библиотеки, в том числе VK API, Telegram API, GeoIP, а также множество вспомогательных.
- Теперь /auth developer --clear-cache очищает весь кэш, а не только неиспользуемый.
Исправлено:
- Команды могли не блокироваться у неавторизованных игроков.
- AuthPlayerLoginEvent не вызывался (также исправляет работу скриптов).
- Tab-Complete у changepassword работал некорректно.
0.1.1-beta
Исправлено:
- Сообщения, отправляемые плагином, могли быть пустыми.
0.1.0-beta
Добавлено:
- Настройка кэширования базы данных.
- Дополнительная информация о платформе при включении плагина.
- Предупреждение, если сервер использует версию ниже 1.8.
Изменено:
- Плагин перешёл на Семантическое Версионирование.
- Обновлены некоторые библиотеки.
- Файл config.yml переименован в settings.yml, чтобы убрать проблемы с попыткой Bukkit самостоятельно прочесть файл.
- Теперь скачиваемые базы данных удаляются только после того, как скачивание новой версии завершится. Это избавит от проблем, когда новая версия не качается, а старая удалена.
- Теперь HEX цвета используются иначе. Подробности в FAQ.
- Ускорена обработка HEX цветов для тех сообщений, где она не используется (короче говоря, плагин не будет пытаться её использовать, когда она не нужна).
Исправлено:
- YAML читалось некорректно и создавало странные ошибки.
- Кэширование базы данных, из-за ошибки которого уже зарегистрированному игроку могло предложить регистрацию.
- Предупреждение "...does not specify an api-version" на новых версиях.
- Заморозка spigot включалась на 1.8 и вызывала ошибки. Теперь не включается.
- SQLite могла не работать на 1.8 из-за незагруженного драйвера.
- Мелкие шероховатости в стандартных настройках.
v232
Добавлено:
- Новая система разбития задач на потоки. Производительность может увеличиться.
- Расширенная документация о скриптах.
Изменено:
- Теперь, если файл конфигурации невалиден (сломанный YAML синтаксис), плагин сообщит об этом в консоль, укажет на ошибку и загрузит стандартный вариант конфигурации. Ранее это приводило к сбросу всех секций.
- Ускорена обработка YAML файлов.
Исправлено:
- Кэширование базы данных, которое могло приводить к несостыковкам.
- Нерабочая MySQL.
- Неправильно отображающийся Tab Complete.
- Не адаптирующийся к aliases лог фильтр. Теперь адаптируется динамически.
- Некоторые опечатки в файлах конфигурации.
Удалено:
- task_active и task_active у load субкоманды - бесполезны.
v231
Добавлено:
- Новая система кэширования базы данных, что уменьшает количество запросов в несколько раз.
- Cached Database API - для доступа к кэшу базы данных из API.
- Новая конфигурация в 3 файла, с подробными комментариями.
- Своя реализация YAML, которая функциональнее и быстрее встроенной в ядро.
- Настройки aliases для всех команд и субкоманд.
- Настройки tab complete для большинства команд.
- Базовые настройки /auth developer.
- Система дампов, позволяющая создавать гибкие бэкапы, применимые к любой базе данных.
- Новая система статистики, которая теперь не имеет настроек и основана только на базе данных.
- Команда /logout, позволяющая игрокам сбросить свою сессию.
Изменено:
- Оптимизированы все базы данных. Особенно MySQL.
- Улучшено "родное" оформление classic провайдера.
- Обновлен Telegram API.
- Обновлен VK API.
- Обновлены многие библиотеки.
- Ускорена генерация строк и оптимизированы многие алгоритмы генерации случайных чисел.
- Оптимизирована защита от брутфорса.
- Оптимизирован подсчёт защиты от быстрого переподключения - теперь не влияет на тики.
- Массивный рефакторинг и общая оптимизация кода.
Исправлено:
- Миграция с AuthMe могла не работать в некоторых случаях.
Удалено:
- Старые файлы конфигов - заменены новыми.
- Обращение к папке backup - заменена dump.
- Субкоманда clean - больше не нужна.
- Субкоманда backup - заменена dump.
v230
Добавлено:
- Новая система обнаружения дистрибутива для /auth load, имя дистрибутива теперь можно узнать через {os_distro}. Ранее он обнаруживался вместе с версией и отображался некорректно на некоторых системах.
- HEX и & цвета у тайтлов и у причин кика с сервера.
Изменено:
- Увеличена скорость обращения к системе для /auth load.
- Заполнитель {os_version} у /auth load теперь отображает версию ядра Linux.
- Некоторые стандартные настройки "классического" провайдера стали визуально приятнее.
Исправлено:
- При регистрации через "классический" провайдер не отправлялся тайтл успешной регистрации.
v229
Добавлено:
- Кэширование GeoIP. Загружает данные в ОЗУ, потребляя ~2МБ, но увеличивая скорость. По умолчанию включено.
- Поддержка HEX цветов.
- Поддержка градиентов.
- Поддержка & для установки цвета.
- Title и Subtitle для "классического" провайдера.
- Новая система отложенных задач, повышающая производительность.
- Двойная буферизация там, где её до этого не было. Минорное улучшение производительности.
Изменено:
- Значительно увеличена производительность баз данных.
- Теперь GeoIP база данных скачивается с серверов Baroness` Dev.
- Переписана, тем самым значительно улучшена и оптимизирована система логирования и фильтра логов сервера.
- Ускорена работа и снижено потребление ОЗУ у ботов-провайдеров.
- Ускорена работа генератора случайных чисел.
- Обновлён Telegram API.
- Обновлён VK API.
- Обновлён драйвер PostgreSQL.
- Обновлён драйвер HSQLDB.
Исправлено:
- В редких случаях плагин мог не запускаться на Java 8.
- Система подсчёта твинков работала некорректно.
- Субкоманды unregister и unfreeze в подсказке были частично перепутаны местами.
- Проверка click у антибота вызывала лог о якобы "введённой команде".
- После каждого срабатывания автоматического бэкапа, появлялся бесполезный лог о перепланировании задачи.
v228
Все ссылки на документацию заменены на рабочие, если возможно. Файлы, чья документация ещё не готова, лишились ссылок. На данный момент ссылки имеют 75% файлов.
v227
Добавлено:
- Локальная база данных HSQLDB - прекрасная замена медленной SQLite.
- Система режимов заморозки.
- Режим заморозки "Paper" - более ресурсоэффективная заморозка, работающая только с Paper.
- Возможность включить\отключить блокирование падения при заморозке.
- Автоматическая починка неправильных настроек, если возможно. Если невозможно, настройка будет сброшена, чтобы не ломать работу плагина.
- Функция --optimize-HSQLDB в /auth developer.
- Минимальная и максимальная длина ника.
Изменено:
- VK API обновлён до последней версии.
- Улучшены индексы SQLite, что повысит производительность при большом количестве регистраций.
- Теперь стандартная база данных это HSQLDB.
- Переписана логика скачивания баз данных.
- Окончательно переписана логика настроек. Ещё быстрее уже не будет.
- Ускорено сохранение ресурсов (файлов настроек).
- Ускорена проверка пароля на слив.
- Ускорена валидация файла плагина.
- Ускорено получение данных системы /auth load.
- Ускорено скачивание файлов (на хостингах обычно нет разницы, так как диск медленнее интернет-канала).
- Теперь фильтры логов устанавливаются динамически, их можно отключать без перезагрузки сервера.
- Полностью изменена настройка базы данных, для большего удобства.
- Файл настройки базы данных переименован (data/data.yml -> data/database/yml).
- Теперь /auth developer принимает только 1 функцию за раз. Это даёт возможность использовать пробелы.
Исправлено:
- Нельзя было запустить одновременно 2 разных бота (и Telegram, и ВК).
- Если во время скачивания базы данных написать /auth reload, вызвав этим повторное скачивание, скачивания накладывались друг на друга и вызывали ошибку.
Удалено:
- Базу данных YAML, так как она была бесполезна.
v226
Добавлено:
- Ссылки на документацию в большинстве файлов настроек.
Исправлено:
- Ссылки на документацию в большинстве файлов настроек.
v225
Добавлено:
- Уникальная система AuthProvider.
- VK-бот для регистрации и авторизации.
- Новая система задач, более умно распределяющая нагрузку между ядрами.
- Возможность выдать право на использование "классической авторизации".
- Возможность отключить /login при использовании Telegram-бота.
- Возможность настроить права на каждую отдельную субкоманду.
- Предупреждение о том, что асинхронных задач прибавляется больше, чем выполняется.
- Предупреждение при использовании нерекомендуемых баз данных.
- Предупреждение о том, что в настройках выставлен не тот тип, который нужен (например, вместо true-false вписано число).
- Параметр task_active у /auth load, отображающий активные асинхронные задачи.
- Параметр task_queue у /auth load, отображающий асинхронные задачи в очереди.
- Вывод всех последних входов с IP при использовании /auth stats ip.
- Вывод не только страны, но и города при использовании /auth stats ip.
- Вывод страны и города для IP при использовании /auth stats nick.
- Callback у сохранения профиля игрока через API.
Изменено:
- Полностью переписан Telegram-бот. Его принцип изменён, а сам бот стал мультисерверным.
- Скорость доступа к настройкам в реальном времени увеличена вплоть до 5800%. Эффект также распространяется на многие функции: антибот, боты-провайдеры, "запросы".
- Скорость работы со списками увеличена вплоть до 21%.
- Скорость генерации соли увеличена почти в 2 раза.
- Переписано большинство SQL запросов, их количество уменьшено до минимума.
- Теперь в ссылке для подключения к базе данных необязательно указывать префикс JDBC (например, jdbc:mysql://). Но, даже если префикс указан, подключение будет работать.
- Обновлено множество библиотек.
- Улучшена валидация IP при /auth stats ip.
- Улучшена надёжность защиты от подмены UUID.
- Улучшен вызов задачи в Bukkit (серверном) потоке.
- Ускорены логи в файл.
- Ускорена работа проверки click антибота.
- Ускорено выполнение запроса WAIT у скриптов.
- Максимально оптимизированы все функции заморозки.
- Оптимизирована проверка сложности пароля.
- Оптимизирован антибот.
- Оптимизирована субкоманда /changepassword.
- Снижена нагрузка на базу данных при использовании checkCase у фильтра ников.
- Небольшой рефакторинг всех проверок при подключении.
- db_name у /auth load теперь пишется в правильном регистре.
- Имя базы данных при включении плагина теперь пишется в правильном регистре.
- Теперь проверка на твинков учитывает не только IP регистрации, но и IP последнего входа.
- Теперь /auth stats ip выводит не только регистрации, но и последние входы с IP.
Исправлено:
- После восстановления настройки плагин её не видел.
- Вызов /auth stats total на пустом сервере (без единой регистрации) вызывал ошибку.
- Выдача сессии в другом потоке могла вызвать ошибку.
- Субкоманда /auth backup не выключалась.
Удалено:
- DEBUG логи о добавлении субкоманды.
- DEBUG логи об удалении субкоманды.
- DEBUG логи о регистрации слушателя.
- Конфиг-файлы: register.yml, login.yml. Теперь это настраивается в Classic AuthProvider.
- Параметр os_name у /auth load, так как он всегда равняется Linux.
- Функция Smart Freeze Optimizing, так как теперь она не имеет никакого эффекта.
v224 (15.07.2021)
Добавлено:
- Асинхронные автоматические бэкапы.
- Субкоманда /auth backup для ручного бэкапа.
- Инструменты разработчика: выполнение SQL-запросов из файла или напрямую из чата.
- Добавлен метод AuthDataManagerAPI#backup для API.
Изменено:
- Обновлён модуль защиты от Proxy/VPN.
Удалено:
- YAML работал некорректно.
v223 (7.07.2021)
Добавлено:
- Алгоритмы хеширования: MD2, MD4, SHA0, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Tiger, Tiger2, Tiger128, Tiger160, BLAKE2B_160, BLAKE2B_256, BLAKE2B_384, BLAKE2B_512, Whirlpool_0, Whirlpool_1, Whirlpool_2, CRC8, CRC16, CRC24, CRC64.
- Бенчмарк для всех алгоритмов хеширования (тут).
- Уведомление для админов об обновлении. Доступна задержка. Особенностью является то, что можно вписать любой ивент-класс, имеющий метод getPlayer. Выводится кликабельное сообщение.
- Автоматическое удаление ненужных .currentConfig файлов и пустых папок в doNotTouch.
Изменено:
- Теперь имя алгоритма хеширования не чувствительно к регистру (SHA256 = sha256 = ShA256).
- Теперь стандартными настройками хеширования являются Tiger128+SALT+Tiger128.
- Адрес зеркала для базы данных прокси изменён. Прошлое зеркало продолжит быть активным, для поддержки старых версий, но не будет обновляться.
v222 (6.07.2021)
Это обновление влияет только на API и не меняет работу плагина.
Изменено:
- Добавлены Jetbrains Annotations ко всем полям и методам.
- PlayerProfile, QueryType перенесены в пакет API.
- Переписаны некоторые JavaDocs, добавлены там, где их не хватало.
v221 (6.07.2021)
Добавлено:
- AuthHashManagerAPI#reload для API.
Изменено:
- Переписана система хеширования, скорость увеличена в несколько раз.
v220 (6.07.2021)
Добавлено:
- Автоматическая миграция с AuthMe. Работают все базы данных, а все данные о базе BaronessAuth получает самостоятельно. Для подробностей прочтите соответсвующую страницу в Инструкциях.
- Субкоманда /auth migrate для управления миграциями.
- Субкоманда /auth load для отображения системной статистики. Работает только на Linux и получает максимально точную информацию напрямую из системы.
- AuthDataManagerAPI#saveProfileSynchronously для API.
- Новая система асинхронности. Бенчмарки показали, что скорость, сравнивая со стандартной, вырастает вплоть до 93%.
Исправлено:
- Кэш мог не догрузиться ко входу игрока и предложить ему зарегистрироваться. Это происходило при большом пинге до базы данных.
v219 (6.07.2021)
Работа асинхронных запросов в MySQL, PostgreSQL, SQLite. Это уменьшит задержку между вводом /register и успешной регистрацией.
v218 (28.06.2021)
Добавлено:
- Асинхронные «запросы» для игроков.
- Асинхронное кэширование данных игрока на этапе подключения. Это убирает запросы в базу данных при регистрации\авторизации, а также ощутимо ускоряет процесс валидации.
- Асинхронная антибот система при регистрации.
- Новая проверка антибота: кликабельное сообщение.
- Запрос «ANTIBOT» для игрока.
Изменено:
- Капчи перенесены в антибот (security/captcha -> antibot). Изменены названия некоторых секций, но заполнение осталось тем же.
- Немного уменьшено количество кэшируемых настроек за счёт выгрузки ненужных. Это снизит потребление ОЗУ и слегка ускорит скорость обращения к настройкам.
- Произведён рефакторинг регистрации «родных» субкоманд для админов. Этот процесс стал быстрее.
- Обновлен драйвер PostgreSQL.
Удалено:
- Имя временного файла архива с базой данных GeoIP появлялось в корне плагина, а не в служебной папке.
- Капчи отображались, даже если они отключены.
Демонстрация работы текущих 2-х антибот проверок
v217 (27.06.2021)
Добавлено:
- AuthPluginReloadEvent для API.
Изменено:
- Теперь база данных прокси качается только с нашего зеркала.
- Размер файла плагина уменьшен на 30%.
- Обновлена документация для API.
- Минорные изменения для оптимизации работы прокси-чекера.
v216 (20.06.2021)
v215 (16.06.2021)
Добавлена система капч при регистрации (конечно же, её можно отключить). Перед успешной регистрацией для игрока генерируется простая задача на сложение\вычитание и выводится на экран, числа и знаки мультистрочные и случайно выбираются из ваших настроек. Пока игрок вводит капчу, он не получает сообщения из чата и продолжает быть в заморозке. Вы можете оформить любую цифру так, как вам хочется. Большие символы труднее распознать ботам, но игра не всегда позволяет их корректно отобразить.
Стандартное ожидание регистрации увеличено с 60с до 100с.
v213 (15.06.2021)
Добавлено:
- Предположение о вводимой субкоманде /auth, если таковая не существует. Изменено:
- Размер файла плагина уменьшен на 86%.
- Ускорены алгоритмы хеширования: MD5, SHA1, SHA256, SHA384, SHA512.
- Ускорено создание соли. Исправлено:
- В редких случаях пароль игрока не подходил.
v212 (13.06.2021)
Добавлено:
- Анти-прокси. Для его работы нужны дополнительные настройки - клик.
- Интервал на переподключение к серверу.
Изменено:
- Полностью переписана логика принятия подключения к серверу. Проверки ника\интервала\UUID\твинков\прокси\брутфорса стали быстрее.
v211
Добавлено:
- Логирование в файл: при регистрации, успешной авторизации, безуспешной авторизации, сработавшем антибрутфорсе, входе с сохранением сессии, смене пароля. Везде указывается ник и IP, а также доп. информация (если уместно). Логи по умолчанию отключены.
- Другой подход к многопоточной работе с базами данных, что может повысить производительность.
Изменено:
- Теперь DDL запросы в базу данных тоже асинхронные.
- Теперь при попытке использовать CRC32 на Java <9 выходит предупреждение.
- Немного ускорено создание MD5 хеша.
Исправлено:
- В редких случаях соль была на пару символов короче, чем должна.
v210
Добавлено:
- Режим "legacy" заморозки, которая использует тот самый метод, который был у нас вплоть до v153 (security/freeze).
- Новые "особые аргументы" для скриптов, которые позволяют переносить игрока на другой BungeeCord сервер или ожидать.
- AuthPlayerSessionSavedEvent в API.
Изменено:
- Получение актуальных настроек из кэша ускорено на ~30%.
- Произведён рефакторинг логики заморозки.
Исправлено:
- Работа на Spigot 1.8.
v204
Исправлены некорректно работающие конфиги заморозки
Добавлен blockEntityInteract при заморозке
Добавлен blockProjectile при заморозке
Добавлен blockChat при заморозке
Добавлен blockTeleport при заморозке. Блокирует только в том случае, если чанк игрока изменился
Изменено расположение настроек. Пожалуйста, проверьте их, прежде чем устанавливать плагин на продакшн!
Теперь при проверке конфига плагин выявляет неиспользуемые файлы, меняет их расширение на .old и предупреждает об этом в дебаг
Добавлена субкоманда /auth clean, которая удаляет все .old конфиги и пустые папки
Добавлена субкоманда /auth unregister, которая позволяет удаляет все данные игрока из базы данных
Добавлена субкоманда /auth setpassword, которая позволяет сменить пароль игроку
Добавлена субкоманда /auth unfreeze, которая позволяет снять заморозку с игрока
v203
Исправлены нерабочие в SQLite сессии
Исправлен подсчёт количества твинков
Добавлена полная конфигурация админских команд, вплоть до выключения отдельных из них
Добавлена различная статистика через команду /auth stats
Добавлена статистика сервера: онлайн сейчас, количество авторизаций за сегодня и за месяц, количество регистраций за сегодня, за месяц и за всё время
Добавлена статистика игроков: статус, дата регистрации и последнего входа, IP в момент регистрации и последний IP
Добавлена статистика IP: количество зарегистрированных с него аккаунтов и перечисление каждого из них
Добавлена настройка часового пояса и формата даты, на сохранённые данные не влияет
Добавлен фильтр, скрывающий в консоли ввод игроками "reg", "l", "changepassword" и их алиасов
Переработан конфиг проверки силы пароля
Добавлен новый фильтр пароля, запрещающий игрокам использовать в качестве пароля свой же ник
Добавлены новые опции дебага, для DDL и DHL SQL-запросов. По умолчанию отключены
Мелкие исправления
v202
Добавлен blockDrop при заморозке
Добавлен blockPickup при заморозке
v201
Добавили рабочий PostgreSQL
Исправили неудобные дефолтные конфиги
Изменён API. Для аддона Hide Location нужна новая версия
v200
:::info Очень важный шаг разработки плагина, когда он был полностью переписан с нуля. Это решение позволило значительно улучшить производительность и надёжность. :::
Добавлена проверка сложности пароля по базе слитых паролей (600+млн)
Добавлены расширенные настройки твинков, в том числе и репорты
Добавлен Telegram бот для регистрации и авторизации
Добавлена синхронизируемая по базе данных сессия
Добавлена возможность написать свой алгоритм хеширования
Добавлены базы данных: YAML, SQLite, MySQL, PostgreSQL
Добавлены раздельные конфиги и инструмент для быстрой настройки
Значительно улучшена система умного конфига
Добавлено более 10 настроек для заморозки игроков
Добавлен режим умной оптимизации заморозки
Добавлен фильтр ников по собственному паттерну
Добавлен фильтр паролей по собственному паттерну
Сделали защиту от подмены UUID непробиваемой!
Добавлены репорты при подмене UUID
Значительно увеличилась скорость работы плагина и уменьшено потребление ресурсов
Вторая итерация:
v153
Оптимизация
Поддержка 1.8
Убрано ограничение на падение во время фриза
Починен классический режим ника
v152
Не задокументировано, особенности неизвестны. Но существует.
v151
Не задокументировано, особенности неизвестны. Но существует.
v150
Добавлена полная поддержка MySQL
Исправлен баг, при котором "авторизуйтесь" не повторялось
Переписаны некоторые SQL запросы для производительности
Добавлен классический режим фильтрации, при котором доступны только кириллица и _
Добавлена защита от брутфорса
Добавлен режим "invert" в защите от твинков. В этом режиме вы можете вписывать в белый список IP, а не ники игроков
Убрана система лицензий и вместе с ней безопасный режим
Секции скриптов теперь не удаляются и функционируют
v149
Слегка увеличена скорость проверки лицензии
Добавлена возможность производить читабельные логи
v148
Все клиенты перенесены на SQLite
Скрыты логи о командах регистрации и авторизации
Полностью переписано всё, что связано с данными. Большая часть функций стала асинхронной
Добавлены новые "альтернативные" виды статистики - с ними чат не будет засоряться, вся информация выводится при наведении курсора по сообщению
Полностью переписано всё, что связано с обработкой конфига
Улучшено хеширование. Старые пароли также будут работать, а новые будут ещё защищённее,
Система восстановления конфига научилась удалять неиспользуемые секции,
Добавлена система контроля твинков
Добавлены 2 новые кнопки в панель управления (бэкап и твинки)
Исправлены .zip архивы для бэкапов
Добавлено автозаполнение для команд
Оптимизированы некоторые утилиты
Оптимизирована анимация панели управления
Оптимизирована вся статистика
Оптимизирована перезагрузка
v147
Мощная оптимизация в плане потребления ОЗУ
Ускорен запуск плагина
Ускорена чистка неиспользуемых паролей
Новая система проверки лицензии
Добавлена система твинков
Значительно увеличена безопасность благодаря новому алгоритму хеширования
Общая статистика сервера временно не работает из-за изменённой структуры памяти
Починили миграцию с AuthMe
v146
Оптимизирована загрузка плагина
Изменен способ проверки лицензии
Добавлена миграция данных из AuthMe
Проверка UUID и фильтр ника перешли в асинхрон
Добавлены кастомные фильтры для ников
Добавлено сохранение IP регистрации игрока. Тэг {REGISTRATION_IP}
Добавлены настройки бэкапов
Оптимизирована регистрация игрока
::: info В этот период была добавлена новая система проверки лицензии. При покупке, человек получал код, который мог активировать в специальном Android приложении и менять IP своей лицензии. Также, была добавлена партнёрская программа. Система не прижилась и была убрана в v150. :::
v145
"ban_message" исправлено на "kick_message"
v144
Добавлена система бэкапов. Имя папки бэкапа основано на формате даты, которую вы настроили в конфигурацию. Новый бэкап автоматически создаётся при включении и выключении сервера, а также может быть принудительно сделан, используя /auth backup
Добавлено сохранение IP адресов! В профиле каждого игрока хранятся все адреса, с которых он входил. Через /auth info можно узнать последний адрес (тэг {LAST_IP})
Пересоздана логика постройки статистики, из-за чего /auth stats стал работать в несколько раз быстрее
Оптимизирована система заморозки игрока
Убраны проблемы с проверкой лицензии: если наши сервера недоступны, плагин продолжит работать. Таким образом вы получаете гарантию аптайма 100%
Добавлена возможность запретить пробелы\кириллицу в нике
v143
Улучшена совместимость с новыми версиями. При тестировании на 1.16+ 100% функций работали корректно
Изменена система даты и времени. Благодаря этому вы можете изменить форматирование\часовой пояс в любой момент, на старые данные это не повлияет (после обновления плагин автоматически перенастроит структуру данных по-новому)
Теперь мобы не реагируют на "замороженных" игроков
Добавлена поддержка разделителя "/n" в любых сообщениях. Таким образом вы можете добавлять неограниченное количество строк для любого сообщения
Первая итерация:
Не получилось найти данные :(