diff --git a/apps/client/src/network/SocketClient.ts b/apps/client/src/network/SocketClient.ts index 8112676..efad8fd 100644 --- a/apps/client/src/network/SocketClient.ts +++ b/apps/client/src/network/SocketClient.ts @@ -1,7 +1,8 @@ import { io, Socket } from "socket.io-client"; import { SocketEvents } from "@repo/shared/src/protocol/events"; -import type { PlayerData } from "@repo/shared/src/types/player"; +import type { MovePayload, PlayerData } from "@repo/shared/src/types/player"; import type { CellUpdate } from "@repo/shared/src/types/map"; +import type { Room, JoinRoomPayload } from "@repo/shared/src/types/room"; /** * サーバー WebSocket 通信管理クラス @@ -33,7 +34,7 @@ /** * 初期プレイヤー一覧受信イベント購読 */ - onCurrentPlayers(callback: (players: any) => void) { + onCurrentPlayers(callback: (players: PlayerData[] | Record) => void) { this.socket.on(SocketEvents.CURRENT_PLAYERS, callback); } @@ -47,7 +48,7 @@ /** * 他プレイヤー状態更新イベント購読 */ - onUpdatePlayer(callback: (data: any) => void) { + onUpdatePlayer(callback: (data: Partial & { id: string }) => void) { this.socket.on(SocketEvents.UPDATE_PLAYER, callback); } @@ -64,7 +65,8 @@ * @param y 現在のY座標 */ sendMove(x: number, y: number) { - this.socket.emit(SocketEvents.MOVE, { x, y }); + const payload: MovePayload = { x, y }; + this.socket.emit(SocketEvents.MOVE, payload); } /** @@ -80,13 +82,14 @@ * @param playerName 表示名 */ joinRoom(roomId: string, playerName: string) { - this.socket.emit(SocketEvents.JOIN_ROOM, { roomId, playerName }); + const payload: JoinRoomPayload = { roomId, playerName }; + this.socket.emit(SocketEvents.JOIN_ROOM, payload); } /** * ルーム情報更新イベント購読 */ - onRoomUpdate(callback: (room: any) => void) { + onRoomUpdate(callback: (room: Room) => void) { this.socket.on(SocketEvents.ROOM_UPDATE, callback); } diff --git a/apps/client/src/scenes/TitleScene.tsx b/apps/client/src/scenes/TitleScene.tsx index a703ccd..bf8b5f1 100644 --- a/apps/client/src/scenes/TitleScene.tsx +++ b/apps/client/src/scenes/TitleScene.tsx @@ -1,6 +1,6 @@ import { useState } from "react"; // ルーム参加時送信ペイロード型 -import type { JoinRoomPayload } from "@repo/shared/src/types/payloads"; +import type { JoinRoomPayload } from "@repo/shared/src/types/room"; type Props = { // 入室実行時呼び出しコールバック diff --git a/apps/server/src/handlers/GameHandler.ts b/apps/server/src/handlers/GameHandler.ts index 1ff30ac..a555402 100644 --- a/apps/server/src/handlers/GameHandler.ts +++ b/apps/server/src/handlers/GameHandler.ts @@ -3,7 +3,7 @@ import { RoomManager } from "../managers/RoomManager.js"; import { SocketEvents } from "@repo/shared/src/protocol/events"; import { RoomStatus } from "@repo/shared/src/types/room"; -import type { MovePayload } from "@repo/shared/src/types/payloads"; +import type { MovePayload } from "@repo/shared/src/types/player"; export const registerGameHandlers = (io: Server, socket: Socket, gameManager: GameManager, roomManager: RoomManager) => { diff --git a/apps/server/src/handlers/RoomHandler.ts b/apps/server/src/handlers/RoomHandler.ts index e5f6ebe..6a239a3 100644 --- a/apps/server/src/handlers/RoomHandler.ts +++ b/apps/server/src/handlers/RoomHandler.ts @@ -1,7 +1,7 @@ import { Server, Socket } from "socket.io"; import { RoomManager } from "../managers/RoomManager.js"; import { SocketEvents } from "@repo/shared/src/protocol/events"; -import type { JoinRoomPayload } from "@repo/shared/src/types/payloads"; +import type { JoinRoomPayload } from "@repo/shared/src/types/room"; export const registerRoomHandlers = (io: Server, socket: Socket, roomManager: RoomManager) => { diff --git a/packages/shared/src/types/payloads.ts b/packages/shared/src/types/payloads.ts deleted file mode 100644 index 7d986cb..0000000 --- a/packages/shared/src/types/payloads.ts +++ /dev/null @@ -1,11 +0,0 @@ -// 移動イベント送信ペイロード型 -export interface MovePayload { - x: number; - y: number; -} - -// ルーム参加時送信ペイロード型 -export interface JoinRoomPayload { - roomId: string; - playerName: string; -} \ No newline at end of file diff --git a/packages/shared/src/types/player.ts b/packages/shared/src/types/player.ts index 7c465ca..ff22892 100644 --- a/packages/shared/src/types/player.ts +++ b/packages/shared/src/types/player.ts @@ -4,4 +4,10 @@ x: number; y: number; teamId: number; // 0〜3 のチームID +} + +// 移動イベント送信ペイロード型 +export interface MovePayload { + x: number; + y: number; } \ No newline at end of file diff --git a/packages/shared/src/types/room.ts b/packages/shared/src/types/room.ts index 6cf056b..9f88187 100644 --- a/packages/shared/src/types/room.ts +++ b/packages/shared/src/types/room.ts @@ -30,3 +30,9 @@ status: RoomStatus; maxPlayers: number; } + +// ルーム参加時送信ペイロード型 +export interface JoinRoomPayload { + roomId: string; + playerName: string; +} \ No newline at end of file