Skip to content

Commit e2c5eeb

Browse files
committed
Update
1 parent 46cc253 commit e2c5eeb

File tree

5 files changed

+33
-28
lines changed

5 files changed

+33
-28
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ buildscript {
1515
1616
plugins {
1717
id 'java'
18-
id 'cn.apisium.papershelled' version '1.0.2'
18+
id 'cn.apisium.papershelled' version '1.0.3'
1919
}
2020
2121
paperShelled {
@@ -40,7 +40,7 @@ buildscript {
4040
}
4141
4242
plugins {
43-
id 'cn.apisium.papershelled' version '1.0.2'
43+
id 'cn.apisium.papershelled' version '1.0.3'
4444
id 'com.github.johnrengelman.shadow' version '7.0.0'
4545
}
4646
@@ -54,7 +54,9 @@ paperShelled {
5454
reobfFile = 'some/path/reobf.tiny'
5555
spigotMap = 'spigot'
5656
mojangMap = 'mojang+yarn'
57-
relocateCraftBukkit = false
57+
archiveClassifier = "-reobf"
58+
relocateCraftBukkit = true
59+
reobfAfterJarTask = true
5860
}
5961
6062
shadowJar {

plugin-build/buildSrc/src/main/java/Coordinates.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
object PluginCoordinates {
22
const val ID = "cn.apisium.papershelled"
33
const val GROUP = "cn.apisium.papershelled"
4-
const val VERSION = "1.0.2"
4+
const val VERSION = "1.0.3"
55
const val IMPLEMENTATION_CLASS = "cn.apisium.papershelled.gradle.Plugin"
66
}
77

plugin-build/plugin/src/main/java/cn/apisium/papershelled/gradle/Extension.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ abstract class Extension @Inject constructor(private val project: Project) {
1515
val reobfFile: RegularFileProperty = objects.fileProperty().convention(project.layout.getCache("reobf.tiny"))
1616
val spigotMap: Property<String> = objects.property(String::class.java).convention("spigot")
1717
val mojangMap: Property<String> = objects.property(String::class.java).convention("mojang+yarn")
18-
val relocateCraftBukkit: Property<Boolean> = objects.property(Boolean::class.java).convention(true)
1918
val paperShelledJar: RegularFileProperty = objects.fileProperty().convention(project.layout.getCache("out.jar"))
19+
val relocateCraftBukkit: Property<Boolean> = objects.property(Boolean::class.java).convention(true)
20+
val reobfAfterJarTask: Property<Boolean> = objects.property(Boolean::class.java).convention(true)
21+
val archiveClassifier: Property<String> = objects.property(String::class.java).convention("-reobf")
2022
val craftBukkitVersion: Property<String> = objects.property(String::class.java)
2123
.convention(project.provider {
2224
try {

plugin-build/plugin/src/main/java/cn/apisium/papershelled/gradle/Plugin.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ abstract class Plugin : Plugin<Project> {
1717

1818
val download = project.tasks.register("download", DownloadTask::class.java) {
1919
it.jarUrl.set(extension.jarUrl)
20+
it.jarFile.set(extension.jarFile)
2021
it.downloader.set(ds)
2122
}
2223

@@ -26,11 +27,7 @@ abstract class Plugin : Plugin<Project> {
2627
it.spigotMap.set(extension.spigotMap)
2728
it.mojangMap.set(extension.mojangMap)
2829
it.paperShelledJar.set(extension.paperShelledJar)
29-
it.shouldRunAfter(download)
30-
}
31-
32-
val setup = project.tasks.register("setupPaperShelled", SetupTask::class.java) {
33-
it.dependsOn(download, gmj)
30+
if (!Files.exists(it.jarFile.get().asFile.toPath())) it.dependsOn(download)
3431
}
3532

3633
val reobf = project.tasks.register("reobf", ReobfTask::class.java) {
@@ -40,11 +37,12 @@ abstract class Plugin : Plugin<Project> {
4037
it.mojangMap.set(extension.mojangMap)
4138
it.craftBukkitVersion.set(extension.craftBukkitVersion)
4239
it.paperShelledJar.set(extension.paperShelledJar)
40+
it.archiveClassifier.set(extension.archiveClassifier)
4341
if (!Files.exists(it.reobfFile.get().asFile.toPath()) ||
44-
!Files.exists(it.paperShelledJar.get().asFile.toPath())) it.dependsOn(setup)
42+
!Files.exists(it.paperShelledJar.get().asFile.toPath())) it.dependsOn(gmj)
4543
}
4644

47-
project.tasks.withType(Jar::class.java) {
45+
if (extension.reobfAfterJarTask.get()) project.tasks.withType(Jar::class.java) {
4846
lastJarTask = it
4947
it.finalizedBy(reobf)
5048
}

plugin-build/plugin/src/main/java/cn/apisium/papershelled/gradle/Tasks.kt

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,6 @@ import kotlin.io.path.name
2222

2323
private const val GROUP = "papershelled"
2424

25-
abstract class SetupTask : DefaultTask() {
26-
init {
27-
description = "Setup"
28-
group = GROUP
29-
}
30-
31-
@TaskAction
32-
fun run() = Unit
33-
}
34-
3525
abstract class DownloadTask : DefaultTask() {
3626
init {
3727
description = "Download server jar"
@@ -42,6 +32,10 @@ abstract class DownloadTask : DefaultTask() {
4232
@get:Option(option = "jarUrl", description = "The url to download server jar")
4333
abstract val jarUrl: Property<String>
4434

35+
@get:Input
36+
@get:Option(option = "jarFile", description = "The file path of server jar")
37+
abstract val jarFile: RegularFileProperty
38+
4539
@get:Inject
4640
abstract val workerExecutor: WorkerExecutor
4741

@@ -54,7 +48,7 @@ abstract class DownloadTask : DefaultTask() {
5448
workerExecutor.noIsolation().submit(DownloadWorker::class.java) {
5549
it.downloader.set(downloader)
5650
it.source.set(jarUrl)
57-
it.target.set(project.layout.cache.resolve("server.jar").toFile())
51+
it.target.set(jarFile)
5852
}
5953
}
6054
}
@@ -148,6 +142,11 @@ abstract class ReobfTask : DefaultTask() {
148142
@get:Optional
149143
abstract val reobfFile: RegularFileProperty
150144

145+
@get:Input
146+
@get:Option(option = "archiveClassifier", description = "The classifier of output jar")
147+
@get:Optional
148+
abstract val archiveClassifier: Property<String>
149+
151150
@get:Input
152151
@get:Option(option = "spigotMap", description = "The map name of Spigot")
153152
@get:Optional
@@ -184,8 +183,8 @@ abstract class ReobfTask : DefaultTask() {
184183
val needRelocate = relocateCraftBukkit.get()
185184
val path = lastJarTask!!.archiveFile.get().asFile.toPath()
186185
val noSuffix = path.fileName.toString().removeSuffix(".jar")
187-
val out = path.parent.resolve("$noSuffix-reobf.jar")
188-
val temp = if (needRelocate) path.parent.resolve("$noSuffix.tmp.jar") else out
186+
val temp = path.parent.resolve(noSuffix + archiveClassifier.get() + ".temp1.jar")
187+
val out = path.parent.resolve(noSuffix + archiveClassifier.get() + ".jar")
189188
try {
190189
OutputConsumerPath.Builder(temp).build().use {
191190
it.addNonClassFiles(path, NonClassCopyMode.FIX_META_INF, remapper)
@@ -196,10 +195,14 @@ abstract class ReobfTask : DefaultTask() {
196195
} finally {
197196
remapper.finish()
198197
}
199-
if (needRelocate) {
200-
JarRelocator(temp.toFile(), out.toFile(), listOf(Relocation("org.bukkit.craftbukkit",
198+
val tempOut = if (needRelocate) {
199+
val tmp = path.parent.resolve(noSuffix + archiveClassifier.get() + ".temp2.jar")
200+
JarRelocator(temp.toFile(), tmp.toFile(), listOf(Relocation("org.bukkit.craftbukkit",
201201
"org.bukkit.craftbukkit." + craftBukkitVersion.get()))).run()
202202
Files.delete(temp)
203-
}
203+
tmp
204+
} else temp
205+
if (Files.exists(out)) Files.delete(out)
206+
Files.move(tempOut, out)
204207
}
205208
}

0 commit comments

Comments
 (0)