HookLib with anchors

7,099
324
1,509
Вставь в начало метода HookClassTransformer#transform
Java:
if(bytecode==null)
    return bytecode;
 
Игра все равно не зпускается. NullPointerException из хук либы исчез, но он все еще не может найти класс из Galacticraft. А один из хуков в этот мод оно делает уже почти перед запуском игры и он нормально хукается.
 
Последнее редактирование:
7,099
324
1,509
В тот же класс?
 
Нет, в другой, но в этот же мод.

P.S на всякий случай попробовал поставить самый низкий приоритет хуку, но это тоже не сработало. Есть ли какой-нибудь способ делать этот хук позже, может в этом дело?

P.S как оказалось, если убрать строки ClientProxyCore.playerClientHandler.onLivingUpdatePre(gc); и ClientProxyCore.playerClientHandler.onLivingUpdatePost(gc); все работает. Но мне нужно чтоб эти методы вызывались как и в оригинальном методе. Что можно сделать? (Эти методы тоже из мода Galacticraft)
Так-же заметил, что при наличии этого кода оно выдает ошибку еще до начала загрузки игры (то есть когда уже нажал играть в лаунчере, но еще до того как появилось окно с игрой). Но если убрать эти строки, то хук вставляется уже непосредственно при входе в мир судя по логам.

Решил проблему вставив в аргумент вместо экземпляра целевого класса это: Minecraft.getMinecraft().player , хотя целевой клас является наследником класса в этом поле. Не знаю насколько правильно решил проблему, но работает.
 
Последнее редактирование:
7,099
324
1,509
-1, если нужно в каждую точку
 

CumingSoon

Местный стендапер
1,634
12
269
Думаю, стоило бы добавить gradle файлы для использования удобного jitpack
 
7,099
324
1,509
Хуклибу все еще нужно пихать сорцами в свой проект, поэтому добавление зависимости не нужно
 
7,099
324
1,509
Саму хуклибу придется паковать в ваш мод, так как в фордже нет механизма зависимостей для coremod'ов. Из-за этого убедительно прошу сменить название пакета gloomyfolken.hooklib, если вы собираетесь выкладывать мод в паблик, чтобы избежать конфиликтов между разными версиями хуклибы.
 

CumingSoon

Местный стендапер
1,634
12
269
Я всё ещё особо не понял почему. Можно настроить градл так, чтобы он загружал эту библиотеку в жарник. В любом случае, куда удобнее использовать зависимости нежели каждый раз, для нового проекта, все заново перескачивать
 
7,099
324
1,509
2,505
81
397
Да в дев среды проблем вообще нет. Проблема появляется, когда мод и хуклиба в разных джарниках. Если её нет, значит сошлись звёзды.
Суть в том, что кор моды загружаются последовательно и нет механизма зависимостей. Поэтому если мод загрузится перед хуклибой, то он упадет из-за того, что нет необходимых классов из хуклибы. Лечится это жёстким костылем: нужно переименовать хуклибу так, чтобы она была выше мода (например, aHookLib).
 
1,200
37
237
А чего бы не сделать установку аки forge? Чтобы сразу в lib'ы майна шло, ну и сделать автоскачивание, если отсутствует.
 
1,159
38
544
А чего бы не сделать установку аки forge? Чтобы сразу в lib'ы майна шло, ну и сделать автоскачивание, если отсутствует.
Я не знаю как с этой хуклибой, но процетирую ответ тов. @GloomyFolken
Саму хуклибу придется паковать в ваш мод, так как в фордже нет механизма зависимостей для coremod'ов
Надеюсь, что это поможет.
 
1,200
37
237
@RareScrap, я же написал, что майнолибы, это выше модов и кормодов, если проще, положить архив хуклибы к майну и прописать в classpath (ред: classpath профиля игры, ну или как всё это называется), ну или отдельный профиль (на примере forge) в лаунчере лепить.
 
Сверху