
Replacement Finder
Активный0.0
Установок
Последнее обновление
Replacement Finder
В мире модификации Minecraft существовала эпоха, когда основным способом изменения игры было редактирование файлов классов непосредственно в jar-архиве. Однако этот подход столкнулся с серьёзной проблемой: когда несколько модов пытались изменить один и тот же класс, возникали конфликты перезаписи, которые было крайне сложно разрешить.
Для решения этой проблемы была создана система модификации через API, позволяющая добавлять новый контент без изменения базовых классов. Это работало хорошо до тех пор, пока модам не потребовалось изменять свойства стандартных объектов игры.
Хотя это можно было сделать через coremods, процесс оказался настолько сложным, что большинство разработчиков либо отказывались от этой идеи, либо создавали хрупкие решения, которые ломались при взаимодействии с другими модами.
В версии 1.12 появилась система замены реестров, позволяющая изменять стандартные блоки без использования coremods. Но и у этого подхода обнаружились существенные недостатки:
Ограничение одного мода - одновременно может работать только один мод, заменяющий конкретный объект, причём невозможно контролировать, какой именно мод получит приоритет, поскольку порядок загрузки модов непредсказуем.
Полная несовместимость - в отличие от coremods, которые обычно конфликтуют только при изменении одних и тех же методов, замена реестров одного объекта всегда приводит к несовместимости, независимо от характера изменений.
Сложность совместимости - для работы с другими модами, использующими замену реестров, требуется создавать специальные патчи совместимости для каждого мода, что часто невозможно с закрытыми или ARR-модами.
Проблемы кэширования - стандартные объекты кэшируются во многих местах кода игры, что создаёт дополнительные сложности при их замене.
Для помощи в выявлении таких проблемных модов был создан инструмент Replacement Finder, который отслеживает все случаи замены реестров стандартных объектов и записывает, каким классом они были заменены.
Разработчикам модов рекомендуется использовать более дружелюбные к совместимости методы изменения блоков, такие как coremods или mixins, поскольку полная замена объектов слишком разрушительна для стандартного контента игры.