major-domo-v2/COMMAND_LIST.md
Cal Corum 2409c27c1d CLAUDE: Add comprehensive scorecard submission system
Implements full Google Sheets scorecard submission with:
- Complete game data extraction (68 play fields, pitching decisions, box score)
- Transaction rollback support at 3 states (plays/game/complete)
- Duplicate game detection with confirmation dialog
- Permission-based submission (GMs only)
- Automated results posting to news channel
- Automatic standings recalculation
- Key plays display with WPA sorting

New Components:
- Play, Decision, Game models with full validation
- SheetsService for Google Sheets integration
- GameService, PlayService, DecisionService for data management
- ConfirmationView for user confirmations
- Discord helper utilities for channel operations

Services Enhanced:
- StandingsService: Added recalculate_standings() method
- CustomCommandsService: Fixed creator endpoint path
- Team/Player models: Added helper methods for display

Configuration:
- Added SHEETS_CREDENTIALS_PATH environment variable
- Added SBA_NETWORK_NEWS_CHANNEL and role constants
- Enabled pygsheets dependency

Documentation:
- Comprehensive README updates across all modules
- Added command, service, model, and view documentation
- Detailed workflow and error handling documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 00:21:32 -05:00

387 lines
9.1 KiB
Markdown

# Discord Bot v2.0 - Complete Command List
**Generated:** January 2025
**Bot Version:** 2.0
**Total Commands:** 55+ slash commands
---
## 📊 League Information Commands
### `/league`
Display current league status and information
### `/standings`
Display league standings
### `/playoff-picture`
Display current playoff picture
### `/schedule`
Display game schedule
### `/results`
Display recent game results
---
## 👥 Player Commands
### `/player <name>`
Display player information and statistics
- **Parameters:** Player name (autocomplete enabled)
---
## 🏟️ Team Commands
### `/team <abbrev> [season]`
Display team information
- **Parameters:**
- `abbrev`: Team abbreviation (e.g., NYY, BOS, LAD)
- `season`: Season to show (optional, defaults to current)
### `/teams [season]`
List all teams in a season
- **Parameters:**
- `season`: Season to list (optional, defaults to current)
### `/roster <abbrev> [roster_type]`
Display team roster
- **Parameters:**
- `abbrev`: Team abbreviation
- `roster_type`: Current or Next week (optional)
---
## 🔄 Transaction Commands
### `/mymoves`
View your pending and scheduled transactions
### `/legal`
Check roster legality for current and next week
### `/dropadd`
Build a transaction for next week
### `/cleartransaction`
Clear your current transaction builder
---
## 🤝 Trade Commands
### `/trade initiate <other_team>`
Start a new trade with another team
- **Parameters:**
- `other_team`: Team abbreviation (autocomplete enabled)
- **Creates:** Dedicated trade discussion channel
### `/trade add-team <other_team>`
Add another team to your current trade (for 3+ team trades)
- **Parameters:**
- `other_team`: Team abbreviation (autocomplete enabled)
### `/trade add-player <player_name> <destination_team>`
Add a player to the trade
- **Parameters:**
- `player_name`: Player name (autocomplete enabled)
- `destination_team`: Team abbreviation (autocomplete enabled)
### `/trade supplementary <player_name> <destination>`
Add a supplementary move within your organization for roster legality
- **Parameters:**
- `player_name`: Player name (autocomplete enabled)
- `destination`: Major League, Minor League, or Free Agency
### `/trade view`
View your current trade
### `/trade clear`
Clear your current trade and delete associated channel
---
## 🎲 Dice Rolling Commands
### `/roll <dice>`
Roll polyhedral dice using XdY notation (e.g., 2d6, 1d20, 3d8)
- **Parameters:**
- `dice`: Dice notation (e.g., "2d6", "1d6;2d6;1d20")
### `/ab`
Roll baseball at-bat dice (1d6;2d6;1d20)
### `/scout <card_type>`
Roll weighted scouting dice (1d6;2d6;1d20) based on card type
- **Parameters:**
- `card_type`: Batter (1-3 first d6) or Pitcher (4-6 first d6)
### `/fielding <position>`
Roll Super Advanced fielding dice for a defensive position
- **Parameters:**
- `position`: C, 1B, 2B, 3B, SS, LF, CF, RF
---
## ⚙️ Utility Commands
### `/weather [team_abbrev]`
Roll ballpark weather for a team
- **Parameters:**
- `team_abbrev`: Team abbreviation (optional, auto-detects from channel/user)
### `/charts <chart_name>`
Display a gameplay chart or infographic
- **Parameters:**
- `chart_nam e`: Name of chart (autocomplete enabled)
---
## 🗣️ Voice Channel Commands
### `/voice-channel public`
Create a public voice channel for gameplay
- **Auto-cleanup:** Deletes after 15 minutes of being empty
### `/voice-channel private`
Create a private team vs team voice channel
- **Permissions:** Only team members can speak, others can listen
- **Auto-detection:** Automatically finds your opponent from schedule
- **Auto-cleanup:** Deletes after 15 minutes of being empty
---
## 📝 Custom Commands
### `/cc <name>`
Execute a custom command
- **Parameters:**
- `name`: Name of custom command to execute
### `/cc-create`
Create a new custom command
- Opens interactive modal for input
### `/cc-edit <name>`
Edit one of your custom commands
- **Parameters:**
- `name`: Name of command to edit
### `/cc-delete <name>`
Delete one of your custom commands
- **Parameters:**
- `name`: Name of command to delete
### `/cc-mine`
View and manage your custom commands
### `/cc-list`
Browse all custom commands
### `/cc-search`
Advanced search for custom commands
### `/cc-info <name>`
Get detailed information about a custom command
- **Parameters:**
- `name`: Name of command
---
## 📚 Help System Commands
### `/help [topic]`
View help topics or list all available help
- **Parameters:**
- `topic`: Specific help topic (optional, autocomplete enabled)
### `/help-create`
Create a new help topic (admin/help editor only)
- Opens interactive modal for input
### `/help-edit <topic>`
Edit an existing help topic (admin/help editor only)
- **Parameters:**
- `topic`: Topic name to edit (autocomplete enabled)
### `/help-delete <topic>`
Delete a help topic (admin/help editor only)
- **Parameters:**
- `topic`: Topic name to delete (autocomplete enabled)
### `/help-list [category] [show_deleted]`
Browse all help topics
- **Parameters:**
- `category`: Filter by category (optional)
- `show_deleted`: Include deleted topics (optional, admin only)
---
## 🖼️ Profile Management Commands
### `/set-image <image_type> <player_name> <image_url>`
Update a player's fancy card or headshot image
- **Parameters:**
- `image_type`: Fancy Card or Headshot
- `player_name`: Player name (autocomplete enabled)
- `image_url`: URL to image
- **Permissions:**
- Regular users: Can update players in their organization (ML/MiL/IL)
- Administrators: Can update any player
- **Validation:** Checks URL accessibility and content-type
---
## 🎭 Meme Commands
### `/lastsoak`
Get information about the last soak mention
- Displays last player to say the forbidden word
- Shows disappointment GIF
- Tracks total mentions
---
## 🔧 Admin Commands
### `/admin-status`
Display bot status and system information
### `/admin-help`
Display available admin commands and their usage
### `/admin-reload <cog>`
Reload a specific bot cog
- **Parameters:**
- `cog`: Name of cog to reload
### `/admin-sync`
Sync application commands with Discord
### `/admin-clear <amount>`
Clear messages from the current channel
- **Parameters:**
- `amount`: Number of messages to clear
### `/admin-announce <message>`
Send an announcement to the current channel
- **Parameters:**
- `message`: Announcement text
### `/admin-maintenance`
Toggle maintenance mode for the bot
### `/admin-timeout <user> <duration> [reason]`
Timeout a user for a specified duration
- **Parameters:**
- `user`: User to timeout
- `duration`: Duration (e.g., "10m", "1h", "1d")
- `reason`: Optional reason
### `/admin-untimeout <user>`
Remove timeout from a user
- **Parameters:**
- `user`: User to remove timeout from
### `/admin-kick <user> [reason]`
Kick a user from the server
- **Parameters:**
- `user`: User to kick
- `reason`: Optional reason
### `/admin-ban <user> [reason]`
Ban a user from the server
- **Parameters:**
- `user`: User to ban
- `reason`: Optional reason
### `/admin-unban <user_id>`
Unban a user from the server
- **Parameters:**
- `user_id`: Discord user ID to unban
### `/admin-userinfo <user>`
Display detailed information about a user
- **Parameters:**
- `user`: User to get info about
---
## 🛠️ Admin - Chart Management Commands
### `/chart-add <key> <name> <category> <url> [description]`
[Admin] Add a new chart to the library
- **Parameters:**
- `key`: Unique identifier (e.g., 'rest', 'sac-bunt')
- `name`: Display name
- `category`: gameplay, defense, reference, stats
- `url`: Image URL
- `description`: Optional description
### `/chart-remove <key>`
[Admin] Remove a chart from the library
- **Parameters:**
- `key`: Chart key to remove
### `/chart-list [category]`
[Admin] List all available charts
- **Parameters:**
- `category`: Filter by category (optional)
### `/chart-update <key> [name] [category] [url] [description]`
[Admin] Update a chart's properties
- **Parameters:**
- `key`: Chart key to update
- All other parameters are optional updates
---
## 📊 Command Statistics
- **Total Slash Commands:** 55+
- **Command Groups:** 2 (`/voice-channel`, `/trade`)
- **Admin Commands:** 16
- **User Commands:** 39+
- **Autocomplete Enabled:** 15+ commands
- **Interactive Modals:** 4 commands (cc-create, cc-edit, help-create, help-edit)
---
## 🎯 Key Features
### Autocomplete Support
Commands with autocomplete for better UX:
- Player names
- Team abbreviations
- Chart names
- Help topics
- Custom command names
### Interactive Features
- Trade builder with real-time validation
- Trade discussion channels
- Custom command modals
- Help topic modals
- Confirmation dialogs
### Auto-cleanup Services
- Voice channels (15 min empty threshold)
- Trade discussion channels (on trade clear)
### Permission System
- User-level permissions (own organization players)
- Admin-level permissions (full access)
- Role-based permissions (Help Editor role)
---
## 📝 Notes
- All commands use modern Discord slash command syntax (`/command`)
- Deprecated prefix commands (`!command`) show migration messages
- Most commands use ephemeral responses for privacy
- Comprehensive error handling and validation
- Full logging with trace IDs for debugging