From aab0df7aff0c2e373ad8040b59223f420da4661d Mon Sep 17 00:00:00 2001 From: Antti Date: Tue, 23 May 2023 18:06:21 +0300 Subject: [PATCH] chore: publish tasks --- build.gradle | 69 ------------- build.gradle.kts | 125 +++++++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 126 insertions(+), 70 deletions(-) delete mode 100644 build.gradle create mode 100644 build.gradle.kts diff --git a/build.gradle b/build.gradle deleted file mode 100644 index a94df0e..0000000 --- a/build.gradle +++ /dev/null @@ -1,69 +0,0 @@ -plugins { - id 'java' - id 'com.github.johnrengelman.shadow' version '7.1.2' -} - -group = 'codes.antti' -version = '2.0.0' - -repositories { - mavenCentral() - maven { - name = 'papermc' - url = 'https://repo.papermc.io/repository/maven-public/' - } - maven { - name = 'sonatype' - url = 'https://oss.sonatype.org/content/groups/public/' - } - maven { - name = 'glaremasters' - url = 'https://repo.glaremasters.me/repository/towny/' - } - maven { - name = 'jitpack' - url = 'https://jitpack.io/' - } - maven { - name = 'dynmap' - url = 'https://repo.mikeprimm.com/' - } -} - -dependencies { - compileOnly 'dev.folia:folia-api:1.19.4-R0.1-SNAPSHOT' - compileOnly 'com.palmergames.bukkit.towny:towny:0.98.3.0' - compileOnly 'com.github.BlueMap-Minecraft:BlueMapAPI:v2.4.0' - compileOnly 'com.github.TownyAdvanced:SiegeWar:2.4.0' - compileOnly 'us.dynmap:DynmapCoreAPI:3.4' - implementation 'com.github.TechnicJelle:UpdateCheckerJava:v2.1' -} - -def targetJavaVersion = 17 -java { - def javaVersion = JavaVersion.toVersion(targetJavaVersion) - sourceCompatibility = javaVersion - targetCompatibility = javaVersion - if (JavaVersion.current() < javaVersion) { - toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) - } -} - -tasks.withType(JavaCompile).configureEach { - if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { - options.release = targetJavaVersion - } -} - -processResources { - def props = [version: version] - inputs.properties props - filteringCharset 'UTF-8' - filesMatching('plugin.yml') { - expand props - } -} - -tasks.build { - dependsOn(tasks.shadowJar) -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..b8c282d --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,125 @@ +plugins { + java + id ("com.github.johnrengelman.shadow") version "8.1.1" + id ("com.modrinth.minotaur") version "2.+" + id ("io.papermc.hangar-publish-plugin") version "0.0.5" +} + +group = "codes.antti" +version = "2.0.0" + +repositories { + mavenCentral() + maven { + setUrl ("https://repo.papermc.io/repository/maven-public/") + } + maven { + setUrl ("https://oss.sonatype.org/content/groups/public/") + } + maven { + setUrl ("https://repo.glaremasters.me/repository/towny/") + } + maven { + setUrl ("https://jitpack.io/") + } + maven { + setUrl ("https://repo.mikeprimm.com/") + } +} + +dependencies { + compileOnly ("dev.folia:folia-api:1.19.4-R0.1-SNAPSHOT") + compileOnly ("com.palmergames.bukkit.towny:towny:0.98.3.0") + compileOnly ("com.github.BlueMap-Minecraft:BlueMapAPI:v2.4.0") + compileOnly ("com.github.TownyAdvanced:SiegeWar:2.4.0") + compileOnly ("us.dynmap:DynmapCoreAPI:3.4") + implementation ("com.github.TechnicJelle:UpdateCheckerJava:v2.1") { + exclude ( group = "org.jetbrains", module = "annotations" ) + exclude ( group = "org.intellij.lang", module = "annotations" ) + } +} + +val javaTarget = 17 +java { + sourceCompatibility = JavaVersion.toVersion(javaTarget) + targetCompatibility = JavaVersion.toVersion(javaTarget) +} + +tasks.processResources { + from("src/main/resources") { + include("plugin.yml") + duplicatesStrategy = DuplicatesStrategy.INCLUDE + + expand ( + "version" to project.version + ) + } +} + +tasks.withType(JavaCompile::class).configureEach { + options.apply { + encoding = "utf-8" + } +} + +tasks.withType(AbstractArchiveTask::class).configureEach { + isReproducibleFileOrder = true + isPreserveFileTimestamps = false +} + +tasks.build { + dependsOn(tasks.shadowJar) +} + +tasks.jar { + archiveClassifier.set("nonshadow") +} + +tasks.shadowJar { + archiveClassifier.set("") + + relocate ("com.technicjelle", "codes.antti.bluemaptowny.shadow.jelle") +} + +modrinth { + token.set(System.getenv("MODRINTH_TOKEN")) + projectId.set("Y6O9cRjl") + versionNumber.set(project.version as String) + changelog.set("View the changelog at [GitHub releases](https://github.com/Chicken/BlueMap-Towny/releases/tag/${project.version})") + uploadFile.set(tasks.findByName("shadowJar")) + loaders.addAll("spigot", "paper", "folia") + gameVersions.addAll( + "1.16.5", + "1.17", "1.17.1", + "1.18", "1.18.1", "1.18.2", + "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4" + ) +} + +hangarPublish { + publications.register("plugin") { + version.set(project.version as String) + namespace("Chicken", "BlueMap-Towny") + channel.set("Release") + changelog.set("View the changelog at [GitHub releases](https://github.com/Chicken/BlueMap-Towny/releases/tag/${project.version})") + apiKey.set(System.getenv("HANGAR_TOKEN")) + platforms { + register(io.papermc.hangarpublishplugin.model.Platforms.PAPER) { + url.set("https://github.com/Chicken/BlueMap-Towny/releases/download/${project.version}/BlueMap-Towny-${project.version}.jar") + dependencies.hangar("Blue", "BlueMap") + dependencies.hangar("TownyAdvanced", "Towny") + platformVersions.set(listOf( + "1.16.5", + "1.17", "1.17.1", + "1.18", "1.18.1", "1.18.2", + "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4" + )) + } + } + } +} + +tasks.register("publish") { + dependsOn("modrinth") + dependsOn("publishPluginPublicationToHangar") +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e6e589..fae0804 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists