Gold Плагин ModeledNPCs: Ultimate NPC Plugin for MythicMobs & ModelEngine! Quests, Dialogues & More! [8.2-SNAPSHOT]

ModeledNPCS — крупное обновление Escort System + важные улучшения

Огромное обновление для ModeledNPCS, добавляющее серьёзные улучшения в Escort System, полностью настраиваемое поведение при прибытии и важные исправления совместимости.

✨ Escort System — анимации прибытия (Clone NPCs)
Клоны escort NPC теперь могут автоматически воспроизводить пользовательские анимации при достижении точки назначения.

Новые YAML-поля:
  • arrive-animation: <name>
  • arrive-animation-duration: <seconds>
Возможности:
  • Используется MEGAnimationHandler.playLoopedAnimationByName() напрямую на клоне
  • Полная изоляция для каждого игрока — каждая escort-сессия независима
  • Длительность 0 оставляет анимацию активной до удаления клона
Это позволяет создавать кинематографичные завершения escort-сцен напрямую через конфиг без дополнительного кода.

⚡ Escort System — команды при прибытии
Клоны escort теперь могут выполнять команды сразу после прибытия через YAML-конфигурацию.

Новая секция:
  • Patrol:
    • arrival-commands:
Поддерживаемые форматы:
  • console: <command>
  • player: <command>
  • Без префикса → выполнение от консоли
Дополнительные возможности:

  • Полная поддержка плейсхолдера {player}
  • Команды выполняются до открытия диалога прибытия
  • Полностью независимая система сессий для каждого игрока
Подходит для:
  • Наград
  • Телепортов
  • Прогрессии квестов
  • Эффектов и катсцен
  • Динамических сюжетных событий
Новые YAML-поля диалогов
Добавлены новые настраиваемые поля escort прямо в деревья диалогов:

ПолеРасположениеОписание
arrive-animationКорень дерева назначенияАнимация при прибытии
arrive-animation-durationКорень дерева назначенияДлительность перед удалением
arrival-commandsВнутри Patrol:Команды, выполняемые при прибытии
⛪ Полностью переработан priest.yml
Вся escort-конфигурация priest.yml была переработана.

Изменения:
  • Добавлен arrive-animation: idle
  • Добавлен arrive-animation-duration: 0
  • Добавлены arrival-commands для всех маршрутов и состояний patrol
  • Все escort-маршруты теперь полностью управляются через YAML без необходимости настройки базы данных
✅ Совместимость Patrol System
Оригинальная система прибытия /mnpcai patrol осталась полностью без изменений.

Существующие SQLite-функции продолжают работать как раньше:
  • Анимации
  • Время ожидания
  • Диалоги прибытия
  • Команды
  • Права доступа
Миграция не требуется.

Обновление зависимостей
Обновлено:
  • GlowingEntities с 1.4.3 до 1.4.11
Исправления:
  • IllegalArgumentException: Malformed version: 26.1.2.build.60-stable
  • Краши при запуске, вызванные нестандартным форматированием версий в Paper
Изменений API не требуется — исправление полностью внутреннее.
  • Исправлено: голограммы (/mnpc name) не появлялись рядом с NPC
  • Исправлено несоответствие ссылок на мир, из-за которого голограммы сразу удалялись после создания. Теперь сравнение мира выполняется по имени, а не по объекту — исправлена совместимость с Multiverse-Core и плагинами, перезагружающими миры
  • Локация голограммы теперь каждый тик заново получает ссылку на мир из Bukkit, что предотвращает устаревшие ссылки после перезагрузки мира
  • Исправлено: команда /mnpc name не создавалась голограмма, если имя совпадало с ID модели
  • Удалена проверка, которая обнуляла пользовательское имя, если оно совпадало с внутренним именем модели NPC
  • Исправлено: цветовые коды (&c, &l и т.д.) не отображались в тексте голограмм
  • Теперь используется LegacyComponentSerializer, благодаря чему цвета и форматирование отображаются корректно
  • Исправлено: ошибка интеграции с LuxDialogues при запуске
  • Сообщение "Failed to register events" больше не появляется, если LuxDialogues не установлен — слушатель событий регистрируется только при наличии плагина
MODELEDNPCS — Обновление v8.0 (30.03.2026)


Это крупное обновление вводит новые системы, переработанный pipeline взаимодействия, расширенные настройки на NPC и полное расширение публичного API. Все функции настраиваются и работают с /mnpc reload.




