Плагин Оптимизация ajQueuePlus [2.9.1]

Это в основном быстрый фикс проблемы, из-за которой экспресс-очереди не отправляли игроков, если в стандартную очередь никто не заходил.

Изменения:

Исправлена ошибка, при которой игроки из экспресс-очереди не отправлялись, если в стандартную очередь никто ни разу не заходил (и наоборот).
Логика экспресс-очередей полностью пропускается в бесплатной версии — дополнительные проверки больше не выполняются, так как они там не используются.

v2.9.0 — Экспресс-очереди и более точные ETA​

Это обновление добавляет две давно запрашиваемые функции. Обе они потребовали серьёзных внутренних изменений, поэтому если у вас есть аддоны или вы их разрабатываете, возможно, потребуется обновление. По всем вопросам можно обращаться к разработчику.

Обе новые функции используют новые сообщения, которые заменяют старые. Старые сообщения останутся в файле сообщений, а новые добавляются автоматически со значениями по умолчанию. Если вы полностью изменяли сообщения ajQueue, возможно, потребуется вручную скопировать новые, обратив внимание на различия.

Начиная с этой версии, ajQueue обязательно требует Velocity 3.2.0 или новее. Требования к BungeeCord не изменились.

Основные новые возможности​

Экспресс-очереди (ajQueuePlus)
Экспресс-очереди предназначены как более справедливая замена системе приоритетов. При обычных приоритетах возможна ситуация, когда при постоянном заходе приоритетных (платных) игроков обычные игроки вообще не будут отправляться.

Экспресс-очередь — это отдельная очередь, доступная только платным игрокам. ajQueue поочерёдно отправляет игроков из стандартной и экспресс-очереди. Соотношение можно настроить в конфигурации (по умолчанию 1:1).

Так как экспресс-очередь доступна ограниченному числу игроков, она обычно короче, что позволяет платным игрокам заходить быстрее, не блокируя обычных. Система приоритетов при этом остаётся и может использоваться даже внутри экспресс-очереди.

Для входа в экспресс-очередь требуется разрешение ajQueue.express.<server>, поэтому по умолчанию для игроков ничего не меняется.

Улучшенные ETA
ajQueue теперь измеряет время, необходимое для отправки игроков на сервер, и использует скользящее среднее для более точного расчёта ETA. Это позволяет показывать ETA даже для полностью заполненных серверов.

По умолчанию используется среднее значение по последним 10 отправкам, но это можно изменить в конфигурации. При необходимости новую систему ETA можно полностью отключить.

Прочие изменения​

Учёт параметра supported-protocols при балансировке групп (для default и first балансировщиков)
Исправлено игнорирование части сообщений приоритета после второго двоеточия
Добавлена опция treat-negative-one-max-player-as-infinite
Запрещена мгновенная отправка, если в очереди более одного игрока без bypass
Исправлена попытка обращения к PlaceholderAPI, если он не установлен
Команда /ajqueue list теперь показывает не более 50 игроков на очередь
Исправлено исключение ConcurrentModificationException при выходе игрока с p####i
Исправлена редкая ошибка NullPointerException при отправке событий очереди, когда игрок находится между серверами
Оптимизирована логика bypass и приоритетов в ajQueuePlus
Небольшие дополнительные оптимизации для обеих версий
Исправлен конфликт с nLogin, из-за которого queue-server не работал при редиректе премиум-игрока
Исправлена обработка алиасов серверов после второго двоеточия
Исправлён апдейтер конфигурации, который некорректно переносил priority-messages
Исправлена поддержка hex-цветов в velocity-kick-reason
Исправлен комментарий make-room, где разрешение указывалось дважды
Исправлено срабатывание SuccessfulSendEvent при remove-player-on-server-switch
Добавлен балансировщик first-strict, всегда выбирающий первый сервер в группе
Добавлены названия протоколов 1.21.10 и 1.21.11 в сообщения по умолчанию
Добавлено предупреждение при сбое auto-add-to-queue-on-kick с рекомендацией увеличить задержку
Добавлена настройка ping-timeout для Velocity
Исправлена проблема с instant send, если в очереди находился офлайн-игрок
Уточнено, что velocity-kick-message не применяется к офлайн или переполненным серверам
Повторная проверка разрешения stayqueued при выходе игрока для актуального времени офлайна
Прошёл год с последнего релиза — вот новое обновление.

🔹 Новый автообновлятор: используется собственная система. Для ajQueuePlus теперь требуется авторизация в updater-config.yml (только для платной версии). Бесплатным пользователям авторизация не нужна. При ручном обновлении делать ничего не требуется.

🔹 Обновлён список протоколов — добавлены версии с 1.20.4 по 1.21.8. Можно добавлять свои, но теперь эти есть по умолчанию.

