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

  • Исправлено: компонент ауры onDeath не срабатывал, если была включена опция cancelOnDeath.
Автор: bobobo
  • Перф: убрано около 1 секунды лишнего времени при каждой перезагрузке
    Две лишние операции выполнялись при каждом reload независимо от размера конфигурации: плагин несколько раз заново сканировал весь свой JAR-файл, а также создавал ошибку для каждого предмета без указанного цвета. Теперь эти операции пропускаются, что бесплатно экономит примерно 1 секунду на каждой перезагрузке.
  • Исправление: ключ tooltip_style теперь корректно разрешается с использованием пространства имён (namespace) ресурспака Crucible.
  • API: добавлен метод give для LootBags.
  • Перф: скорость перезагрузки увеличена примерно в 10 раз.
Автор: bobobo
Перф: предварительно задан размер буфера целей снаряда и пропущена лишняя проверка isDead.
Автор: bobobo
  • Производительность (particles): добавлено пакетирование / объединение particle-пакетов по тикам (rx ~10k → ~40)
  • Частицы теперь проходят через NMS, а несколько частиц, отправленных в один тик, объединяются в одну доставку для каждого игрока
  • В зависимости от ситуации входящий поток пакетов у клиента снижается примерно с ~10 000/сек до ~40/сек для тяжёлых particle-skills
    Визуально всё остаётся тем же, просто пакеты больше не отправляются по одному как почтовые голуби с астмой.

Настройки в config-general.yml → Packet:
YAML:
Packet:
  ParticleBundleEnabled: true
  ParticleTickBatchEnabled: true
  ParticleBundleSize: 512
  • ParticleBundleEnabled — включает объединение пакетов (по умолчанию: true)
  • ParticleTickBatchEnabled — включает пакетирование по тикам (по умолчанию: true)
  • ParticleBundleSize — размер пакета (по умолчанию: 512, максимум 4096)
  • ВАЖНО: для применения изменений настроек требуется полный перезапуск сервера
Автор: bobobo
  • Исправление: механика damage{} теперь корректно учитывает triggerSkills
  • Исправление: запись сущностей в SetTextDisplayMechanic теперь выполняется в owning region (Folia)
  • Исправление: устранена ошибка с длительностями и математическими формулами, возвращавшими слишком высокую точность
Автор: bobobo
  • Исправление: устранён баг с призывом (summoning)
  • Возможность: добавлены механика и условие для управления сидением питомца
  • Возможность: небольшое изменение
  • Возможность: обновлено использование существующей механики toggleSittingMechanic
  • Исправление: возвращены doc-комментарии
  • Возможность: добавлен onEffectRemove
Автор: bobobo
  • Исправление: вложенные entity targeters в слотах location= теперь корректно применяют sort, conditions и limit
  • Исправление: aura onTick продолжала работать после окончания действия ауры / уходила в отрицательную длительность
    Ауры, созданные через overwrite или удалённые во время тика, могли превращаться в «зомби-ауры» — onTick продолжал срабатывать даже после завершения эффекта, а оставшееся время уходило всё глубже в минус. Красота.
    Исправлены две причины:
    • run() теперь прекращает выполнение, если аура уже помечена как завершённая
    • Исправлена гонка в registry, из-за которой новая аура могла «осиротеть» при одновременном удалении старой и продолжать тикать вне контроля registry
    Особенно легко воспроизводилось при быстром пересоздании одной и той же ауры (например, таймер с removeAura + aura ow=true).
  • Исправление: фильтр BukkitAttribute.values() был инвертирован и возвращал пустой/неверный набор вместо поддерживаемых атрибутов
  • Исправление: те же фиксы для 1.21.1 применены и здесь
  • Исправление: MythicMobDeathEvent и дропы могли не срабатывать из-за race condition с async skill clock (#2204)
  • Исправление: aura с cancelOnDeath=false теперь корректно сохраняется после респавна игрока (#2221)
  • Исправление: ключ локации для trail particle должен использовать target, а не source (#2192)
  • Исправление: particlesphere дважды применял yoffset (#2200)
Автор: bobobo
  • Исправление: параметры eqy и eqz в particlelineequation игнорировались (#2218)
    Раньше билдера выражений для Y и Z брали this.equationX, из-за чего все три оси использовали X-уравнение. Теперь каждая ось использует своё собственное поле, и 3D-кривые (например, спирали/геликсы) наконец работают как задокументировано. Да, удивительно, когда Z — это реально Z, а не X в парике.
  • Исправление: preservepitch/preserveyaw терялись при поиске безопасной точки телепорта (#2217)
    findSafeSpawnLocation создавал Location только с world/x/y/z, из-за чего yaw и pitch с исходной позиции терялись. Теперь base.getYaw() и base.getPitch() корректно передаются в каждую новую Location, поэтому телепорт сохраняет ориентацию при использовании radius/spread.
  • Исправление: stats.yml теперь извлекается во время load(), чтобы аддоны могли регистрировать статы раньше
  • Исправление: устранён баг с родительскими командами (parent commands)
  • API: добавлено экспериментальное API для packet item lore
  • Возможность: добавлена настройка Command.Parent для command skills
  • Возможность: большинство механик с длительностями и интервалами переведены на PlaceholderDuration, поэтому теперь можно указывать единицы времени напрямую.
    При использовании математики это пока не работает, потому что жизнь разработчикам мёдом не намазана.
Код:
- potion{type=POISON;duration=10s} # Отравление на 10 секунд
  • Рефакторинг: StatExecutor теперь загружается раньше
  • Механика setDisplayEntityItem теперь поддерживает block display entities
  • Добавлена поддержка trigger conditions для aura-компонента onAttack
  • Исправлена яркость nameplate
  • API: добавлен PlaceholderDuration
  • Возможность: skills, mechanics и механика skillCooldown теперь поддерживают кулдауны в разных единицах времени. По умолчанию всё ещё используются секунды.
YAML:
Skill:
Cooldown: 5t # 5 тиков

Skill:
Cooldown: 1m # 1 минута
Автор: bobobo
  • Проведён рефакторинг некоторых внутренних систем, связанных со статами
  • Добавлен новый тип кастомного стата MUTATOR, позволяющий легко создавать статы, изменяющие другие статы, без необходимости задавать связь parent-child
YAML:
AGILITY:
  Type: MUTATOR
  ...
  Components:
    - Stat: CRITICAL_STRIKE_CHANCE
      Formula: 'v / 1000'
      Operation: ADDITIVE
    - Stat: DODGE_CHANCE
      Formula: 'v / 2000'
      Operation: ADDITIVE
В этом примере 20 agility дадут 2% шанса критического удара и 1% шанса уклонения.
  • Добавлено условие canBeHitByProjectile, позволяющее пропускать кастомные hitbox'ы MEG через API
Автор: bobobo
  • API: добавлено событие MythicStatsRegistrationEvent
Автор: bobobo
ВерхНиз