Что такое Monkey Patches?
Monkey Patches — это технический служебный мод, предназначенный для исправления ошибок и проблем в других модах с помощью runtime-патчинга. Он создан для разработчиков модпаков и опытных пользователей, которым требуются быстрые модульные исправления без ожидания выпуска изменений из upstream.
Возможности
Таргетированный патчинг на основе Mixin Monkey Patches позволяет внедрять небольшие, ограниченные по scope исправления в сторонние моды, применяя mixins во время выполнения. Это позволяет разработчикам исправлять ошибки, обходить условия сбоев или корректировать логические ошибки в зависимостях без изменения исходного кода оригинального мода.
Невмешательный и настраиваемый Мод разработан быть легковесным и ненавязчивым. Все патчи применяются через mixin во время загрузки, без замены jar-файлов или использования методов coremod. Каждый патч может быть ограничен определенными версиями целевого мода, что минимизирует проблемы совместимости.
Модульная структура исправлений Monkey Patches использует модульную внутреннюю структуру, позволяя четко организовывать патчи по модам или версиям. Это упрощает документирование, изоляцию и управление тем, что переопределяется.
Поддержка прозрачной отладки Дополнительное ведение журнала отладки (debug logging) обеспечивает прозрачность применения mixins и помогает убедиться, что патчи загружены и активны корректно. Это особенно полезно при отладке проблем запуска модпаков.
Как это влияет на пользовательский опыт
Для создателей модпаков и технических пользователей Monkey Patches сокращает время простоя, вызванное известными, но еще не выпущенными исправлениями ошибок в популярных модах. Вместо того чтобы создавать форк или ждать upstream-патчей, вы можете применять собственные временные исправления чистым и отслеживаемым способом.
Для игроков это выливается в более стабильные модпаки, меньшее количество сбоев и меньше несоответствий в геймплее — особенно в паках, находящихся в активной разработке или использующих snapshot-версии модов.
Сценарии использования
- Исправление сбоя, вызванного ошибкой, специфичной для определенной версии другого мода.
- Переопределение небезопасных допущений или поведения в edge cases, которые влияют на ваш модпак.
- Обеспечение совместимости между модами, которые изначально не были предназначены для совместной работы.
- Временное исправление проблем перед отправкой pull request или в ожидании нового релиза.
Включенные исправления
Эти исправления были реализованы в upstream-репозиториях, но еще не доступны в стабильных или публичных сборках. Monkey Patches предоставляет чистый способ применить их в вашем модпаке уже сегодня.
Патчи для Create Stuff 'N Additions
- Сделать гаджеты и баки (tanks) наполняемыми в Create spouts и во всем остальном, что поддерживает стандартную обработку жидкостей Neoforge (Ссылка на Issue)
Патчи для KubeJS
- Исправление допущений о типах concrete builder в KubeJS, которые могли вызывать ClassCastException при наличии экземпляров CustomBuilderObject в реестрах. (Ссылка на Issue)
Патчи для Portable Tanks
- Исправление отсутствующих рецептов Create в JEI (Ссылка на Issue)
Патчи для Subtle Effects
- Исправление сбоев в Subtle Effects при одновременном использовании End Remastered (Ссылка на Issue)