diff --git a/backend/src/main/java/io/f1/backend/domain/game/app/GameService.java b/backend/src/main/java/io/f1/backend/domain/game/app/GameService.java index 72fd186e..fe2d99e2 100644 --- a/backend/src/main/java/io/f1/backend/domain/game/app/GameService.java +++ b/backend/src/main/java/io/f1/backend/domain/game/app/GameService.java @@ -176,7 +176,13 @@ public void gameEnd(Room room) { room.initializePlayers(); List disconnectedPlayers = room.getDisconnectedPlayers(); - roomService.handleDisconnectedPlayers(room, disconnectedPlayers); + + if (!disconnectedPlayers.isEmpty()) { + roomService.handleDisconnectedPlayers(room, disconnectedPlayers); + } else { + messageSender.sendBroadcast( + destination, MessageType.PLAYER_LIST, toPlayerListResponse(room)); + } room.updateRoomState(RoomState.WAITING); diff --git a/backend/src/main/java/io/f1/backend/domain/game/app/RoomService.java b/backend/src/main/java/io/f1/backend/domain/game/app/RoomService.java index db2a8f96..418dbfbe 100644 --- a/backend/src/main/java/io/f1/backend/domain/game/app/RoomService.java +++ b/backend/src/main/java/io/f1/backend/domain/game/app/RoomService.java @@ -338,10 +338,10 @@ public void exitRoomForDisconnectedPlayer(Long roomId, Player player, String ses SystemNoticeResponse systemNoticeResponse = ofPlayerEvent(player.nickname, RoomEventType.EXIT); - messageSender.sendBroadcast( - destination, MessageType.PLAYER_LIST, toPlayerListResponse(room)); messageSender.sendBroadcast( destination, MessageType.SYSTEM_NOTICE, systemNoticeResponse); + messageSender.sendBroadcast( + destination, MessageType.PLAYER_LIST, toPlayerListResponse(room)); } } diff --git a/backend/src/main/java/io/f1/backend/domain/game/model/Room.java b/backend/src/main/java/io/f1/backend/domain/game/model/Room.java index cd3ef88f..5c08d369 100644 --- a/backend/src/main/java/io/f1/backend/domain/game/model/Room.java +++ b/backend/src/main/java/io/f1/backend/domain/game/model/Room.java @@ -138,8 +138,8 @@ public void initializePlayers() { .forEach( player -> { player.initializeCorrectCount(); - player.toggleReady(); }); + resetAllPlayerReadyStates(); } public String getSessionIdByUserId(Long userId) { diff --git a/backend/src/test/java/io/f1/backend/domain/game/app/RoomServiceTests.java b/backend/src/test/java/io/f1/backend/domain/game/app/RoomServiceTests.java index 67c26298..80faaf91 100644 --- a/backend/src/test/java/io/f1/backend/domain/game/app/RoomServiceTests.java +++ b/backend/src/test/java/io/f1/backend/domain/game/app/RoomServiceTests.java @@ -47,8 +47,6 @@ class RoomServiceTests { @Mock private RoomRepository roomRepository; @Mock private QuizService quizService; - @Mock private GameService gameService; - @Mock private TimerService timerService; @Mock private ApplicationEventPublisher eventPublisher; @Mock private MessageSender messageSender; @@ -56,9 +54,7 @@ class RoomServiceTests { void setUp() { MockitoAnnotations.openMocks(this); // @Mock 어노테이션이 붙은 필드들을 초기화합니다. - roomService = - new RoomService( - timerService, quizService, roomRepository, eventPublisher, messageSender); + roomService = new RoomService(quizService, roomRepository, eventPublisher, messageSender); SecurityContextHolder.clearContext(); }