b8e5df778e
Моды грузятся через -javaagent, game.jar не патчится, переживают ре-обфускацию. Что внутри: - агент rsx-bridge.jar: профиль сборки игры, патчи A2/A6, загрузка модов через родной загрузчик игры (ilxq -> special.Main) - патч лаунчера: окно выбора «С модами / Ванилла» по кнопке «Играть» и защита от автоапдейта лаунчера - install/uninstall: всё ставится в %LOCALAPPDATA%\rsx-mod, пути не хардкодятся - build: три готовых артефакта в dist, нужен только JDK - testserver: локальный сервер, принимает любой ник и токен Проверено на живом клиенте: мод грузится и выполняется в игровом потоке, в логе видно игрока и мир.
41 lines
1.6 KiB
PowerShell
41 lines
1.6 KiB
PowerShell
# Starts the patched launcher directly, without updater.exe.
|
|
#
|
|
# updater.exe re-downloads app.jar whenever its hash differs from the
|
|
# manifest, which is exactly what a patched jar looks like - so launching
|
|
# through the desktop shortcut silently undoes the patch. This runs the
|
|
# launcher itself, with the JavaFX runtime that ships next to it.
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$LauncherHome = Join-Path $env:APPDATA 'kjstudio\launcher'
|
|
$Java = Join-Path $LauncherHome 'runtime\java\bin\javaw.exe'
|
|
$Jar = Join-Path $LauncherHome 'app.jar'
|
|
$FxLib = Join-Path $LauncherHome 'runtime\javafx\lib'
|
|
$FxBin = Join-Path $LauncherHome 'runtime\javafx\bin'
|
|
|
|
if (-not (Test-Path $Java) -or -not (Test-Path $Jar)) {
|
|
Write-Host " Нет лаунчера: $Jar" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Remove-Item (Join-Path $LauncherHome 'app.lock') -Force -ErrorAction SilentlyContinue
|
|
|
|
$env:JAVA_TOOL_OPTIONS = ''
|
|
Write-Host ' Запускаю лаунчер напрямую (без updater.exe)...'
|
|
Start-Process -FilePath $Java -ArgumentList @(
|
|
'--module-path', "`"$FxLib`"",
|
|
'--add-modules', 'ALL-MODULE-PATH',
|
|
"-Djava.library.path=`"$FxBin`"",
|
|
'-Dprism.order=sw',
|
|
'-cp', "`"$Jar`"",
|
|
'application.Main'
|
|
) -WorkingDirectory $LauncherHome | Out-Null
|
|
|
|
Start-Sleep -Seconds 12
|
|
$up = Get-Process -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.MainWindowTitle -like '*Koptojop*' }
|
|
if ($up) {
|
|
Write-Host ' Лаунчер запущен, окно должно появиться.' -ForegroundColor Green
|
|
} else {
|
|
Write-Host ' Лаунчер не поднялся, смотри logs в папке лаунчера.' -ForegroundColor Yellow
|
|
exit 1
|
|
} |