docs(design): order OKF log newest first
This commit is contained in:
+49
-49
@@ -2,6 +2,55 @@
|
||||
|
||||
## 2026-08-11
|
||||
|
||||
### US-003 animated tree felling completed
|
||||
|
||||
- Added eligibility-aware automatic felling for unlocked species with sneaking, saved preference, and administrative-lock bypasses.
|
||||
- Added deterministic bottom-to-top scheduling at the configured interval, per-player and per-block overlap claims, and exact runtime snapshots of successfully removed blocks.
|
||||
- Routed each additional trunk through `Player.breakBlock` so Spigot protection cancellation, drops, experience, enchantments, axe durability, and tool breakage remain authoritative.
|
||||
- Felling now stops on cancellation, tool loss, state invalidation, logout, world unload, plugin disablement, changed blocks, or unloaded chunks and releases every runtime claim.
|
||||
- Verified ordering, delay, overlap rejection, cancellation, eligibility, lifecycle safety, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-002 progress visibility completed
|
||||
|
||||
- Added `/treefeller unlocked` with every species' durable unlocked state or current count and live threshold.
|
||||
- Added one configurable boss bar per player with species and numeric progress, live threshold evaluation, timeout replacement, and five-second default cleanup.
|
||||
- Suppressed progress presentation for all ineligible events and removed it immediately when a species unlocks.
|
||||
- Verified command output, player-only completion, boss-bar presentation and timeout, cleanup, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-004 personal controls completed
|
||||
|
||||
- Added `/treefeller enabled [on|off]` with durable, idempotent preference changes and administrative-override reporting.
|
||||
- Added player-only usage and positional completion for `enabled`, `unlocked`, `undo`, and boolean values without exposing the administrative command tree.
|
||||
- Registered configurable player messages and kept `treefeller.command` separate from `treefeller.admin`.
|
||||
- Verified state preservation, reporting, autocomplete, metadata, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-001 species unlock progression completed
|
||||
|
||||
- Added stable taxonomy for all approved overworld trees, Nether fungi, and giant mushrooms while excluding bamboo and treating azalea logs as oak.
|
||||
- Replaced the old recursive search with a deterministic, bounded, iterative scanner that follows connected trunk blocks laterally and upward but never downward and requires matching foliage or caps.
|
||||
- Added Survival-and-axe eligibility, automatic-break suppression, durable one-point increments, saturating counters, permanent unlocks, and next-qualifying-block threshold evaluation.
|
||||
- Registered progress handling through the Spigot block-break lifecycle and persisted every accepted update before notifying observers.
|
||||
- Verified taxonomy, detection, tools, eligibility, progression, persistence, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-008 configuration and persistence completed
|
||||
|
||||
- Added validated settings for all supported species, search safety, animation, progress presentation, undo, titles, and messages.
|
||||
- Added persistence-before-activation threshold changes and failure-safe active settings.
|
||||
- Added UUID-keyed immutable player state with retained names, saturating progress, unlocks, preferences, locks, defensive reads, forward-field retention, and atomic YAML replacement.
|
||||
- Invalid required configuration now disables partial plugin startup with a focused log message.
|
||||
- Verified settings, persistence, corruption handling, atomic replacement, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### Build foundation checkpoint
|
||||
|
||||
- Added the Java 17 Gradle project, Spigot 26.2 dependency, strict compilation, JUnit lifecycle, plugin metadata, wrapper, and Gitea CI and semantic-release workflows.
|
||||
- Verified separate player and administrative command metadata through a failing-then-passing test.
|
||||
- Verified the local foundation with `./gradlew clean check jar`; remote workflow and release criteria remain pending final delivery verification.
|
||||
|
||||
### Implementation started
|
||||
|
||||
- Began US-009 by establishing the test-first Gradle and plugin-metadata foundation.
|
||||
- US-009 remains in progress until all stories and final delivery behavior have been verified.
|
||||
|
||||
### Initial tree-felling design
|
||||
|
||||
- Players earn automatic felling separately for each supported tree species by manually mining qualifying tree blocks in Survival with an axe.
|
||||
@@ -15,52 +64,3 @@
|
||||
- Player commands use `/treefeller`; administration uses the separate `/treefelleradmin` command and `treefeller.admin` permission.
|
||||
- Administrators can inspect players, grant or reset species, lock all automatic felling for a player, and persistently change species thresholds. Administrative locking does not stop manual progress.
|
||||
- Build and release conventions follow `../spigot-getgud/`, including Spigot API `26.2-R0.1-SNAPSHOT`, Java 17, Gradle, strict compilation, tests, and Gitea automation.
|
||||
|
||||
### Implementation started
|
||||
|
||||
- Began US-009 by establishing the test-first Gradle and plugin-metadata foundation.
|
||||
- US-009 remains in progress until all stories and final delivery behavior have been verified.
|
||||
|
||||
### Build foundation checkpoint
|
||||
|
||||
- Added the Java 17 Gradle project, Spigot 26.2 dependency, strict compilation, JUnit lifecycle, plugin metadata, wrapper, and Gitea CI and semantic-release workflows.
|
||||
- Verified separate player and administrative command metadata through a failing-then-passing test.
|
||||
- Verified the local foundation with `./gradlew clean check jar`; remote workflow and release criteria remain pending final delivery verification.
|
||||
|
||||
### US-008 configuration and persistence completed
|
||||
|
||||
- Added validated settings for all supported species, search safety, animation, progress presentation, undo, titles, and messages.
|
||||
- Added persistence-before-activation threshold changes and failure-safe active settings.
|
||||
- Added UUID-keyed immutable player state with retained names, saturating progress, unlocks, preferences, locks, defensive reads, forward-field retention, and atomic YAML replacement.
|
||||
- Invalid required configuration now disables partial plugin startup with a focused log message.
|
||||
- Verified settings, persistence, corruption handling, atomic replacement, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-001 species unlock progression completed
|
||||
|
||||
- Added stable taxonomy for all approved overworld trees, Nether fungi, and giant mushrooms while excluding bamboo and treating azalea logs as oak.
|
||||
- Replaced the old recursive search with a deterministic, bounded, iterative scanner that follows connected trunk blocks laterally and upward but never downward and requires matching foliage or caps.
|
||||
- Added Survival-and-axe eligibility, automatic-break suppression, durable one-point increments, saturating counters, permanent unlocks, and next-qualifying-block threshold evaluation.
|
||||
- Registered progress handling through the Spigot block-break lifecycle and persisted every accepted update before notifying observers.
|
||||
- Verified taxonomy, detection, tools, eligibility, progression, persistence, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-004 personal controls completed
|
||||
|
||||
- Added `/treefeller enabled [on|off]` with durable, idempotent preference changes and administrative-override reporting.
|
||||
- Added player-only usage and positional completion for `enabled`, `unlocked`, `undo`, and boolean values without exposing the administrative command tree.
|
||||
- Registered configurable player messages and kept `treefeller.command` separate from `treefeller.admin`.
|
||||
- Verified state preservation, reporting, autocomplete, metadata, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-002 progress visibility completed
|
||||
|
||||
- Added `/treefeller unlocked` with every species' durable unlocked state or current count and live threshold.
|
||||
- Added one configurable boss bar per player with species and numeric progress, live threshold evaluation, timeout replacement, and five-second default cleanup.
|
||||
- Suppressed progress presentation for all ineligible events and removed it immediately when a species unlocks.
|
||||
- Verified command output, player-only completion, boss-bar presentation and timeout, cleanup, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
### US-003 animated tree felling completed
|
||||
|
||||
- Added eligibility-aware automatic felling for unlocked species with sneaking, saved preference, and administrative-lock bypasses.
|
||||
- Added deterministic bottom-to-top scheduling at the configured interval, per-player and per-block overlap claims, and exact runtime snapshots of successfully removed blocks.
|
||||
- Routed each additional trunk through `Player.breakBlock` so Spigot protection cancellation, drops, experience, enchantments, axe durability, and tool breakage remain authoritative.
|
||||
- Felling now stops on cancellation, tool loss, state invalidation, logout, world unload, plugin disablement, changed blocks, or unloaded chunks and releases every runtime claim.
|
||||
- Verified ordering, delay, overlap rejection, cancellation, eligibility, lifecycle safety, and the complete build with `./gradlew clean check jar`.
|
||||
|
||||
Reference in New Issue
Block a user