9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

Merge pull request #469 from Catnies/dev-server-2

添加一键起飞
This commit is contained in:
XiaoMoMi
2025-11-19 02:06:05 +08:00
committed by GitHub
2 changed files with 60 additions and 0 deletions

1
.gitignore vendored
View File

@@ -30,3 +30,4 @@ build/
!/libs/*.jar !/libs/*.jar
!/gradle/wrapper/*.jar !/gradle/wrapper/*.jar
.vscode/settings.json .vscode/settings.json
/runPaper/

View File

@@ -1,8 +1,12 @@
import net.minecrell.pluginyml.paper.PaperPluginDescription import net.minecrell.pluginyml.paper.PaperPluginDescription
import xyz.jpenilla.runpaper.task.RunServer
import xyz.jpenilla.runtask.pluginsapi.DownloadPluginsSpec
import java.net.URI
plugins { plugins {
id("com.gradleup.shadow") version "9.2.2" id("com.gradleup.shadow") version "9.2.2"
id("de.eldoria.plugin-yml.paper") version "0.7.1" id("de.eldoria.plugin-yml.paper") version "0.7.1"
id("xyz.jpenilla.run-paper") version "2.3.1"
} }
repositories { repositories {
@@ -170,3 +174,58 @@ tasks {
relocate("io.netty.handler.codec.http2", "net.momirealms.craftengine.libraries.netty.handler.codec.http2") relocate("io.netty.handler.codec.http2", "net.momirealms.craftengine.libraries.netty.handler.codec.http2")
} }
} }
/**
* Register Run Dev Server Tasks
*/
listOf(
"1.21.10",
"1.21.8",
"1.21.5",
"1.21.4",
"1.21.2",
"1.21.1",
"1.20.6",
"1.20.4",
"1.20.2",
"1.20.1",
).forEach {
registerPaperTask(it)
}
fun registerPaperTask(
version: String,
dirName: String = version,
javaVersion : Int = 21,
serverJar: File? = null,
downloadPlugins: Action<DownloadPluginsSpec>? = null
) {
listOf(version, "${version}-with-viaversion").forEach { taskName ->
tasks.register(taskName, RunServer::class) {
group = "run dev server"
minecraftVersion(version)
serverJar?.let { serverJar(it) }
pluginJars.from(tasks.shadowJar.flatMap { it.archiveFile })
runDirectory = rootProject.layout.projectDirectory.dir("runPaper/${dirName}")
javaLauncher = javaToolchains.launcherFor {
vendor = JvmVendorSpec.JETBRAINS
languageVersion = JavaLanguageVersion.of(javaVersion)
}
systemProperties["com.mojang.eula.agree"] = true
jvmArgs("-Ddisable.watchdog=true")
jvmArgs("-Xlog:redefine+class*=info")
jvmArgs("-XX:+AllowEnhancedClassRedefinition")
downloadPlugins?.let { downloadPlugins(it) }
downloadPlugins {
url("https://ci.viaversion.com/job/ViaVersion/lastBuild/artifact/build/libs/${getJenkinsArtifactFileName("https://ci.viaversion.com/job/ViaVersion/lastSuccessfulBuild/api/json?tree=artifacts[*]")}")
url("https://ci.viaversion.com/view/ViaBackwards/job/ViaBackwards/662/artifact/build/libs/${getJenkinsArtifactFileName("https://ci.viaversion.com/job/ViaBackwards/lastSuccessfulBuild/api/json?tree=artifacts[*]")}")
}
}
}
}
fun getJenkinsArtifactFileName(url: String): String {
val response = URI.create(url).toURL().readText()
val regex = """"fileName":"([^"]+)"""".toRegex()
return regex.find(response)?.groupValues?.get(1) ?: throw Exception("fileName not found")
}