--- 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)