Import OpenZen deobfuscated source
Build Loader / build (push) Canceled after 0s

这个提交包含在:
Administrator committed 2026-09-15 03:14:09 +08:00
当前提交 0da7d49fd6
465 file changed
+164690

No files matched your search

+128
查看文件
@@ -0,0 +1,128 @@
# Launch Minecraft 1.20.1 (Forge 47.4.23) with OpenZen agent injected via -javaagent
param(
[string]$Username = "Player"
)
$ErrorActionPreference = "Stop"
$mcRoot = "C:\Users\Administrator\Desktop\nx\mc\.minecraft"
$versionId = "1.20.1-Forge_47.4.23"
$versionDir = Join-Path $mcRoot "versions\$versionId"
$versionJson = Join-Path $versionDir "$versionId.json"
$versionJar = Join-Path $versionDir "$versionId.jar"
$nativesDir = Join-Path $versionDir "$versionId-natives"
$libsDir = Join-Path $mcRoot "libraries"
$assetsDir = Join-Path $mcRoot "assets"
$agentJar = "C:\Users\Administrator\Desktop\nx\OpenZen\build\libs\hey-1.0.jar"
$javaExe = "C:\Program Files\Common Files\Oracle\Java\javapath\javaw.exe"
if (-not (Test-Path -LiteralPath $agentJar)) { throw "Agent jar not found: $agentJar (run gradlew build first)" }
$json = Get-Content -LiteralPath $versionJson -Raw | ConvertFrom-Json
# ---- classpath: windows-filtered libraries + client jar ----
$libPaths = New-Object System.Collections.Generic.List[string]
foreach ($lib in $json.libraries) {
if (-not ($lib.downloads -and $lib.downloads.artifact)) { continue }
$allowed = $true
if ($lib.rules) {
$allowed = $false
foreach ($r in $lib.rules) {
if ($r.action -eq "allow" -and (-not $r.os -or $r.os.name -eq "windows")) { $allowed = $true; break }
}
}
if ($allowed) {
$p = Join-Path $libsDir $lib.downloads.artifact.path
if (-not (Test-Path -LiteralPath $p)) { throw "Missing library: $p" }
$libPaths.Add($p)
}
}
$libPaths.Add($versionJar)
$cp = $libPaths -join ";"
# ---- module path: same jars as json "-p" argument ----
$moduleJarNames = @(
"cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar",
"cpw/mods/securejarhandler/2.1.10/securejarhandler-2.1.10.jar",
"org/ow2/asm/asm-commons/9.9.1/asm-commons-9.9.1.jar",
"org/ow2/asm/asm-util/9.9.1/asm-util-9.9.1.jar",
"org/ow2/asm/asm-analysis/9.9.1/asm-analysis-9.9.1.jar",
"org/ow2/asm/asm-tree/9.9.1/asm-tree-9.9.1.jar",
"org/ow2/asm/asm/9.9.1/asm-9.9.1.jar",
"net/minecraftforge/JarJarFileSystems/0.3.19/JarJarFileSystems-0.3.19.jar"
)
$mp = ($moduleJarNames | ForEach-Object { Join-Path $libsDir $_ }) -join ";"
# ---- offline auth (Mojang-style offline uuid) ----
$md5 = [System.Security.Cryptography.MD5]::Create()
$hash = $md5.ComputeHash([Text.Encoding]::UTF8.GetBytes("OfflinePlayer:$Username"))
$hash[6] = ($hash[6] -band 0x0F) -bor 0x30
$hash[8] = ($hash[8] -band 0x3F) -bor 0x80
$uuid = [Guid]$hash
$uuidStr = $uuid.ToString().Replace("-", "")
$accessToken = [Guid]::NewGuid().ToString().Replace("-", "")
# ---- java argument file (JDK9+ @argfile, avoids cmd length limits) ----
function Add-Arg([System.Collections.Generic.List[string]]$list, [string]$arg) {
if ($arg -match '\s') { $arg = '"' + $arg + '"' }
$list.Add($arg)
}
$args = New-Object System.Collections.Generic.List[string]
Add-Arg $args "-Xmx4G"
Add-Arg $args "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump"
Add-Arg $args "-Xss1M"
Add-Arg $args "-Djava.library.path=$nativesDir"
Add-Arg $args "-Djna.tmpdir=$nativesDir"
Add-Arg $args "-Dorg.lwjgl.system.SharedLibraryExtractPath=$nativesDir"
Add-Arg $args "-Dio.netty.native.workdir=$nativesDir"
Add-Arg $args "-Dminecraft.launcher.brand=PCL2"
Add-Arg $args "-Dminecraft.launcher.version=2.9.3"
Add-Arg $args "-Djava.net.preferIPv6Addresses=system"
Add-Arg $args "-DignoreList=bootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge-,$versionId.jar"
Add-Arg $args "-DmergeModules=jna-5.10.0.jar,jna-platform-5.10.0.jar"
Add-Arg $args "-DlibraryDirectory=$libsDir"
Add-Arg $args "-p"
Add-Arg $args $mp
Add-Arg $args "--add-modules"
Add-Arg $args "ALL-MODULE-PATH"
Add-Arg $args "--add-opens"
Add-Arg $args "java.base/java.util.jar=cpw.mods.securejarhandler"
Add-Arg $args "--add-opens"
Add-Arg $args "java.base/java.lang.invoke=cpw.mods.securejarhandler"
Add-Arg $args "--add-exports"
Add-Arg $args "java.base/sun.security.util=cpw.mods.securejarhandler"
Add-Arg $args "--add-exports"
Add-Arg $args "jdk.naming.dns/com.sun.jndi.dns=java.naming"
Add-Arg $args "-javaagent:$agentJar"
Add-Arg $args "-cp"
Add-Arg $args $cp
Add-Arg $args $json.mainClass
Add-Arg $args "--launchTarget"; Add-Arg $args "forgeclient"
Add-Arg $args "--fml.forgeVersion"; Add-Arg $args "47.4.23"
Add-Arg $args "--fml.mcVersion"; Add-Arg $args "1.20.1"
Add-Arg $args "--fml.forgeGroup"; Add-Arg $args "net.minecraftforge"
Add-Arg $args "--fml.mcpVersion"; Add-Arg $args "20230612.114412"
Add-Arg $args "--username"; Add-Arg $args $Username
Add-Arg $args "--version"; Add-Arg $args $versionId
Add-Arg $args "--gameDir"; Add-Arg $args $versionDir
Add-Arg $args "--assetsDir"; Add-Arg $args $assetsDir
Add-Arg $args "--assetIndex"; Add-Arg $args "5"
Add-Arg $args "--uuid"; Add-Arg $args $uuidStr
Add-Arg $args "--accessToken"; Add-Arg $args $accessToken
Add-Arg $args "--userType"; Add-Arg $args "msa"
Add-Arg $args "--versionType"; Add-Arg $args "OpenZen"
$argFile = Join-Path $env:TEMP "opencode\mc-launch-args.txt"
New-Item -ItemType Directory -Force -Path (Split-Path $argFile) | Out-Null
Set-Content -LiteralPath $argFile -Value $args -Encoding ASCII
Write-Output "Arg file: $argFile"
Write-Output "Agent : $agentJar"
Write-Output "Username: $Username (offline uuid $uuidStr)"
# ---- launch ----
$proc = Start-Process -FilePath $javaExe -ArgumentList "@`"$argFile`"" -WorkingDirectory $versionDir -PassThru
Write-Output ("Game process started, PID: " + $proc.Id)