Skip to content

Commit 8ec4eaa

Browse files
committed
feat: try to add spigot config
1 parent c2c523e commit 8ec4eaa

11 files changed

Lines changed: 72 additions & 28 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
group = org.leavesmc.leavesweight
2-
version = 2.0.0-SNAPSHOT
2+
version = 2.1.0-SNAPSHOT
33

44
org.gradle.caching = true
55
org.gradle.parallel = true

leavesweight-core/src/main/kotlin/io/papermc/paperweight/core/PaperweightCore.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ abstract class PaperweightCore : Plugin<Project> {
142142
tasks.generateRelocatedReobfMappings {
143143
inputJar.set(jar.flatMap { it.archiveFile })
144144
}
145-
val (includeMappings, reobfJar) = target.createBuildTasks(
146-
ext.spigot.packageVersion,
145+
val (mappedJar, reobfJar) = target.createBuildTasks(
146+
ext.spigot,
147147
ext.reobfPackagesToFix,
148148
tasks.generateRelocatedReobfMappings.flatMap { it.outputMappings },
149149
)
@@ -155,8 +155,8 @@ abstract class PaperweightCore : Plugin<Project> {
155155
tasks.extractFromBundler.flatMap { it.versionJson },
156156
tasks.extractFromBundler.flatMap { it.serverLibrariesList },
157157
tasks.downloadServerJar.flatMap { it.outputJar },
158-
includeMappings.flatMap { it.outputJar },
159-
reobfJar.flatMap { it.outputJar },
158+
mappedJar,
159+
reobfJar,
160160
ext.minecraftVersion,
161161
)
162162

@@ -189,7 +189,7 @@ abstract class PaperweightCore : Plugin<Project> {
189189
tasks.afterEvaluate()
190190

191191
devBundleTasks.configureAfterEvaluate(
192-
includeMappings.flatMap { it.outputJar },
192+
mappedJar,
193193
)
194194
}
195195
}

leavesweight-core/src/main/kotlin/io/papermc/paperweight/core/extension/PaperweightCoreExtension.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,13 @@ abstract class PaperweightCoreExtension @Inject constructor(objects: ObjectFacto
5151

5252
val reobfPackagesToFix: ListProperty<String> = objects.listProperty()
5353

54-
val spigot = objects.newInstance<SpigotExtension>()
54+
val spigot = objects.newInstance<SpigotExtension>().also { spigot ->
55+
spigot.enabled.convention(
56+
spigot.buildDataRef.zip(spigot.packageVersion) { ref, pkg ->
57+
ref !== null && pkg !== null && ref.isNotBlank() && pkg.isNotBlank()
58+
}
59+
)
60+
}
5561
val paper = objects.newInstance<PaperExtension>(project)
5662

5763
@Suppress("unused")

leavesweight-core/src/main/kotlin/io/papermc/paperweight/core/extension/SpigotExtension.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,5 @@ interface SpigotExtension {
2828

2929
val buildDataRef: Property<String>
3030
val packageVersion: Property<String>
31+
val enabled: Property<Boolean>
3132
}

leavesweight-core/src/main/kotlin/io/papermc/paperweight/core/taskcontainers/DevBundleTasks.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,15 @@ class DevBundleTasks(
6868

6969
minecraftVersion.set(project.coreExt.minecraftVersion)
7070
mojangMappedPaperclipFile.set(paperclipForDevBundle.flatMap { it.outputZip })
71-
reobfMappingsFile.set(coreTasks.generateRelocatedReobfMappings.flatMap { it.outputMappings })
71+
reobfMappingsFile.set(
72+
project.coreExt.spigot.enabled.flatMap<RegularFile?> {
73+
if (it) {
74+
coreTasks.generateRelocatedReobfMappings.flatMap { it.outputMappings }
75+
} else {
76+
providers.provider { null }
77+
}
78+
}
79+
)
7280
}
7381

7482
fun configureAfterEvaluate(serverJar: Provider<RegularFile>) {

leavesweight-core/src/main/kotlin/io/papermc/paperweight/core/util/project-util.kt

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
package io.papermc.paperweight.core.util
2424

2525
import io.papermc.paperweight.PaperweightException
26+
import io.papermc.paperweight.core.extension.SpigotExtension
2627
import io.papermc.paperweight.tasks.*
2728
import io.papermc.paperweight.util.*
2829
import io.papermc.paperweight.util.constants.*
@@ -35,13 +36,15 @@ import org.gradle.api.tasks.bundling.AbstractArchiveTask
3536
import org.gradle.kotlin.dsl.*
3637

3738
fun Project.createBuildTasks(
38-
craftBukkitPackageVersion: Provider<String>,
39+
spigot: SpigotExtension,
3940
packagesToFix: Provider<List<String>?>,
4041
relocatedReobfMappings: Provider<RegularFile>
41-
): ServerBuildTasks {
42+
): ServerArtifacts {
43+
val jar = tasks.named("jar", AbstractArchiveTask::class).flatMap { it.archiveFile }
44+
4245
val fixJarForReobf by tasks.registering<FixJarForReobf> {
4346
group = "build"
44-
inputJar.set(tasks.named("jar", AbstractArchiveTask::class).flatMap { it.archiveFile })
47+
inputJar.set(jar)
4548
packagesToProcess.set(packagesToFix)
4649
}
4750

@@ -59,7 +62,7 @@ fun Project.createBuildTasks(
5962
}
6063
afterEvaluate {
6164
relocateConstants {
62-
relocate("org.bukkit.craftbukkit", "org.bukkit.craftbukkit.${craftBukkitPackageVersion.get()}") {
65+
relocate("org.bukkit.craftbukkit", "org.bukkit.craftbukkit.${spigot.packageVersion.get()}") {
6366
// This is not actually needed as there are no string constant references to Main
6467
// exclude("org.bukkit.craftbukkit.Main*")
6568
}
@@ -85,7 +88,16 @@ fun Project.createBuildTasks(
8588
outputJar.set(layout.buildDirectory.map { it.dir("libs").file("${project.name}-${project.version}-reobf.jar") })
8689
}
8790

88-
return ServerBuildTasks(includeMappings, reobfJar)
91+
return ServerArtifacts(
92+
spigot.enabled.flatMap {
93+
if (it) {
94+
includeMappings.flatMap { it.outputJar }
95+
} else {
96+
jar
97+
}
98+
},
99+
reobfJar.flatMap { it.outputJar }
100+
)
89101
}
90102

91103
fun Task.reobfRequiresDebug() {
@@ -100,7 +112,7 @@ fun Task.reobfRequiresDebug() {
100112
}
101113
}
102114

103-
data class ServerBuildTasks(
104-
val includeMappings: TaskProvider<IncludeMappings>,
105-
val reobfJar: TaskProvider<RemapJar>,
115+
data class ServerArtifacts(
116+
val mappedJar: Provider<RegularFile>,
117+
val reobfJar: Provider<RegularFile>,
106118
)

leavesweight-userdev/src/main/kotlin/io/papermc/paperweight/userdev/PaperweightUser.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,17 @@ abstract class PaperweightUser : Plugin<Project> {
131131
group = GENERAL_TASK_GROUP
132132
description = "Remap the compiled plugin jar to Spigot's obfuscated runtime names."
133133

134-
mappingsFile.set(setupTask.flatMap { it.reobfMappings })
134+
mappingsFile.set(
135+
setupTask.flatMap { task ->
136+
task.reobfMappings.map { mappings ->
137+
if (mappings.asFile.exists()) {
138+
mappings
139+
} else {
140+
throw PaperweightException("The current dev bundle does not provide reobf mappings.")
141+
}
142+
}
143+
}
144+
)
135145
remapClasspath.from(setupTask.flatMap { it.mappedServerJar })
136146
toNamespace.set(SPIGOT_NAMESPACE)
137147
remapper.from(project.configurations.named(PLUGIN_REMAPPER_CONFIG))

leavesweight-userdev/src/main/kotlin/io/papermc/paperweight/userdev/internal/setup/DevBundles.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ private val supported = mapOf(
3535
3 to DevBundleV5.Config::class, // up to 1.20.4
3636
4 to DevBundleV5.Config::class, // 1.20.5, early 1.20.6
3737
5 to DevBundleV5.Config::class, // 1.20.6+ (nullable mojangApiCoordinates)
38-
6 to GenerateDevBundle.DevBundleConfig::class // Post-repo-restructure 1.21.4+
38+
6 to GenerateDevBundle.DevBundleConfig::class, // Post-repo-restructure 1.21.4+
39+
7 to GenerateDevBundle.DevBundleConfig::class, // TODO: Add version (nullable reobfMappingsFile)
3940
)
4041

4142
fun readBundleInfo(bundleZip: Path): BundleInfo<Any> {

leavesweight-userdev/src/main/kotlin/io/papermc/paperweight/userdev/internal/setup/SetupHandlerImpl.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,10 @@ class SetupHandlerImpl(
188188
}
189189

190190
override fun extractReobfMappings(output: Path) {
191-
bundle.zip.openZipSafe().use { fs ->
192-
fs.getPath(bundle.config.reobfMappingsFile).copyTo(output, true)
191+
bundle.config.reobfMappingsFile?.let { location ->
192+
bundle.zip.openZipSafe().use { fs ->
193+
fs.getPath(location).copyTo(output, true)
194+
}
193195
}
194196
}
195197

leavesweight-userdev/src/main/kotlin/io/papermc/paperweight/userdev/internal/setup/UserdevSetupTask.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ abstract class UserdevSetupTask : JavaLauncherTask() {
125125
val copiedTime = measureNanoTime {
126126
result.mainOutput.copyTo(mappedServerJar.path.createParentDirectories(), overwrite = true)
127127
result.legacyOutput?.copyTo(legacyPaperclipResult.path.createParentDirectories(), overwrite = true)
128+
reobfMappings.path.createParentDirectories().deleteForcefully()
128129
setupService.get().extractReobfMappings(reobfMappings.path.createParentDirectories())
129130
}
130131
logger.lifecycle("Copied artifacts to project cache in ${formatNs(copiedTime)}")

0 commit comments

Comments
 (0)