Files
spigot-leaf/design/user-stories/us-001-opt-into-leaf-protection.md
T
dmg 320c8ce193
Release / release (push) Successful in 2m7s
CI / build (push) Successful in 1m1s
fix(protection): restore cleared Leaf effects
2026-08-10 23:09:54 -04:00

33 lines
1.9 KiB
Markdown

---
type: User Story
title: "US-001: Opt into Leaf protection"
description: Let players voluntarily receive and relinquish a persistent Resistance boost.
status: done
---
# US-001: Opt into Leaf protection
As a **player**, I want to opt into Leaf protection so that I can receive a modest defensive boost while playing on a hard server.
## Acceptance criteria
- [x] Players with the `leaf.use` permission, granted by default, can use `/leaf on`, `/leaf off`, and `/leaf status`.
- [x] `/leaf on` records the player's opt-in choice and grants Resistance I while Leaf is globally enabled.
- [x] Resistance remains continuously effective without distracting expiry or renewal messages or particles.
- [x] `/leaf off` records the player's opt-out choice and immediately removes only the Resistance effect managed by Leaf.
- [x] `/leaf status` clearly distinguishes the player's saved choice, active protection, administrative lock, and global Leaf state.
- [x] Repeating an already-satisfied `on` or `off` command is safe and explains that no change was needed.
- [x] Opt-in choices are keyed by UUID and survive logout and server restart.
- [x] A player who joins while opted in regains protection when Leaf is enabled.
- [x] Player-command autocomplete suggests only valid next arguments available to the sender.
- [x] Opted-in players receive quiet Strength I alongside Resistance I by default.
- [x] Player status reports active protection only when both configured Leaf effects are effective.
- [x] Missing Leaf effects are restored for opted-in online players within approximately one second after death, milk, commands, or plugins clear them.
- [x] Recovery remains suppressed while Leaf is globally disabled or the player is opted out.
## Related
- [US-002: Relinquish protection when attacking](us-002-relinquish-protection-when-attacking.md)
- [US-003: Identify protected players](us-003-identify-protected-players.md)
- [US-005: Administer Leaf](us-005-administer-leaf.md)