mirror of
				https://github.com/GayPizzaSpecifications/foundation.git
				synced 2025-11-04 03:39:37 +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.DefaultTask
 | 
				
			||||||
import org.gradle.api.tasks.TaskAction
 | 
					import org.gradle.api.tasks.TaskAction
 | 
				
			||||||
import org.gradle.kotlin.dsl.getByType
 | 
					import org.gradle.kotlin.dsl.getByType
 | 
				
			||||||
 | 
					import java.io.File
 | 
				
			||||||
 | 
					import java.util.jar.JarFile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
open class RunPaperServer : DefaultTask() {
 | 
					open class RunPaperServer : DefaultTask() {
 | 
				
			||||||
  init {
 | 
					  init {
 | 
				
			||||||
@ -15,11 +17,17 @@ open class RunPaperServer : DefaultTask() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    val minecraftServerDirectory = project.file(foundation.minecraftServerPath.get())
 | 
					    val minecraftServerDirectory = project.file(foundation.minecraftServerPath.get())
 | 
				
			||||||
    val paperJarFile = minecraftServerDirectory.resolve("paper.jar")
 | 
					    val paperJarFile = minecraftServerDirectory.resolve("paper.jar")
 | 
				
			||||||
 | 
					    val mainClassName = readMainClass(paperJarFile)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    project.javaexec {
 | 
					    project.javaexec {
 | 
				
			||||||
      classpath(paperJarFile.absolutePath)
 | 
					      classpath(paperJarFile.absolutePath)
 | 
				
			||||||
      workingDir(minecraftServerDirectory)
 | 
					      workingDir(minecraftServerDirectory)
 | 
				
			||||||
      args("nogui")
 | 
					      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 {
 | 
					class SchedulerRunner : Job {
 | 
				
			||||||
  override fun execute(context: JobExecutionContext) {
 | 
					  override fun execute(context: JobExecutionContext) {
 | 
				
			||||||
    val f = context.jobDetail.jobDataMap["function"] as () -> Unit
 | 
					    @Suppress("UNCHECKED_CAST")
 | 
				
			||||||
    f()
 | 
					    val function = context.jobDetail.jobDataMap["function"] as () -> Unit
 | 
				
			||||||
 | 
					    function()
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user