This repository is a small Java/Kotlin Gradle template that bundles common tooling for future Hytale-related projects. It keeps the modern build logic (version resolution, fat JAR creation, and toolchain control) while leaving the actual product code up to you.
git clone https://github.com/your-org/bumenfeld-plugin-boilerplate.git new-pluginandcd new-plugin. Remove the inherited Git metadata (rm -rf .gitorrmdir /s /q .giton Windows) and rungit init, then point the repo at your own remote so pushes go to your plugin project.- Update
settings.gradle.kts/gradle.propertieswith your project name,project_version, and plugin metadata (group, author, description) so artifacts carry the right identity. - Edit
src/main/resources/manifest.jsonto describe your plugin (Title,Version,Description,MainEntryPoint) and copy it intomods/<your-plugin-id>/manifest.jsonalong with any other runtime assets. - Copy
src/main/resources/config/example.ymlandsrc/main/resources/localization/en.jsoninto your plugin data folder (mods/<your-plugin-id>/config.ymlandmods/<your-plugin-id>/localization/en.json) and modify the content to reflect your plugin’s behavior. - Decide if this plugin should include the Hytale API (
-Penable_hytale_plugin=true) or keep the lightweight boilerplate defaults. Adjust the GitHub workflows by uncommenting theiron:blocks when you want CI/release automation, then run./gradlew clean releaseto produce the jar you’ll ship.
Sample resource files live under src/main/resources. manifest.json holds the metadata placeholders that every plugin must replace, while config/example.yml and localization/en.json provide a paired hello-world config/localization example—keep them aligned whenever you customize them.
- Replace
src/main/java/com/bumenfeld/Application.javawith your actual entry point logic. - Update
gradle/libs.versions.tomlandbuild.gradle.ktswith the dependencies and tasks your plugin needs. - Adjust
project_version(or pass-PlocalVersion=<value>) whenever you want to control versioning for a release. - Rename
settings.gradle.ktsor add subprojects if your plugin introduces additional modules.
./gradlew clean releaseor./gradlew.bat clean release(Windows) performs a clean build, packaging the fat jar atbuild/libs/bumenfeld-boilerplate-<version>.jar. Releases now publish the jar alone instead of a ZIP../gradlew buildstill works and ensures theappJartask runs beforebuild.
You can toggle fat-jar bundling via the fatJar property (default true). Use ./gradlew build -PfatJar=false if you prefer to ship a thin jar and manage dependencies separately.
Note: The GitHub workflows currently run only on
workflow_dispatch. Uncomment and customize theiron:sections (push/pull_request/release) when you are ready to enable automated CI/releases for your plugin.
- Add runtime resources under
src/main/resources(configs, localization, assets) once your plugin behavior is defined. - Revisit the
releasetask if you need to ship extra artifacts. - Extend the CI workflows in
.github/workflows/when you integrate automated builds or publishing.