🔹 Добавлено:
  • Новый автообновлятор и проверка обновлений
  • Плейсхолдер %ajqueue_queued_status%
  • Сообщение status.skipping-queue-server (по умолчанию отключено)
  • Опция disable-p####i-communication
  • Опция auto-add-excluded-servers в конфиг
  • Возможность отключить команды на Spigot/Backend
  • Возможность отключить /server alias
  • Новые сообщения кика для Velocity в messages.yml
🔹 Исправлено:
  • Отправка игрока на недоступный сервер
  • Сообщение автоочереди не использовало алиасы
  • Предупреждение при неправильных plus priority правах
  • Обновление PlaceholderAPI после входа
  • Поведение skip-queue-server-if-possible и /ajQueue kick
  • Ошибка с /listqueues и pausequeueserver
  • Сбои при переключении серверов
  • Комментарии в конфиге и ссылка на список протоколов обновлены
🔹 Примечание: теперь обязательно указывать два сервера в queue-servers.
Прошло 8 месяцев с момента последнего релиза. Извините, что так долго не было обновлений. Я все еще вношу изменения, но я усложнил процесс выпуска, когда попытался автоматизировать релизы. Возвращаемся к ручным обновлениям, надеюсь, чуть чаще 🙂 .

Изменения

Добавлена поддержка Folia (для бэкенда)
Добавлена функция skip-queue-server-if-possible
Добавлена возможность сделать /send псевдонимом для /ajQueue send
Снятие с регистрации встроенной команды velocity /server, если она должна быть заменена командой queue
Исправлена консольная ошибка при попытке автозаполнения в команде leavequeue
Улучшена подсказка по использованию /ajQueue
Улучшена команда /ajQueue version
Возможно, исправлены некоторые ошибки с получением времени последнего изменения сервера (я не смог воспроизвести, но это должно быть исправлено)
Добавление PriorityCalculationEvent в API, что позволяет добавлять приоритеты программно
Исправлено удаление игроков из очереди серверов, когда они уходят и имеют разрешение остаться в очереди
Исправлена ошибка, которая могла возникнуть при проверке наличия сервера в белом списке
Проверка ViaVersion только один раз, а не каждый раз, когда создается экземпляр AdaptedPlayer
Исправлена ошибка при выполнении команды отладки списка разрешений из консоли
Исправлена ошибка, при которой сообщение velocity-kick-message не отправлялось при возникновении ошибки
Исправлена ошибка, при которой символ цветового кода устаревшей секции нарушал velocity-kick-message
Исправлено, что имена протоколов не считывались из файла сообщений
Добавлены новые события API: AutoQueueOnKickEvent, BuildServersEvent и PreConnectEvent (Спасибо KamikazeJAM/Jake Moore)
Добавлена опция act-like-no-permission-servers-dont-exist
Больше не отправляет сообщение ack, когда отключена проверка p####i-response
Предотвращение спама при использовании плейсхолдеров PAPI
  • Лайк 0
Реакции:1 пользователя
  • Исправлены недействительные серверы в placeholders, которые выдают ошибку вместо того, чтобы просто сказать, что сервер недействителен
  • Переформатирование конфигурации
  • В конфигурацию добавлена опция require-queueserver-permission
  • Исправлено неработающее отображение статуса игрока
  • Исправлено не отображение статуса "белый список" для заполнителя статуса неигрока
  • Улучшено получение игроков для spigot api
  • Добавлен plus-level-fallback, позволяющий некоторым уровневым разрешениям на ajQueuePlus работать без поддерживаемого плагина разрешений
  • Исправлена ошибка, когда QueueScoreboardActivator не активировался на нужном игроке
  • Игнорировать таймауты в заполнителях
  • Исправление нулевых точек при изменении очереди
  • Добавить возможность разрешить повторную очередь для групп
  • Исправить ситуацию, когда игрок удалялся до того, как срабатывала опция allow-group-requeue
  • Фильтр аргументов автозаполнения
  • Добавлено разрешение ajqueue.make-room (по умолчанию отключено)
  • Исправлено, что при использовании make-room не учитывались приоритеты
  • Добавлена опция re-check-priority для повторной постановки игроков в очередь при повышении их приоритета
  • перемещение имен протоколов в messages.yml и добавление имен новых версий
  • В конфиг добавлена опция manual-max-players, которая позволяет задать максимальное количество игроков для серверов/групп
  • Исправлена ошибка wait-after-online, которая ничего не делала
  • Не парсить placeholder, если игрока больше нет в сети
  • Игнорирование ошибки, связанной с тем, что игрок больше не находится в сети
  • Добавлен API QueueHolder
  • Добавлен api для регистрации пользовательских PermissionHooks
  • Добавлена возможность задержки серверов очереди на 3 секунды
  • Исправлено игнорирование задержки сервера очереди командой force-queue-server-target
  • Исправлено игнорирование командами slash-сервера предварительных проверок очереди (например, разрешения joinfrom)
  • Пропуск недействительных имен протоколов при их перемещении
См. изменения на github
  • Лайк 0
Реакции:1 пользователя
ВерхНиз