Priority: MEDIUM
Status: TODO
Required for: #41 (Rest Commands), #43 (Interrupted Rests)
Description
Create a simple party targeting system to group players for command execution (rests, buffs, etc.).
Scope
This is NOT the full party management system from Issue #19. This is just a lightweight targeting/grouping system for DM commands.
Commands
/party create <name> - Create a party
/party disband <name> - Remove a party
/party add <party> <player...> - Add player(s) to party
/party remove <party> <player...> - Remove player(s) from party
/party list - Show all parties
/party info <party> - Show party members with character info
Command Examples
/party create knights_of_mortimer
/party create "Tale of Seekers"
/party add knights_of_mortimer charlie astra
/party add "Tale of Seekers" astra diana elara
/party list
/party info knights_of_mortimer
/party remove knights_of_mortimer charlie
/party disband "Tale of Seekers"
Features
- Party names support spaces with quotes:
"Knights of Mortimer" or knights_of_mortimer
- Players can be in multiple parties
- Tab completion for party names and player names
- Persistent storage in
parties.yml
Acceptance Criteria
Storage Format (parties.yml)
parties:
knights_of_mortimer:
- uuid-1 # Charlie
- uuid-2 # Astra
tale_of_seekers:
- uuid-2 # Astra (in both!)
- uuid-3 # Diana
Validation
- Party names: Letters, numbers, spaces, underscores, hyphens only
- Regex:
^[a-zA-Z0-9_ -]+$
- Cannot create duplicate party names (case-insensitive check)
- Cannot add offline/non-existent players
Display Format
/party list output:
Active Parties:
• Knights of Mortimer (3 members)
• Tale of Seekers (4 members)
/party info knights_of_mortimer output:
═══════════════════════════════
Party: Knights of Mortimer
Members (3):
• Charlie (Bard, Level 1)
• Astra (Fighter, Level 1)
• Bjorn (Barbarian, Level 1)
═══════════════════════════════
Technical Notes
- Store in
PartyManager similar to CharacterSheetManager
- Load/save via
PartyPersistenceLoader
- Data structure:
Map<String, List<UUID>>
- Cache party membership for fast lookups
Related
Priority: MEDIUM
Status: TODO
Required for: #41 (Rest Commands), #43 (Interrupted Rests)
Description
Create a simple party targeting system to group players for command execution (rests, buffs, etc.).
Scope
This is NOT the full party management system from Issue #19. This is just a lightweight targeting/grouping system for DM commands.
Commands
/party create <name>- Create a party/party disband <name>- Remove a party/party add <party> <player...>- Add player(s) to party/party remove <party> <player...>- Remove player(s) from party/party list- Show all parties/party info <party>- Show party members with character infoCommand Examples
Features
"Knights of Mortimer"orknights_of_mortimerparties.ymlAcceptance Criteria
parties.ymlStorage Format (parties.yml)
Validation
^[a-zA-Z0-9_ -]+$Display Format
/party listoutput:/party info knights_of_mortimeroutput:Technical Notes
PartyManagersimilar toCharacterSheetManagerPartyPersistenceLoaderMap<String, List<UUID>>Related