▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Create-Aeronautics: Compatibility + Bug fixes
Create-Aeronautics: Compatibility + Bug fixes

Create-Aeronautics: Compatibility + Bug fixes

Мод-патч для Sable, который чинит краши сервера, зависания при сохранении, баги освещения и совместимость с Create, Aeronautics и другими модами. Всё настраивается через конфиг.

Оцените первым
27.7K
32

Create-Aeronautics: Compatibility + Bug fixes - мод для Майнкрафт, который чинит Sable. Да, именно так. Sable - это крутой мод, добавляющий физику блокам, но его гибридная архитектура на Rust + Java оставляет желать лучшего в плане стабильности. Этот патч закрывает дыры, из-за которых сервер может зависнуть, крашнуться или вообще отказаться запускаться.

Актуальная версия - 1.7.14 для Minecraft 1.21.1 на NeoForge. Работает и на сервере, и на клиенте. Обязательная зависимость - сам Sable, без него мод бессмыслен.

Что это такое и зачем нужно

Sable делает блоки физическими объектами. Звучит круто, играется круто, но под капотом творится ад. Rust-нативный код делает синхронные операции ввода-вывода прямо в главном потоке, Java-часть почти не проверяет возвращаемые значения, а panic в Rust убивает весь JVM-процесс без какой-либо обработки ошибок. В результате один большой физический объект может заморозить сервер на минуту, а бамбук, растущий рядом с физической структурой, просто крашит всё.

Этот мод - набор фиксов, которые закрывают самые критичные дыры. Всё включено по умолчанию, но каждый фикс можно отключить через конфиг, если он вдруг мешает. Фиксы, зависящие от других модов, автоматически отключаются, если этих модов нет.

Основные фиксы ядра Sable

Вот что мод чинит в самом Sable:

ФиксЧто делает
async-saveПеренаправляет сохранение SubLevel в асинхронный поток ввода-вывода. Без этого большие физические структуры замораживают сервер при сохранении.
panic-guardДобавляет проверки перед вызовом Rust-кода. Иначе panic на стороне Rust убивает весь Java-процесс.
write-flushСбрасывает данные на диск перед обновлением заголовка файла хранилища. Предотвращает порчу данных при краше.
corrupted-cleanupЧистит повреждённые указатели SubLevel в holding chunk, чтобы не было повторяющихся ошибок загрузки.
plot-holder-guardБезопасно пропускает обновления блоков, если holder для plot chunk не существует. Раньше это крашило сервер.
sublevel-entity-guardПредотвращает зависание сервера при итерации по аномальным AABB в SubLevelInclusiveLevelEntityGetter. Одна летучая мышь могла заблокировать сервер на 60+ секунд.
command-block-sublevel-fixЗапрещает ставить командные блоки на физические структуры. Ванилла запрещает только прямое включение физики на командном блоке, но можно было сначала поставить блок, потом включить физику.
player-position-guardВозвращает игрока в границы мира, если физика SubLevel выбросила его за пределы. Лимит по Y расширен до +1000 блоков.
light-engine-bounds-guardПредотвращает краш светового движка, когда секции SubLevel выходят за пределы высоты мира.
physics-ticket-guardПредотвращает повреждение внутреннего состояния DistanceManager из-за PhysicsChunkTicketManager.
sublevel-volume-limitОграничивает максимальное количество блоков в одной физической структуре (8192, примерно 16x16x32). Иначе Rapier крашится от слишком больших коллизий.
constraint-self-fixПодавляет ошибки самоограничения в физическом пайплайне Sable. Работает с Sable 1.x и 2.x.
sublevel-load-log-spam-fixОграничивает спам ошибок "Couldn't find sub-level" - одна запись в лог на chunk+index каждые 60 секунд.
udp-invalid-packet-guardТихо отбрасывает UDP-пакеты с невалидным ID (например, старый server list ping с ID 254), чтобы не спамились ошибки в лог.
entity-lookup-remove-guardПерехватывает EntityLookup.remove в PersistentEntitySectionManager.stopTracking, ловит ArrayIndexOutOfBoundsException и предотвращает краш всего тика.

Это только верхушка айсберга. Полный список фиксов можно посмотреть командой /fucksable в игре.

Фиксы совместимости с другими модами

Sable конфликтует с кучей популярных модов. Вот что чинит этот патч:

