From 75c2fda74985ab971cba1ddffbd50e8541f653a9 Mon Sep 17 00:00:00 2001 From: Frank van der Heijden Date: Tue, 5 Oct 2021 16:44:22 +0200 Subject: [PATCH] Kotlinify + publish to repo.fvdh.dev --- .github/workflows/gradle.yml | 27 +-- Bukkit/build.gradle | 28 --- Bukkit/build.gradle.kts | 38 ++++ Bukkit/src/main/resources/plugin.yml | 6 - Bungee/build.gradle | 32 --- Bungee/build.gradle.kts | 40 ++++ Bungee/src/main/resources/bungee.yml | 4 - Common/build.gradle | 29 --- Common/build.gradle.kts | 34 +++ Velocity/build.gradle | 35 ---- Velocity/build.gradle.kts | 40 ++++ .../serverutils/velocity/ServerUtils.java | 2 +- build.gradle | 129 ------------ build.gradle.kts | 198 ++++++++++++++++++ buildSrc/build.gradle.kts | 7 + buildSrc/src/main/kotlin/VersionConstants.kt | 7 + gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 5 - settings.gradle.kts | 5 + 19 files changed, 386 insertions(+), 282 deletions(-) delete mode 100644 Bukkit/build.gradle create mode 100644 Bukkit/build.gradle.kts delete mode 100644 Bukkit/src/main/resources/plugin.yml delete mode 100644 Bungee/build.gradle create mode 100644 Bungee/build.gradle.kts delete mode 100644 Bungee/src/main/resources/bungee.yml delete mode 100644 Common/build.gradle create mode 100644 Common/build.gradle.kts delete mode 100644 Velocity/build.gradle create mode 100644 Velocity/build.gradle.kts delete mode 100644 build.gradle create mode 100644 build.gradle.kts create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/VersionConstants.kt delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 19c9192..72623da 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,31 +1,34 @@ -# This workflow will build a Java project with Gradle -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle - name: Java CI with Gradle - on: push: branches: [ master ] pull_request: branches: [ master ] - jobs: build: - runs-on: ubuntu-latest - + strategy: + matrix: + java-version: [ 1.8 ] + fail-fast: true steps: - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Setup JDK ${{ matrix.java-version }} + uses: actions/setup-java@v2 with: - java-version: 1.8 + java-version: ${{ matrix.java-version }} - name: Grant execute permission for gradlew run: chmod +x gradlew - - name: Build with Gradle - run: ./gradlew build + - name: Build + run: ./gradlew clean build --stacktrace - name: Upload artififacts uses: actions/upload-artifact@v2.2.1 with: name: ServerUtils path: jars/*.jar + - name: Publish + if: ${{ github.event_name == 'push' }} + env: + FVDH_USERNAME: ${{ secrets.FVDH_USERNAME }} + FVDH_TOKEN: ${{ secrets.FVDH_TOKEN }} + run: ./gradlew publish --stacktrace diff --git a/Bukkit/build.gradle b/Bukkit/build.gradle deleted file mode 100644 index 9af4031..0000000 --- a/Bukkit/build.gradle +++ /dev/null @@ -1,28 +0,0 @@ -group = rootProject.group + '.bukkit' -String rootDependencyDir = rootProject.group + '.dependencies' -String dependencyDir = group + '.dependencies' -version = rootProject.version -archivesBaseName = rootProject.name + '-Bukkit' - -dependencies { - implementation "cloud.commandframework:cloud-paper:${rootProject.cloudVersion}" - implementation "net.kyori:adventure-api:${rootProject.adventureVersion}" - implementation "net.kyori:adventure-platform-bukkit:${rootProject.adventurePlatformVersion}" - implementation ("net.kyori:adventure-text-minimessage:${rootProject.adventureMinimessageVersion}") { - exclude group: 'net.kyori', module: 'adventure-api' - } - implementation "org.bstats:bstats-bukkit:${rootProject.bstatsVersion}" - implementation project(":Common") - compileOnly 'com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT' -} - -processResources { - from('src/main/resources') { - include 'plugin.yml' - expand(version: project.version) - } -} - -shadowJar { - relocate 'org.bstats', dependencyDir + '.bstats' -} diff --git a/Bukkit/build.gradle.kts b/Bukkit/build.gradle.kts new file mode 100644 index 0000000..16b970d --- /dev/null +++ b/Bukkit/build.gradle.kts @@ -0,0 +1,38 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + +plugins { + id("net.minecrell.plugin-yml.bukkit") version "0.5.0" +} + +group = rootProject.group +val rootDependencyDir = "${rootProject.group}.dependencies" +val dependencyDir = "${group}.bukkit.dependencies" +version = rootProject.version +base { + archivesName.set("${rootProject.name}-Bukkit") +} + +dependencies { + implementation("cloud.commandframework:cloud-paper:${VersionConstants.cloudVersion}") + implementation("net.kyori:adventure-api:${VersionConstants.adventureVersion}") + implementation("net.kyori:adventure-platform-bukkit:${VersionConstants.adventurePlatformVersion}") + implementation("net.kyori:adventure-text-minimessage:${VersionConstants.adventureMinimessageVersion}") { + exclude("net.kyori", "adventure-api") + } + implementation("org.bstats:bstats-bukkit:${VersionConstants.bstatsVersion}") + implementation(project(":Common")) + compileOnly("com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT") +} + +tasks.withType { + relocate("org.bstats", "${dependencyDir}.bstats") +} + +bukkit { + main = "net.frankheijden.serverutils.bukkit.ServerUtils" + description = "A server utility" + apiVersion = "1.13" + website = "https://github.com/FrankHeijden/ServerUtils" + softDepend = listOf("ServerUtilsUpdater") + authors = listOf("FrankHeijden") +} diff --git a/Bukkit/src/main/resources/plugin.yml b/Bukkit/src/main/resources/plugin.yml deleted file mode 100644 index 5bc7049..0000000 --- a/Bukkit/src/main/resources/plugin.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: ServerUtils -main: net.frankheijden.serverutils.bukkit.ServerUtils -version: ${version} -author: FrankHeijden -api-version: '1.13' -softdepend: [ServerUtilsUpdater] diff --git a/Bungee/build.gradle b/Bungee/build.gradle deleted file mode 100644 index d39ff8b..0000000 --- a/Bungee/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -group = rootProject.group + '.bungee' -String rootDependencyDir = rootProject.group + '.dependencies' -String dependencyDir = group + '.dependencies' -version = rootProject.version -archivesBaseName = rootProject.name + '-Bungee' - -repositories { - maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } -} - -dependencies { - implementation "cloud.commandframework:cloud-bungee:${rootProject.cloudVersion}" - implementation "net.kyori:adventure-api:${rootProject.adventureVersion}" - implementation "net.kyori:adventure-platform-bungeecord:${rootProject.adventurePlatformVersion}" - implementation ("net.kyori:adventure-text-minimessage:${rootProject.adventureMinimessageVersion}") { - exclude group: 'net.kyori', module: 'adventure-api' - } - implementation "org.bstats:bstats-bungeecord:${rootProject.bstatsVersion}" - implementation project(":Common") - compileOnly 'net.md-5:bungeecord-api:1.17-R0.1-SNAPSHOT' -} - -processResources { - from('src/main/resources') { - include 'bungee.yml' - expand(version: project.version) - } -} - -shadowJar { - relocate 'org.bstats', dependencyDir + '.bstats' -} diff --git a/Bungee/build.gradle.kts b/Bungee/build.gradle.kts new file mode 100644 index 0000000..f97a9c1 --- /dev/null +++ b/Bungee/build.gradle.kts @@ -0,0 +1,40 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + +plugins { + id("net.minecrell.plugin-yml.bungee") version "0.5.0" +} + +group = rootProject.group +val rootDependencyDir = "${group}.dependencies" +val dependencyDir = "${group}.bungee.dependencies" +version = rootProject.version +base { + archivesName.set("${rootProject.name}-Bungee") +} + +repositories { + maven("https://oss.sonatype.org/content/repositories/snapshots") +} + +dependencies { + implementation("cloud.commandframework:cloud-bungee:${VersionConstants.cloudVersion}") + implementation("net.kyori:adventure-api:${VersionConstants.adventureVersion}") + implementation("net.kyori:adventure-platform-bungeecord:${VersionConstants.adventurePlatformVersion}") + implementation("net.kyori:adventure-text-minimessage:${VersionConstants.adventureMinimessageVersion}") { + exclude("net.kyori", "adventure-api") + } + implementation("org.bstats:bstats-bungeecord:${VersionConstants.bstatsVersion}") + implementation(project(":Common")) + compileOnly("net.md-5:bungeecord-api:1.17-R0.1-SNAPSHOT") +} + +tasks.withType { + relocate("org.bstats", "${dependencyDir}.bstats") +} + +bungee { + main = "net.frankheijden.serverutils.bungee.ServerUtils" + description = "A server utility" + softDepends = setOf("ServerUtilsUpdater") + author = "FrankHeijden" +} diff --git a/Bungee/src/main/resources/bungee.yml b/Bungee/src/main/resources/bungee.yml deleted file mode 100644 index 6344306..0000000 --- a/Bungee/src/main/resources/bungee.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: ServerUtils -main: net.frankheijden.serverutils.bungee.ServerUtils -version: ${version} -author: FrankHeijden diff --git a/Common/build.gradle b/Common/build.gradle deleted file mode 100644 index 7851353..0000000 --- a/Common/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -plugins { - id 'net.kyori.blossom' version '1.1.0' -} - -group = rootProject.group + '.common' -version = rootProject.version -archivesBaseName = rootProject.name + '-Common' - -repositories { - maven { url 'https://jitpack.io' } -} - -dependencies { - compileOnly "net.kyori:adventure-platform-api:${rootProject.adventurePlatformVersion}" - compileOnly "net.kyori:adventure-text-minimessage:${rootProject.adventureMinimessageVersion}" - compileOnly 'com.github.FrankHeijden:ServerUtilsUpdater:v1.0.0' - - testImplementation "net.kyori:adventure-text-serializer-plain:${rootProject.adventureVersion}" -} - -blossom { - replaceTokenIn('src/main/java/net/frankheijden/serverutils/common/ServerUtilsApp.java') - replaceToken '{version}', version -} - -shadowJar { - exclude 'plugin.yml' - exclude 'bungee.yml' -} \ No newline at end of file diff --git a/Common/build.gradle.kts b/Common/build.gradle.kts new file mode 100644 index 0000000..a7d494d --- /dev/null +++ b/Common/build.gradle.kts @@ -0,0 +1,34 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + +plugins { + id("net.kyori.blossom") version "1.3.0" +} + +group = rootProject.group +version = "${rootProject.version}" +base { + archivesName.set("${rootProject.name}-Common") +} + +repositories { + maven("https://jitpack.io") +} + +dependencies { + compileOnly("net.kyori:adventure-platform-api:${VersionConstants.adventurePlatformVersion}") + compileOnly("net.kyori:adventure-text-minimessage:${VersionConstants.adventureMinimessageVersion}") + compileOnly("com.github.FrankHeijden:ServerUtilsUpdater:v1.0.0") + + testImplementation("net.kyori:adventure-text-serializer-plain:${VersionConstants.adventureVersion}") +} + +tasks { + blossom { + replaceToken("{version}", version, "src/main/java/net/frankheijden/serverutils/common/ServerUtilsApp.java") + } +} + +tasks.withType { + exclude("plugin.yml") + exclude("bungee.yml") +} diff --git a/Velocity/build.gradle b/Velocity/build.gradle deleted file mode 100644 index e270bbe..0000000 --- a/Velocity/build.gradle +++ /dev/null @@ -1,35 +0,0 @@ -plugins { - id 'net.kyori.blossom' version '1.3.0' -} - -group = rootProject.group + '.velocity' -String dependencyDir = group + '.dependencies' -version = rootProject.version -archivesBaseName = rootProject.name + '-Velocity' - -repositories { - maven { url 'https://nexus.velocitypowered.com/repository/maven-public/' } - maven { url 'https://libraries.minecraft.net' } -} - -dependencies { - implementation "cloud.commandframework:cloud-velocity:${rootProject.cloudVersion}" - implementation "org.bstats:bstats-velocity:${rootProject.bstatsVersion}" - implementation project(":Common") - implementation ("net.kyori:adventure-text-minimessage:${rootProject.adventureMinimessageVersion}") { - exclude group: 'net.kyori', module: 'adventure-api' - } - compileOnly 'com.velocitypowered:velocity-api:3.0.0' - compileOnly 'com.velocitypowered:velocity-brigadier:1.0.0-SNAPSHOT' - compileOnly 'com.electronwill.night-config:toml:3.6.3' - annotationProcessor 'com.velocitypowered:velocity-api:3.0.0' -} - -shadowJar { - relocate 'org.bstats', dependencyDir + '.bstats' -} - -blossom { - replaceTokenIn('src/main/java/net/frankheijden/serverutils/velocity/ServerUtils.java') - replaceToken '${version}', version -} diff --git a/Velocity/build.gradle.kts b/Velocity/build.gradle.kts new file mode 100644 index 0000000..b9a62d0 --- /dev/null +++ b/Velocity/build.gradle.kts @@ -0,0 +1,40 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + +plugins { + id("net.kyori.blossom") version "1.3.0" +} + +group = "${rootProject.group}" +val dependencyDir = "${group}.velocity.dependencies" +version = rootProject.version +base { + archivesName.set("${rootProject.name}-Velocity") +} + +repositories { + maven("https://nexus.velocitypowered.com/repository/maven-public/") + maven("https://libraries.minecraft.net") +} + +dependencies { + implementation("cloud.commandframework:cloud-velocity:${VersionConstants.cloudVersion}") + implementation("org.bstats:bstats-velocity:${VersionConstants.bstatsVersion}") + implementation(project(":Common")) + implementation("net.kyori:adventure-text-minimessage:${VersionConstants.adventureMinimessageVersion}") { + exclude("net.kyori", "adventure-api") + } + compileOnly("com.velocitypowered:velocity-api:3.0.0") + compileOnly("com.velocitypowered:velocity-brigadier:1.0.0-SNAPSHOT") + compileOnly("com.electronwill.night-config:toml:3.6.3") + annotationProcessor("com.velocitypowered:velocity-api:3.0.0") +} + +tasks { + blossom { + replaceToken("{version}", version, "src/main/java/net/frankheijden/serverutils/velocity/ServerUtils.java") + } +} + +tasks.withType { + relocate("org.bstats", "${dependencyDir}.bstats") +} diff --git a/Velocity/src/main/java/net/frankheijden/serverutils/velocity/ServerUtils.java b/Velocity/src/main/java/net/frankheijden/serverutils/velocity/ServerUtils.java index 50ab03a..532cdcb 100644 --- a/Velocity/src/main/java/net/frankheijden/serverutils/velocity/ServerUtils.java +++ b/Velocity/src/main/java/net/frankheijden/serverutils/velocity/ServerUtils.java @@ -21,7 +21,7 @@ import org.slf4j.Logger; @Plugin( id = "serverutils", name = "ServerUtils", - version = "${version}", + version = "{version}", description = "A server utility", url = "https://github.com/FrankHeijden/ServerUtils", authors = "FrankHeijden" diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 8768a33..0000000 --- a/build.gradle +++ /dev/null @@ -1,129 +0,0 @@ -plugins { - id 'java' - id 'com.github.johnrengelman.shadow' version '6.1.0' -} - -group = 'net.frankheijden.serverutils' -String dependencyDir = group + '.dependencies' -version = '3.0.0' - -allprojects { - ext { - cloudVersion = '1.6.0-SNAPSHOT' - adventureVersion = '4.8.1' - adventurePlatformVersion = '4.0.0-SNAPSHOT' - adventureMinimessageVersion = '4.1.0-SNAPSHOT' - bstatsVersion = '2.2.1' - } -} - -sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 - -subprojects { - apply plugin: 'java' - apply plugin: 'checkstyle' - apply plugin: 'com.github.johnrengelman.shadow' - - sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 - - repositories { - mavenCentral() - maven { url 'https://jitpack.io' } - maven { url 'https://repo.incendo.org/content/repositories/snapshots' } - maven { url 'https://papermc.io/repo/repository/maven-public/' } - maven { url 'https://libraries.minecraft.net' } - } - - dependencies { - implementation "cloud.commandframework:cloud-core:${rootProject.cloudVersion}" - implementation "cloud.commandframework:cloud-brigadier:${rootProject.cloudVersion}" - implementation 'com.github.FrankHeijden:MinecraftReflection:1.0.0' - implementation 'com.google.code.gson:gson:2.8.6' - implementation 'me.lucko:commodore:1.10' - compileOnly 'com.mojang:brigadier:1.0.17' - - testCompile 'org.assertj:assertj-core:3.18.1' - testCompile 'org.junit.jupiter:junit-jupiter-api:5.7.0' - testCompile 'org.junit.jupiter:junit-jupiter-params:5.7.0' - testCompile 'org.junit.jupiter:junit-jupiter-engine:5.7.0' - } - - compileJava { - options.compilerArgs += ["-parameters"] - options.fork = true - options.forkOptions.executable = 'javac' - } - - test { - useJUnitPlatform() - } - - checkstyle { - toolVersion "8.38" - configFile = file("${rootDir}/config/checkstyle/checkstyle.xml") - - ignoreFailures = false - maxErrors = 0 - maxWarnings = 0 - } - - shadowJar { - exclude 'com/mojang/**' - exclude 'javax/annotation/**' - exclude 'org/checkerframework/**' - relocate 'com.google.gson', dependencyDir + '.gson' - relocate 'dev.frankheijden.minecraftreflection', dependencyDir + '.minecraftreflection' - relocate 'cloud.commandframework', dependencyDir + '.cloud' - relocate 'me.lucko.commodore', dependencyDir + '.commodore' - relocate 'io.leangen.geantyref', dependencyDir + '.typetoken' - relocate 'net.kyori.adventure', dependencyDir + '.adventure' - relocate 'net.kyori.examination', dependencyDir + '.examination' - relocate 'net.kyori.adventure.text.minimessage', dependencyDir + '.adventure.text.minimessage' - relocate 'dev.frankheijden.minecraftreflection', dependencyDir + '.minecraftreflection' - } - - shadowJar.dependsOn checkstyleMain, checkstyleTest, test -} - -repositories { - mavenCentral() -} - -dependencies { - implementation project(path: ':Common', configuration: 'shadow') - implementation project(path: ':Bukkit', configuration: 'shadow') - implementation project(path: ':Bungee', configuration: 'shadow') - implementation project(path: ':Velocity', configuration: 'shadow') - implementation("net.kyori:adventure-text-serializer-gson:${rootProject.adventureVersion}") { - exclude group: 'net.kyori', module: 'adventure-api' - exclude group: 'com.google.code.gson', module: 'gson' - } -} - -shadowJar { - relocate 'net.kyori.adventure.text.serializer.gson', dependencyDir + '.impl.adventure.text.serializer.gson' - archiveFileName = "${archiveBaseName.orNull}-${archiveVersion.orNull}.${archiveExtension.orNull}" -} - -def outputTasks() { - [ - "shadowJar", - ":Bukkit:shadowJar", - ":Bungee:shadowJar", - ":Velocity:shadowJar", - ].stream().map({ tasks.findByPath(it) }) -} - -task copyJars(type: Copy) { - outputTasks().forEach({ from(it) }) - rename '(.*)-all.jar', '$1.jar' - into file('jars') -} - -task cleanJars() { - delete file('jars') -} - -clean.dependsOn cleanJars -build.dependsOn shadowJar -build.dependsOn copyJars diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..5f24567 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,198 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + +plugins { + `java-library` + `maven-publish` + id("com.github.johnrengelman.shadow") version "7.0.0" +} + +group = "net.frankheijden.serverutils" +val dependencyDir = "${group}.dependencies" +version = "3.1.0-SNAPSHOT" + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + +subprojects { + apply(plugin = "java") + apply(plugin = "maven-publish") + apply(plugin = "checkstyle") + apply(plugin = "com.github.johnrengelman.shadow") + + java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + repositories { + mavenCentral() + maven("https://jitpack.io") + maven("https://repo.incendo.org/content/repositories/snapshots") + maven("https://papermc.io/repo/repository/maven-public/") + maven("https://libraries.minecraft.net") + } + + dependencies { + implementation("cloud.commandframework:cloud-core:${VersionConstants.cloudVersion}") + implementation("cloud.commandframework:cloud-brigadier:${VersionConstants.cloudVersion}") + implementation("com.github.FrankHeijden:MinecraftReflection:1.0.0") + implementation("com.google.code.gson:gson:2.8.6") + implementation("me.lucko:commodore:1.10") + compileOnly("com.mojang:brigadier:1.0.17") + + testImplementation("org.assertj:assertj-core:3.18.1") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.0") + testImplementation("org.junit.jupiter:junit-jupiter-params:5.7.0") + testImplementation("org.junit.jupiter:junit-jupiter-engine:5.7.0") + } + + tasks { + build { + dependsOn("checkstyleMain", "checkstyleTest", "test") + } + + compileJava { + options.encoding = Charsets.UTF_8.name() + } + + javadoc { + options.encoding = Charsets.UTF_8.name() + } + + processResources { + filteringCharset = Charsets.UTF_8.name() + } + + test { + useJUnitPlatform() + } + } + + tasks.withType().configureEach { + configFile = file("${rootDir}/config/checkstyle/checkstyle.xml") + ignoreFailures = false + maxErrors = 0 + maxWarnings = 0 + } + + tasks.withType { + exclude("com/mojang/**") + exclude("javax/annotation/**") + exclude("org/checkerframework/**") + relocate("com.google.gson", "${dependencyDir}.gson") + relocate("dev.frankheijden.minecraftreflection", "${dependencyDir}.minecraftreflection") + relocate("cloud.commandframework", "${dependencyDir}.cloud") + relocate("me.lucko.commodore", "${dependencyDir}.commodore") + relocate("io.leangen.geantyref", "${dependencyDir}.typetoken") + relocate("net.kyori.adventure", "${dependencyDir}.adventure") + relocate("net.kyori.examination", "${dependencyDir}.examination") + relocate("net.kyori.adventure.text.minimessage", "${dependencyDir}.adventure.text.minimessage") + relocate("dev.frankheijden.minecraftreflection", "${dependencyDir}.minecraftreflection") + } + + publishing { + repositories { + maven { + name = "fvdh" + url = uri("https://repo.fvdh.dev/test") + + credentials { + username = System.getenv("FVDH_USERNAME") + password = System.getenv("FVDH_TOKEN") + } + } + } + + publications { + create("ServerUtils") { + artifact(tasks["shadowJar"]) { + extension = "" + classifier = "" + } + artifactId = "ServerUtils-$artifactId" + } + } + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation(project(":Common", "shadow")) + implementation(project(":Bukkit", "shadow")) + implementation(project(":Bungee", "shadow")) + implementation(project(":Velocity", "shadow")) + implementation("net.kyori:adventure-text-serializer-gson:${VersionConstants.adventureVersion}") { + exclude("net.kyori", "adventure-api") + exclude("com.google.code.gson", "gson") + } +} + +tasks { + clean { + dependsOn("cleanJars") + } + + build { + dependsOn("shadowJar", "copyJars") + } +} + +tasks.withType { + relocate("net.kyori.adventure.text.serializer.gson", "${dependencyDir}.impl.adventure.text.serializer.gson") +} + +fun outputTasks(): List { + return listOf( + "shadowJar", + ":Bukkit:shadowJar", + ":Bungee:shadowJar", + ":Velocity:shadowJar", + ).map { tasks.findByPath(it)!! } +} + +tasks.register("cleanJars") { + delete(file("jars")) +} + +tasks.register("copyJars") { + outputTasks().forEach { + from(it) { + duplicatesStrategy = DuplicatesStrategy.INCLUDE + } + } + into(file("jars")) + rename("(.*)-all.jar", "$1.jar") +} + +publishing { + repositories { + maven { + name = "fvdh" + url = if (version.toString().endsWith("-SNAPSHOT")) { + uri("https://repo.fvdh.dev/snapshots") + } else { + uri("https://repo.fvdh.dev/releases") + } + + credentials { + username = System.getenv("FVDH_USERNAME") + password = System.getenv("FVDH_TOKEN") + } + } + } + + publications { + create("ServerUtils") { + artifact(tasks["shadowJar"]) { + extension = "" + classifier = "" + } + artifactId = "ServerUtils" + } + } +} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..876c922 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() +} diff --git a/buildSrc/src/main/kotlin/VersionConstants.kt b/buildSrc/src/main/kotlin/VersionConstants.kt new file mode 100644 index 0000000..7a5af3a --- /dev/null +++ b/buildSrc/src/main/kotlin/VersionConstants.kt @@ -0,0 +1,7 @@ +object VersionConstants { + const val cloudVersion = "1.6.0-SNAPSHOT" + const val adventureVersion = "4.8.1" + const val adventurePlatformVersion = "4.0.0-SNAPSHOT" + const val adventureMinimessageVersion = "4.1.0-SNAPSHOT" + const val bstatsVersion = "2.2.1" +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b6aa34c..d9bba28 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Mon Jun 01 13:25:07 CEST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index fdaf6d3..0000000 --- a/settings.gradle +++ /dev/null @@ -1,5 +0,0 @@ -rootProject.name = 'ServerUtils' -include 'Common' -include 'Bukkit' -include 'Bungee' -include 'Velocity' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..8553f01 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,5 @@ +rootProject.name = "ServerUtils" +include("Common") +include("Bukkit") +include("Bungee") +include("Velocity")