Модлоадер RustexRemake: агент, патч лаунчера, установщик и сборка

Моды грузятся через -javaagent, game.jar не патчится, переживают ре-обфускацию.

Что внутри:
- агент rsx-bridge.jar: профиль сборки игры, патчи A2/A6, загрузка модов
  через родной загрузчик игры (ilxq -> special.Main)
- патч лаунчера: окно выбора «С модами / Ванилла» по кнопке «Играть»
  и защита от автоапдейта лаунчера
- install/uninstall: всё ставится в %LOCALAPPDATA%\rsx-mod, пути не хардкодятся
- build: три готовых артефакта в dist, нужен только JDK
- testserver: локальный сервер, принимает любой ник и токен

Проверено на живом клиенте: мод грузится и выполняется в игровом потоке,
в логе видно игрока и мир.
This commit is contained in:
SashegDev
2026-10-17 00:32:10 +03:00
commit b8e5df778e
40 changed files with 4730 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
// Drives the fake client the way the game would, so the bridge can be tested
// end to end: bring the client up, hand the mods to the vendor loader, then tick.
public class FakeMain {
public static void main(String[] args) throws Exception {
System.out.println("[fake] class loader: " + FakeMain.class.getClassLoader());
System.out.println("[fake] joml.fastmath = " + System.getProperty("joml.fastmath"));
wwk client = new wwk();
wwk.WA = client;
client.zb = "PLAYER";
client.ta = "WORLD";
client.S = null;
client.Zb = "TIMER";
client.jC = "RENDER";
client.pC = new pvdafug("http://snoop.minecraft.net/report");
System.out.println("[fake] client up, telemetry scheduled");
Thread.sleep(2500);
System.out.println("[fake] ticking 5 times");
for (int i = 0; i < 5; i++) {
client.tick();
Thread.sleep(200);
}
System.out.println("[fake] done");
}
}