- Баллы
- 123
- Имя в Minecraft
- Reality_SC
Здравствуйте, прошу небольшой совет.
Я пишу небольшой класс-враппер для minecraft.jar.
В нём я конструирую новый URLClassLoader со списком URL до всех стандартных майновских библиотек и до самого себя (minecraft.jar); указываю parent class loader = null.
Затем, используя его, загружаю с инициализацией несколько классов из AuthLib и с помощью рефлексии подменяю им private static final URL поля на свои значения. Тут всё происходит удачно.
JD-GUI показывает, что эти поля в свою очередь конструируются через вызовы метода другого класса (хотя по факту он делает new URL(url)), что вроде бы должно на 99% предупредить их inline-овость при компиляции (см. JLS 15.28).
Затем переключаю контекстный класслоадер текущего потока на новый, достаю main класс игры, и запускаю его.
Проблема: игра всё равно пытается достучаться до старых URL.
Что я мог упустить?
Я пишу небольшой класс-враппер для minecraft.jar.
В нём я конструирую новый URLClassLoader со списком URL до всех стандартных майновских библиотек и до самого себя (minecraft.jar); указываю parent class loader = null.
Затем, используя его, загружаю с инициализацией несколько классов из AuthLib и с помощью рефлексии подменяю им private static final URL поля на свои значения. Тут всё происходит удачно.
JD-GUI показывает, что эти поля в свою очередь конструируются через вызовы метода другого класса (хотя по факту он делает new URL(url)), что вроде бы должно на 99% предупредить их inline-овость при компиляции (см. JLS 15.28).
Затем переключаю контекстный класслоадер текущего потока на новый, достаю main класс игры, и запускаю его.
Проблема: игра всё равно пытается достучаться до старых URL.
Что я мог упустить?