Не применяются изменения после корректировки их в сорцах Forge

Снова доброе утро форумчане
Установил сорцы Forge, поправил для теста 1 строчку в build/tmp/recompSrc/net/minecraftforge/client/GuiInGameForge.java
Далее залил измененный клас в src/main/java (Конечно вместе с package)
Запустил клиент но изменений никаких не последовало
1й Скин - Сорцы форга
2й Скрин - Залитый класс в src/main/java
3й скрин - Никаких изменений в F3
1593242811952.png

1593242885084.png

1593243008169.png
 

will0376

Токсичная личность
2,075
55
584
Это САМЫЙ костыльный способ из всех. Проще былоб переопределить этот класс, и в момент вызова GIGF подменять.(Эвенты - твои друзья)
 
Знать бы еще как это сделать, есть шаблончик какой нибудь понятный для недочайника?
 

jopi

Попрошайка
1,421
30
260
Если тебе нужно чето добавить на экран когда открыт дебаг, проверяй включен ли экран дебага(в настройках), и пиши вручную в евенте RenderOverlayEvent.

если же нужно менять ориг код - используй хуки, трансформеры
 
Хочу убрать некоторые лишние строки
А можно по русски? "если же нужно менять ориг код - используй хуки, трансформеры "
Буду очень благодарен если распишешь как это сделать без ошибок, правильно, что откуда взять и что с этим сделать
 

jopi

Попрошайка
1,421
30
260
@Chekushka это и есть по русскому, почитай тут где-то туториал на форуме про трансформеры, для меня вещь крайне не легкая и я не привык их использовать, но по сути это замена исходного кода при старте игры посредством каких-то там asm

если хочешь убрать лишние строки - можешь костылем обойти этот прикол и сделать свое такое-же гуи без этих строк и так-же не используя трансформеры
Раз это Ingame то скорее всего придется рефлексию использовать если поле приватное в Minecraft.class, если нет то будет легче
просто при старте игры заменять поле в Minecraft.class гуи ингейма на свой GuiIngame наследуя оригинальный GuiIngame
 

jopi

Попрошайка
1,421
30
260
@Chekushka если у тебя изменений нет - значит он у тебя никак не заменился и ты его соответственно никак не изменил
а в моем примере нужно использовать СВОЙ класс и потом его МЕНЯТЬ, Менять именно ПОЛЕ в Minecraft.class а не просто добавить код что-бы он потом не заменился

1. создаешь свой класс гуи ингейм наследуя GuiIngame / GuiIngameForge(лучше это)
2. пишешь в своем классе что тебе нужно
3. Смотришь нужна ли тебе рефлексия(если поле в Minecraft.class гуи ингейма public и не final то не нужна, если private/protected - нужна)
4. если нужна рефлексия - меняешь рефлексией поле на обьект своего гуи ингейма, если нет то просто меняешь обьект гуи ингейма на свой без рефлексии
 
Угу, посмотрел, рефлексия нужна, значит следущий шаг, не мог бы ты кинуть тему что такое вообще рефлексия, как ей пользоваться, и т.п
Я вбил в поиск по форому но ничего похожего на гайд не нашел, хотя мог пропустить
 

jopi

Попрошайка
1,421
30
260
Значит ищи в гугле, на форуме есть не всё, я в рефлексии не мастер и сам еле знаю как это работает
1593253046895.png
пример как изменять boolean-значение приватного поля
 
Сложно, все равно не понял
Я хочу просто немного подредактировать менюшку в ф3, а ты мне говоришь учить язык
Если и начну то после всех экзаменов, а щас я ищу помощь от людей которые смогут тыкнуть носом куда нажать чтобы сделать то, что я хочу
 

jopi

Попрошайка
1,421
30
260
Если не хочешь учить что такое рефлексия, мне кажется что трансформеры абсолютно будут тебе не по зубам, и можешь вовсе это не делать
рефлексия самый простой способ, я даже пример привел как заменить с помощью нее поле
 
@jopi Да было бы в принципе здорово иметь понятие что за что там отвечает и что на что мне нужно будет заменить, не методом тыка же
@tox1cozZ Это немного не то, что мне нужно
 

jopi

Попрошайка
1,421
30
260
@Chekushka где тут метод тыка? ты вообще читаешь полностью сообщения?
Я тебе вроде обьяснил что на что менять нужно и где конкретно
 
@jopi Да, ты расписал весьма понятно что нужно сделать рефлексию за что тебе спасибо
Далее привел код, но я говорю за такие моменты как: Что нужно изменить в том куске кода который привел ты чтобы оно заработало у меня, куда его нужно вставить, в тот же класс который я засунул в src мода или в отдельный какой то, куда конкретно его нужно вставить, вначало, вконце или еще куда то
 

jopi

Попрошайка
1,421
30
260
должно быть логично что код рефлексии/замены должен быть при запуске игры, а дальше сам, сделал класс, унаследовал, заменил и всё делай что тебе нужно. это делается модом а не изменением исходного кода черт пойми в каком куске среды
выпрашивать код здесь нельзя
 
Сверху