Files
spigot-tyrant/design/user-stories/us-017-use-bound-role-control-items.md
T

44 lines
2.9 KiB
Markdown

---
type: User Story
title: "US-017: Use bound role control items"
description: Give the active Tyrant and Vigilante secure inventory items that open their control panels.
status: done
---
# US-017: Use bound role control items
As a **Tyrant or Vigilante**, I want a bound role item that opens my control panel so that I can access role controls without typing a command.
## Acceptance criteria
- [x] A player receives the appropriate control item when becoming the active Tyrant or Vigilante.
- [x] The Tyrant control item opens the Tyrant control panel when used.
- [x] The Vigilante control item opens the Vigilante control panel when used.
- [x] The Tyrant control item defaults to a Nether Star named `Tyrant Control`.
- [x] The Vigilante control item defaults to a Compass named `Vigilante Control`.
- [x] Each item's material and name are configurable, and hidden metadata identifies its owner, associated role, and the plugin.
- [x] Only the current role holder identified by the item's metadata can use the item.
- [x] A former role holder or another player cannot use or retain the item.
- [x] `/tyrant item` restores a missing Tyrant control item in addition to existing eligible class items.
- [x] `/vigilante item` restores a missing Vigilante control item.
- [x] Recovery commands cannot create duplicate control items.
- [x] Using a recovery command while the inventory is full does not drop the item and explains how to retry.
- [x] A role control item cannot be placed, crafted with, stored, framed, dispensed, transferred, or moved into another inventory.
- [x] Dropping a role control item removes it immediately rather than creating a transferable dropped item.
- [x] If a role control item leaves its owner's inventory during death or another inventory event, it is removed and may be recovered after respawn.
- [x] A missing role control item is restored automatically on login or role assignment when inventory space is available.
- [x] Every copy is removed immediately when the player loses the associated role.
- [x] Repeated commands, role transitions, death, logout, restart, and concurrent inventory events cannot duplicate role control items.
- [x] Existing `/tyrant`, `/tyrant menu`, `/vigilante`, and `/vigilante menu` control-panel access remains available.
## Validation
Automated tests verify role eligibility, paused-role retention, reconciliation and recovery, panel activation, role-specific commands, and configuration defaults. Inventory listeners cover transfer and departure paths, and the complete `./gradlew clean check jar` lifecycle passes.
## Related
- [Manage a reign through the Tyrant control panel](us-015-manage-tyrant-control-panel.md)
- [Manage Followers through the Vigilante control panel](us-016-manage-vigilante-control-panel.md)
- [Use class ability items](us-014-use-class-ability-items.md)
- [Configure and persist game state](us-012-configure-and-persist-state.md)