feat(items): secure bound ability inventory
Release / release (push) Successful in 2m7s
CI / build (push) Successful in 1m0s

This commit is contained in:
dmg
2026-08-14 23:21:05 -04:00
parent 777cbc6b4b
commit fe07c202f9
8 changed files with 112 additions and 16 deletions
@@ -2,7 +2,7 @@
type: User Story
title: "US-014: Use class ability items"
description: Give class holders named bound items that activate abilities without enabling transfer or cooldown bypasses.
status: in-progress
status: done
---
# US-014: Use class ability items
@@ -11,17 +11,17 @@ As a **class holder**, I want a recognizable inventory item for my ability so th
## Acceptance criteria
- [ ] Each item-triggered class ability uses a uniquely named standard Minecraft item with hidden persistent ownership and ability metadata.
- [ ] Right-clicking or swinging the appropriate item activates the ability without also performing an unsafe vanilla action.
- [ ] Another player cannot activate, retain, craft with, place, store, frame, dispense, or otherwise transfer a bound ability item.
- [ ] A cooldown ability item disappears only after successful activation and is restored when the cooldown finishes.
- [ ] The Tamer's named fishing rod has no cooldown and remains available after successful capture or placement.
- [ ] A dropped class ability item vanishes immediately; a dropped captured-mob item instead attempts to spawn its mob safely.
- [ ] `/tyrant item` restores currently available missing class items but cannot bypass cooldowns or create duplicates.
- [ ] Missing ready items are restored on login and cooldown completion when inventory space is available.
- [ ] When delivery fails because the inventory is full, no item is dropped and the player is told both why and how to use `/tyrant item` after making room.
- [ ] Bound class items are removed when a player loses the class or the Tyrant's reign ends.
- [ ] Death, inventory movement, server restart, repeated commands, and concurrent events cannot duplicate a bound item or its captured mob.
- [x] Each item-triggered class ability uses a uniquely named standard Minecraft item with hidden persistent ownership and ability metadata.
- [x] Right-clicking or swinging the appropriate item activates the ability without also performing an unsafe vanilla action.
- [x] Another player cannot activate, retain, craft with, place, store, frame, dispense, or otherwise transfer a bound ability item.
- [x] A cooldown ability item disappears only after successful activation and is restored when the cooldown finishes.
- [x] The Tamer's named fishing rod has no cooldown and remains available after successful capture or placement.
- [x] A dropped class ability item vanishes immediately; a dropped captured-mob item instead attempts to spawn its mob safely.
- [x] `/tyrant item` restores currently available missing class items but cannot bypass cooldowns or create duplicates.
- [x] Missing ready items are restored on login and cooldown completion when inventory space is available.
- [x] When delivery fails because the inventory is full, no item is dropped and the player is told both why and how to use `/tyrant item` after making room.
- [x] Bound class items are removed when a player loses the class or the Tyrant's reign ends.
- [x] Death, inventory movement, server restart, repeated commands, and concurrent events cannot duplicate a bound item or its captured mob.
## Related