Плагин Механика Executable Blocks ⭐ PREMIUM [5.26.9.17]

Небольшое обновление с исправлениями ошибок. Спасибо requeim за очень подробный отчёт и Lunar за то, что снова поделился заметками со своих серверов!

ExecutableBlocks

  • Заголовки блоков теперь значительно меньше нагружают сервер при использовании DecentHolograms: теперь они обновляются, вместо того чтобы каждые несколько секунд удаляться и создаваться заново. На больших серверах с большим количеством блоков разница должна быть заметна.
ExecutableItems

  • Предмет, который нельзя выбросить, мог исчезнуть при заполненном инвентаре. Теперь вместо потери он выпадает на землю.
Все плагины (SCore)

  • Активатор с неправильным названием option: (например, из-за опечатки) больше не запускается как активатор клика. Теперь он отключается, а в консоли предлагается правильное название.
  • Условия с плейсхолдерами стали более гибкими: теперь можно сравнивать значение с плейсхолдером игрока, например %player%, а также использовать простые вычисления, например %player_y%-0.2.
  • Условие «может сломать целевой блок» теперь проверяет именно тот блок, который игрок фактически сломал или по которому кликнул.
  • %block_item_material% теперь работает с большим количеством блоков, например настенными факелами, настенными табличками и цветочными горшками.
Конфигурации не изменяются. Если после обновления что-то работает некорректно, создайте сообщение в канале для багов.
Это обновление объединяет изменения из двух выпусков и исправляет три проблемы, о которых сообщили в нашем Discord, включая уязвимость в рецептах печи, а также десять ошибок, найденных и исправленных Lunar на собственных серверах. Большое спасибо Lunar за подробные отчёты и помощь — без него большая часть этих исправлений не вошла бы в это обновление.

ExecutableCrafting

  • Исправлена уязвимость в рецептах печи. Обычный ванильный предмет, помещённый в печь, можно было превратить в кастомный результат рецепта, требующего ингредиент ExecutableItems, если покинуть область, чтобы чанк выгрузился, а затем вернуться. Теперь печь проверяет настоящий ингредиент в момент получения результата. Настоящие кастомные ингредиенты продолжают переплавляться как раньше.
ExecutableBlocks

  • Значительно снижена нагрузка от заголовков блоков на больших серверах. Заголовки, содержащие плейсхолдер, теперь обновляются только рядом с игроками и группируются по чанкам, а заголовки без плейсхолдеров больше не обновляются каждые несколько секунд. Они по-прежнему отображаются при установке блока и обновляются после перезагрузки.
SCore

  • Правила инструментов теперь поддерживают группы материалов, такие как ALL_ORES или ALL_TERRACOTTA. Ранее они принимались конфигурацией, но молча игнорировались, из-за чего предмет не мог добывать соответствующие блоки.
  • Условия блоков «контейнер пуст» и «контейнер не пуст» теперь работают с меньшими затратами ресурсов для контейнеров, содержащих большое количество предметов.
ExecutableItems

  • Игроки в режиме наблюдателя больше не активируют предметы (циклы, приседание, экипировка и т. д.) и не расходуют их использования. Это опциональная функция: установите disableActivatorsInSpectator: true в config.yml, чтобы включить её. Вход, выход, смерть, возрождение, введённые команды, а также перемещение предметов в инвентарь и из него по-прежнему работают в режиме наблюдателя.
  • При перемещении предмета в левую руку или между хотбаром и инвентарём с помощью цифровой клавиши больше не теряются и не дублируются эффекты «при удержании». Теперь выход из слота всегда обрабатывается перед входом в новый.
  • Взятие блока / предмета (средняя кнопка мыши, Paper) теперь считается выходом предмета из инвентаря и его последующим входом, поэтому эффекты удаляются и применяются так же, как при любом другом перемещении.
  • Активаторы equip и unequip теперь определяют реальный слот брони, поэтому ограничение их работы на определённый слот, например [39] (шлем), теперь работает корректно.
