Priority: MEDIUM
Status: TODO
Depends on: #46 (DM Role Management)
Description
Add commands for DMs to view any saved character sheet (by character name OR player name) and for giving character sheet paper items to players (useful when they lose theirs).
Commands
View Character Sheet
/viewsheet <characterName> - View any saved character by name (DM only)
/viewsheet player <playerName> - View player's character (DM only)
/viewsheet - Open your own character sheet (if you have one)
Give Character Sheet Item
/givesheet <player> <characterName> - Give character sheet paper item
Command Examples
# DM views character by name (works for NPCs, offline players, etc.)
/viewsheet "Bjorn the Bold"
→ Opens Bjorn's character sheet directly
/viewsheet Gandalf
→ Opens NPC Gandalf's character sheet
# DM views all characters owned by a player
/viewsheet player charlie
→ Opens selection menu if Charlie has multiple characters
→ Opens character sheet directly if Charlie has one character
# Player opens their own sheet
/viewsheet
→ Opens your character sheet (if you have one)
→ Shows selection menu if you have multiple characters
# DM gives Charlie their lost character sheet paper
/givesheet charlie "Bjorn the Bold"
→ Gives Bjorn's character sheet paper to Charlie
Acceptance Criteria
Use Cases
- DM Rulings - "What's Bjorn's AC again?" →
/viewsheet Bjorn
- NPC Management - View NPC character sheet for combat →
/viewsheet "Goblin Chief"
- Offline Players - Check character when player isn't online →
/viewsheet "Elara Moonwhisper"
- Lost Paper Item - "I lost my character sheet!" →
/givesheet charlie "Bjorn the Bold"
- Quick Self-View - Player checks stats →
/viewsheet
- Browse All Player Chars -
/viewsheet player charlie → see all Charlie's characters
Tab Completion
/viewsheet <TAB>
→ All saved character names (Bjorn the Bold, Elara, Gandalf, etc.)
→ "player" keyword
/viewsheet player <TAB>
→ All player names (charlie, astra, diana, etc.)
/givesheet charlie <TAB>
→ All saved character names
Technical Notes
- Need to add
CharacterSheetManager.getAllCharacterNames() for tab completion
- Need to add
CharacterSheetManager.getCharacterByName(String name) for lookup
- Reuse
ViewCharacterSheetMenu.open(player, characterId) for display
- Handle characters with spaces using quoted strings
- Paper item creation already exists in
CharacterSheetItemListener
Character Lookup Strategy
/viewsheet "Bjorn the Bold" → Search all characters by name
/viewsheet player charlie → Search characters owned by player UUID
/viewsheet → Get player's own characters
Permissions
Related Issues
Future Enhancements
/viewsheet list - Show all saved characters
/viewsheet search <query> - Search characters by name/class/race
/comparesheet <char1> <char2> - Compare two character sheets
/exportsheet <characterName> - Export to JSON/PDF
Priority: MEDIUM
Status: TODO
Depends on: #46 (DM Role Management)
Description
Add commands for DMs to view any saved character sheet (by character name OR player name) and for giving character sheet paper items to players (useful when they lose theirs).
Commands
View Character Sheet
Give Character Sheet Item
Command Examples
Acceptance Criteria
/viewsheet <characterName>- View any character by name (DM only)/viewsheet player <playerName>- View player's characters (DM only)/viewsheet- Player views own character (any player)/givesheet <player> <characterName>- Give character sheet paper item (DM only)ViewCharacterSheetMenuisDM()from Issue DM Role Management System #46Use Cases
/viewsheet Bjorn/viewsheet "Goblin Chief"/viewsheet "Elara Moonwhisper"/givesheet charlie "Bjorn the Bold"/viewsheet/viewsheet player charlie→ see all Charlie's charactersTab Completion
Technical Notes
CharacterSheetManager.getAllCharacterNames()for tab completionCharacterSheetManager.getCharacterByName(String name)for lookupViewCharacterSheetMenu.open(player, characterId)for displayCharacterSheetItemListenerCharacter Lookup Strategy
/viewsheet "Bjorn the Bold"→ Search all characters by name/viewsheet player charlie→ Search characters owned by player UUID/viewsheet→ Get player's own charactersPermissions
/viewsheet <characterName>- RequiresisDM()(Issue DM Role Management System #46)/viewsheet player <playerName>- RequiresisDM()(Issue DM Role Management System #46)/viewsheet(self) - Any player with a character/givesheet- RequiresisDM()(Issue DM Role Management System #46)Related Issues
isDM()check)Future Enhancements
/viewsheet list- Show all saved characters/viewsheet search <query>- Search characters by name/class/race/comparesheet <char1> <char2>- Compare two character sheets/exportsheet <characterName>- Export to JSON/PDF