diff --git a/apps/server/src/network/handlers/game/createGameEventPublisher.ts b/apps/server/src/network/handlers/game/createGameEventPublisher.ts index de657b7..408d743 100644 --- a/apps/server/src/network/handlers/game/createGameEventPublisher.ts +++ b/apps/server/src/network/handlers/game/createGameEventPublisher.ts @@ -4,41 +4,49 @@ import { createEmitToAll } from "@server/network/adapters/socketEmitters"; import type { CommonHandlerContext } from "../CommonHandler"; +type RoomId = string; +type SocketId = string; +type PongPayload = { clientTime: number; serverTime: number }; +type GameStartPayload = { startTime: number }; +type CurrentPlayersPayload = playerTypes.PlayerData[]; +type UpdatePlayerPayload = playerTypes.PlayerData; +type MapCellUpdatesPayload = gridMapTypes.CellUpdate[]; + export type GameEventPublisher = { - publishPong: (payload: { clientTime: number; serverTime: number }) => void; - publishUpdatePlayer: (roomId: string, playerData: playerTypes.PlayerData) => void; - publishMapCellUpdates: (roomId: string, cellUpdates: gridMapTypes.CellUpdate[]) => void; - publishGameEnd: (roomId: string) => void; - publishGameStartToRoom: (roomId: string, payload: { startTime: number }) => void; - publishCurrentPlayers: (players: playerTypes.PlayerData[]) => void; - publishGameStartToSocket: (payload: { startTime: number }) => void; + publishPongToSocket: (payload: PongPayload) => void; + publishUpdatePlayerToRoom: (roomId: RoomId, playerData: UpdatePlayerPayload) => void; + publishMapCellUpdatesToRoom: (roomId: RoomId, cellUpdates: MapCellUpdatesPayload) => void; + publishGameEndToRoom: (roomId: RoomId) => void; + publishGameStartToRoom: (roomId: RoomId, payload: GameStartPayload) => void; + publishCurrentPlayersToSocket: (players: CurrentPlayersPayload) => void; + publishGameStartToSocket: (payload: GameStartPayload) => void; }; export type GameDisconnectPublisher = { - publishPlayerRemoved: (removedPlayerId: string) => void; + publishPlayerRemovedToAll: (removedPlayerId: SocketId) => void; }; export const createGameEventPublisher = (common: CommonHandlerContext): GameEventPublisher => { return { - publishPong: (payload: { clientTime: number; serverTime: number }) => { + publishPongToSocket: (payload: PongPayload) => { common.emitToSocket(protocol.SocketEvents.PONG, payload); }, - publishUpdatePlayer: (roomId: string, playerData: playerTypes.PlayerData) => { + publishUpdatePlayerToRoom: (roomId: RoomId, playerData: UpdatePlayerPayload) => { common.emitToRoom(roomId, protocol.SocketEvents.UPDATE_PLAYER, playerData); }, - publishMapCellUpdates: (roomId: string, cellUpdates: gridMapTypes.CellUpdate[]) => { + publishMapCellUpdatesToRoom: (roomId: RoomId, cellUpdates: MapCellUpdatesPayload) => { common.emitToRoom(roomId, protocol.SocketEvents.UPDATE_MAP_CELLS, cellUpdates); }, - publishGameEnd: (roomId: string) => { + publishGameEndToRoom: (roomId: RoomId) => { common.emitToRoom(roomId, protocol.SocketEvents.GAME_END); }, - publishGameStartToRoom: (roomId: string, payload: { startTime: number }) => { + publishGameStartToRoom: (roomId: RoomId, payload: GameStartPayload) => { common.emitToRoom(roomId, protocol.SocketEvents.GAME_START, payload); }, - publishCurrentPlayers: (players: playerTypes.PlayerData[]) => { + publishCurrentPlayersToSocket: (players: CurrentPlayersPayload) => { common.emitToSocket(protocol.SocketEvents.CURRENT_PLAYERS, players); }, - publishGameStartToSocket: (payload: { startTime: number }) => { + publishGameStartToSocket: (payload: GameStartPayload) => { common.emitToSocket(protocol.SocketEvents.GAME_START, payload); }, }; @@ -48,7 +56,7 @@ const emitToAll = createEmitToAll(io); return { - publishPlayerRemoved: (removedPlayerId: string) => { + publishPlayerRemovedToAll: (removedPlayerId: SocketId) => { emitToAll(protocol.SocketEvents.REMOVE_PLAYER, removedPlayerId); }, }; diff --git a/apps/server/src/network/handlers/game/handleGameDisconnect.ts b/apps/server/src/network/handlers/game/handleGameDisconnect.ts index bb732f4..ca3b231 100644 --- a/apps/server/src/network/handlers/game/handleGameDisconnect.ts +++ b/apps/server/src/network/handlers/game/handleGameDisconnect.ts @@ -13,6 +13,6 @@ disconnectUseCase({ gameManager, playerId, - publishPlayerRemoved: gameDisconnectPublisher.publishPlayerRemoved, + publishPlayerRemoved: gameDisconnectPublisher.publishPlayerRemovedToAll, }); }; diff --git a/apps/server/src/network/handlers/game/registerGameHandlers.ts b/apps/server/src/network/handlers/game/registerGameHandlers.ts index ef038b3..2535eb5 100644 --- a/apps/server/src/network/handlers/game/registerGameHandlers.ts +++ b/apps/server/src/network/handlers/game/registerGameHandlers.ts @@ -22,7 +22,7 @@ socket.on(protocol.SocketEvents.PING, (clientTime: number) => { pingUseCase({ clientTime, - publishPong: gamePublisher.publishPong, + publishPong: gamePublisher.publishPongToSocket, }); }); @@ -31,9 +31,9 @@ ownerId: socket.id, gameManager, roomManager, - publishUpdatePlayer: gamePublisher.publishUpdatePlayer, - publishMapCellUpdates: gamePublisher.publishMapCellUpdates, - publishGameEnd: gamePublisher.publishGameEnd, + publishUpdatePlayer: gamePublisher.publishUpdatePlayerToRoom, + publishMapCellUpdates: gamePublisher.publishMapCellUpdatesToRoom, + publishGameEnd: gamePublisher.publishGameEndToRoom, publishGameStart: gamePublisher.publishGameStartToRoom, }); }); @@ -45,7 +45,7 @@ socketId: socket.id, roomId, gameManager, - publishCurrentPlayers: gamePublisher.publishCurrentPlayers, + publishCurrentPlayers: gamePublisher.publishCurrentPlayersToSocket, publishGameStart: gamePublisher.publishGameStartToSocket, }); }); diff --git a/apps/server/src/network/handlers/room/createRoomEventPublisher.ts b/apps/server/src/network/handlers/room/createRoomEventPublisher.ts index d7c7091..2c30cf2 100644 --- a/apps/server/src/network/handlers/room/createRoomEventPublisher.ts +++ b/apps/server/src/network/handlers/room/createRoomEventPublisher.ts @@ -4,15 +4,18 @@ import type { roomTypes } from "@repo/shared"; import type { CommonHandlerContext } from "../CommonHandler"; +type RoomId = string; +type RoomUpdatePayload = roomTypes.Room; + export type RoomEventPublisher = { - publishRoomUpdate: (roomId: string, room: roomTypes.Room) => void; + publishRoomUpdate: (roomId: RoomId, room: RoomUpdatePayload) => void; }; export const createRoomEventPublisher = ( common: CommonHandlerContext ): RoomEventPublisher => { return { - publishRoomUpdate: (roomId: string, room: roomTypes.Room) => { + publishRoomUpdate: (roomId: RoomId, room: RoomUpdatePayload) => { common.emitToRoom(roomId, protocol.SocketEvents.ROOM_UPDATE, room); }, }; @@ -22,7 +25,7 @@ const emitToRoom = createEmitToRoom(io); return { - publishRoomUpdate: (roomId: string, room: roomTypes.Room) => { + publishRoomUpdate: (roomId: RoomId, room: RoomUpdatePayload) => { emitToRoom(roomId, protocol.SocketEvents.ROOM_UPDATE, room); }, };