mirror of
https://github.com/GayPizzaSpecifications/foundation.git
synced 2025-08-03 13:31:32 +00:00
Gradle: runPaperServer should read Main-Class from manifest.
This commit is contained in:
@ -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")!!
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user