Unify all handler signatures and simplify router

- Standardize all handlers to signature: (query, user_id, player, data=None)
- Replace 125-line if/elif chain with HANDLER_MAP dictionary
- Reduce router code by 90 lines (72% reduction)
- Add HANDLER_MAP registry for cleaner organization
- Enable future auto-discovery and decorator patterns
- Maintain full backward compatibility
- Document changes in HANDLER_REFACTORING_V2.md

Benefits:
- O(1) handler lookup vs O(n) if/elif chain
- Add new handlers by just updating the map
- Consistent signature makes code easier to understand
- Opens doors for middleware and hooks
This commit is contained in:
Joan
2025-10-20 12:22:07 +02:00
parent 39f3be6980
commit c0783340b0
6 changed files with 307 additions and 109 deletions

View File

@@ -10,8 +10,8 @@ from data.items import ITEMS
logger = logging.getLogger(__name__)
async def handle_inventory_menu(query, user_id: int, player: dict):
"""Show player inventory."""
async def handle_inventory_menu(query, user_id: int, player: dict, data: list = None):
"""Display player inventory with item management options."""
await query.answer()
inventory_items = await database.get_inventory(user_id)