44 lines
2.9 KiB
Markdown
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)
|