Files
purpur-harvest/README.md
T
dmg f615600818
Release / release (push) Successful in 6m49s
CI / build (push) Successful in 2m45s
feat(harvest): migrate distribution to Java 25 and Purpur
BREAKING CHANGE: New releases require Java 25/Purpur 26.2 and use purpur-harvest-<version>.jar. Runtime SpigotHarvest identity, data folders and crop progression remain unchanged. Replace the old JAR instead of installing both distributions.
2026-09-12 13:56:35 -04:00

2.3 KiB

Purpur Harvest

A Purpur 26.2 plugin providing progression-gated, connected crop harvesting and automatic replanting.

The approved behavior is specified in the SoMC OKF wiki.

Requirements

  • Purpur 26.2 build 2618
  • Java 25

Distribution migration

New repositories/checkouts/artifacts use purpur-harvest; runtime SpigotHarvest, Java entrypoints/packages, data folders, commands, permissions and crop progression remain unchanged. New releases no longer support Java 17. Replace the old JAR rather than installing both distributions. Historical tags and spigot-harvest-* assets are retained; the prior v1.0.1 download was checked for identical bytes after renaming.

Build

./gradlew clean check jar

The plugin JAR is written to build/libs/. check includes nativeHarvestTest: it downloads SHA-256-verified Purpur 2618 under build/harvest-runtime/, loads native registry/service providers, and runs real item-stack/drop/replant regressions without starting a listening server. Those tests are not replaced by item mocks or excluded from verification.

Commands

/harvest
/harvest status [wheat|carrot|potato|beetroot]
/harvest bossbar <enable|disable>

The progress boss bar is enabled by default and remains visible for five seconds after its latest update. Sneaking while breaking a mature crop bypasses auto-harvest while still earning progress.

Administration

The spigotharvest.admin permission is granted to server operators by default.

/harvestadmin status <player> [crop]
/harvestadmin setlevel <player> <crop> <0|I|II|III|IV|V|VI|VII|VIII|IX|X>
/harvestadmin setprogress <player> <crop> <amount>
/harvestadmin reset <player> <crop>
/harvestadmin reset <player> all confirm

Validated progression and presentation defaults are documented in src/main/resources/config.yml. UUID-keyed player state is stored in plugins/SpigotHarvest/state.yml using atomic replacement where supported.

Releases

Gitea Actions checks pushes and pull requests and stores a development JAR. Pull requests validate conventional commits. Main-branch conventional commits drive semantic releases when the repository defines a RELEASE_TOKEN with contents-write permission.