[Гайд][Легко][1.6+] Модификация чужого кода при запуске (трансфомеры)

Сообщения
831
Лучшие ответы
23
Реакции
126
Так а менеджмент этого всего? Да и имя архива ставить для очереди загрузки бред я считаю
 

Agravaine

Модератор
Сообщения
5,087
Лучшие ответы
233
Реакции
874
А какой менеджмент-то? В конфиге проверять булев для нужного фикса и регать хук контейнер только если он тру.
Я уже говорил что можно в манифесте указать хуклибу в ClassPath и она загрузится раньше.
 
Сообщения
831
Лучшие ответы
23
Реакции
126
Я хочу прям как у форджей, чтобы краш и писало о дубликатах и прочих недостающих зависимостях (и не делать это внутри каждого хука с зависимостями), ну и описания для самих хуков.
 
Сообщения
4,197
Лучшие ответы
109
Реакции
567
Не надо пытаться написать что-то вроде registerHookContainer(MyHooks.class.getName()). Это тоже вызовет загрузку класса с хуками раньше чем надо.
Возможно, нашел ошибку:
Java:
public PrimaryClassTransformer() {
    this.classMetadataReader = MainHookLoader.getDeobfuscationMetadataReader();

    if (instance != null) {
        // переносим хуки, которые уже успели нарегистрировать
        this.hooksMap.putAll(PrimaryClassTransformer.instance.getHooksMap());
        PrimaryClassTransformer.instance.getHooksMap().clear();
    } else {
        registerHookContainer(SecondaryTransformerHook.class.getName());
    }
    instance = this;
}
registerHookContainer(SecondaryTransformerHook.class.getName());
Разве обращение к классу хук-контейнера при регистрации не вызовет его загрузку и загрузку классов к которым он обращается, тем самым опередив применение хука из этого контейнера?
 
Сообщения
4,197
Лучшие ответы
109
Реакции
567
Сделал в ExampleHookLoader так же - оно прекрасно загрузилось
registerHookContainer(AnnotationHooks.class.getName());
 
Сообщения
956
Лучшие ответы
45
Реакции
281
Не все так просто в этом мире...
 
Сверху