The packaged plugin produced an invalid tiny JAR instead of a server-loadable shaded artifact, so bundled libraries were not included or relocated.
The Bukkit module must target Purpur 1.19.4 and avoid runtime conflicts by shading/relocating third-party libs like bStats.
Build output should place the final server-ready plugin JAR in build/libs where CI and users expect it.
Description
Switches the Bukkit API to Purpur by adding the Purpur snapshots repository and using org.purpurmc.purpur:purpur-api:1.19.4-R0.1-SNAPSHOT in bukkit/build.gradle.kts.
Configures shadowJar to be the primary plugin artifact by setting archiveClassifier.set(""), enabling relocation, and relocating org.bstats into the plugin-specific namespace ${project.group}.${rootProject.name.lowercase()}.lib.bstats.
Updates root build.gradle.kts to apply the Shadow plugin to subprojects, set reproducible archive settings (isPreserveFileTimestamps and isReproducibleFileOrder), enable default Shadow relocation (isEnableRelocation and relocationPrefix), and set archiveFileName for shadow outputs.
Disables the empty root jar and adds a Sync task pluginArtifact that depends on :Chunky-bukkit:shadowJar and copies that shadow JAR into the root build/libs directory so a server-ready plugin JAR is produced where expected.
Testing
Ran ./gradlew :Chunky-bukkit:shadowJar with JAVA_HOME set to a Java 17 toolchain, and the build failed due to external plugin resolution errors when fetching the Shadow Gradle plugin from remote repositories (HTTP 403), so the local environment could not complete the build.
Earlier attempts used ./gradlew clean build -x test and --stacktrace to gather diagnostics and confirmed the failure was due to plugin resolution rather than project configuration errors.
### Motivation
- The packaged plugin produced an invalid tiny JAR instead of a server-loadable shaded artifact, so bundled libraries were not included or relocated.
- The Bukkit module must target Purpur 1.19.4 and avoid runtime conflicts by shading/relocating third-party libs like bStats.
- Build output should place the final server-ready plugin JAR in `build/libs` where CI and users expect it.
### Description
- Switches the Bukkit API to Purpur by adding the Purpur snapshots repository and using `org.purpurmc.purpur:purpur-api:1.19.4-R0.1-SNAPSHOT` in `bukkit/build.gradle.kts`.
- Configures `shadowJar` to be the primary plugin artifact by setting `archiveClassifier.set("")`, enabling relocation, and relocating `org.bstats` into the plugin-specific namespace `${project.group}.${rootProject.name.lowercase()}.lib.bstats`.
- Updates root `build.gradle.kts` to apply the Shadow plugin to subprojects, set reproducible archive settings (`isPreserveFileTimestamps` and `isReproducibleFileOrder`), enable default Shadow relocation (`isEnableRelocation` and `relocationPrefix`), and set `archiveFileName` for shadow outputs.
- Disables the empty root `jar` and adds a `Sync` task `pluginArtifact` that depends on `:Chunky-bukkit:shadowJar` and copies that shadow JAR into the root `build/libs` directory so a server-ready plugin JAR is produced where expected.
### Testing
- Ran `./gradlew :Chunky-bukkit:shadowJar` with `JAVA_HOME` set to a Java 17 toolchain, and the build failed due to external plugin resolution errors when fetching the Shadow Gradle plugin from remote repositories (HTTP 403), so the local environment could not complete the build.
- Earlier attempts used `./gradlew clean build -x test` and `--stacktrace` to gather diagnostics and confirmed the failure was due to plugin resolution rather than project configuration errors.
------
[Codex Task](https://chatgpt.com/codex/tasks/task_e_69b4124aeaec832fb4c470f3050f9c37)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Motivation
build/libswhere CI and users expect it.Description
org.purpurmc.purpur:purpur-api:1.19.4-R0.1-SNAPSHOTinbukkit/build.gradle.kts.shadowJarto be the primary plugin artifact by settingarchiveClassifier.set(""), enabling relocation, and relocatingorg.bstatsinto the plugin-specific namespace${project.group}.${rootProject.name.lowercase()}.lib.bstats.build.gradle.ktsto apply the Shadow plugin to subprojects, set reproducible archive settings (isPreserveFileTimestampsandisReproducibleFileOrder), enable default Shadow relocation (isEnableRelocationandrelocationPrefix), and setarchiveFileNamefor shadow outputs.jarand adds aSynctaskpluginArtifactthat depends on:Chunky-bukkit:shadowJarand copies that shadow JAR into the rootbuild/libsdirectory so a server-ready plugin JAR is produced where expected.Testing
./gradlew :Chunky-bukkit:shadowJarwithJAVA_HOMEset to a Java 17 toolchain, and the build failed due to external plugin resolution errors when fetching the Shadow Gradle plugin from remote repositories (HTTP 403), so the local environment could not complete the build../gradlew clean build -x testand--stacktraceto gather diagnostics and confirmed the failure was due to plugin resolution rather than project configuration errors.Codex Task