Gradle: runPaperServer should read Main-Class from manifest.

This commit is contained in:
Kenneth Endfinger
2022-01-15 16:15:11 -05:00
parent ef13c2371c
commit 93d1888537
2 changed files with 12 additions and 3 deletions

View File

@ -3,6 +3,8 @@ package cloud.kubelet.foundation.gradle
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
import org.gradle.kotlin.dsl.getByType
import java.io.File
import java.util.jar.JarFile
open class RunPaperServer : DefaultTask() {
init {
@ -15,11 +17,17 @@ open class RunPaperServer : DefaultTask() {
val minecraftServerDirectory = project.file(foundation.minecraftServerPath.get())
val paperJarFile = minecraftServerDirectory.resolve("paper.jar")
val mainClassName = readMainClass(paperJarFile)
project.javaexec {
classpath(paperJarFile.absolutePath)
workingDir(minecraftServerDirectory)
args("nogui")
mainClass.set("io.papermc.paperclip.Main")
mainClass.set(mainClassName)
}
}
private fun readMainClass(file: File): String = JarFile(file).use { jar ->
jar.manifest.mainAttributes.getValue("Main-Class")!!
}
}