SCore

  • На загруженных серверах при одновременном истечении большого количества кулдаунов могла возникать ошибка. Исправлено.
  • Команды других плагинов, начинающиеся так же, как команда SCore (например, launchprojectile, начинающаяся с LAUNCH), перехватывались SCore и не работали. Теперь SCore перехватывает команду только при полном совпадении её имени.
  • DELAYTICK или DELAY, написанный внутри текста другой команды (например, команды, которая сохраняет другие команды для последующего выполнения), ошибочно воспринимался как задержка всей строки и приводил к сбою активатора. Теперь такая команда обрабатывается самостоятельно.
  • Плейсхолдеры, вложенные внутрь другого плейсхолдера PlaceholderAPI (например, %javascript_x_%block_lower%,a,b%) в подкомандах IF, AROUND, NEAREST и других, работали некорректно. Теперь они корректно обрабатываются, в том числе отдельно для каждой цели, если команда выполняется для нескольких игроков.
  • Взвешенная случайная запись, расположенная сразу после плейсхолдера (<%placeholder%::weight>), теряла свой вес. Исправлено.
  • Переменная, имя которой формируется из другой переменной (%var_world%var_selection%%), теперь работает независимо от порядка объявления переменных.
ExecutableBlocks, ExecutableCrafting, ExecutableEvents, MyFurniture, ExecutableLevers, CustomPiglinsTrades

  • Пересобраны с новой версией SCore, других изменений нет.
Существующие конфигурации не изменяются: единственная новая настройка отключена по умолчанию.

Если после обновления что-то работает некорректно, создайте сообщение в канале для багов. Спасибо всем, кто сообщил об этих проблемах!
Это обновление исправляет ряд ошибок, о которых сообщалось в нашем Discord, и добавляет две новые опции.

ExecutableItems
  • Сообщение, отображаемое при получении предмета, теперь показывает настоящее название предмета, а также корректно заполняет счётчик использований и другие плейсхолдеры.
  • Лор предметов теперь может использовать MiniMessage на Paper и его форках. Строка лора, начинающаяся с <, обрабатывается как MiniMessage, остальные строки сохраняют обычные цвета &, поэтому оба стиля могут использоваться в одном предмете. Предметы, не использующие MiniMessage, не затрагиваются.
ExecutableCrafting
  • Рецепты наковальни теперь выполняют свои команды. Команды игрока раньше не выполнялись, а команды предмета не оказывали никакого эффекта на получаемый предмет.
  • Рецепт с пустым результатом больше не ломает список рецептов или редактор.
  • Новое: рецепт теперь можно отключить без его удаления. Переключатель Enabled в редакторе рецепта делает невозможным его создание и удаляет его из книги рецептов после перезагрузки.
ExecutableEvents
  • Настройка отключённых миров теперь учитывается везде. Многие активаторы, такие как нацеливание моба на игрока и большинство событий сущностей и блоков, раньше срабатывали в каждом мире независимо от этой настройки.
SCore
  • Открытие списка предметов через /ei show больше не приводит к зависанию сервера. Каждый значок заново создавался на каждой странице; теперь они сохраняются до тех пор, пока вы не отредактируете объект.
  • Вложенные условия теперь работают корректно. IF a IF b command1 <+> command2 раньше выполняло command2, даже если внутреннее условие было ложным.
  • Условие больше не удаляет пробелы внутри плейсхолдера, поэтому сравнение текста, содержащего пробелы, теперь корректно совпадает.
  • Переменная, читаемая внутри команды сущности, теперь использует правильного игрока. Переменная для конкретного игрока раньше всегда возвращала своё значение по умолчанию.
  • Заголовки блоков больше не спамят ошибками на серверах Folia. На Paper и Spigot ничего не изменилось.
Остальная часть набора плагинов опубликована заново с новым SCore внутри, без собственных изменений.

Спасибо всем, кто сообщил об этих проблемах. Если после обновления что-то работает неправильно, создайте пост в канале для багов.

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 — воспроизводит звук после полного поедания предмета.
Автор: Black
  • Исправлено: исправлено множество проблем в версиях ниже 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:pdc

EI​

  • Предметы теперь могут становиться soulbound при использовании keepItemOnDeath=1.
Пример:
ADD_ITEM_NBT slot:0 keepItemOnDeath=1 type:integer mode:pdc

CPT​

  • Добавлена корректная поддержка Oraxen и Nexo в customPiglinsTrades.

EB​

  • Добавлена команда:
eb remove-all [replaceWithAir] [world]
Позволяет удалить все размещённые ExecutableBlocks:
  • replaceWithAir — заменяет блоки на воздух (по умолчанию true)
  • world — ограничивает удаление конкретным миром
  • Обновлены плагины для поддержки версии 26.2.
ВерхНиз