Migrate existing CommandHandler subclasses to CommandRouter registration #103

Open
opened 2026-03-15 04:13:14 +00:00 by freemo · 0 comments
Owner

Metadata

  • Commit Message: refactor(dispatch): migrate command handlers to CommandRouter
  • Branch: feature/m1-command-router

Background and Context

All existing CommandHandler subclasses under lib/aethyr/core/input_handlers/ must
be migrated to use CommandRouter registration instead of the Wisper pub/sub pattern.
This includes ~50 player command handlers, ~34 emote handlers, and ~34 admin handlers.

Expected Behavior

  • Each handler's command keywords are registered with CommandRouter
  • Player#handle_input calls CommandRouter.dispatch instead of broadcasting :player_input
  • The legacy CommandHandler base class and Wisper subscriptions are removed
  • All existing BDD tests pass with the new dispatch mechanism

Acceptance Criteria

  • All commands dispatch through CommandRouter
  • Wisper :player_input broadcast removed from Player
  • Legacy CommandHandler base class deprecated
  • Full BDD test suite passes

Subtasks

  • Update Player#handle_input to use CommandRouter.dispatch
  • Migrate movement commands
  • Migrate communication commands
  • Migrate inventory/equipment commands
  • Migrate combat commands
  • Migrate emote commands
  • Migrate admin commands
  • Migrate utility/info commands
  • Remove legacy CommandHandler infrastructure
  • Run full test suite, fix regressions

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the
    Commit Message in Metadata exactly.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata.
  • The commit is submitted as a pull request to master, reviewed, and merged.
## Metadata - **Commit Message**: `refactor(dispatch): migrate command handlers to CommandRouter` - **Branch**: `feature/m1-command-router` ## Background and Context All existing `CommandHandler` subclasses under `lib/aethyr/core/input_handlers/` must be migrated to use `CommandRouter` registration instead of the Wisper pub/sub pattern. This includes ~50 player command handlers, ~34 emote handlers, and ~34 admin handlers. ## Expected Behavior - Each handler's command keywords are registered with `CommandRouter` - `Player#handle_input` calls `CommandRouter.dispatch` instead of broadcasting `:player_input` - The legacy `CommandHandler` base class and Wisper subscriptions are removed - All existing BDD tests pass with the new dispatch mechanism ## Acceptance Criteria - All commands dispatch through CommandRouter - Wisper `:player_input` broadcast removed from Player - Legacy CommandHandler base class deprecated - Full BDD test suite passes ## Subtasks - [ ] Update Player#handle_input to use CommandRouter.dispatch - [ ] Migrate movement commands - [ ] Migrate communication commands - [ ] Migrate inventory/equipment commands - [ ] Migrate combat commands - [ ] Migrate emote commands - [ ] Migrate admin commands - [ ] Migrate utility/info commands - [ ] Remove legacy CommandHandler infrastructure - [ ] Run full test suite, fix regressions ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged**.
freemo added this to the (deleted) milestone 2026-03-15 04:13:14 +00:00
freemo self-assigned this 2026-03-15 04:25:24 +00:00
freemo modified the milestone from (deleted) to v1.0.0 2026-03-16 00:28:03 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#103
No description provided.