Files
dmg 9f03abbefe
Release / release (push) Successful in 2m18s
CI / build (push) Successful in 57s
fix(harvest): replant triggering crop
2026-08-14 18:44:36 -04:00

40 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: Log
title: Spigot Harvest Design Log
description: Chronological record of material decisions affecting the Spigot Harvest design.
---
# Spigot Harvest Design Log
## 2026-08-14 — Initial harvesting progression design
- Initial crop support includes wheat, carrots, potatoes, and beetroot, with an independent Level 0X progression path for each crop.
- Normal crop breaking triggers auto-harvest, while sneaking bypasses auto-harvest without preventing the manually broken mature crop from contributing progress.
- Connected crops may be adjacent in any of the eight horizontal directions and differ by no more than one Y level for each connection.
- The total operation cap includes the triggering crop and doubles from 4 at Level I through 2,048 at Level X.
- Level requirements are incremental rather than cumulative and are based on the preceding level's harvest cap: a multiplier of 100 through Level V, 200 for Levels VIVIII, 300 for Level IX, and 400 for Level X.
- Automated harvests contribute progression, execute at one crop per server tick by default, and permit only one active auto-harvest operation per player.
- Qualifying progress displays a player-toggleable boss bar that is enabled by default, persists its preference, and remains visible for five seconds after its latest update by default.
- Harvested crops are automatically replanted, remaining drops go to the player's inventory, and inventory overflow drops near the player.
- The project and delivery pipeline will follow the neighboring Spigot Base project where applicable.
## 2026-08-14 — Build and release foundation completed
- Added the Java 17 Gradle/Spigot foundation, strict compiler linting, JUnit 5 lifecycle, plugin metadata, and initial documentation.
- Added Gitea CI and semantic-release workflows with development and versioned JAR artifacts.
- Verified the foundation with `./gradlew clean check jar`.
## 2026-08-14 — Initial plugin scope completed
- Implemented independent Level 0X progression for wheat, carrots, potatoes, and beetroot with validated configuration and atomic UUID-keyed YAML state.
- Implemented deterministic connected-crop traversal, one-operation-per-player scheduling, one-crop-per-tick harvesting, protection-event checks, automatic replanting, inventory delivery, and overflow drops.
- Added player status and boss-bar controls, five-second idle progress presentation, unlock titles, administrative inspection and mutations, offline-player lookup, and safe confirmed resets.
- Developed the progression, traversal, drops, persistence, settings, status, and administration behavior through failing-first automated tests.
## 2026-08-14 — Triggering crop replant fix
- Changed auto-harvest to process and replant the manually broken triggering crop immediately before animating connected crops.
- Kept the triggering crop inside the level cap, so Level I processes the trigger and at most three connected crops.
- Added regression coverage for triggering-crop execution, replanting, and operation-cap accounting.
- Verified the fix with `./gradlew clean check jar`.