1. Система наведения NPC (NPCHoverManager)​


  • Новый модуль, который определяет, когда игрок целится в NPC, и реагирует визуально и интерактивно.
  • Как работает:
    • Каждые несколько тиков проверяется прицел всех игроков (настраивается check_interval_ticks).
    • Сначала используется ray trace, затем конусное сканирование как резерв.
  • События при наведении:
    • Увеличение масштаба модели и голограммы игрока.
    • Воспроизведение звука и отображение подсказки в action-bar.
    • Запуск кастомной анимации ModelEngine.
    • Срабатывает событие NPCHoverEvent (ENTER).
  • При уходе курсора:
    • Восстановление масштаба, idle-анимации и голограммы.
    • Очистка action-bar.
    • Срабатывает NPCHoverEvent (LEAVE).
  • Настройка (config.yml → npc.hover):
YAML:
npc:
  hover:
    enabled: true
    range: 10.0
    angle_deg: 15.0
    scale: 1.2
    sound: UI_BUTTON_CLICK
    sound_volume: 0.6
    sound_pitch: 1.4
    scale_hologram: true
    hologram_scale: 1.3
    check_interval_ticks: 2
    hint_text: "&e[Right-Click] &fInteract"
  • Персональные переопределения на NPC (npc-extras.yml):
    • hover_enabled, hover_hint, hover_animation.



2. Fallback для правого клика (NPCListener)​

  • Теперь клик по воздуху или блоку (RIGHT_CLICK_AIR, RIGHT_CLICK_BLOCK) корректно вызывает взаимодействие с NPC, используя ту же систему ray trace + cone scan.
  • Конфигурация (config.yml):
YAML:
npc:
  interaction:
    right_fallback:
      enabled: true
      range: 5.5
      angle_deg: 30.0
  • Аналогично работает left_fallback.



3. Исправление конфигурации (Duplicate npc: key)​


  • Ранее два верхнеуровневых ключа npc: ломали загрузку hover-конфигурации.
  • Исправлено: все значения hover и interaction теперь корректно загружаются на первом запуске и при /mnpc reload.



4. Система NPC-Extras (npc-extras.yml)​


  • Расширенные настройки на NPC. Все поля опциональны, изменения вступают после /mnpc reload.

Поддерживаемые ключи:


  • LuxDialogues: lux_dialogue, lux_first_page
  • Эффекты частиц: particle, particle_count, particle_radius, particle_height
  • Приветствия: greet_message, greet_animation, greet_range
  • Сообщения о близости: proximity_message, proximity_range
  • Расписание: schedule_start, schedule_end, schedule_weather
  • Hover overrides: hover_enabled, hover_hint, hover_animation
  • Голограммы с анимацией текста: hologram_frames, hologram_frame_interval
  • Состояния NPC: active_state, states (например, default, busy, combat)



5. Расширение публичного API (ModeledNPCsAPI)​


  • Hover: getHoveredNPCId, isPlayerHoveringNPC, setNPCHoverEnabled, setNPCHoverHint, setNPCHoverAnimation и т.д.
  • Состояния NPC: setNPCState, getNPCState
  • Расписание: isNPCActive, setNPCSchedule, getNPCScheduleStart/End
  • Голограммы: setNPCHologramFrames, setNPCHologramFrameInterval
  • LuxDialogues: isLuxDialoguesAvailable, triggerLuxDialogue, setNPCLuxDialogue, setNPCLuxFirstPage
  • Новые события API: NPCHoverEvent, NPCStateChangeEvent



6. Улучшения /mnpc reload​


  • Теперь обновляет:
    • все npc.hover.* значения
    • hover-tick с новым интервалом
    • npc.interaction.right_fallback.* и left_fallback.*



7. Пример npc-extras.yml для NPC id 5​

YAML:
5:
  lux_dialogue: "merchant_talk"
  lux_first_page: "1"
  particle: "HEART"
  particle_count: 5
  particle_radius: 0.6
  particle_height: 1.0
  greet_message: "&eWelcome to my shop!"
  greet_animation: "wave"
  greet_range: 8.0
  proximity_message: "&7A merchant is nearby..."
  proximity_range: 5.0
  schedule_start: 6
  schedule_end: 20
  schedule_weather: "CLEAR"
  hover_enabled: true
  hover_hint: "&e[Right-Click] &fOpen Shop"
  hover_animation: "wave"
  hologram_frames:
    - "&aShop &fOpen"
    - "&6Shop &fOpen"
    - "&eShop &fOpen"
  hologram_frame_interval: 20
  active_state: "default"
  states:
    default:
      animation: "idle"
      hologram_suffix: ""
    busy:
      animation: "talk"
      hologram_suffix: " &7(Busy)"
  • Исправлено множество проблем с производительностью
  • Обновлён API
  • Исправлена проблема с подключением API к Glowing.
