This commit is contained in:
Michael Wain 2024-07-13 18:51:56 +03:00
parent 3994ca7603
commit 3c5522b475

View File

@ -43,6 +43,8 @@ public class GameRoom extends Thread {
@Setter @Setter
private boolean isGameLoopFrozen = false; private boolean isGameLoopFrozen = false;
private boolean isAllPlayersAlreadyJoined = false;
private final ConcurrentMap<GameState, StateManager> manager; private final ConcurrentMap<GameState, StateManager> manager;
public GameRoom(List<RoomPlayer> players, UserServiceImpl userService) { public GameRoom(List<RoomPlayer> players, UserServiceImpl userService) {
@ -75,7 +77,6 @@ public class GameRoom extends Thread {
log.info("GameRoomManager: {}", this.manager.keySet()); log.info("GameRoomManager: {}", this.manager.keySet());
log.info("GameRoomManagerVals: {}", this.manager.values()); log.info("GameRoomManagerVals: {}", this.manager.values());
this.initBoard(); this.initBoard();
this.start();
} }
private void initBoard() { private void initBoard() {
@ -141,6 +142,7 @@ public class GameRoom extends Thread {
public void receiveMessage(BasicMessage message, WebSocketSession session) { public void receiveMessage(BasicMessage message, WebSocketSession session) {
if(players.stream().noneMatch(p -> p.getUserId().longValue() == message.getUid().longValue())) return; if(players.stream().noneMatch(p -> p.getUserId().longValue() == message.getUid().longValue())) return;
socks.put(message.getUid(), session); socks.put(message.getUid(), session);
if(players.size() == socks.keySet().size() && !isAllPlayersAlreadyJoined) onAllPlayersJoined();
log.info("receiveMessage " + message.getType()); log.info("receiveMessage " + message.getType());
parseMessage(message); parseMessage(message);
} }
@ -195,6 +197,11 @@ public class GameRoom extends Thread {
} }
} }
private void onAllPlayersJoined() {
this.start();
this.isAllPlayersAlreadyJoined = true;
}
@Override @Override
public void run() { public void run() {
while(true) { while(true) {