mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-19 15:09:15 +00:00
1
.gitignore
vendored
1
.gitignore
vendored
@@ -30,3 +30,4 @@ build/
|
||||
!/libs/*.jar
|
||||
!/gradle/wrapper/*.jar
|
||||
.vscode/settings.json
|
||||
/runPaper/
|
||||
@@ -1,8 +1,12 @@
|
||||
import net.minecrell.pluginyml.paper.PaperPluginDescription
|
||||
import xyz.jpenilla.runpaper.task.RunServer
|
||||
import xyz.jpenilla.runtask.pluginsapi.DownloadPluginsSpec
|
||||
import java.net.URI
|
||||
|
||||
plugins {
|
||||
id("com.gradleup.shadow") version "9.2.2"
|
||||
id("de.eldoria.plugin-yml.paper") version "0.7.1"
|
||||
id("xyz.jpenilla.run-paper") version "2.3.1"
|
||||
}
|
||||
|
||||
repositories {
|
||||
@@ -170,3 +174,58 @@ tasks {
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user