mirror of
				https://github.com/GayPizzaSpecifications/foundation.git
				synced 2025-11-04 11:39:39 +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