Skip to content

Commit e607059

Browse files
🐛 fix : 게임 종료 시 방장 레디 풀림 이슈, PLAYER_LIST 메세지 누락 이슈 (#125)
* ♻️ refactor : 게임 종료 시 방장 레디 풀림 이슈, PLAYER_LIST 메세지 누락 이슈 * chore: Java 스타일 수정 * ♻️ refactor : PLAYER_LIST 여러번 브로드캐스팅 방지 * chore: Java 스타일 수정 * ♻️ refactor : PLAYER_LIST 브로드캐스팅 gameEnd로 빼기 * ♻️ refactor: PLAYER_LIST와 SYSTEM_NOTICE 동기화 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <>
1 parent 6cb182c commit e607059

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

backend/src/main/java/io/f1/backend/domain/game/app/GameService.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,13 @@ public void gameEnd(Room room) {
176176
room.initializePlayers();
177177

178178
List<Player> disconnectedPlayers = room.getDisconnectedPlayers();
179-
roomService.handleDisconnectedPlayers(room, disconnectedPlayers);
179+
180+
if (!disconnectedPlayers.isEmpty()) {
181+
roomService.handleDisconnectedPlayers(room, disconnectedPlayers);
182+
} else {
183+
messageSender.sendBroadcast(
184+
destination, MessageType.PLAYER_LIST, toPlayerListResponse(room));
185+
}
180186

181187
room.updateRoomState(RoomState.WAITING);
182188

backend/src/main/java/io/f1/backend/domain/game/app/RoomService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,10 @@ public void exitRoomForDisconnectedPlayer(Long roomId, Player player, String ses
338338
SystemNoticeResponse systemNoticeResponse =
339339
ofPlayerEvent(player.nickname, RoomEventType.EXIT);
340340

341-
messageSender.sendBroadcast(
342-
destination, MessageType.PLAYER_LIST, toPlayerListResponse(room));
343341
messageSender.sendBroadcast(
344342
destination, MessageType.SYSTEM_NOTICE, systemNoticeResponse);
343+
messageSender.sendBroadcast(
344+
destination, MessageType.PLAYER_LIST, toPlayerListResponse(room));
345345
}
346346
}
347347

backend/src/main/java/io/f1/backend/domain/game/model/Room.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ public void initializePlayers() {
138138
.forEach(
139139
player -> {
140140
player.initializeCorrectCount();
141-
player.toggleReady();
142141
});
142+
resetAllPlayerReadyStates();
143143
}
144144

145145
public String getSessionIdByUserId(Long userId) {

backend/src/test/java/io/f1/backend/domain/game/app/RoomServiceTests.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,14 @@ class RoomServiceTests {
4747

4848
@Mock private RoomRepository roomRepository;
4949
@Mock private QuizService quizService;
50-
@Mock private GameService gameService;
51-
@Mock private TimerService timerService;
5250
@Mock private ApplicationEventPublisher eventPublisher;
5351
@Mock private MessageSender messageSender;
5452

5553
@BeforeEach
5654
void setUp() {
5755
MockitoAnnotations.openMocks(this); // @Mock 어노테이션이 붙은 필드들을 초기화합니다.
5856

59-
roomService =
60-
new RoomService(
61-
timerService, quizService, roomRepository, eventPublisher, messageSender);
57+
roomService = new RoomService(quizService, roomRepository, eventPublisher, messageSender);
6258

6359
SecurityContextHolder.clearContext();
6460
}

0 commit comments

Comments
 (0)