- fix: исправлено, что переопределение генерации не работало с мебелью
- fix: метод parseWeapons сделан потокобезопасным
- chore: увеличена версия
- fix: расчёт соотношения характеристик теперь защищён от диапазонов с нулевой разницей, а также исправлены NaN-значения при обновлении предметов
- Исправлено: сборка
- Исправлено: предотвращено размещение кастомных блоков на сущностях и функциональных блоках
- ПКМ по сундукам, наковальням, дверям и другим интерактивным блокам теперь открывает их как обычно вместо размещения кастомного блока (зажмите Shift для принудительного размещения, как в ваниле)
- Кастомные блоки больше нельзя размещать в пространстве, занятом игроком или другой сущностью — исправлен эксплойт с переходом в режим ползания
- Исправлено (портировано): логика объединения теперь корректно учитывает настройки конфигурации
- feat: добавлен триггер ~onUsePrimary, игнорирующий случайные правые клики
- Новый триггер навыков предметов срабатывает только при «чистом» клике основной рукой и пропускается, если ванильный Minecraft обрабатывает действие (еда, зелья, молоко, мёд, подозрительное рагу и т.д., определяется через компонент CONSUMABLE), поднятие щита, натяжение лука/арбалета/трезубца, использование удочки/подзорной трубы/козьего рога, установка блока, открытие интерактивного блока или размещение блока из второй руки
- Алиасы: ~onPrimaryUse, ~onUseStrict, ~onStrictUse, ~onIntentionalUse, ~onIntentUse. Триггер ~onUse сохраняет прежнее поведение
- Исправлено: runtime placeholder’ы в hasItem теперь обрабатываются в контексте caster
- feat: добавлена поддержка WorldEdit для копирования/вставки мебели (используйте //copy -e и //paste -e)
- Исправлено: получение мебели средней кнопкой мыши
- Исправлено: корректная работа onHeld и onUnHeld
- Исправлено: сгенерированные имена оверлеев теперь учитывают регистр (a-z0-9-_)
- Добавлен placeholder scope.set.setid.pieces
- Рефакторинг: удалены хаки с reflection, переработана структура модулей в стиле NMS
- Добавлен AutoSend.DuringConfiguration для отправки ресурс-паков на Paper 1.21.5+ через AsyncPlayerConnectionConfigureEvent (новый подмодуль v1_21_5).
- Перемещён CustomBlockData в модуль api, чтобы v26_1 мог его расширять без compileOnly-зависимости; заменён хак с URLClassLoader/jardata на обычную точку входа setFactory() и проверку ServerVersion.
- Модуль v26_1 переведён на байткод Java 21 (использует Paper 26.1 API с toolchain Java 25), теперь он нормально собирается через dist/dist-premium вместо встраивания как jardata.
- Удалён модуль crafting_pre21 и связанный с ним вызов через Class.forName (плагин теперь нацелен на 1.21.1+).
- Убран Method.invoke (reflection) в ArmorSlotFunction и упрощены устаревшие ветки версий до 1.21.1.
- chore: снова включён bStats
- fix: исправлен некорректный порядок загрузки
- fix: уменьшена нагрузка minimessage + исправлен спам при перезагрузке mm (предположительно)
- Исправлено преждевременное округление характеристик при генерации нового лора
- Сделаны уровни улучшенных предметов постоянными при обновлении предмета
- Исправлен крайний случай для ``
- Сохранены пропорции характеристик при обновлении предмета
- Добавлена переменная u в формулы улучшения характеристик предмета — обозначает уровень улучшения предмета
- commit
- Исправлено дублирование генерации стандартного (vanilla) path-пака
- fix: подавлена диагностика ошибок обёртки (wrap-failure) во время загрузки предметов
- Добавлена поддержка 26.1 (Java 25)
- Исправлен bStats
- ci: обновлён Docker-образ Gradle
- fix: обратная совместимость с предыдущими версиями не нарушается
- chore: resolver
- chore: необходимо исправить вручную
- fix: свет и барьеры состояния мебели теперь корректно удаляются, если предыдущее состояние было состоянием по умолчанию
- Добавлена возможность использовать item.stat не только в лоре и подобных местах
- Добавлен триггер ~onRandomTick для сущностей мебели
- Добавлен триггер ~onRandomTick для пользовательских блоков (CustomBlockSkills)
- Добавлен параметр ~onRandomTick:X для CustomBlockSkills
- Вероятность срабатывания за один цикл тика = randomTickSpeed / X (значение берётся из gamerule сервера)
- По умолчанию X = 4096, что соответствует вероятности случайного тика в ванильном Minecraft
- Отслеживается при установке блока, прекращается при разрушении или взрыве
- Чанки, которые не загружены, пропускаются
- Исправлено: навыки предмета в руке сохранялись после смены предмета
- Исправлено: модификаторы характеристик предмета не применялись к новым статам
- Добавлено: поддержка многострочных описаний улучшений (augment tooltips) (#330)
- Поле Tooltip теперь может принимать список YAML для многострочного описания
- Одиночная строка остаётся совместимой с предыдущими версиями
Пример:YAML:Augmentation: Type: GEM Tooltip: - "Первая строка описания" - "Вторая строка описания"
- Добавлено: новый триггер навыка ~onAugmentation (#311)
- Срабатывает при успешном применении улучшения к предмету
- Позволяет навыкам реагировать на события улучшения
- Поддерживаемые алиасы: ~onAugmentation, ~onAugment, ~augmented, ~augmentation
- Исправлено: #354
- Исправлено: #358
- Улучшено: скорость и производительность определения ItemUpdateManager
- Оптимизация: ускорена генерация пака (аналогично MEG)
- Исправлено (возможно): #349 и некоторые проблемы API