Модлоадер 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:
@@ -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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user