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.
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# 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](https://git.garvis.dev/dmg/somc-okf/src/branch/main/projects/purpur-harvest/index.md).
|
|
|
|
## 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
|
|
|
|
```bash
|
|
./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
|
|
|
|
```text
|
|
/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.
|
|
|
|
```text
|
|
/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.
|