From 51db69bee871e93de2754fa8ff201a2fae6db290 Mon Sep 17 00:00:00 2001 From: Simon Date: Sun, 14 Feb 2021 21:13:09 +0100 Subject: [PATCH] Updated the project structure --- .idea/artifacts/Client_jar.xml | 8 ++++ .idea/modules.xml | 2 + Client/Client.iml | 11 +++++ {src/client => Client/src}/games/Board.java | 2 +- .../client => Client/src}/games/Executor.java | 2 +- {src/client => Client/src}/games/Game.java | 2 +- {src/client => Client/src}/games/Painter.java | 2 +- Client/src/logging/ClientLogger.java | 47 +++++++++++++++++++ .../src}/logging/LogType.java | 2 +- .../src}/networking/Client.java | 20 ++++++-- Server/Server.iml | 11 +++++ Server/src/logging/LogType.java | 7 +++ .../src}/logging/ServerLogger.java | 2 +- .../src}/networking/Server.java | 13 +++-- .../ArcadeMachine/META-INF/MANIFEST.MF | 3 ++ 15 files changed, 119 insertions(+), 15 deletions(-) create mode 100644 .idea/artifacts/Client_jar.xml create mode 100644 Client/Client.iml rename {src/client => Client/src}/games/Board.java (99%) rename {src/client => Client/src}/games/Executor.java (96%) rename {src/client => Client/src}/games/Game.java (99%) rename {src/client => Client/src}/games/Painter.java (98%) create mode 100644 Client/src/logging/ClientLogger.java rename {src/server => Client/src}/logging/LogType.java (70%) rename {src/client => Client/src}/networking/Client.java (76%) create mode 100644 Server/Server.iml create mode 100644 Server/src/logging/LogType.java rename {src/server => Server/src}/logging/ServerLogger.java (98%) rename {src/server => Server/src}/networking/Server.java (91%) create mode 100644 out/production/ArcadeMachine/META-INF/MANIFEST.MF diff --git a/.idea/artifacts/Client_jar.xml b/.idea/artifacts/Client_jar.xml new file mode 100644 index 0000000..9b55114 --- /dev/null +++ b/.idea/artifacts/Client_jar.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/Client_jar + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index d39f435..062c378 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,8 @@ + + \ No newline at end of file diff --git a/Client/Client.iml b/Client/Client.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Client/Client.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/client/games/Board.java b/Client/src/games/Board.java similarity index 99% rename from src/client/games/Board.java rename to Client/src/games/Board.java index 3d7de49..da92e49 100644 --- a/src/client/games/Board.java +++ b/Client/src/games/Board.java @@ -1,4 +1,4 @@ -package client.games; +package games; import javax.swing.*; import java.awt.*; diff --git a/src/client/games/Executor.java b/Client/src/games/Executor.java similarity index 96% rename from src/client/games/Executor.java rename to Client/src/games/Executor.java index 0ae9b4c..00d5d07 100644 --- a/src/client/games/Executor.java +++ b/Client/src/games/Executor.java @@ -1,4 +1,4 @@ -package client.games; +package games; import javax.swing.*; diff --git a/src/client/games/Game.java b/Client/src/games/Game.java similarity index 99% rename from src/client/games/Game.java rename to Client/src/games/Game.java index bd6bc30..b3a7a07 100644 --- a/src/client/games/Game.java +++ b/Client/src/games/Game.java @@ -1,4 +1,4 @@ -package client.games; +package games; import javax.swing.*; diff --git a/src/client/games/Painter.java b/Client/src/games/Painter.java similarity index 98% rename from src/client/games/Painter.java rename to Client/src/games/Painter.java index cb7b39f..109bb2d 100644 --- a/src/client/games/Painter.java +++ b/Client/src/games/Painter.java @@ -1,4 +1,4 @@ -package client.games; +package games; import java.awt.*; diff --git a/Client/src/logging/ClientLogger.java b/Client/src/logging/ClientLogger.java new file mode 100644 index 0000000..96269e3 --- /dev/null +++ b/Client/src/logging/ClientLogger.java @@ -0,0 +1,47 @@ +package logging; + +import java.sql.Timestamp; + +public class ClientLogger { + + //Text colors + private static final String ANSI_RESET = "\u001B[0m"; + private static final String ANSI_BLACK = "\u001B[30m"; + private static final String ANSI_RED = "\u001B[31m"; + private static final String ANSI_GREEN = "\u001B[32m"; + private static final String ANSI_YELLOW = "\u001B[33m"; + private static final String ANSI_BLUE = "\u001B[34m"; + private static final String ANSI_PURPLE = "\u001B[35m"; + private static final String ANSI_CYAN = "\u001B[36m"; + private static final String ANSI_WHITE = "\u001B[37m"; + private static final String ANSI_BRIGHT_WHITE = "\u001b[37;1m"; + + public void printLog(String message, String name, boolean success, LogType logType){ + switch (logType){ + case Log: + if (success){ + System.out.printf( ANSI_BLUE + "(%s) " + ANSI_CYAN + "[%s] " + ANSI_GREEN + "%s%n" + ANSI_RESET, + new Timestamp(System.currentTimeMillis()), name, message); + } else { + System.out.printf(ANSI_BLUE + "(%s) " + ANSI_CYAN + "[%s] " + ANSI_RED + "%s%n" + ANSI_RESET, + new Timestamp(System.currentTimeMillis()), name, message); + } + break; + + case Error: + System.out.printf(ANSI_PURPLE + "(%s) [%s] %s%n"+ ANSI_RESET, new Timestamp(System.currentTimeMillis()), name, message); + break; + + case Message: + System.out.printf(ANSI_WHITE + " (%s) [%s] %s%n" +ANSI_RESET, new Timestamp(System.currentTimeMillis()), name, message); + break; + + default: + System.err.println("NO VALID LOGTYPE GIVEN");; + } + } + + public void printLog(String message, boolean success, LogType logType){ + this.printLog(message, "server", success, logType); + } +} diff --git a/src/server/logging/LogType.java b/Client/src/logging/LogType.java similarity index 70% rename from src/server/logging/LogType.java rename to Client/src/logging/LogType.java index 29087d1..1b79885 100644 --- a/src/server/logging/LogType.java +++ b/Client/src/logging/LogType.java @@ -1,4 +1,4 @@ -package server.logging; +package logging; public enum LogType { Log, diff --git a/src/client/networking/Client.java b/Client/src/networking/Client.java similarity index 76% rename from src/client/networking/Client.java rename to Client/src/networking/Client.java index e4a2fa8..b987212 100644 --- a/src/client/networking/Client.java +++ b/Client/src/networking/Client.java @@ -1,4 +1,7 @@ -package client.networking; +package networking; + +import logging.ClientLogger; +import logging.LogType; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -10,7 +13,9 @@ public class Client { private DataOutputStream out; private DataInputStream in; private static Scanner scanner; + private ClientLogger clientLogger; private static String name; + private String serverName; private boolean success; public static final String ANSI_RESET = "\u001B[0m"; @@ -23,9 +28,10 @@ public class Client { Socket serverSocket = new Socket(ip, port); out = new DataOutputStream(serverSocket.getOutputStream()); in = new DataInputStream(serverSocket.getInputStream()); + clientLogger = new ClientLogger(); success = true; this.name = name; - System.out.println(name); + clientLogger.printLog(String.format("Client with the name %s successfully initialized", name), success, LogType.Log); } catch (IOException e) { e.printStackTrace(); } @@ -33,14 +39,18 @@ public class Client { public void handshake() { try { - out.writeInt(165313125); + out.writeInt(15315); out.flush(); success = in.readInt() == 200; if (success){ out.writeUTF(name); - System.out.printf(ANSI_CYAN + "You successfully connected to %s%n"+ANSI_RESET, in.readUTF()); + serverName = in.readUTF(); + System.out.println(serverName); + clientLogger.printLog("You successfully connected to me", serverName, success, LogType.Log); + } else { + clientLogger.printLog("Connection failed try again", success, LogType.Log); + System.exit(1); } - System.out.println(success); } catch (IOException e) { e.printStackTrace(); } diff --git a/Server/Server.iml b/Server/Server.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Server/Server.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Server/src/logging/LogType.java b/Server/src/logging/LogType.java new file mode 100644 index 0000000..1b79885 --- /dev/null +++ b/Server/src/logging/LogType.java @@ -0,0 +1,7 @@ +package logging; + +public enum LogType { + Log, + Message, + Error +} diff --git a/src/server/logging/ServerLogger.java b/Server/src/logging/ServerLogger.java similarity index 98% rename from src/server/logging/ServerLogger.java rename to Server/src/logging/ServerLogger.java index 0261bd6..f4a3646 100644 --- a/src/server/logging/ServerLogger.java +++ b/Server/src/logging/ServerLogger.java @@ -1,4 +1,4 @@ -package server.logging; +package logging; import java.sql.Timestamp; diff --git a/src/server/networking/Server.java b/Server/src/networking/Server.java similarity index 91% rename from src/server/networking/Server.java rename to Server/src/networking/Server.java index 0bf8178..5f4b2fe 100644 --- a/src/server/networking/Server.java +++ b/Server/src/networking/Server.java @@ -1,7 +1,7 @@ -package server.networking; +package networking; -import server.logging.LogType; -import server.logging.ServerLogger; +import logging.LogType; +import logging.ServerLogger; import java.io.*; import java.net.ServerSocket; @@ -28,7 +28,7 @@ public class Server { instreams = new HashMap<>(); scanner = new Scanner(System.in); logger = new ServerLogger(); - requiredConnections = 2; + requiredConnections = 1; logger.printLog("Server started successfully", LogType.Log); } catch (IOException e) { @@ -97,6 +97,11 @@ public class Server { } } } + clients.clear(); + System.out.println("Do you want to keep the server alive and wait for other clients ? [y]/[n]"); + if (scanner.nextLine().equalsIgnoreCase("y")){ + this.connectClients(); + } } public static void main(String[] args) { diff --git a/out/production/ArcadeMachine/META-INF/MANIFEST.MF b/out/production/ArcadeMachine/META-INF/MANIFEST.MF new file mode 100644 index 0000000..d7e01d2 --- /dev/null +++ b/out/production/ArcadeMachine/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: client.networking.Client +