Newer
Older
PixelPaintWar / apps / server / src / network / handlers / game / handleGameDisconnect.ts
/**
 * handleGameDisconnect
 * ゲーム切断ユースケースを呼び出してプレイヤー離脱を配信する
 */
import { Server } from "socket.io";
import type { DisconnectPlayerPort } from "@server/domains/game/application/ports/gameUseCasePorts";
import { disconnectUseCase } from "@server/domains/game/application/useCases/disconnectUseCase";
import { createGameDisconnectOutputAdapter } from "./createGameOutputAdapter";

/** 切断したプレイヤーをゲーム管理から除外し通知する */
export const handleGameDisconnect = (
  io: Server,
  gameManager: DisconnectPlayerPort,
  roomId: string | undefined,
  playerId: string
) => {
  const gameDisconnectOutputAdapter = createGameDisconnectOutputAdapter(io);

  disconnectUseCase({
    gameManager,
    roomId,
    playerId,
    output: gameDisconnectOutputAdapter,
  });
};