Как я могу подменить RenderPlayer на свой?

Версия Minecraft
1.12.2
API
Forge
27
2
2
Приветствую, я пытаюсь подменить филд класса RenderManager на свой.
Пытаюсь сделать это через рефлексию, но когда я это делаю мне выдаёт вот такую ошибку "Can not set net.minecraft.client.renderer.entity.RenderPlayer field net.minecraft.client.renderer.entity.RenderManager.playerRenderer to me.test.RenderPlayer" .
Сначала я попытался подменить тип филда на "me.test.RenderPlayer", и у меня даже удалось это сделать, только ошибка никуда не пропала. (если что в классе me.test.RenderPlayer находится полность скопированный класс RenderPlayer с майна, но чуть-чуть изменённый)
Если понадобится, могу скинуть свой код, что я пытался сделать.

Надеюсь кто-то сможет подсказать как это сделать или дать новую идею, как я может могу по другому изменить рендер модели игрока, мне нужна именно она, не рендер брони и т.д,это я уже достал и подменил.
 
Последнее редактирование:
1. Сделай свой класс наследником майновского, это поможет избежать кучи проблем
2. Попробуй не рефлексией, а открой поле при помощи АТ и меняй напрямую
Спосощью наследника уже пытался, это исправляет ошибку да, но у сожалению все методы не работают, на счёт открытия поля через АТ, не совсем понял. Можно по подробней на счёт этого?
 
Прочитал статью которую ты скинул, и не совсем понял как ты предпологал, чтобы я как то через изменение модификатора изменил рендер игрока.
открой поле при помощи АТ и меняй напрямую
Прочитал ещё раз твоё сообщения и вроде понял про, что ты говоришь. Я как понимаю, ты хочешь, чтобы я сделал переменную playerRender в классе RenderManager публичной и попробовал заменить её так на свою, я верно понял?
 
Сейчас все сделал начал проверять, если я данную переменную приравниваю к классу который не наследует PlayerRender, то мне даёт ошибку, что не может переконвертировать в RenderPlayer а если класс наследует, то получается та же штука как и с рефлексией, текст выводится только который в конструкторе, методы вообще не действуют.
 
Снова привет, я смог сделать, чтобы оно заменялось на мой RenderPlayer после того как он заменяет на свой, но методы рендера и т.д все равно мои не работают. А хук к сожалению в моём проекте работать не будет после билда проекта в нужную форму, похоже мне нужно делать это более геморным способом :с, сейчас буду пытаться это сделать.

Если будут ещё какие-то идеи пишите, за все предложения как можно это сделать буду благодарен.
 
Я думаю, тут будет проще сделать хуки в нужные методы. Я не думаю что этот гемор себя оправдает.
Понимаешь я не пытаюсь делать хук по нескольким причинам,
1-я не особо умею ими пользоваться
2-у меня мой мод идёт не совсем модом, он идёт совершенно в другом формате и там это может физически не работать как не работали mixin, еслиб можно было их юзнуть в моём проекте, то я бы это сделал бы за пару минут, но к сожалению у меня не чистый мод.

Чтобы было понятнее, в своём моде я дополнительно использую c++ для его активации.
 
Назад
Сверху