diff --git a/build.gradle.kts b/build.gradle.kts index 5e8e22ec2..5b3a6b33e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,13 @@ plugins { `java-library` + `maven-publish` toothpick } toothpick { forkName = "Purpur" groupId = "net.pl3x.purpur" + forkUrl = "https://github.com/pl3xgaming/Purpur" val versionTag = System.getenv("BUILD_NUMBER") ?: "\"${gitCmd("rev-parse", "--short", "HEAD").output}\"" forkVersion = "git-$forkName-$versionTag" @@ -15,6 +17,8 @@ toothpick { nmsRevision = "R0.1-SNAPSHOT" upstream = "Paper" + upstreamBranch = "origin/master" + server { project = project(":$forkNameLowercase-server") patchesDir = rootProject.projectDir.resolve("patches/server") @@ -39,4 +43,9 @@ subprojects { targetCompatibility = JavaVersion.VERSION_1_8 withSourcesJar() } + + publishing.repositories.maven { + url = uri("https://repo.pl3x.net/snapshots") + credentials(PasswordCredentials::class) + } } diff --git a/buildSrc/src/main/kotlin/ConfigureSubprojects.kt b/buildSrc/src/main/kotlin/ConfigureSubprojects.kt index a2e1259bc..5a8b1930b 100644 --- a/buildSrc/src/main/kotlin/ConfigureSubprojects.kt +++ b/buildSrc/src/main/kotlin/ConfigureSubprojects.kt @@ -18,6 +18,8 @@ import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.getValue import org.gradle.kotlin.dsl.getting +import java.text.SimpleDateFormat +import java.util.Date internal fun Project.configureSubprojects() { subprojects { @@ -33,7 +35,7 @@ internal fun Project.configureSubprojects() { from(components["java"]) pom { name.set(project.name) - url.set("https://github.com/pl3xgaming/Purpur") + url.set(toothpick.forkUrl) } } } @@ -67,8 +69,7 @@ private fun Project.configureServerProject() { "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", "Implementation-Version" to toothpick.forkVersion, - "Implementation-Vendor" to java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") - .format(java.util.Date()), + "Implementation-Vendor" to SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(Date()), "Specification-Title" to "Bukkit", "Specification-Version" to "${project.version}", "Specification-Vendor" to "Bukkit Team" diff --git a/buildSrc/src/main/kotlin/DependencyLoading.kt b/buildSrc/src/main/kotlin/DependencyLoading.kt index 8e7626b37..8492c331b 100644 --- a/buildSrc/src/main/kotlin/DependencyLoading.kt +++ b/buildSrc/src/main/kotlin/DependencyLoading.kt @@ -32,10 +32,8 @@ fun DependencyHandlerScope.loadDependencies(project: Project) { val groupId = dependencyElem.search("groupId").first().textContent val artifactId = dependencyElem.search("artifactId").first().textContent val version = dependencyElem.search("version").first().textContent.applyReplacements( - mapOf( - "project.version" to "${project.toothpick.minecraftVersion}-${project.toothpick.nmsRevision}", - "minecraft.version" to project.toothpick.minecraftVersion - ) + "project.version" to project.version.toString(), + "minecraft.version" to project.toothpick.minecraftVersion ) val scope = dependencyElem.search("scope").firstOrNull()?.textContent val classifier = dependencyElem.search("classifier").firstOrNull()?.textContent diff --git a/buildSrc/src/main/kotlin/ToothpickExtension.kt b/buildSrc/src/main/kotlin/ToothpickExtension.kt index 966c33b4e..cd620bab6 100644 --- a/buildSrc/src/main/kotlin/ToothpickExtension.kt +++ b/buildSrc/src/main/kotlin/ToothpickExtension.kt @@ -9,6 +9,7 @@ open class ToothpickExtension(objects: ObjectFactory) { lateinit var forkName: String val forkNameLowercase get() = forkName.toLowerCase(Locale.ENGLISH) + lateinit var forkUrl: String lateinit var forkVersion: String lateinit var groupId: String lateinit var minecraftVersion: String @@ -18,6 +19,12 @@ open class ToothpickExtension(objects: ObjectFactory) { lateinit var upstream: String val upstreamLowercase get() = upstream.toLowerCase(Locale.ENGLISH) + lateinit var upstreamBranch: String + + var paperclipName: String = "" + get(): String = if (field.isEmpty()) { + "$forkNameLowercase-paperclip.jar" + } else "$field.jar" lateinit var serverProject: ToothpickSubproject fun server(receiver: ToothpickSubproject.() -> Unit) { diff --git a/buildSrc/src/main/kotlin/Util.kt b/buildSrc/src/main/kotlin/Util.kt index c0942a97a..94ae9ab50 100644 --- a/buildSrc/src/main/kotlin/Util.kt +++ b/buildSrc/src/main/kotlin/Util.kt @@ -57,7 +57,9 @@ fun Project.bashCmd( ): CmdResult = cmd("bash", "-c", *args, dir = dir, printOut = printOut) -internal fun String.applyReplacements(replacements: Map): String { +internal fun String.applyReplacements( + vararg replacements: Pair +): String { var result = this for ((key, value) in replacements) { result = result.replace("\${$key}", value) diff --git a/buildSrc/src/main/kotlin/task/Paperclip.kt b/buildSrc/src/main/kotlin/task/Paperclip.kt index 666473cf9..bb7da0e4b 100644 --- a/buildSrc/src/main/kotlin/task/Paperclip.kt +++ b/buildSrc/src/main/kotlin/task/Paperclip.kt @@ -32,8 +32,8 @@ internal fun Project.createPaperclipTask( if (jenkins) paperclipCmd.add("-Dstyle.color=never") ensureSuccess(cmd(*paperclipCmd.toTypedArray(), dir = paperclipDir, printOut = true)) val paperClip = paperclipDir.resolve("assembly/target/paperclip-${toothpick.minecraftVersion}.jar") - val destination = rootProjectDir.resolve("${toothpick.forkNameLowercase}-paperclip.jar") + val destination = rootProjectDir.resolve(toothpick.paperclipName) paperClip.copyTo(destination, overwrite = true) - logger.lifecycle(">>> ${toothpick.forkNameLowercase}-paperclip.jar saved to root project directory") + logger.lifecycle(">>> ${toothpick.paperclipName} saved to root project directory") } } diff --git a/buildSrc/src/main/kotlin/task/UpdateUpstream.kt b/buildSrc/src/main/kotlin/task/UpdateUpstream.kt index a0860998d..687b41447 100644 --- a/buildSrc/src/main/kotlin/task/UpdateUpstream.kt +++ b/buildSrc/src/main/kotlin/task/UpdateUpstream.kt @@ -16,7 +16,7 @@ internal fun Project.createUpdateUpstreamTask( group = taskGroup doLast { ensureSuccess(gitCmd("fetch", dir = upstreamDir, printOut = true)) - ensureSuccess(gitCmd("reset", "--hard", "origin/master", dir = upstreamDir, printOut = true)) + ensureSuccess(gitCmd("reset", "--hard", toothpick.upstreamBranch, dir = upstreamDir, printOut = true)) ensureSuccess(gitCmd("add", toothpick.upstream, dir = rootProjectDir, printOut = true)) ensureSuccess(gitCmd("submodule", "update", "--init", "--recursive", dir = upstreamDir, printOut = true)) }