Skip to content

Commit

Permalink
Merge pull request #196 from sopra-fs24-group-09/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
zihanltesla authored May 17, 2024
2 parents 5707c6e + 6c159d7 commit 4297e0e
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public void ready(SimpMessageHeaderAccessor headerAccessor, @DestinationVariable
if (nativeHeaders != null && nativeHeaders.containsKey("receiptId")) {
receiptId = nativeHeaders.get("receiptId").get(0);
token = nativeHeaders.get("token").get(0);
System.out.println("Receipt ID found for roomId: " + roomId);
// System.out.println("Receipt ID found for roomId: " + roomId);
}

try {
Expand Down Expand Up @@ -122,6 +122,13 @@ public void enterRoom(SimpMessageHeaderAccessor headerAccessor, @DestinationVari
String token = null;
String userID = payload.getMessage().getUserID();

// Print the log
long timestamp = payload.getTimestamp();
Room room_print = roomRepository.findByRoomId(roomId).get();
User user_print = userService.findUserById(userID);
System.out.println(timestamp+ ":["+room_print.getRoomName() + "]"+ user_print.getUsername() + "enterroom:" );


// Try to extract receiptId from nativeHeaders
@SuppressWarnings("unchecked")
Map<String, List<String>> nativeHeaders = (Map<String, List<String>>) headerAccessor.getHeader("nativeHeaders");
Expand All @@ -130,26 +137,28 @@ public void enterRoom(SimpMessageHeaderAccessor headerAccessor, @DestinationVari
token = nativeHeaders.get("token").get(0);
}


try {
if (token == null || !userService.findByToken(token)) {
// Token is invalid or expired, send a response with auth set to false
socketService.broadcastResponse(userID, roomId, false, false, "Invalid or expired token", receiptID);
return; // Stop further processing
}
else {
if (userService.findUserById(userID).getInRoomId() != null && !roomRepository.findByRoomId(userService.findUserById(userID).getInRoomId()).isPresent()) {
if (userService.findUserById(userID).getInRoomId() != null && (!roomRepository.findByRoomId(userService.findUserById(userID).getInRoomId()).isPresent())) {
userService.findUserById(userID).setInRoomId(null);
}
}
if (roomRepository.findByRoomId(roomId).isPresent()) {
//if the user is already in the room
if(roomRepository.findByRoomId(roomId).isEmpty()){
throw new Exception("Room not found");
}
Room room = roomRepository.findByRoomId(roomId).get();
User user = userService.findUserById(userID);
//if the user is already in the room
if (room.getRoomPlayersList().contains(user.getId())) {
//if the game is started and the user is entering the room
if(room.getRoomProperty().equals(RoomProperty.GAMEOVER)){
userService.findUserById(userID).setInRoomId(null);
throw new Exception("Game is over");
}
if (room.getRoomProperty().equals(RoomProperty.INGAME)) {

Game game = gameRepository.findByRoomId(room.getRoomId()).orElseThrow(() -> new Exception("Game not found"));
Expand Down Expand Up @@ -203,6 +212,12 @@ public void exitRoom(SimpMessageHeaderAccessor headerAccessor, @DestinationVaria
String token = null;
String userID = payload.getMessage().getUserID();

// Print the log
long timestamp = payload.getTimestamp();
Room room_print = roomRepository.findByRoomId(roomID).get();
User user_print = userService.findUserById(userID);
System.out.println(timestamp+ ":["+room_print.getRoomName() + "]"+ user_print.getUsername() + "enterroom:" );

// Try to extract receiptId from nativeHeaders
@SuppressWarnings("unchecked")
Map<String, List<String>> nativeHeaders = (Map<String, List<String>>) headerAccessor.getHeader("nativeHeaders");
Expand All @@ -219,10 +234,7 @@ public void exitRoom(SimpMessageHeaderAccessor headerAccessor, @DestinationVaria
}
else {
if (roomRepository.findByRoomId(roomID).isPresent()) {
if (roomRepository.findByRoomId(roomID).isEmpty()) {
throw new Exception("Room not found");
}
Room room = roomRepository.findByRoomId(roomID).get();
Room room = roomRepository.findByRoomId(roomID).orElseThrow(() -> new Exception("Game not found"));
User user = userService.findUserById(userID);
if (room.getRoomProperty().equals(RoomProperty.INGAME)) {
throw new Exception("Cannot exit room while game is in progress");
Expand Down Expand Up @@ -259,6 +271,13 @@ public void startGame(SimpMessageHeaderAccessor headerAccessor, @DestinationVari
String token = null;
String userID = payload.getMessage().getUserID();


// Print the log
long timestamp = payload.getTimestamp();
Room room_print = roomRepository.findByRoomId(roomID).get();
User user_print = userService.findUserById(userID);
System.out.println(timestamp+ ":["+room_print.getRoomName() + "]"+ user_print.getUsername() + "Startgame" );

// Try to extract receiptId from nativeHeaders
@SuppressWarnings("unchecked")
Map<String, List<String>> nativeHeaders = (Map<String, List<String>>) headerAccessor.getHeader("nativeHeaders");
Expand All @@ -284,7 +303,7 @@ public void startGame(SimpMessageHeaderAccessor headerAccessor, @DestinationVari

Room room = roomRepository.findByRoomId(roomID).get();
if (room.getRoomWordsList() == null || room.getRoomWordsList().size() == 0) {
throw new Exception("Room does not have enough words to start game");
throw new Exception("Bigmodel is generating words, please wait a moment");
}
else {
gameService.checkIfAllReady(room); // Checks if all players in the room are ready
Expand All @@ -309,6 +328,13 @@ public void submitAnswer(SimpMessageHeaderAccessor headerAccessor, @DestinationV
String userID = payload.getMessage().getUserID();
String token = null;
String guess = payload.getMessage().getGuess();


// Print the log
long timestamp = payload.getTimestamp();
Room room_print = roomRepository.findByRoomId(roomID).get();
User user_print = userService.findUserById(userID);
System.out.println(timestamp+ ":["+room_print.getRoomName() + "]"+ user_print.getUsername() + "validate:" + guess );

// Remove special characters and space from guess
guess = guess.replaceAll("[^a-zA-Z0-9]", "");
Expand Down Expand Up @@ -346,7 +372,12 @@ public void uploadAudio(SimpMessageHeaderAccessor headerAccessor, @DestinationVa
String token = null;
String userId = payload.getMessage().getUserID();
String voice = payload.getMessage().getAudioData();
System.out.println("user upload voice:"+ voice );

// Print the log
long timestamp = payload.getTimestamp();
Room room_print = roomRepository.findByRoomId(roomId).get();
User user_print = userService.findUserById(userId);
System.out.println(timestamp+ ":["+room_print.getRoomName() + "]"+ user_print.getUsername() + "uploadAudio" + voice.length());

@SuppressWarnings("unchecked")
Map<String, List<String>> nativeHeaders = (Map<String, List<String>>) headerAccessor.getHeader("nativeHeaders");
Expand Down Expand Up @@ -382,7 +413,7 @@ public void response(@Payload String payload) {
@MessageMapping("/message/lobby/info")
public void notifyLobbyInfo(SimpMessageHeaderAccessor headerAccessor) {
// String receipId = (String) headerAccessor.getHeader("receipt");
System.out.println("receive the lobby request!");
// System.out.println("receive the lobby request!");
socketService.broadcastLobbyInfo();
}

Expand Down
Loading

0 comments on commit 4297e0e

Please sign in to comment.