From 6fd3e6f690446b35842eba628338c4686e6dd0dc Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Sun, 5 Jul 2026 13:51:45 +0200 Subject: [PATCH] Fix Reset Signed-off-by: Chaoscaot --- CLI/src/commands/dev/DevCommand.kt | 33 +++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/CLI/src/commands/dev/DevCommand.kt b/CLI/src/commands/dev/DevCommand.kt index 0cc75728..075c5211 100644 --- a/CLI/src/commands/dev/DevCommand.kt +++ b/CLI/src/commands/dev/DevCommand.kt @@ -108,8 +108,10 @@ class DevCommand : CliktCommand("dev") { if (!templateFile.exists()) { throw CliktError("Could not find world template: ${templateFile.absolutePath}") } + worldFile.parentFile?.mkdirs() templateFile.copyRecursively(worldFile) } + val worldDir = worldFile.parentFile ?: workingDir val devFile = File("/configs/DevServer/${System.getProperty("user.name")}.$port.$version") if (System.getProperty("user.name") != "minecraft") { @@ -120,10 +122,11 @@ class DevCommand : CliktCommand("dev") { args, jvmArgs, listOf( jarFile, *(if (forceUpgrade) arrayOf("-forceUpgrade") else arrayOf()), + "--log-strip-color", "--port", port.toString(), "--level-name", worldFile.name, - "--world-dir", workingDir.absolutePath, - "--nogui", + "--world-dir", worldDir.absolutePath, + "nogui", *(if (plugins != null) arrayOf("--plugins", plugins!!.absolutePathString()) else arrayOf()) ), serverDir ) @@ -156,6 +159,16 @@ class DevCommand : CliktCommand("dev") { val jvmArgOverrides = arrayOf("--add-opens", "java.base/jdk.internal.misc=ALL-UNNAMED") + val jvmNonJava8Params = arrayOf( + *jvmArgOverrides, + "-XX:-CRIUSecProvider" + ) + + val extendedStartupParams = arrayOf( + "-Dpaper.disablePluginRemapping=true", + "-javaagent:/jars/AccessWidener.jar=start" + ) + val supportedVersionJars = mapOf( 8 to "/jars/paper-1.8.8.jar", 9 to "/jars/spigot-1.9.4.jar", @@ -228,13 +241,23 @@ class DevCommand : CliktCommand("dev") { } fun runServer(args: List, jvmArgs: List, cmd: List, serverDir: File) { + val effectiveJvmArgs = mutableListOf() + effectiveJvmArgs += jvmArgs + if (!isVelocity(server)) { + extendedStartupParams.forEach { arg -> + if (effectiveJvmArgs.none { it == arg }) { + effectiveJvmArgs += arg + } + } + } + val process = ProcessBuilder( jvm?.absolutePath - ?: if (isJava8(server)) "/usr/lib/jvm/openj9-8/bin/java" else "java", - *jvmArgs.toTypedArray(), + ?: if (isJava8(server)) "/usr/lib/jvm/openj9-8/bin/java" else "/usr/lib/jvm/openj9-21/bin/java", + *effectiveJvmArgs.toTypedArray(), *args.toTypedArray(), *jvmDefaultParams, - *(if (isJava8(server)) arrayOf() else jvmArgOverrides), + *(if (isJava8(server)) arrayOf() else jvmNonJava8Params), *(if (profile) arrayOf("-javaagent:/jars/LixfelsProfiler.jar=start") else arrayOf()), "-Xshareclasses:nonfatal,name=$server", "-jar",