Gold Плагин MythicMobs Dev Builds Premium [5.13.1 (BUILD 6126)]

  • Фича: расширено условие entityType. Добавлена поддержка вложенных entityType... условий
Автор: bobobo
  • Исправление: доступ к состоянию сущностей в механиках теперь выполняется в потоке региона, которому принадлежит сущность, на Folia (#2255).
Это исправляет 30–40 механик для Folia.
Автор: bobobo
  • Лайк 0
Реакции:1 пользователя
  • Исправлена поддержка плейсхолдеров в громкости (volume) звукового механизма.
Автор: bobobo
  • Исправление: снаряды onHit больше не игнорируются на Folia (#2256).
  • Исправление: теперь учитываются флаги cancelOn* у ауры на уровне компонента, а не только строки ауры (#2254).
  • Исправление: условия Conditions в мета-скиллах теперь вычисляются один раз за каст через skill mechanic (#2246).
  • Исправление: ограничен maxHeight у случайного спавна пределами высоты мира (#2260).
  • Исправлено двойное применение модели MEG при использовании mob.Model.Id.
  • Добавлена поддержка `` для механики forEach.
Автор: bobobo
perf: lock-free per-player AtomicReference для отслеживания перемещения; удалён лишний Location.clone на каждый PlayerMoveEvent
perf: устранены копирования target-list в горячих клонах SkillMetadata (deepCloneNoTargets); исправлена некорректная очистка целей в DropItem/StealItem
perf: VariableRegistry переведён на lock-free модель; запись PlayerVariableRegistry сериализована и дедуплицирована

  • VariableRegistry: убран ReentrantLock вокруг ConcurrentHashMap; операции по ключам теперь lock-free, а очистка по истечению срока использует атомарный conditional remove(key, var), чтобы параллельная запись не перетиралась.
  • PlayerVariableRegistry: запись событий сериализована через отдельный write-lock (чтение остаётся lock-free), и MythicPlayerVariableSetEvent теперь вызывается один раз на putAll вместо двух.
Автор: bobobo
  • Улучшение производительности: VariableRegistry переведён на ConcurrentHashMap вместо Gson LinkedTreeMap. (порядок итерации не зависит от использования).
  • Оптимизация: используется один общий WorldUnloadEvent listener для всех projectiles.
  • Добавлен API-метод для lootbag.
  • Исправлены изменения Paperweight userdev для 26.2.
  • Исправлена яркость механики speak{}.
  • Изменена формула Crit Damage: возвращена мультипликативная модель вместо аддитивной с другими модификаторами (modifyDamage{}).
  • Оптимизация: исключено создание UUID/knockback-modifier на каждый хит в doDamage, если knockback не предотвращается.
  • Добавлена поддержка версии 26.2.
  • Оптимизация: заменена итерация чанков на AABB spatial query в getEntitiesNearLocation.
  • Оптимизация: заменены streams на обычные циклы в ILocationSelector.filter.
  • Исправлена оптимизация getEntitiesNearLocation (fix evlad’s perf).
  • Оптимизация: переработан packet-renderer per-tick цикл (сокращены итерации и аллокации).
    • trackedPlayers заменён на плотный массив + индексную карту для ускорения циклов (~4x ускорение).
    • Убрано дублирование remove packet в cull-проходе.
    • Yaw/Pitch переведены на primitive DataTrackerFloat, убраны боксовые Float-аллокации.
  • Оптимизация: удалены временные списки при PacketEntityRenderer.sendPacket.
Автор: bobobo
  • Улучшение производительности: снижена нагрузка от отправки пакетов снарядов на каждом тике и от вычисления целей.
  • Теперь сервер способен обрабатывать около 10k снарядов при ~2 mspt (на 9950X). В дальнейшем планируются дополнительные оптимизации.
Автор: bobobo
  • Исправлена ошибка, из-за которой длительности эффектов больше не могли задаваться случайным образом.
Автор: bobobo
  • Исправлена проблема, из-за которой эффекты recoil/fear могли выкидывать игроков с ошибкой "Invalid move player packet received".
  • Добавлено условие angry для поддерживаемых мобов.
  • Условие isSheared теперь также поддерживает Bogged и снеговиков (Snowman).
  • Технические изменения: выпуск повышен до мажорной версии.
  • Добавлено условие pollinated для пчёл.
  • Исправлена неработающая проверка заряженного крипера (creeper charged condition), связанная с конструктором.
Автор: bobobo
  • Отменено изменение: добавление опциональной цилиндрической формы для условия mobsInRadius (revert commit b05b87c87487d160b3486756c009191796112af4).
  • Добавлено: параметр shape для условия mobsInRadius.
  • Добавлено: опциональная цилиндрическая проверка в mobsInRadius через поля height и yOffset.
Если height > 0, проверка переключается со сферы на Y-ограниченный цилиндр. Если не задано — используется старая логика сферы.

Пример:
Код:
mobsInRadius{r=10;height=5;yOffset=-2;types=ZOMBIE;amount=>3}
Проверка считает зомби в радиусе 10 блоков по горизонтали, в диапазоне Y [y-2, y+3].
Автор: bobobo
ВерхНиз