ФиксЗависимостьЧто делает
carryon-compatCarryOnЧинит телепортацию игрока в неправильное измерение и краш при установке на физический sub-level.
typewriter-server-fixSimulatedЧинит краш пишущей машинки на выделенном сервере. В серверном коде была ссылка на клиентский класс Screen.
aeronautics-server-fixAeronauticsЧинит краш SteamVentBlockEntity на сервере. Опять ссылка на клиентский класс, на этот раз Minecraft.getInstance().
aeronautics-slime-bearfixAeronauticsЧинит прилипание слаймовых блоков к подшипникам, из-за которого они отделялись и клипались сквозь блоки. Отключено по умолчанию - многие постройки используют этот баг.
physics-staff-drag-clipfixSimulatedЧинит клипание физических структур сквозь блоки и вылет за границы мира при быстром перетаскивании физическим посохом.
copycats-lift-compatSable, CopycatsПредотвращает краш сервера, когда блоки Copycats без свойства facing вызывают sable$getNormal.
ctt-concurrent-fixCreate ThreadedTrainsЧинит проблему конкурентности между CTT и Create. CTT выносит тик поездов в рабочие потоки, но не всё возвращает в главный поток, из-за чего портится AVL-дерево в EntitySectionStorage.
ctt-log-spam-fixCreate ThreadedTrainsПодавляет спам предупреждений от CTT при ошибках расчёта поездов.
ctt-posttick-timeout-guardCreate ThreadedTrainsПредотвращает краш Watchdog, когда CTT postTick блокирует главный поток. Теперь таймаут 10 секунд.
create-trackgraph-null-guardCreateПредотвращает краш сервера, когда навигация поездов Create ищет с null TrackNode.
create-train-detach-nulledge-guardCreateПредотвращает краш при TrackGraph.removeNode с null TravellingPoint.edge.
frogport-extract-limitCreateПредотвращает зависание сервера, когда FrogportBlockEntity пытается вытащить предметы из инвентаря с более чем 256 слотами.
effortless-particle-fixEffortless, SableЧинит краш клиента при взаимодействии Effortless с физическими структурами Sable.
vista-camera-chunk-fixVista, SableЧинит несовместимость загрузки чанков камерой Vista с физическими структурами Sable. Раньше это роняло TPS до нуля.
sable-scalablelux-incompat-bypassSableОбходит объявление несовместимости Sable со ScalableLux в neoforge.mods.toml. Отключено по умолчанию - нужно для scalablelux-compat.
scalablelux-compatScalableLux, SableЧинит полное отключение освещения в SubLevel при установленном ScalableLux. Зависит от sable-scalablelux-incompat-bypass.
block-destroy-coordinate-guardSableПредотвращает краш сервера, когда модовые предметы вызывают разрушение блоков на координатах Integer.MIN_VALUE/MAX_VALUE.

Команды для управления

Все фиксы можно включать и выключать прямо в игре:

КомандаЧто делает
/fucksableПоказывает статус всех фиксов
/fucksable <фикс> on/offВключает или выключает конкретный фикс
/fucksable all on/offВключает или выключает все фиксы разом
/fucksable defaultСбрасывает все фиксы на настройки по умолчанию
/fucksable <фикс> resetСбрасывает параметры конкретного фикса на дефолт

Поддержка языков

Мод поддерживает кастомные языковые пакеты. Все сообщения (ответы команд, логи и т.д.) можно переопределить через языковые файлы.

Переключить язык можно командой:

/fucksablelang <имя_файла>

Языковые файлы лежат в config/fucksable/lang/. По умолчанию есть zh.yml (китайский) и en.yml (английский). Можно скопировать любой из них, перевести значения (ключи не трогать) и переключиться на свой язык.

Текста в моде немного, всего пара десятков строк. Переключение языка работает мгновенно, перезапуск сервера не нужен. Если YAML невалидный, мод автоматически откатится на английский.

Почему всё в одном моде

Можно было бы сделать отдельный мод на каждый фикс, но это боль. Искать патчи, ставить их по одному, разбираться с конфликтами - никому это не нужно. Тут всё в одном месте: один мод, одна установка, все фиксы работают сразу. Каждый фикс протестирован на реальном сервере, а не в теории. Конфиг позволяет отключить то, что не нужно.

Про стабильность версий

Если версия помечена как Alpha (например, v1.0.0-alpha.1), значит в ней есть известные проблемы, но она не была удалена. Alpha-версии могут содержать недоделанные функции, риски краша или проблемы с производительностью. Они для раннего тестирования и сбора фидбека.

Но есть нюанс: Alpha включает и Beta-версии, и некоторые Beta на самом деле стабильнее некоторых Alpha. Номер версии - это просто метка, не показатель качества.

Для продакшена выбирайте проверенные версии. Если что-то сломалось в Alpha/Beta - ну, это тестовая версия, не удивляйтесь.

Проверка обновлений

Мод умеет проверять обновления через GitHub Releases API. По умолчанию выключено, можно включить в конфиге. При старте проверит наличие новой версии и напишет в лог.

Лицензия

MIT License. Код открыт, можно смотреть, форкать, отправлять PR.

Стоит ли ставить

Если вы используете Sable на сервере - обязательно. Без этого патча сервер будет падать от каждого чиха. Бамбук рядом с физической структурой? Краш. Игрок вышел за границу мира? Краш. Попытались сохранить большую структуру? Зависание на минуту.

С этим модом большинство этих проблем просто исчезает. Некоторые фиксы отключены по умолчанию (например, фикс слаймовых блоков и подшипников), потому что многие постройки полагаются на эти баги. Но их можно включить, если нужно.

Скачать Create-Aeronautics: Compatibility + Bug fixes имеет смысл всем, кто играет с Sable. Это не просто патч, это необходимость для стабильной работы сервера.

Партнёрский материал

Как поиграть с друзьями с модом Create-Aeronautics: Compatibility + Bug fixes?

Мод Create-Aeronautics: Compatibility + Bug fixes куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Create-Aeronautics: Compatibility + Bug fixes будет готов за пару минут - BungeeHost сделает всё за вас.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:4 месяца назад
Обновлён:2 месяца назад
Главная