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

5,018
47
783
Хуки не совсем верно работают на сервере.Как фиксить?
 
7,099
324
1,510
Движение рассчитывается на клиенте, хуки должны быть на клиенте тоже
 
808
3
124
Java:
[DEBUG] Injecting hooks into class net.minecraft.client.gui.inventory.GuiContainer
[DEBUG] Patching method net.minecraft.client.gui.inventory.GuiContainer#drawScreen(IIF)
[DEBUG] Patching method net.minecraft.client.gui.inventory.GuiContainer#mouseClicked(III)
[DEBUG] Patching method net.minecraft.client.gui.inventory.GuiContainer#func_146984_a(Lnet/minecraft/inventory/Slot;III)
[DEBUG] Patching method net.minecraft.client.gui.inventory.GuiContainer#handleMouseClick(Lnet/minecraft/inventory/Slot;III)
[DEBUG] Patching method net.minecraft.client.gui.inventory.GuiContainer#onGuiClosed()

На левом клиенте все вроде бы даже патчится, но так вышло, что я юзаю паленого второго сашка и в нем гемороно, в плане изменения клиента. Но это не суть. Суть в том, что даже после того как все пропатчилось - в игре нет никакого результата. С чем это может быть связано? Хотя все тоже самое ИДЕАЛЬНО работает в IDE.
Попробуй удалить NEI или аналогичные моды (хотя странно, у меня и с NEI работали хуки в этот класс, но на 1.6).

Еще можешь добавить в VM arguments:
-Dlegacy.debugClassLoading=true -Dlegacy.debugClassLoadingSave=true

Оно сохранит измененные классы в CLASSLOADER_TEMP. Там посмотри декомпилятором, что в итоге получилось. В целом слабо представляю, как сделать так, чтобы хуки применились, но при этом эффекта не было.
 
5,018
47
783

deleted.user

Мошенник
321
43
Попробуй удалить NEI или аналогичные моды (хотя странно, у меня и с NEI работали хуки в этот класс, но на 1.6).

Еще можешь добавить в VM arguments:
-Dlegacy.debugClassLoading=true -Dlegacy.debugClassLoadingSave=true

Оно сохранит измененные классы в CLASSLOADER_TEMP. Там посмотри декомпилятором, что в итоге получилось. В целом слабо представляю, как сделать так, чтобы хуки применились, но при этом эффекта не было.

Обнаружилось, что мод после хуков не грузится. Как такое может быть? все аннотации на месте, что это мод и все такое. Но по итогу даже в логе нет моих пчелок. Просто КАК?
 
808
3
124
Обнаружилось, что мод после хуков не грузится. Как такое может быть? все аннотации на месте, что это мод и все такое. Но по итогу даже в логе нет моих пчелок. Просто КАК?
Проверь что в META-INF/MANIFEST.MF есть строка:
FMLCorePluginContainsFMLMod: true
 
5,018
47
783
808
3
124
Добавь в аргументы JVM вот это:
-Dfml.log.level=ALL
Потом поищи по логу запуска название джарника твоего мода. Я на 99% уверен что он не грузится именно потому что если в джарнике есть кормод, то фордж без соответствующей строки в манифесте не ищет обычные моды, и в логе запуска про это пишется. Должно быть как-то так:
Код:
2018-01-10 04:17:01 [FINE] [ForgeModLoader] Examining for coremod candidacy StalcraftClient.jar
2018-01-10 04:17:01 [FINEST] [ForgeModLoader] Found FMLCorePluginContainsFMLMod marker in StalcraftClient.jar, it will be examined later for regular @Mod instances


А если вот так - нутыпонел
Код:
2018-01-10 04:17:01 [FINE] [ForgeModLoader] Examining for coremod candidacy AHookLib.jar
2018-01-10 04:17:01 [FINEST] [ForgeModLoader] Adding AHookLib.jar to the list of known coremods, it will not be examined again
 

deleted.user

Мошенник
321
43
По итогу есть только это, от моего мода.
Java:
[HOOKLIB]  Obfuscated: true
[11:55:04] [Thread-77/WARN]: The coremod ua.agravaine.advancediteminfo.asm.AdvancedItemInfoHookLoader does not have a MCVersion annotation, it may cause issues with this version of Minecraft
 
5,018
47
783
Посмотрите пожалуйста мой пост в этой теме от 6 января 2018. Я так до сих пор и не понял, как мне хуки делать на обоих сторонах?
 
808
3
124
Посмотрите пожалуйста мой пост в этой теме от 6 января 2018. Я так до сих пор и не понял, как мне хуки делать на обоих сторонах?
Хуки не имеет ничего общего с клиент-серверным взаимодействием. Хукаешься в клиентский метод - меняешь клиент, хукаешься в серверный - меняешь сервер, хукаешься в общий (а таких довольно много, в районе половины мб) - меняешь и то и другое сразу. Разберись сначала как майнкрафт вообще работает, потом приходи спрашивать как его хукать.
 
808
3
124
Я один что ли ASM изучал?
Я бы скорее всего не изучал, если бы в фордж было встроено что-то вроде хуклибы. Абсолютно бесполезный для нормальных людей скилл.
Работаю с парой человек, которые никогда сколько-либо серьезно в байткоде не ковырялись, и это не делает их ни капли хуже как программистов. Это просто не нужно на практике.
 
476
9
39
Если старые ммошные сервера ставить то там много чего на java, и сорцев нет ибо забыто всё. Вот прикинь java 6. Да ещё и на костылях. Без асма никак.
 
5,018
47
783
Хуки не имеет ничего общего с клиент-серверным взаимодействием. Хукаешься в клиентский метод - меняешь клиент, хукаешься в серверный - меняешь сервер, хукаешься в общий (а таких довольно много, в районе половины мб) - меняешь и то и другое сразу. Разберись сначала как майнкрафт вообще работает, потом приходи спрашивать как его хукать.
Ну если это так - почему же происходит на сервере такая штука?
 
808
3
124
Ну если это так - почему же происходит на сервере такая штука?
Вполне очевидно, что есть два варианта: или на твоем сервере хук не применяется как надо, или не дает желаемого эффекта. Сам учись дебажить, это не имеет отношения к хуклибе (хотя первое можно проверить заглянув в логи или воспользовавшись параметром запуска на дамп трансформированных классов, который есть в статье)
 
Сверху