diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index f823c87..0000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,34 +0,0 @@ -# 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: [ main, dev ] - pull_request: - branches: [ main, dev ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Setup Gradle Wrapper - run: ./gradlew wrapper - - name: Build with Gradle - run: ./gradlew build - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: artifact - path: build/target/* diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..96c1b97 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,39 @@ +name: release.yml +on: + push: + tags: + - "v*" + +jobs: + build-and-release: + runs-on: ubuntu-latest + permissions: + contents: write # Essential for creating the release + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for changelog generation to see history + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Make Gradle Wrapper Executable + run: chmod +x ./gradlew + - name: Build Shaded JARs + run: ./gradlew clean shadowJar + - name: Remove Unshaded JAR + run: rm build/target/BlueBridgeCore-*-NoDependencies.jar + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + files: | + build/target/BlueBridgeCore-*.jar + build/target/BlueBridgeGP-*.jar + build/target/BlueBridgeWG-*.jar + build/target/BlueBridgeWB-*.jar \ No newline at end of file diff --git a/BlueBridgeCore/build.gradle b/BlueBridgeCore/build.gradle index 3dc5332..3aaf9a5 100644 --- a/BlueBridgeCore/build.gradle +++ b/BlueBridgeCore/build.gradle @@ -1,21 +1,11 @@ -buildscript { - repositories { - gradlePluginPortal() - } - dependencies { - classpath 'com.gradleup.shadow:shadow-gradle-plugin:8.3.0' - } -} - plugins { id 'com.gradleup.shadow' version '8.3.0' } - dependencies { - provided 'com.github.BlueMap-Minecraft:BlueMapAPI:2.6.2' + compileOnly 'de.bluecolored:bluemap-api:2.7.7' // https://mvnrepository.com/artifact/org.apache.commons/commons-text - implementation 'org.apache.commons:commons-text:1.9' + implementation 'org.apache.commons:commons-text:1.15.0' } tasks.build.dependsOn tasks.shadowJar diff --git a/BlueBridgeCore/settings.gradle b/BlueBridgeCore/settings.gradle deleted file mode 100644 index f162469..0000000 --- a/BlueBridgeCore/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'BlueBridge' \ No newline at end of file diff --git a/BlueBridgeGP/build.gradle b/BlueBridgeGP/build.gradle index c6abd1b..0300141 100644 --- a/BlueBridgeGP/build.gradle +++ b/BlueBridgeGP/build.gradle @@ -1,5 +1,37 @@ +plugins { + id 'com.gradleup.shadow' version '8.3.0' +} + dependencies { - implementation project(':BlueBridgeCore') - provided 'com.github.BlueMap-Minecraft:BlueMapAPI:2.6.2' - implementation 'com.github.TechFortress:GriefPrevention:16.18' + compileOnly project(':BlueBridgeCore') + compileOnly 'de.bluecolored:bluemap-api:2.7.7' + compileOnly 'com.github.GriefPrevention:GriefPrevention:16.18.5' +} + +tasks.build.dependsOn tasks.shadowJar + +jar { + archiveClassifier = 'NoDependencies' } + +shadowJar { + zip64 = true + mergeServiceFiles() + relocate 'org.apache.commons.text', 'de.mark225.shadow.org.apache.commons.text' + relocate 'org.apache.commons.lang3', 'de.mark225.shadow.org.apache.commons.lang3' + archiveClassifier = '' + def exclude_modules = project + .configurations + .provided + .resolvedConfiguration + .getLenientConfiguration() + .getAllModuleDependencies() + .collect { + it.name + } + dependencies { + exclude(dependency { + exclude_modules.contains(it.name) + }) + } +} \ No newline at end of file diff --git a/BlueBridgeGP/settings.gradle b/BlueBridgeGP/settings.gradle deleted file mode 100644 index a6a3d2e..0000000 --- a/BlueBridgeGP/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = 'BlueBridge' -include ':BlueBridgeCore' \ No newline at end of file diff --git a/BlueBridgeWB/build.gradle b/BlueBridgeWB/build.gradle index a1e5b1d..c250562 100644 --- a/BlueBridgeWB/build.gradle +++ b/BlueBridgeWB/build.gradle @@ -1,4 +1,36 @@ +plugins { + id 'com.gradleup.shadow' version '8.3.0' +} + dependencies { - implementation project(':BlueBridgeCore') - provided 'com.github.BlueMap-Minecraft:BlueMapAPI:2.6.2' + compileOnly project(':BlueBridgeCore') + compileOnly 'de.bluecolored:bluemap-api:2.7.7' +} + +tasks.build.dependsOn tasks.shadowJar + +jar { + archiveClassifier = 'NoDependencies' +} + +shadowJar { + zip64 = true + mergeServiceFiles() + relocate 'org.apache.commons.text', 'de.mark225.shadow.org.apache.commons.text' + relocate 'org.apache.commons.lang3', 'de.mark225.shadow.org.apache.commons.lang3' + archiveClassifier = '' + def exclude_modules = project + .configurations + .provided + .resolvedConfiguration + .getLenientConfiguration() + .getAllModuleDependencies() + .collect { + it.name + } + dependencies { + exclude(dependency { + exclude_modules.contains(it.name) + }) + } } \ No newline at end of file diff --git a/BlueBridgeWG/build.gradle b/BlueBridgeWG/build.gradle index 30da7df..c2c30a9 100644 --- a/BlueBridgeWG/build.gradle +++ b/BlueBridgeWG/build.gradle @@ -1,9 +1,41 @@ +plugins { + id 'com.gradleup.shadow' version '8.3.0' +} + repositories { maven { url "https://maven.enginehub.org/repo/" } } dependencies { - implementation project(':BlueBridgeCore') - provided 'com.github.BlueMap-Minecraft:BlueMapAPI:2.6.2' - provided 'com.sk89q.worldguard:worldguard-bukkit:7.0.14' + compileOnly project(':BlueBridgeCore') + compileOnly 'de.bluecolored:bluemap-api:2.7.7' + compileOnly 'com.sk89q.worldguard:worldguard-bukkit:7.0.14' +} + +tasks.build.dependsOn tasks.shadowJar + +jar { + archiveClassifier = 'NoDependencies' } + +shadowJar { + zip64 = true + mergeServiceFiles() + relocate 'org.apache.commons.text', 'de.mark225.shadow.org.apache.commons.text' + relocate 'org.apache.commons.lang3', 'de.mark225.shadow.org.apache.commons.lang3' + archiveClassifier = '' + def exclude_modules = project + .configurations + .provided + .resolvedConfiguration + .getLenientConfiguration() + .getAllModuleDependencies() + .collect { + it.name + } + dependencies { + exclude(dependency { + exclude_modules.contains(it.name) + }) + } +} \ No newline at end of file diff --git a/BlueBridgeWG/settings.gradle b/BlueBridgeWG/settings.gradle deleted file mode 100644 index a6a3d2e..0000000 --- a/BlueBridgeWG/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = 'BlueBridge' -include ':BlueBridgeCore' \ No newline at end of file diff --git a/build.gradle b/build.gradle index cd63550..efbf683 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ subprojects { apply plugin: 'java' - version '2.2' + version '2.3' //Add maintainers here (separated by a comma and space). This will be added to the plugin.yml. def authors = 'Mark_225' @@ -24,6 +24,7 @@ subprojects { name = "papermc" url = uri("https://repo.papermc.io/repository/maven-public/") } + maven { url 'https://repo.bluecolored.de/releases' } } configurations { @@ -32,12 +33,12 @@ subprojects { } dependencies { - compileOnly("io.papermc.paper:paper-api:1.21.8-R0.1-SNAPSHOT") - provided 'com.flowpowered:flow-math:1.0.3' + compileOnly("io.papermc.paper:paper-api:1.21.10-R0.1-SNAPSHOT") + compileOnly 'com.flowpowered:flow-math:1.0.3' } - tasks.withType(Jar) { - destinationDirectory = file("$rootDir/build/target") + tasks.withType(Jar).configureEach { + it.destinationDirectory = file("$rootDir/build/target") } processResources { diff --git a/settings.gradle b/settings.gradle index 340aed1..bb21dd0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,10 +1,7 @@ rootProject.name = 'BlueBridge' + include ':BlueBridgeCore' include ':BlueBridgeWG' include ':BlueBridgeGP' - -project(':BlueBridgeCore').projectDir = "$rootDir/BlueBridgeCore" as File -project(':BlueBridgeWG').projectDir = "$rootDir/BlueBridgeWG" as File -project(':BlueBridgeGP').projectDir = "$rootDir/BlueBridgeGP" as File -include 'BlueBridgeWB' +include ':BlueBridgeWB'