Created comprehensive documentation distinguishing between: - Production cogs currently loaded (cogs.players, etc.) - Work-in-progress refactored cogs (cogs/players_new) - Which bug fixes apply to production vs future releases - Migration checklist for when players_new goes live This prevents confusion when making fixes - developers need to know whether to update cogs/players.py (production) or cogs/players_new/ (WIP) or both. Key insights: - gauntlet commands are in cogs/players.py (production) - cogs/players_new is NOT loaded in paperdynasty.py yet - Recent fixes applied to both for consistency - Migration requires updating COGS list in paperdynasty.py 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.1 KiB
Production Cogs vs Work-in-Progress
Current Production Cogs (from paperdynasty.py:47-53)
The following cogs are loaded in production:
COGS = [
'cogs.owner',
'cogs.admins',
'cogs.economy',
'cogs.players', # ← PRODUCTION gauntlet commands are HERE
'cogs.gameplay',
]
Production Command Structure
Gauntlet Commands (in cogs/players.py):
/gauntlets start- Line 942-1029/gauntlets reset- Line 1031-1081/gauntlets status- Other location in same file
Key Production Functions:
gauntlets.py- Core gauntlet logic (draft, post_result, end_run)helpers.py/helpers/utils.py- Helper functionsutils.py- Base utility functions
Work-in-Progress: cogs/players_new/ Package
NOT LOADED IN PRODUCTION - This is a refactored rebuild of the players cog.
Located in: cogs/players_new/
Structure:
cogs/players_new/
├── __init__.py # Package loader (not used yet)
├── gauntlet.py # Refactored gauntlet commands
├── player_lookup.py # Player search/display
├── paperdex.py # Collection tracking
├── standings_records.py # Standings/records
├── team_management.py # Team management
├── utility_commands.py # Misc utility commands
└── README.md # Documentation
When players_new Goes Live
To activate the refactored cogs, update paperdynasty.py:
COGS = [
'cogs.owner',
'cogs.admins',
'cogs.economy',
'cogs.players_new', # ← Load the package instead of 'cogs.players'
'cogs.gameplay',
]
The __init__.py will automatically load all submodules:
- Gauntlet
- Paperdex
- PlayerLookup
- StandingsRecords
- TeamManagement
- UtilityCommands
Recent Bug Fixes (2025-11-10)
Production Fixes (Active Now)
✅ utils.py & helpers/utils.py - get_roster_sheet() handles both dict and Team objects
✅ gauntlets.py - end_run() sends news-ticker messages for 2-loss completions
✅ cogs/players.py - Updated to call fixed functions
Future-Proofing Fixes (For When WIP Goes Live)
⏭️ cogs/players_new/gauntlet.py - Same fixes applied for future activation
⏭️ cogs/players_new/team_management.py - Uses get_context_user() helper
⏭️ cogs/economy_new/ - Various hybrid command fixes
Testing Checklist for players_new Activation
Before switching to cogs/players_new:
- Command Parity: Verify all commands from
cogs/playersexist and work - Database Compatibility: Ensure Team object vs dict handling is consistent
- News-Ticker Messages: Test gauntlet draft and completion announcements
- Hybrid Commands: Test both prefix and slash command invocations
- Error Handling: Verify all error messages work with Interaction objects
Notes
- Keep both
cogs/players.pyandcogs/players_new/in sync for critical fixes - When making fixes, check if they apply to both versions
- The refactored package provides better organization but same functionality
- Migration can happen gradually by testing individual submodules first
Last Updated: 2025-11-10 Branch: cogs-to-packages