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
- Исправлено: голограммы (/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)"
QuestsAdapter.java
- Исправлена проблема с подключением API к Glowing.
QuestManager.java
- getStatus() больше не возвращает QuestStatus.NOT_STARTED по умолчанию, если ни один адаптер не распознаёт имя квеста — теперь возвращает null. Ранее это вызывало, что все NPC светились красным, даже если имя квеста не было зарегистрировано ни в одном плагине.
- 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.1YAML:<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-файлы диалогов остаются совместимыми, при этом доступны новые возможности