Files
spigot-harvest/design/user-stories/us-007-configure-and-persist-harvesting-behavior.md
T

2.3 KiB

type, title, description, status
type title description status
User Story US-007: Configure and persist harvesting behavior Give operators validated configuration and durable storage for crop progression and harvesting behavior. in-progress

US-007: Configure and persist harvesting behavior

As a server operator, I want harvesting behavior to be configurable and player progression to be durable so that the plugin remains predictable across restarts and server changes.

Acceptance criteria

  • Configuration defines supported crops and the block material, maturity rule, and planting item for each crop.
  • Configuration defines every level-local requirement and operation cap independently for each supported crop.
  • Configuration defines eligible game modes, crops processed per tick, boss-bar idle duration, and unlock-notification timing.
  • Defaults match the crops, requirements, caps, one-crop-per-tick pace, Survival-only progression, and five-second boss-bar duration documented by related stories.
  • Requirements and caps are positive, representable, and sequentially coherent.
  • Processing rates and notification durations reject unsafe or nonsensical values.
  • Invalid required configuration prevents partial plugin initialization and produces a clear server log message.
  • UUID-keyed state persists latest known player names, each crop's earned level and level-local progress, and the player's boss-bar preference.
  • Existing player records without a boss-bar preference safely default to enabled.
  • Active auto-harvest operations are transient and do not resume after a restart or reconnect.
  • State is saved safely so a failed write does not replace valid persisted state with a partial document.
  • Corrupt or invalid records are handled defensively and cannot silently grant progression or larger operation caps.
  • Unknown forward-compatible configuration and state fields are preserved where practical.