- 7,099
- 324
- 1,510
Пытаюсь сделать сабж^
Кое-как наскорябал билд-скрипт под это.
В среде разработки хорошо пашет если запускать через
Воркспейс: GitHub - hohserg1/aspectj_forge_mdk_example: Attempt to use AspectJ with MinecraftForge
Собрал мод, закинул в обычный майн, указал javaagent, запускаю. Ожидаю, что работать будет только TestAspect2, потому что он изменяет не обфусцированный класс. По факту не работает даже он.
Декомпилирую собранный мод, чтобы посмотреть как там устроены аспекты(это понадобится чтобы потом как-нить накатить обфускацию на них) и не вижу, где в них записана инфа о целевом методе, втф.
Например, в аспекте у мя написано
В декомпиляторе не вижу ниче подобного и в других файлах тоже.
Видимо, оно в какой-то нестандартной скрытой части байткода хранит.
Попробовал тот же самый аспект в чистом java-проекте без mdk - работает.
Что я упускаю?
Лог запуска(там вроде ниче интересного):
Кое-как наскорябал билд-скрипт под это.
В среде разработки хорошо пашет если запускать через
gradle runClient
.Воркспейс: GitHub - hohserg1/aspectj_forge_mdk_example: Attempt to use AspectJ with MinecraftForge
Java:
public aspect TestAspect {
pointcut bruh(Minecraft mc): target(mc) && execution(public void resize(..));
before(Minecraft mc): bruh(mc){
System.out.println("TestAspect#bruh");
}
}
Java:
public aspect TestAspect2 {
pointcut some(HashBiMap i):target(i) && execution(public com.google.common.collect.BiMap inverse());
before(HashBiMap i): some(i){
System.out.println("HashBiMap Aspect"); //каждый раз, когда вызывается HashBiMap#inverse, в консоль пишется
}
}
Декомпилирую собранный мод, чтобы посмотреть как там устроены аспекты(это понадобится чтобы потом как-нить накатить обфускацию на них) и не вижу, где в них записана инфа о целевом методе, втф.
Например, в аспекте у мя написано
public com.google.common.collect.BiMap inverse()
сигнатура целевого метода.В декомпиляторе не вижу ниче подобного и в других файлах тоже.
Видимо, оно в какой-то нестандартной скрытой части байткода хранит.
Попробовал тот же самый аспект в чистом java-проекте без mdk - работает.
Что я упускаю?
Лог запуска(там вроде ниче интересного):
gist:42765b9b059dff63bdeb5af9e62a50c6
GitHub Gist: instantly share code, notes, and snippets.
gist.github.com