feat(command): add personal Tree Feller controls

This commit is contained in:
dmg
2026-08-11 17:20:40 -04:00
parent 8067b3ebfb
commit 486780c049
5 changed files with 245 additions and 11 deletions
+7
View File
@@ -42,3 +42,10 @@
- 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`.
@@ -2,7 +2,7 @@
type: User Story
title: "US-004: Control personal tree felling"
description: Let players persistently enable or disable their own automatic tree felling.
status: backlog
status: done
---
# US-004: Control personal tree felling
@@ -11,16 +11,16 @@ As a **player**, I want to turn automatic felling on or off independently of my
## Acceptance criteria
- [ ] `/treefeller enabled <on|off>` enables or disables automatic felling for the issuing player.
- [ ] `/treefeller enabled` without a value reports the player's current preference and whether an administrative lock currently overrides it.
- [ ] The preference defaults to enabled for a player with no saved value.
- [ ] Changing the preference does not alter species progress or earned unlocks.
- [ ] Repeating the currently saved value is idempotent and reports that no change was needed.
- [ ] The player receives clear confirmation after a successful change.
- [ ] The saved preference survives logout and server restart.
- [ ] `/treefeller` provides concise usage for `enabled`, `unlocked`, and `undo` without advertising inaccessible administrative commands.
- [ ] Position-aware autocomplete suggests player subcommands and valid `on` or `off` values.
- [ ] Player commands use player permissions that are distinct from `treefeller.admin`; possession of player permissions does not grant `/treefelleradmin` access.
- [x] `/treefeller enabled <on|off>` enables or disables automatic felling for the issuing player.
- [x] `/treefeller enabled` without a value reports the player's current preference and whether an administrative lock currently overrides it.
- [x] The preference defaults to enabled for a player with no saved value.
- [x] Changing the preference does not alter species progress or earned unlocks.
- [x] Repeating the currently saved value is idempotent and reports that no change was needed.
- [x] The player receives clear confirmation after a successful change.
- [x] The saved preference survives logout and server restart.
- [x] `/treefeller` provides concise usage for `enabled`, `unlocked`, and `undo` without advertising inaccessible administrative commands.
- [x] Position-aware autocomplete suggests player subcommands and valid `on` or `off` values.
- [x] Player commands use player permissions that are distinct from `treefeller.admin`; possession of player permissions does not grant `/treefelleradmin` access.
## Related