shoehive
Version:
WebSocket-based multiplayer game framework for real-time, event-driven gameplay
40 lines (39 loc) • 1.32 kB
TypeScript
import { Player } from '../core/Player';
import { EventBus } from './EventBus';
export declare class MessageRouter {
private eventBus;
private commandHandlers;
constructor(eventBus: EventBus);
/**
* Register a command handler for a specific action. For example, if you
* want a user to be able to make a choice, you could register `game:choice:make`
* and then handle it in your game logic.
* @param action - The action to register the handler for
* @param handler - The handler function to be called when the action is received
*/
registerCommandHandler({ action, handler, }: {
action: string;
handler: (player: Player, data: Record<string, unknown>) => void;
}): void;
/**
* Register handlers for state request commands
*/
private registerStateCommandHandlers;
/**
* Register handlers for lobby commands
*/
private registerLobbyCommandHandlers;
/**
* Register handlers for table commands
*/
private registerTableCommandHandlers;
/**
* Process a message from the client.
* @param player - The player object
* @param messageStr - The message string to process
*/
processMessage({ player, messageStr }: {
player: Player;
messageStr: string;
}): void;
}