Это обновление направлено на повышение безопасности данных NPC, надёжности выполнения команд и общей стабильности.
Данные NPC и их хранение⚙️ Исправления команд
- Записи NPC, которые не удалось загрузить, теперь сохраняются, а не теряются.
- Зарезервированные ID NPC больше нельзя случайно использовать повторно или перезаписать.
- Улучшено сохранение данных: последовательная запись и атомарная замена файлов снижают риск повреждения данных.
⏳ Задержки взаимодействий
- Исправлена обработка префиксов исполнителей команд и символа /.
- Улучшена подстановка плейсхолдеров с именами игроков.
- Исправлены некорректные сообщения об использовании команд.
Перезагрузка и совместимость
- Задержки теперь отслеживаются отдельно для каждого игрока.
- Данные о задержках автоматически очищаются при отключении игрока.
- Улучшена перезагрузка NPC с сохранением большего количества настроек.
- Добавлены необязательные зависимости от нескольких плагинов для работы с несколькими мирами, чтобы улучшить совместимость.
ИсправленияВнутренние изменения
- Исправлен NullPointerException при взаимодействии с NPC. Исправлена ошибка в NPCListener, из-за которой клик по NPC вызывал NullPointerException, если менеджер эффектов ещё не был инициализирован. Проблема затрагивала как левый клик (PlayerInteractEvent), так и правый клик (PlayerInteractAtEntityEvent).
- Исправлен NoClassDefFoundError — BukkitAudiences при запуске. Удалена оставшаяся зависимость от adventure-platform-bukkit (BukkitAudiences). Эта библиотека не входит в современные версии Paper и из-за неё плагин полностью не запускался. API не использовался внутри плагина, поэтому удаление не повлияло на функциональность.
- Исправлен NoClassDefFoundError при отсутствии ModelEngine. Исправлено несколько сбоев, возникавших, если ModelEngine не установлен на сервере:
- ModelEngineHandler.reapplyModelEngineModels() теперь сразу завершает работу, если ModelEngine отсутствует.
- MEGAnimationHandler теперь один раз при запуске проверяет наличие ModelEngine и защищает все точки входа: applySavedAnimationsWithRetry, playLoopedAnimation, playLoopedAnimationByName, playInteractAnimation, stopLoopedOnEntity. Ранее они вызывали ошибки каждый тик через запланированные задачи и засирали консоль.
- Компилируемая версия JDK обновлена до Java 25 (Azul Zulu) для поддержки BetterModel API 3.4.1
Добавлено:
- Постоянное масштабирование NPC — новая команда /mnpc scale <id> <value>.
- Добавлено новое поле permanentScale в данные NPC, которое сохраняется между перезапусками.
- Масштаб автоматически применяется заново при появлении или возрождении NPC.
- Команда изменяет масштаб в реальном времени и сразу сохраняет значение.
Исправлено:
- Эффект наведения сбрасывал пользовательский масштаб NPC.
- NPC с настроенным масштабом больше не возвращаются к значению 1.0 после того, как игрок перестаёт наводиться на них.
- Теперь вместо фиксированного значения 1.0 используется permanentScale.
- Анимация наведения теперь применяется поверх постоянного масштаба (например, NPC с масштабом 0.5x будет иметь эффект наведения 0.5 × hoverMultiplier).
- Это обновление исправляет проблему, из-за которой ProtocolLib спамил ошибками в консоль
- Исправлена проблема, из-за которой эффект свечения NPC работал некорректно, когда другие плагины (например, CMI) отправляли пакеты голограмм.
ModeledNPCS — крупное обновление Escort System + важные улучшения
Огромное обновление для ModeledNPCS, добавляющее серьёзные улучшения в Escort System, полностью настраиваемое поведение при прибытии и важные исправления совместимости.
✨ Escort System — анимации прибытия (Clone NPCs)
Клоны escort NPC теперь могут автоматически воспроизводить пользовательские анимации при достижении точки назначения.
Новые YAML-поля:Возможности:
- arrive-animation: <name>
- arrive-animation-duration: <seconds>
Это позволяет создавать кинематографичные завершения escort-сцен напрямую через конфиг без дополнительного кода.
- Используется MEGAnimationHandler.playLoopedAnimationByName() напрямую на клоне
- Полная изоляция для каждого игрока — каждая escort-сессия независима
- Длительность 0 оставляет анимацию активной до удаления клона
⚡ Escort System — команды при прибытии
Клоны escort теперь могут выполнять команды сразу после прибытия через YAML-конфигурацию.
Новая секция:Поддерживаемые форматы:
- Patrol:
- arrival-commands:
Дополнительные возможности:
- console: <command>
- player: <command>
- Без префикса → выполнение от консоли
Подходит для:
- Полная поддержка плейсхолдера {player}
- Команды выполняются до открытия диалога прибытия
- Полностью независимая система сессий для каждого игрока
Новые YAML-поля диалогов
- Наград
- Телепортов
- Прогрессии квестов
- Эффектов и катсцен
- Динамических сюжетных событий
Добавлены новые настраиваемые поля escort прямо в деревья диалогов:⛪ Полностью переработан priest.yml
Поле Расположение Описание arrive-animation Корень дерева назначения Анимация при прибытии arrive-animation-duration Корень дерева назначения Длительность перед удалением arrival-commands Внутри Patrol: Команды, выполняемые при прибытии
Вся escort-конфигурация priest.yml была переработана.
Изменения:✅ Совместимость Patrol System
- Добавлен arrive-animation: idle
- Добавлен arrive-animation-duration: 0
- Добавлены arrival-commands для всех маршрутов и состояний patrol
- Все escort-маршруты теперь полностью управляются через YAML без необходимости настройки базы данных
Оригинальная система прибытия /mnpcai patrol осталась полностью без изменений.
Существующие SQLite-функции продолжают работать как раньше:Миграция не требуется.
- Анимации
- Время ожидания
- Диалоги прибытия
- Команды
- Права доступа
Обновление зависимостей
Обновлено:Исправления:
- GlowingEntities с 1.4.3 до 1.4.11
Изменений API не требуется — исправление полностью внутреннее.
- IllegalArgumentException: Malformed version: 26.1.2.build.60-stable
- Краши при запуске, вызванные нестандартным форматированием версий в Paper