Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
GoldПлагинMythicMobs Dev Builds Premium [5.12.0 (BUILD 5780)]
Исправлено: отложенный setVisibleByDefault выполняется в потоке региона сущности на Folia
Исправлено: активные мобы не удалялись при естественном исчезновении При естественном исчезновении сущности Bukkit (игрок уходит далеко, смена мира и т.д.) entity.isDead() возвращает true, но метод тика завершался раньше без очистки, из-за чего проверка isValid() не вызывала setUnloaded(). Эти «призрачные» мобы накапливались бесконечно в реестре активных мобов.
Исправлено: alias onThrown не работал для onThrownByMechanic, добавлен параметр triggers=false для механики броска, чтобы предотвратить срабатывание навыка, а также для плейсхолдеров throwstrength.horizontal/throwstrength.vertical
Исправлено: безопасность потоков Folia для выгрузки чанков, событий исцеления и методов BukkitEntity
Исправлены множественные нарушения владения потоками Folia, вызывавшие ошибки «Accessing entity state off owning region's thread»
ChunkListeners:
unloadChunkEntities теперь использует Schedulers.of(entity) вместо Schedulers.sync() на Folia, чтобы проверка задержанного исчезновения выполнялась в потоке региона сущности
То же исправление применено к unloadChunkEntitiesOld и unloadWorld
MythicHealMechanicEvent:
Заменён Events.callSync(event) на Events.callSyncAndJoin(entity, event), чтобы события исцеления отправлялись в поток региона целевой сущности, а не в глобальный планировщик региона
fix: исправлено сохранение устаревших данных спавнера и очистка мёртвых мобов
Исправлено: saveSpawnerData() записывал CooldownTimer, WarmupTimer и ActiveMobs только если значение было > 0, из-за чего значения не сбрасывались обратно в 0 — устаревшие ненулевые значения сохранялись в YAML и загружались после перезапуска, вызывая «призрачные» кулдауны/прогрев и дублирование мобов
Исправлено: cleanMobList() проверял только am.isDead() для определения мёртвых мобов — сущности, удалённые без стандартного процесса смерти (например, при /mm r), не получали флаг dead, из-за чего спавнер продолжал учитывать их в maxMobs и блокировал повторный спавн
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 — возврат к стрелявшему