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

9.1 KiB

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

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

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