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

  • Исправлено: голограммы (/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-файлы диалогов остаются совместимыми, при этом доступны новые возможности
Последнее обновление перед 7.7
– Исправлено: проблема в meganimation, из-за которой NPC мигал
– Исправлено: ошибки компиляции, связанные с ProGuard
ВерхНиз