diff --git a/apps/server/src/network/handlers/game/input/registerMoveInputHandler.ts b/apps/server/src/network/handlers/game/input/registerMoveInputHandler.ts deleted file mode 100644 index 596a67b..0000000 --- a/apps/server/src/network/handlers/game/input/registerMoveInputHandler.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * registerMoveInputHandler - * MOVE入力イベントの購読とユースケース連携を登録する - */ -import { protocol, type playerTypes } from "@repo/shared"; -import type { - BombPlacementPort, - MovePlayerPort, - ReadyForGamePort, - StartGamePort, -} from "@server/domains/game/application/ports/gameUseCasePorts"; -import { movePlayerUseCase } from "@server/domains/game/application/useCases/movePlayerUseCase"; - -type RegisterMoveInputHandlerParams = { - socketId: string; - gameManager: StartGamePort & ReadyForGamePort & MovePlayerPort & BombPlacementPort; - onEvent: (event: typeof protocol.SocketEvents.MOVE, listener: (payload: unknown) => void) => void; - guardMovePayload: (payload: unknown) => payload is playerTypes.MovePayload; -}; - -/** MOVE入力を検証しプレイヤー移動ユースケースへ連携する */ -export const registerMoveInputHandler = ({ - socketId, - gameManager, - onEvent, - guardMovePayload, -}: RegisterMoveInputHandlerParams): void => { - onEvent(protocol.SocketEvents.MOVE, (data) => { - if (!guardMovePayload(data)) { - return; - } - - movePlayerUseCase({ - gameManager, - playerId: socketId, - move: data, - }); - }); -}; diff --git a/apps/server/src/network/handlers/game/input/registerPlaceBombInputHandler.ts b/apps/server/src/network/handlers/game/input/registerPlaceBombInputHandler.ts deleted file mode 100644 index 216018c..0000000 --- a/apps/server/src/network/handlers/game/input/registerPlaceBombInputHandler.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * registerPlaceBombInputHandler - * PLACE_BOMB入力イベントの購読とユースケース連携を登録する - */ -import { protocol, type PlaceBombPayload } from "@repo/shared"; -import type { - BombPlacementPort, - BombOutputPort, - MovePlayerPort, - ReadyForGamePort, - StartGamePort, -} from "@server/domains/game/application/ports/gameUseCasePorts"; -import type { - FindRoomByOwnerPort, - FindRoomByPlayerPort, - RoomPhaseTransitionPort, -} from "@server/domains/room/application/ports/roomUseCasePorts"; -import { placeBombUseCase } from "@server/domains/game/application/useCases/placeBombUseCase"; - -type RegisterPlaceBombInputHandlerParams = { - socketId: string; - gameManager: StartGamePort & ReadyForGamePort & MovePlayerPort & BombPlacementPort; - roomManager: FindRoomByOwnerPort & FindRoomByPlayerPort & RoomPhaseTransitionPort; - output: BombOutputPort; - onEvent: (event: typeof protocol.SocketEvents.PLACE_BOMB, listener: (payload: unknown) => void) => void; - guardPlaceBombPayload: (payload: unknown) => payload is PlaceBombPayload; -}; - -/** PLACE_BOMB入力を検証し,所属ルームへ同期配信する */ -export const registerPlaceBombInputHandler = ({ - socketId, - gameManager, - roomManager, - output, - onEvent, - guardPlaceBombPayload, -}: RegisterPlaceBombInputHandlerParams): void => { - onEvent(protocol.SocketEvents.PLACE_BOMB, (data) => { - if (!guardPlaceBombPayload(data)) { - return; - } - - placeBombUseCase({ - roomResolver: roomManager, - bombStore: gameManager, - input: { - socketId, - payload: data, - nowMs: Date.now(), - }, - output, - }); - }); -}; diff --git a/apps/server/src/network/handlers/game/registerGameHandlers.ts b/apps/server/src/network/handlers/game/registerGameHandlers.ts index 7d3adc5..525b6d9 100644 --- a/apps/server/src/network/handlers/game/registerGameHandlers.ts +++ b/apps/server/src/network/handlers/game/registerGameHandlers.ts @@ -17,13 +17,13 @@ ReadyForGamePort, StartGamePort, } from "@server/domains/game/application/ports/gameUseCasePorts"; +import { movePlayerUseCase } from "@server/domains/game/application/useCases/movePlayerUseCase"; +import { placeBombUseCase } from "@server/domains/game/application/useCases/placeBombUseCase"; import { pingUseCase } from "@server/domains/game/application/useCases/pingUseCase"; import { createCommonHandlerContext } from "@server/network/handlers/CommonHandler"; import { isMovePayload, isPingPayload, isPlaceBombPayload } from "@server/network/validation/socketPayloadValidators"; import { createServerSocketOnBridge } from "@server/network/handlers/socketEventBridge"; import { createPayloadGuard } from "@server/network/handlers/payloadGuard"; -import { registerMoveInputHandler } from "./input/registerMoveInputHandler"; -import { registerPlaceBombInputHandler } from "./input/registerPlaceBombInputHandler"; import { createGameOutputAdapter } from "./createGameOutputAdapter"; /** ゲーム受信イベントごとの入力検証関数を保持するテーブル */ @@ -88,19 +88,34 @@ }); }); - registerMoveInputHandler({ - socketId: socket.id, - gameManager, - onEvent, - guardMovePayload, + // 移動入力を検証しプレイヤー移動ユースケースへ連携する + onEvent(protocol.SocketEvents.MOVE, (data) => { + if (!guardMovePayload(data)) { + return; + } + + movePlayerUseCase({ + gameManager, + playerId: socket.id, + move: data, + }); }); - registerPlaceBombInputHandler({ - socketId: socket.id, - gameManager, - roomManager, - output: gameOutputAdapter, - onEvent, - guardPlaceBombPayload, + // 爆弾設置入力を検証し,所属ルームへ同期配信する + onEvent(protocol.SocketEvents.PLACE_BOMB, (data) => { + if (!guardPlaceBombPayload(data)) { + return; + } + + placeBombUseCase({ + roomResolver: roomManager, + bombStore: gameManager, + input: { + socketId: socket.id, + payload: data, + nowMs: Date.now(), + }, + output: gameOutputAdapter, + }); }); };