Небольшое обновление с исправлениями ошибок. Спасибо requeim за очень подробный отчёт и Lunar за то, что снова поделился заметками со своих серверов!
ExecutableBlocksExecutableItems
- Заголовки блоков теперь значительно меньше нагружают сервер при использовании DecentHolograms: теперь они обновляются, вместо того чтобы каждые несколько секунд удаляться и создаваться заново. На больших серверах с большим количеством блоков разница должна быть заметна.
Все плагины (SCore)
- Предмет, который нельзя выбросить, мог исчезнуть при заполненном инвентаре. Теперь вместо потери он выпадает на землю.
Конфигурации не изменяются. Если после обновления что-то работает некорректно, создайте сообщение в канале для багов.
- Активатор с неправильным названием option: (например, из-за опечатки) больше не запускается как активатор клика. Теперь он отключается, а в консоли предлагается правильное название.
- Условия с плейсхолдерами стали более гибкими: теперь можно сравнивать значение с плейсхолдером игрока, например %player%, а также использовать простые вычисления, например %player_y%-0.2.
- Условие «может сломать целевой блок» теперь проверяет именно тот блок, который игрок фактически сломал или по которому кликнул.
- %block_item_material% теперь работает с большим количеством блоков, например настенными факелами, настенными табличками и цветочными горшками.
Это обновление исправляет ряд ошибок, о которых сообщалось в нашем Discord, и добавляет две новые опции.
ExecutableItemsExecutableCrafting
- Сообщение, отображаемое при получении предмета, теперь показывает настоящее название предмета, а также корректно заполняет счётчик использований и другие плейсхолдеры.
- Лор предметов теперь может использовать MiniMessage на Paper и его форках. Строка лора, начинающаяся с <, обрабатывается как MiniMessage, остальные строки сохраняют обычные цвета &, поэтому оба стиля могут использоваться в одном предмете. Предметы, не использующие MiniMessage, не затрагиваются.
ExecutableEvents
- Рецепты наковальни теперь выполняют свои команды. Команды игрока раньше не выполнялись, а команды предмета не оказывали никакого эффекта на получаемый предмет.
- Рецепт с пустым результатом больше не ломает список рецептов или редактор.
- Новое: рецепт теперь можно отключить без его удаления. Переключатель Enabled в редакторе рецепта делает невозможным его создание и удаляет его из книги рецептов после перезагрузки.
SCore
- Настройка отключённых миров теперь учитывается везде. Многие активаторы, такие как нацеливание моба на игрока и большинство событий сущностей и блоков, раньше срабатывали в каждом мире независимо от этой настройки.
Остальная часть набора плагинов опубликована заново с новым SCore внутри, без собственных изменений.
- Открытие списка предметов через /ei show больше не приводит к зависанию сервера. Каждый значок заново создавался на каждой странице; теперь они сохраняются до тех пор, пока вы не отредактируете объект.
- Вложенные условия теперь работают корректно. IF a IF b command1 <+> command2 раньше выполняло command2, даже если внутреннее условие было ложным.
- Условие больше не удаляет пробелы внутри плейсхолдера, поэтому сравнение текста, содержащего пробелы, теперь корректно совпадает.
- Переменная, читаемая внутри команды сущности, теперь использует правильного игрока. Переменная для конкретного игрока раньше всегда возвращала своё значение по умолчанию.
- Заголовки блоков больше не спамят ошибками на серверах Folia. На Paper и Spigot ничего не изменилось.
Спасибо всем, кто сообщил об этих проблемах. Если после обновления что-то работает неправильно, создайте пост в канале для багов.
SCore (все плагины):
- Исправлена проблема с GetItem, где в условии if отсутствовал символ :, из-за чего любой материал с "IA" в названии, например DIAMOND_BLOCK, ошибочно распознавался как предмет ItemsAdder.
- Добавлена дополнительная задержка в 2 тика для механики сброса после окончания EQUIPMENT_VISUAL_REPLACE, чтобы исправить проблему, при которой сброс происходил слишком рано.
- Подробное объяснение: предыдущие тесты показали, что проблема не возникает, если длительность маскировки составляет менее 10 тиков, но с большей вероятностью проявляется при значениях от 20 тиков и выше. Механика сброса выполнялась слишком рано, из-за чего последние 1–2 задачи маскировки выполнялись уже без задачи сброса, которая должна была отменить маскировку. В результате она сохранялась до тех пор, пока в целевом слоте не происходило обновление.
- Добавлена дополнительная логика в EQUIPMENT_VISUAL_CANCEL для корректного снятия маскировки с использованием логики EQUIPMENT_VISUAL_REPLACE: пакеты повторно отправляются всем игрокам, чтобы они снова отображали правильную экипировку.
SCore
Исправления
- Исправлен спам IllegalStateException: zip file closed из глобальной задачи активатора (ActivatorEIFeature.activateOptionGlobal) — возникал из-за конфликта с загрузчиком классов при перезагрузке сервера. 831a26fd (сопутствующее исправление ExecutableItems@d754388e).
- Исправлено разрешение вложенных плейсхолдеров переменных SCore (%score_variables_X_{score_variables_Y}%) — теперь они корректно обрабатываются вместо ошибки на вложенном плейсхолдере. eb0170a4.
- Folia — спам голограмм Block Title (IllegalStateException, вызовы автообновления сущности выполнялись вне потока соответствующего региона) — remove() теперь безопасно работает на Folia. b082215a. Частичное исправление: spawn()/update() по-прежнему выполняются синхронно; если после этого обновления спам сохранится, потребуется дополнительное исправление.
- Исправлено игнорирование аргумента distance: у селектора AROUND внутри blockCommands (при обычных командах он уже работал корректно). 3b5d222b.
ExecutableItems
Исправления
- Исправлен обход ограничения "Cancel Place in Bundle" с помощью перетаскивания предметов — ранее ограничение применялось только при добавлении предметов через клик в инвентаре.
- Исправлено падение TPS при открытии и закрытии сундуков, содержащих ExecutableItems.
ExecutableBlocks
Исправления
- Folia — спам голограмм Block Title — исправление Folia из SCore теперь включено через обновлённый встроенный SCore.jar (ранее используемый JAR содержал старую версию без исправления). Те же ограничения частичного исправления, что и для SCore.
MyFurniture
Исправления
- Исправлен краш/ошибка при использовании активатора PLAYER_BREAK, если для него настроены команды — возникала повторная попытка удаления мебели во время выполнения команды. c84db9d.
- EE: теперь в активаторе LEAVES_DECAY можно использовать плейсхолдеры материалов.
- SCore: улучшена логика IF — добавлена поддержка одиночных | и &, а также пользовательского плейсхолдера rand.
Пример: IF %rand:1|2%=2- EI: исправлена проблема с getEntity() в EntityReceiveEffectEvent — событие теперь приводится к EntityEvent, что позволяет корректно получать объект Entity.
ExecutableCrafting
- Исправлено множество ошибок.
SCore (все плагины)
- Дополнительный дроп (Extra Drops) из AuraSkills теперь совместим с командами переплавки (smelt).
- Действия SET_BABY и SET_ADULT теперь поддерживают лягушек и головастиков.
- Улучшена производительность.
ExecutableItems
- Исправлен автоматический импорт эффекта свечения (Glow) при выполнении команды /ei create с предметом в руке.
- В редактор компонентов расходуемых предметов (Consumable Components Editor) добавлены новые возможности:
- clear_all_effects — удаляет все эффекты после использования предмета.
- remove_effects — удаляет указанные эффекты после использования.
- apply_effects — накладывает указанные эффекты после использования.
- teleport_randomly — случайная телепортация с настраиваемым радиусом (эффект Chorus Fruit).
- play_sound — воспроизводит звук после полного поедания предмета.
- Исправлено: исправлено множество проблем в версиях ниже 1.14.
- Новое: добавлены компоненты оружия из 1.21.11 (Attack Range / Piercing / Kinetic).
- Новое: добавлены компоненты Dye и Sulfur Cube.
- Улучшение: все API были улучшены и получили корректную документацию.
- Исправлено: множество других ошибок.
SCore (All plugins)
Примеры:
- Добавлена поддержка ADD_ITEM_NBT для команд предметов и игрока.
Для ItemCommands:
ADD_ITEM_NBT keyValue:foo=bar type:string mode:pdc
Для PlayerCommands:
ADD_ITEM_NBT slot:0 keyValue:foo=bar type:string mode:pdcEI
Пример:
- Предметы теперь могут становиться soulbound при использовании keepItemOnDeath=1.
ADD_ITEM_NBT slot:0 keepItemOnDeath=1 type:integer mode:pdcCPT
- Добавлена корректная поддержка Oraxen и Nexo в customPiglinsTrades.
EB
eb remove-all [replaceWithAir] [world]
- Добавлена команда:
Позволяет удалить все размещённые ExecutableBlocks:
- replaceWithAir — заменяет блоки на воздух (по умолчанию true)
- world — ограничивает удаление конкретным миром
SCoreEB
- Добавлена опция PAPI Parser для VariableReals.
- Создана версия _papi для обёртки значений переменных.
- Поддерживаются только строковые и числовые переменные.
От Special70
- Исправлена небольшая проблема с названием блока на Folia.