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

  • perf: кэширование regex-паттернов и уменьшение количества обращений к map (часть 2)
    Кэширование скомпилированных regex в MobType и VariableScopedName, замена containsKey+put+get на computeIfAbsent при загрузке скиллов и в AuraExecutor, использование одного get() для выполнения сигналов и поиска аур
  • perf: кэширование regex и устранение двойных обращений к map в системе дропа
    Кэширование regex как статических полей в DropExecutor, замена containsKey+get на один get() в DropMetadataImpl
  • perf: исправлена яркость текстовых снарядов
    Исправление перенесено на уровень API
  • perf: замена HashSet на ArrayList при клонировании в SkillMetadataImpl
    • Замена new HashSet<>(targets) на new ArrayList<>(targets) в deepClone() и deeperClone() (~в 5–24 раза быстрее)
    • Замена пустых HashSet на Collections.emptySet()
    • Замена одиночных HashSet на ArrayList(1)
  • perf: однопроходная обработка строк плейсхолдеров
    Замена цепочки .replace() на посимвольный проход (~в 3 раза быстрее при парсинге, ~в 2 раза при обратной операции). Дополнительные оптимизации в PlaceholderParser и PlaceholderExecutor
  • perf: уменьшение выделений памяти на тик в ProjectileMechanic
    • Замена new ArrayList + add() на Collections.singletonList()
    • Удалено лишнее targets.clone()
    • Использование lengthSquared() вместо length()
    • Кэширование hitRadius.get(context)
    • Кэширование проверки bulletType == ARROW
    • Удалены неиспользуемые переменные
    • Замена обходного rotate(0.001F) на корректную проверку нулевого вектора
  • perf: оптимизация targeter-ов, проверок дистанции и стримов
    • Замена stream-операций на HashSet (до 25 раз быстрее)
    • Использование distanceSquared вместо distance
    • Вынос Math.pow и плейсхолдеров из циклов
    • Удалено лишнее создание Location
  • Добавлен новый компонент ауры projectilerebound, который отражает входящие снаряды (поддержка vanilla и mythic):
    • returnMode=ORIGINAL_CASTER — возврат к стрелявшему
    • returnMode=MIRROR — возврат к исходной точке
    • reparseFaction=true — переназначение владельца/фракции
    • cancelIncoming=true — отмена исходного попадания
    • speedFactor — множитель скорости
    • powerFactor — множитель урона
    • reboundConditions — условия для отражения
    • @ORIGIN — точка отражения
    • @trigger — оригинальный стрелок (если есть)
    • Добавлены переменные, например rebound-origin
    • Добавлен колбэк onRebound
  • Добавлены Happy Ghast и Nautilius в механику седла и условие isSaddled
  • Добавлены математические операции в параметр chance для дропа (аналогично amount), а также добавлены inline-условия для дропа
Автор: bobobo
  • Добавлен damage-amount-post, который возвращает количество урона после учёта брони — фактический урон, получаемый существом
  • Добавлен windcharge
  • Добавлены несколько новых плейсхолдеров:
    • ``: возвращает список UUID дочерних сущностей
    • ``: возвращает фракцию сущности
    • ``: возвращает глобальный кулдаун сущности
    • ``: возвращает последний полученный сигнал сущности
  • Исправлены проблемы с конкурентностью в PolymorphicPlaceholder
Автор: bobobo
  • Добавлена опция Variant: для Axolotl, поддерживающая все типы аксолотлей (lucy, wild, gold, cyan, blue)
  • Добавлен компонент данных Instrument, теперь можно добавлять, например:
    Instrument: minecraft:ponder_goat_horn с любым ключом инструмента
Автор: bobobo
  • fix: исправлено кодирование яркости отображаемой сущности
Автор: bobobo
Улучшено предупреждение об устаревшем API для отображения более подробной информации
  • Также предупреждение теперь появляется только один раз за время работы программы для каждого использования устаревшего API одним и тем же классом
Автор: bobobo
  • Используется Adventure в StopSoundEffect
  • Расширена механика SetTongueTargetMechanic через NMS (экспериментально)
  • В компоненте Repairable теперь можно использовать теги вида #minecraft:planks
  • Добавлено предупреждение в консоль при регистрации аддоном устаревших плейсхолдеров
  • Исправление работы Repairable
  • Проверка, попадает ли bounding box в конус для @EIC{bb=true}
  • Добавлена опция useBoundingBox/bb=true/false для таргетеров типа EntitiesNearOrigin
  • Исправлена проблема, когда статические значения не учитывались как статические
Автор: bobobo
Added runtime check against registering the same alias for multiple particles

  • removed dust alias from BLOCK_DUST particle
  • it is now only the alias of the DUST particle
  • removed explosion alias from POOF particle
  • it is now only the alias of the EXPLOSION particle
  • removed underwater alias from SUSPENDED_DEPTH particle
  • it is now only the alias of the UNDERWATER particle
Автор: bobobo
  • chore: deps should update regardless
Автор: bobobo
perf: Optimize AbstractLocation#toString for common coordinate values
Автор: bobobo
  • fix: StackOverflow and CME on aura termination
Автор: bobobo
ВерхНиз