forked from SteamWar/SteamWar
@@ -108,8 +108,10 @@ class DevCommand : CliktCommand("dev") {
|
|||||||
if (!templateFile.exists()) {
|
if (!templateFile.exists()) {
|
||||||
throw CliktError("Could not find world template: ${templateFile.absolutePath}")
|
throw CliktError("Could not find world template: ${templateFile.absolutePath}")
|
||||||
}
|
}
|
||||||
|
worldFile.parentFile?.mkdirs()
|
||||||
templateFile.copyRecursively(worldFile)
|
templateFile.copyRecursively(worldFile)
|
||||||
}
|
}
|
||||||
|
val worldDir = worldFile.parentFile ?: workingDir
|
||||||
|
|
||||||
val devFile = File("/configs/DevServer/${System.getProperty("user.name")}.$port.$version")
|
val devFile = File("/configs/DevServer/${System.getProperty("user.name")}.$port.$version")
|
||||||
if (System.getProperty("user.name") != "minecraft") {
|
if (System.getProperty("user.name") != "minecraft") {
|
||||||
@@ -120,10 +122,11 @@ class DevCommand : CliktCommand("dev") {
|
|||||||
args, jvmArgs, listOf(
|
args, jvmArgs, listOf(
|
||||||
jarFile,
|
jarFile,
|
||||||
*(if (forceUpgrade) arrayOf("-forceUpgrade") else arrayOf()),
|
*(if (forceUpgrade) arrayOf("-forceUpgrade") else arrayOf()),
|
||||||
|
"--log-strip-color",
|
||||||
"--port", port.toString(),
|
"--port", port.toString(),
|
||||||
"--level-name", worldFile.name,
|
"--level-name", worldFile.name,
|
||||||
"--world-dir", workingDir.absolutePath,
|
"--world-dir", worldDir.absolutePath,
|
||||||
"--nogui",
|
"nogui",
|
||||||
*(if (plugins != null) arrayOf("--plugins", plugins!!.absolutePathString()) else arrayOf())
|
*(if (plugins != null) arrayOf("--plugins", plugins!!.absolutePathString()) else arrayOf())
|
||||||
), serverDir
|
), serverDir
|
||||||
)
|
)
|
||||||
@@ -156,6 +159,16 @@ class DevCommand : CliktCommand("dev") {
|
|||||||
|
|
||||||
val jvmArgOverrides = arrayOf("--add-opens", "java.base/jdk.internal.misc=ALL-UNNAMED")
|
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(
|
val supportedVersionJars = mapOf(
|
||||||
8 to "/jars/paper-1.8.8.jar",
|
8 to "/jars/paper-1.8.8.jar",
|
||||||
9 to "/jars/spigot-1.9.4.jar",
|
9 to "/jars/spigot-1.9.4.jar",
|
||||||
@@ -228,13 +241,23 @@ class DevCommand : CliktCommand("dev") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun runServer(args: List<String>, jvmArgs: List<String>, cmd: List<String>, serverDir: File) {
|
fun runServer(args: List<String>, jvmArgs: List<String>, cmd: List<String>, serverDir: File) {
|
||||||
|
val effectiveJvmArgs = mutableListOf<String>()
|
||||||
|
effectiveJvmArgs += jvmArgs
|
||||||
|
if (!isVelocity(server)) {
|
||||||
|
extendedStartupParams.forEach { arg ->
|
||||||
|
if (effectiveJvmArgs.none { it == arg }) {
|
||||||
|
effectiveJvmArgs += arg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val process = ProcessBuilder(
|
val process = ProcessBuilder(
|
||||||
jvm?.absolutePath
|
jvm?.absolutePath
|
||||||
?: if (isJava8(server)) "/usr/lib/jvm/openj9-8/bin/java" else "java",
|
?: if (isJava8(server)) "/usr/lib/jvm/openj9-8/bin/java" else "/usr/lib/jvm/openj9-21/bin/java",
|
||||||
*jvmArgs.toTypedArray(),
|
*effectiveJvmArgs.toTypedArray(),
|
||||||
*args.toTypedArray(),
|
*args.toTypedArray(),
|
||||||
*jvmDefaultParams,
|
*jvmDefaultParams,
|
||||||
*(if (isJava8(server)) arrayOf() else jvmArgOverrides),
|
*(if (isJava8(server)) arrayOf() else jvmNonJava8Params),
|
||||||
*(if (profile) arrayOf("-javaagent:/jars/LixfelsProfiler.jar=start") else arrayOf()),
|
*(if (profile) arrayOf("-javaagent:/jars/LixfelsProfiler.jar=start") else arrayOf()),
|
||||||
"-Xshareclasses:nonfatal,name=$server",
|
"-Xshareclasses:nonfatal,name=$server",
|
||||||
"-jar",
|
"-jar",
|
||||||
|
|||||||
Reference in New Issue
Block a user