QuestsAdapter.java

  • getStatus() больше не возвращает QuestStatus.NOT_STARTED по умолчанию, если ни один адаптер не распознаёт имя квеста — теперь возвращает null. Ранее это вызывало, что все NPC светились красным, даже если имя квеста не было зарегистрировано ни в одном плагине.
QuestManager.java

  • questsAvailable теперь также проверяет BetonQuest, кроме Quests. Ранее пользователи BetonQuest не могли запустить задачу свечения.
  • updateGlow() теперь пропускает любые диалоговые деревья с null или пустым questName, предотвращая NPE и некорректные вызовы адаптера.
  • Интервал задачи свечения теперь берётся из конфигурации (c.GLOW_UPDATE_INTERVAL), а не жёстко задан 60 тик.
  • Метод updateGlow() теперь завершает работу заранее, если c.GLOW_ENABLED установлено в false.
  • Удалён неиспользуемый импорт AsyncPlayerPreLoginEvent.
  • Добавлены новые опции конфигурации в dialog_config.yml.
api Updated to 7.9.1
YAML:
        <dependency>
           <groupId>com.github.el211</groupId>
           <artifactId>ModeledNPCS-API</artifactId>
           <version>v7.9.1</version>
           <scope>provided</scope>
       </dependency>
Всем привет, это новое обновление позволит вам напрямую взаимодействовать с API ModeledNPCs
JAVA DOCS: Developer API | ModelledNpcs
  • Переключено на голограммы на основе display-entities
  • Исправлены проблемы с командой hidenametag
  • Исправлена проблема, из-за которой некоторые NPC исчезали из-за загрузки чанков при запуске сервера
  • Исправлена ошибка, из-за которой MEGAnimations не загружались после старта
  • Исправлена проблема с ChunkHandler
  • Это обновление представляет собой крупный внутренний рефакторинг, сосредоточенный на ИИ NPC, системе сопровождения, диалогах и голограммах
  • Многие системы были переписаны для повышения стабильности, гибкости и производительности
Важно перед обновлением:
  • Обновление содержит серьёзные внутренние изменения
  • Настоятельно рекомендуется сделать полную резервную копию перед обновлением
ИИ NPC и навигация:
  • Добавлена полноценная система поиска пути для NPC
  • Система сопровождения полностью переписана с нуля
  • Сессии сопровождения теперь индивидуальны для каждого игрока
  • Плавное перемещение NPC (поддерживается ProtocolLib)
  • Цепочки маршрутов — NPC может продолжать путь с текущей позиции
  • Обработка прибытия с логикой тайм-аута
  • Улучшена обработка видимости NPC (реальный NPC и клон сопровождения)
  • Исправлено множество крайних случаев, связанных с отменой сопровождения и отключением игроков
Улучшения системы диалогов:
  • Расширенная система диалогов с несколькими узлами состояний
  • NPC теперь могут переключаться между несколькими деревьями диалогов
  • Диалоги прибытия, движения и последующие диалоги стали чище и надёжнее
  • Удалена жёстко заданная логика NPC (например, поведение только для жреца)
  • Улучшено разделение логики парсинга и выполнения диалогов
Система голограмм (важно):

  • FancyHolograms больше не является обязательной зависимостью
  • Система голограмм полностью переработана
  • Исправлена проблема, из-за которой голограммы не следовали за NPC во время сопровождения
  • Унифицирована логика идентификаторов голограмм для создания, перемещения и удаления
  • Удалён устаревший и дублирующийся код работы с голограммами
  • Голограммы теперь корректно следуют за клонами сопровождения для каждого игрока
Внутренние переработки и исправления:
  • Значительная часть плагина переписана
  • ИИ NPC, сопровождение, диалоги и голограммы разделены на независимые системы
  • Исправлены ошибки, связанные с рассинхронизацией состояний диалогов
  • Исправлены проблемы очистки сопровождения
  • Исправлены ошибки видимости NPC
  • Исправлено дублирование голограмм
  • Повышена производительность и надёжность при большом количестве NPC
Примечания:
  • Из-за изменений во внутренних системах рекомендуется протестировать пользовательские настройки
  • FancyHolograms по-прежнему может использоваться, но больше не требуется
  • YAML-файлы диалогов остаются совместимыми, при этом доступны новые возможности
ВерхНиз