mirror of
https://github.com/GayPizzaSpecifications/foundation.git
synced 2025-08-02 21:20:55 +00:00
Gradle: runPaperServer should read Main-Class from manifest.
This commit is contained in:
parent
ef13c2371c
commit
93d1888537
@ -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")!!
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,8 @@ import org.quartz.JobExecutionContext
|
||||
|
||||
class SchedulerRunner : Job {
|
||||
override fun execute(context: JobExecutionContext) {
|
||||
val f = context.jobDetail.jobDataMap["function"] as () -> Unit
|
||||
f()
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val function = context.jobDetail.jobDataMap["function"] as () -> Unit
|
||||
function()
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user