Produce a single deployable plugin jar at build/libs/Panilla-${version}.jar that includes the panilla-api and other internal modules so Purpur 1.19.4 loads without NoClassDefFoundError: com.ruinscraft.panilla.api.IPanilla and the plugin continues to support 1.8+ clients, while keeping the build in Kotlin Gradle DSL.
Description
Replace the previous shadow/copy-script flow with a Kotlin-DSL pluginJarJar task in bukkit/build.gradle.kts that aggregates :panilla-api and all craftbukkit subproject outputs into a single artifact written to the root build/libs directory and named Panilla-${version}.jar.
Disable the thin jar for the Bukkit module and wire assemble/build to depend on the new pluginJar task so the final artifact is the packaged plugin containing internal classes that previously were omitted.
Remove the external shadow plugin + copyjar.sh flow and instead declare a shadedProjects list and mainSourceSetOutput() helper to collect subproject outputs directly in Kotlin DSL.
Update root clean to delete the root build/ directory (so build/libs/Panilla-${version}.jar is cleaned) and remove the obsolete copyjar.sh script.
Testing
Ran ./gradlew help --offline which completed successfully and confirmed Gradle is healthy in this environment.
Ran ./gradlew :panilla-bukkit:tasks --all --offline which completed successfully and shows the new pluginJar task is available and wired into assemble/build.
Attempted full assembly with ./gradlew clean :panilla-bukkit:pluginJar but the compilation step could not complete in this environment because external Maven repositories returned HTTP 403 for required dependencies (e.g. Netty and Gson), so final artifact creation could not be verified here.
### Motivation
- Produce a single deployable plugin jar at `build/libs/Panilla-${version}.jar` that includes the `panilla-api` and other internal modules so Purpur 1.19.4 loads without `NoClassDefFoundError: com.ruinscraft.panilla.api.IPanilla` and the plugin continues to support 1.8+ clients, while keeping the build in Kotlin Gradle DSL.
### Description
- Replace the previous shadow/copy-script flow with a Kotlin-DSL `pluginJar` `Jar` task in `bukkit/build.gradle.kts` that aggregates `:panilla-api` and all craftbukkit subproject outputs into a single artifact written to the root `build/libs` directory and named `Panilla-${version}.jar`.
- Disable the thin `jar` for the Bukkit module and wire `assemble`/`build` to depend on the new `pluginJar` task so the final artifact is the packaged plugin containing internal classes that previously were omitted.
- Remove the external shadow plugin + `copyjar.sh` flow and instead declare a `shadedProjects` list and `mainSourceSetOutput()` helper to collect subproject outputs directly in Kotlin DSL.
- Update root `clean` to delete the root `build/` directory (so `build/libs/Panilla-${version}.jar` is cleaned) and remove the obsolete `copyjar.sh` script.
### Testing
- Ran `./gradlew help --offline` which completed successfully and confirmed Gradle is healthy in this environment.
- Ran `./gradlew :panilla-bukkit:tasks --all --offline` which completed successfully and shows the new `pluginJar` task is available and wired into `assemble`/`build`.
- Attempted full assembly with `./gradlew clean :panilla-bukkit:pluginJar` but the compilation step could not complete in this environment because external Maven repositories returned HTTP 403 for required dependencies (e.g. Netty and Gson), so final artifact creation could not be verified here.
------
[Codex Task](https://chatgpt.com/codex/tasks/task_e_69ba80991b90832f82d556959345da98)
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/libs/Panilla-${version}.jarthat includes thepanilla-apiand other internal modules so Purpur 1.19.4 loads withoutNoClassDefFoundError: com.ruinscraft.panilla.api.IPanillaand the plugin continues to support 1.8+ clients, while keeping the build in Kotlin Gradle DSL.Description
pluginJarJartask inbukkit/build.gradle.ktsthat aggregates:panilla-apiand all craftbukkit subproject outputs into a single artifact written to the rootbuild/libsdirectory and namedPanilla-${version}.jar.jarfor the Bukkit module and wireassemble/buildto depend on the newpluginJartask so the final artifact is the packaged plugin containing internal classes that previously were omitted.copyjar.shflow and instead declare ashadedProjectslist andmainSourceSetOutput()helper to collect subproject outputs directly in Kotlin DSL.cleanto delete the rootbuild/directory (sobuild/libs/Panilla-${version}.jaris cleaned) and remove the obsoletecopyjar.shscript.Testing
./gradlew help --offlinewhich completed successfully and confirmed Gradle is healthy in this environment../gradlew :panilla-bukkit:tasks --all --offlinewhich completed successfully and shows the newpluginJartask is available and wired intoassemble/build../gradlew clean :panilla-bukkit:pluginJarbut the compilation step could not complete in this environment because external Maven repositories returned HTTP 403 for required dependencies (e.g. Netty and Gson), so final artifact creation could not be verified here.Codex Task