diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java index c839930..fa680ba 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/ClientApp.java @@ -3,7 +3,6 @@ package ch.unibas.dmi.dbis.cs108.casono.client; /** * Entry point for the Casono client application. Handles client startup and connection parameters. */ - import ch.unibas.dmi.dbis.cs108.casono.client.ui.Launcher; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatController.java index 3c46ca6..ea035ed 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatController.java @@ -3,15 +3,13 @@ package ch.unibas.dmi.dbis.cs108.casono.client.chat; import ch.unibas.dmi.dbis.cs108.casono.client.network.ChatClient; import ch.unibas.dmi.dbis.cs108.casono.client.network.ClientService; import ch.unibas.dmi.dbis.cs108.casono.client.ui.chatui.ChatBoxController; -import javafx.application.Platform; -import org.jspecify.annotations.Nullable; - +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.Timer; import java.util.TimerTask; -import java.util.Map; -import java.util.List; -import java.util.LinkedHashMap; - +import javafx.application.Platform; +import org.jspecify.annotations.Nullable; /** * responsible for the transferring of messages from the server to the ChatModel or from the @@ -31,9 +29,8 @@ public class ChatController { private int lobbyId = -1; private final Timer timer; - - public record ChatKey(ChatType type, @Nullable String targetUser){ - public ChatKey(ChatType type){ + public record ChatKey(ChatType type, @Nullable String targetUser) { + public ChatKey(ChatType type) { this(type, null); } } @@ -56,10 +53,11 @@ public class ChatController { new TimerTask() { @Override public void run() { - Platform.runLater(() -> { - clientService.ping(); - receiveMessage(); - }); + Platform.runLater( + () -> { + clientService.ping(); + receiveMessage(); + }); } }, 0, @@ -84,21 +82,30 @@ public class ChatController { break; case ChatType.LOBBY: if (msg.lobbyId == lobbyId) { - chatModelMap.computeIfAbsent(new ChatKey(ChatType.LOBBY), - (_key) -> new ChatModel(ChatType.LOBBY, username, msg.lobbyId, null)).addMessage(msg); + chatModelMap + .computeIfAbsent( + new ChatKey(ChatType.LOBBY), + (_key) -> + new ChatModel( + ChatType.LOBBY, + username, + msg.lobbyId, + null)) + .addMessage(msg); } break; case ChatType.WHISPER: if (msg.target.equals(username)) { - if (chatModelMap.containsKey(new ChatKey(ChatType.WHISPER, msg.sender))) { - chatModelMap.get(new ChatKey(ChatType.WHISPER, msg.sender)).addMessage(msg); + if (chatModelMap.containsKey( + new ChatKey(ChatType.WHISPER, msg.sender))) { + chatModelMap + .get(new ChatKey(ChatType.WHISPER, msg.sender)) + .addMessage(msg); } else { chatBoxController.addWhisperChat(msg.sender); } } break; - - } } } @@ -106,6 +113,7 @@ public class ChatController { /** * method to send a message to the server + * * @param message */ public void onSendToNetwork(Message message) { diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatModel.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatModel.java index 39958f8..e1ce152 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatModel.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/ChatModel.java @@ -1,10 +1,9 @@ package ch.unibas.dmi.dbis.cs108.casono.client.chat; -import javafx.beans.property.IntegerProperty; -import javafx.beans.property.SimpleIntegerProperty; - import java.util.ArrayList; import java.util.function.Consumer; +import javafx.beans.property.IntegerProperty; +import javafx.beans.property.SimpleIntegerProperty; /** * ChatModel, stores the data for a specific chat @@ -19,15 +18,10 @@ public class ChatModel { private final ChatType chattype; - /** - * The person currently using this client - */ + /** The person currently using this client */ public final String username; - /** - * The person to send the message to - * If the chat is a whisper chat - */ + /** The person to send the message to If the chat is a whisper chat */ private final String target; private final IntegerProperty count; @@ -64,10 +58,9 @@ public class ChatModel { */ public synchronized void addMessage(Message msg) { messages.add(msg); - listeners.stream().forEach((l)-> l.accept(messages.getLast())); + listeners.stream().forEach((l) -> l.accept(messages.getLast())); } - public void addListener(Consumer listener) { this.listeners.add(listener); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/Message.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/Message.java index b03540c..f396c81 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/Message.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/chat/Message.java @@ -3,13 +3,12 @@ package ch.unibas.dmi.dbis.cs108.casono.client.chat; import ch.unibas.dmi.dbis.cs108.casono.server.network.command.parsing.RequestParameter; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.builder.ResponseBody; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.builder.ResponseBodyBuilder; -import org.jspecify.annotations.NonNull; - import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Optional; import java.util.regex.Pattern; +import org.jspecify.annotations.NonNull; /** * Message Object for internal handling of Chat-Messages TODO: Should be used on both sides of the @@ -82,11 +81,11 @@ public class Message { * @return - request as specified in the network protocol, as String */ public String toArgsString() { - String gameIdString=""; - if(lobbyId >= 0) { - gameIdString=" GAME="+lobbyId; + String gameIdString = ""; + if (lobbyId >= 0) { + gameIdString = " GAME=" + lobbyId; } else { - gameIdString=" GAME='-1'"; + gameIdString = " GAME='-1'"; } return String.format( "TYPE=%s%s USER='%s' TARGET='%s' TIME='%s' TEXT='%s'", @@ -101,10 +100,12 @@ public class Message { /** Pattern, to analyze the response String with the given parameters */ public static Pattern msgRex = Pattern.compile( - "TYPE=(?\\w+) " + "(GAME=(?\\w+) )?" + - "USER=(?\\w+) " + "(TARGET=(?\\w+) )?" + - "TIME=(?