@@ -2,13 +2,15 @@ package ru.endlesscode.bukkitgradle.server.legacy
22
33import org.gradle.api.Plugin
44import org.gradle.api.Project
5+ import org.gradle.api.tasks.Copy
56import org.gradle.api.tasks.TaskProvider
6- import ru.endlesscode.bukkitgradle.BukkitGradlePlugin
7+ import org.gradle.jvm.tasks.Jar
8+ import ru.endlesscode.bukkitgradle.meta.extension.PluginMeta
79import ru.endlesscode.bukkitgradle.server.ServerConstants
810import ru.endlesscode.bukkitgradle.server.extension.RunConfiguration
9- import ru.endlesscode.bukkitgradle.server.legacy.task.PrepareServer
1011import ru.endlesscode.bukkitgradle.server.task.CreateIdeaJarRunConfiguration
1112import ru.endlesscode.bukkitgradle.server.task.GenerateRunningScript
13+ import ru.endlesscode.bukkitgradle.server.task.PrepareServer
1214import ru.endlesscode.bukkitgradle.server.task.RunServer
1315
1416class LegacyDevServerPlugin implements Plugin<Project > {
@@ -23,13 +25,7 @@ class LegacyDevServerPlugin implements Plugin<Project> {
2325 scriptDir. set(serverCore. serverDir)
2426 }
2527
26- def prepareServer = project. tasks. register(' prepareServer' , PrepareServer ) {
27- group = BukkitGradlePlugin . GROUP
28- description = ' Prepare server ro run. Configure server and copy compiled plugin to plugins dir'
29- core = serverCore
30- dependsOn(' build' , ' copyServerCore' )
31- } as TaskProvider<PrepareServer >
32-
28+ def prepareServer = configurePrepareServerTask(project, serverCore)
3329 project. tasks. register(' runServer' , RunServer ) {
3430 scriptFile. set(generateRunningScript. map { it. scriptFile. get(). asFile })
3531 dependsOn(prepareServer)
@@ -39,7 +35,26 @@ class LegacyDevServerPlugin implements Plugin<Project> {
3935 configurationName. set(" $project . name : Run server" )
4036 beforeRunTask. set(' prepareServer' )
4137 configurationsDir. set(project. rootProject. layout. projectDirectory. dir(' .idea/runConfigurations' ))
42- jarPath. set(prepareServer. map { it. serverDir. file(ServerConstants . FILE_CORE ). get(). asFile })
38+ jarPath. set(new File (serverCore. serverDir, ServerConstants . FILE_CORE ))
39+ }
40+ }
41+
42+ private static TaskProvider<PrepareServer > configurePrepareServerTask (Project project , ServerCore serverCore ) {
43+ def jarTaskName = project. plugins. hasPlugin(" com.github.johnrengelman.shadow" ) ? " shadowJar" : " jar"
44+ def jarTask = project. tasks. named(jarTaskName, Jar ) as TaskProvider<Jar >
45+ def meta = project. bukkit. meta as PluginMeta
46+ def copyPlugins = project. tasks. register(" copyPlugins" , Copy ) {
47+ from(jarTask)
48+ into(project. mkdir(new File (serverCore. serverDir, " plugins" )))
49+ rename { " ${ meta.name.get()} .jar" }
50+ }
51+
52+ def run = project. bukkit. run as RunConfiguration
53+ return project. tasks. register(' prepareServer' , PrepareServer ) {
54+ serverDir. set(serverCore. serverDir)
55+ eula = run. eula
56+ onlineMode = run. onlineMode
57+ dependsOn(' copyServerCore' , copyPlugins)
4358 }
4459 }
4560}
0 commit comments