aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRiley Park <[email protected]>2024-05-13 18:41:52 -0700
committerRiley Park <[email protected]>2024-05-13 18:45:00 -0700
commit4bf82f5437441c21ad09cf33c81c01d89e36f239 (patch)
treedb22b373073bbf2c315899a6acf5c1c31de365a2
parent2faa3b2f44c962ce7413e8e3d71e32786851d556 (diff)
downloadPaper-feature/bibliothek.tar.gz
Paper-feature/bibliothek.zip
feat: use bibliothek-gradle pluginfeature/bibliothek
-rw-r--r--build.gradle.kts41
-rw-r--r--settings.gradle.kts1
2 files changed, 42 insertions, 0 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index d57853bb3c..9091648778 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,10 +1,13 @@
+import io.papermc.bibliothek.api.v2.model.Build
import io.papermc.paperweight.PaperweightException
import io.papermc.paperweight.tasks.BaseTask
import io.papermc.paperweight.util.*
+import io.papermc.paperweight.util.data.MinecraftManifest
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent
import java.io.ByteArrayOutputStream
import java.nio.file.Path
+import java.time.Instant
import java.util.regex.Pattern
import kotlin.io.path.*
@@ -12,6 +15,7 @@ plugins {
java
`maven-publish`
id("io.papermc.paperweight.core") version "1.7.1"
+ id("io.papermc.bibliothek-gradle") version "1.0.0-SNAPSHOT" // TODO: change once bibliothek-gradle is published
}
allprojects {
@@ -107,6 +111,43 @@ paperweight {
}
}
+bibliothek {
+ val familyProvider = paperweight.minecraftVersion
+ .map { it.split(".", "-") }
+ .map { it -> it.takeWhile { it.toIntOrNull() != null } }
+ .map { it.take(2) }
+ .map { it.joinToString(".") }
+ val manifest = tasks.downloadMcManifest
+ .flatMap { it.outputFile }
+ .map { gson.fromJson<MinecraftManifest>(it) }
+ val familyTimeProvider = manifest
+ .map { it.versions.firstOrNull { v -> v.id == familyProvider.get() } ?: error("Couldn't find family version") }
+ .map { it.releaseTime }
+ .map { Instant.parse(it) }
+ val versionProvider = paperweight.minecraftVersion
+ val versionTimeProvider = manifest
+ .map { it.versions.firstOrNull { v -> v.id == versionProvider.get() } ?: error("Couldn't find version") }
+ .map { it.releaseTime }
+ .map { Instant.parse(it) }
+
+ apiUrl.set(providers.environmentVariable("BIBLIOTHEK_API_URL"))
+ apiToken.set(providers.environmentVariable("BIBLIOTHEK_API_TOKEN"))
+ project.set("paper")
+ family.set(familyProvider)
+ familyTime.set(familyTimeProvider)
+ version.set(versionProvider)
+ versionTime.set(versionTimeProvider)
+ build.set(providers.environmentVariable("BUILD_NUMBER"))
+ channel.set(Build.Channel.EXPERIMENTAL)
+
+ downloads {
+ register("application") {
+ file.set(tasks.createMojmapPaperclipJar.flatMap { it.outputZip })
+ nameResolver.set { project, _, version, build -> "$project-$version-$build.jar" }
+ }
+ }
+}
+
tasks.generateDevelopmentBundle {
apiCoordinates = "io.papermc.paper:paper-api"
libraryRepositories.addAll(
diff --git a/settings.gradle.kts b/settings.gradle.kts
index eb689c22d8..952a117356 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -4,6 +4,7 @@ pluginManagement {
repositories {
gradlePluginPortal()
maven("https://repo.papermc.io/repository/maven-public/")
+ mavenLocal() // TODO: remove once bibliothek-gradle is published
}
}