diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 6bc0a8f01..daea316a0 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -26,10 +26,10 @@ jobs: uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle - run: ./gradlew build + run: ./gradlew clean build - name: Stage jar - run: mkdir staging && cp build/libs/Movecraft.jar staging && mv staging/Movecraft.jar staging/Movecraft_$GITHUB_SHA.jar + run: mkdir staging && cp modules/Movecraft/build/libs/Movecraft.jar staging && mv staging/Movecraft.jar staging/Movecraft_$GITHUB_SHA.jar - name: Upload jar uses: actions/upload-artifact@v4 with: diff --git a/README.md b/README.md index 330d6d61c..c906f8ca9 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,6 @@ Building Movecraft is as easy as downloading the source code and executing the f ``` ./gradlew build ``` -Compiled jars can be found in the `/build/libs` directory. +Compiled jars can be found in the `modules/Movecraft/build/libs` directory. #### Movecraft is released under the GNU General Public License V3. diff --git a/build.gradle.kts b/build.gradle.kts index fa77f66b7..38c9b308b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,5 +5,3 @@ plugins { id("buildlogic.java-conventions") } - -description = "datapack" diff --git a/modules/Movecraft/build.gradle.kts b/modules/Movecraft/build.gradle.kts new file mode 100644 index 000000000..10005974d --- /dev/null +++ b/modules/Movecraft/build.gradle.kts @@ -0,0 +1,45 @@ +plugins { + id("buildlogic.java-conventions") + id("com.github.johnrengelman.shadow") version "8.1.1" +} + +repositories { + mavenCentral() + gradlePluginPortal() +} + +dependencies { + implementation(project(":movecraft-v1_18")) + implementation(project(":movecraft-v1_20")) + implementation(project(":movecraft-api")) + implementation(project(":movecraft-datapack")) + implementation("org.yaml:snakeyaml:2.0") +} + +tasks.shadowJar { + manifest { + attributes["paperweight-mappings-namespace"] = "mojang" + } + + archiveBaseName.set("Movecraft") + archiveClassifier.set("") + archiveVersion.set("") + + dependencies { + include(dependency("net.countercraft:movecraft-v1_18")) + include(dependency("net.countercraft:movecraft-v1_20")) + include(dependency("net.countercraft:datapack")) + } + + relocate("it.unimi", "net.countercraft.movecraft.libs.it.unimi") + relocate("net.kyori", "net.countercraft.movecraft.libs.net.kyori") + relocate("org.roaringbitmap", "net.countercraft.movecraft.libs.org.roaringbitmap") + + minimize() +} + +tasks.build { + dependsOn(tasks.shadowJar) +} + +description = "Movecraft" diff --git a/modules/datapack/build.gradle.kts b/modules/datapack/build.gradle.kts index acfd29bd6..d40a72cae 100644 --- a/modules/datapack/build.gradle.kts +++ b/modules/datapack/build.gradle.kts @@ -15,4 +15,4 @@ tasks.build { dependsOn(zipTask) } -description = "Movecraft-datapack" +description = "Movecraft-Datapack" diff --git a/settings.gradle.kts b/settings.gradle.kts index 355fe8c29..854796ccc 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,8 +6,10 @@ rootProject.name = "movecraft-parent" include(":movecraft-v1_18") include(":movecraft-v1_20") include(":movecraft-api") -include(":datapack") +include(":movecraft-datapack") +include(":movecraft") project(":movecraft-v1_18").projectDir = file("modules/v1_18") project(":movecraft-v1_20").projectDir = file("modules/v1_20") project(":movecraft-api").projectDir = file("modules/api") -project(":datapack").projectDir = file("modules/datapack") +project(":movecraft-datapack").projectDir = file("modules/datapack") +project(":movecraft").projectDir = file("modules/Movecraft")