- feat: добавлен автоматический обновлятор конфигурации
- Добавлено runtime-резолвинг item-фильтров для:
- HasItemCondition
- HoldingCondition
- WearingCondition
- ItemTypeCondition
- TakeItemMechanic
- StealItemMechanic
- Добавлен параметр runtime= для всех перечисленных функций, позволяющий переключать поведение:
- runtime=false — старое поведение (compile-time)
- runtime=true — runtime-логика (чуть более затратна по ресурсам)
- Merge origin/master в runtimeitemfilter
- Разрешены пробелы внутри composite conditions
- Merge master в compositespacingthing с разрешением конфликта SkillMechanic
- Изменён SkillMechanic.java
- Исправлена совместимость с 26.1 (volatile код, NMS больше не обфусцирован)
- Добавлена полная поддержка RandomLocations Targeter для плейсхолдеров и математики
- fix: добавление эффекта зелья теперь откладывается на region thread в Folia
- Исправлено, что Glow не работал из-за кэша (теперь также удаляется из кэша)
- ci: тестирование изменений бота
- fix: обработка null spawner map в тике ClusterGenerator (гонка потоков Folia)
Расширенная функциональность для Custom Equippable слотов:
- Исправлено: обработка null для карты спавнеров в ClusterGenerator.tick (гонка Folia)
- Исправлены Velocity-плейсхолдеры из-за бага в обработке скорости игрока на земле в Minecraft
- Добавлена опция ThreatTable.DropUnreachableSeconds: 10 для мобов, позволяющая настроить, через сколько секунд моб перестанет преследовать недостижимую цель
- Исправлена механика runaigoal, которая раньше устанавливала всё на приоритет 1 и некорректно обрабатывала наложение нескольких целей
- Добавлен параметр Overrides: для условного изменения атрибутов слота, например Material или Display
- Добавлена функция AllowStackedItems, позволяющая помещать в слот стопку предметов, а не только один
- Добавлена функция AllowedItems, которая при передаче списка разрешает предметы с использованием ItemMatcher (mythic ID, vanilla ID, теги и т.д.)
- Если установлено true, разрешены любые предметы
- Исправлен баг с записью JSON данных игрока, из-за которого Equippables не сохранялись между рестартами/повторными подключениями
- Исправлен баг, при котором ванильные предметы могли частично помещаться в слоты экипировки, вызывая потерю предметов
- Рефакторинг выполнен через MM и Cruci
- Добавлено: начальная поддержка версии 26.1 (требуется Java 25)
- Исправлено: угроза (threat) не спадала, даже если линия видимости (LOS) была заблокирована в течение 10 секунд
- Исправлено: #2155
- Исправлено: #2177
- Исправлено: навыки предмета в руке сохранялись после смены предмета
- Исправлено: ещё одно исправление для Folia
- Исправлено: дополнительные исправления для Folia
- Исправлено: пули display-пакетов не отображались при нулевой скорости снаряда
- Исправлено: плейсхолдер не учитывал "cached" статы
- Это происходило, когда механика навыка устанавливала атрибут snapshotcasterstats в true
- Напоминание: эта функция работает только с областью caster в плейсхолдерах
- Добавлено: пользовательские диалоги
- Исправлено: отложенный setVisibleByDefault выполняется в потоке региона сущности на Folia
- Исправлено: активные мобы не удалялись при естественном исчезновении
При естественном исчезновении сущности Bukkit (игрок уходит далеко, смена мира и т.д.) entity.isDead() возвращает true, но метод тика завершался раньше без очистки, из-за чего проверка isValid() не вызывала setUnloaded(). Эти «призрачные» мобы накапливались бесконечно в реестре активных мобов.- Исправлено: яркость текстовых дисплеев (ещё раз — обновите локальную ветку, ash)
- Исправлено: тоты для Folia
- Исправлено: healpercent (евлад сломал >
)
- Добавлен компонент ауры ChunkLoadAuraComponent
ChunkListeners:
- Исправлено: движение аксолотля
- Исправлено: alias onThrown не работал для onThrownByMechanic, добавлен параметр triggers=false для механики броска, чтобы предотвратить срабатывание навыка, а также для плейсхолдеров throwstrength.horizontal/throwstrength.vertical
- Исправлено: безопасность потоков Folia для выгрузки чанков, событий исцеления и методов BukkitEntity
- Исправлены множественные нарушения владения потоками Folia, вызывавшие ошибки «Accessing entity state off owning region's thread»
MythicHealMechanicEvent:
- unloadChunkEntities теперь использует Schedulers.of(entity) вместо Schedulers.sync() на Folia, чтобы проверка задержанного исчезновения выполнялась в потоке региона сущности
- То же исправление применено к unloadChunkEntitiesOld и unloadWorld
BukkitEntity – добавлены отсутствующие проверки потоков Folia для:
- Заменён Events.callSync(event) на Events.callSyncAndJoin(entity, event), чтобы события исцеления отправлялись в поток региона целевой сущности, а не в глобальный планировщик региона
- setMovementSpeed, setAttackSpeed
- getVelocity
- setRemoveWhenFarAway, setPersistent, setSaveToDisk
- hasLineOfSight (оба перегружаемых метода)
- lookAt (оба перегружаемых метода)
- Исправлено: ещё одно небольшое исправление
- fix: исправлены NPE в Proj
- fix: очистка кэша плейсхолдеров при внешней регистрации для предотвращения устаревших данных при запуске
fixed drop table stuff
Updated to accomodate c working for conditions in drops just removed it from cmd and color in drops