diff --git a/src/main/java/fi/utu/tech/telephonegame/MessageBroker.java b/src/main/java/fi/utu/tech/telephonegame/MessageBroker.java index 2e0ff456f65538ab6204f50b0f09fb447c1011ea..9832eef17cf24cef54a247b08600b26be50f28c4 100644 --- a/src/main/java/fi/utu/tech/telephonegame/MessageBroker.java +++ b/src/main/java/fi/utu/tech/telephonegame/MessageBroker.java @@ -22,7 +22,7 @@ public class MessageBroker extends Thread { private final int rootServerPort = 8050; private ConcurrentExpiringHashSet<UUID> prevMessages = new ConcurrentExpiringHashSet<UUID>(1000, 5000); - private ArrayList<UUID> processedIDs = new ArrayList<UUID>(); // Creates a list to save all UUIDs of already processed messages + /* * No need to edit the constructor @@ -51,7 +51,7 @@ public class MessageBroker extends Thread { return null; // If not, return null } Message confirmedMessage = (Message)procMessage; // Converts object to message - if (this.processedIDs.contains(confirmedMessage.getId())) { // Returns original message if ID is on the list + if (this.prevMessages.containsKey(confirmedMessage.getId())) { // Returns original message if ID is on the list return null; } else { this.gui_io.setReceivedMessage(confirmedMessage.getMessage()); // Shows the received message in GUI @@ -59,7 +59,7 @@ public class MessageBroker extends Thread { confirmedMessage.setColor(Refiner.refineColor(confirmedMessage.getColor())); // Refines the color of the message this.gui_io.setSignal(confirmedMessage.getColor()); // Shows refined color in GUI this.gui_io.setRefinedMessage(confirmedMessage.getMessage()); // Shows the refined message in GUI - this.processedIDs.add(confirmedMessage.getId()); // Adds the ID this message to the list + this.prevMessages.put(confirmedMessage.getId()); // Adds the ID this message to the list return confirmedMessage; } } @@ -81,7 +81,10 @@ public class MessageBroker extends Thread { e.printStackTrace(); } Message refinedMessage = this.process(testee); // Object is processed and received back as null or message - this.network.postMessage(refinedMessage); // Message (with content or null) is sent to network + System.out.println("Refined message." + refinedMessage ); + if(!(refinedMessage == null)) { + this.network.postMessage(refinedMessage); // Message (with content or null) is sent to network + } } } diff --git a/src/main/java/fi/utu/tech/telephonegame/Refiner.java b/src/main/java/fi/utu/tech/telephonegame/Refiner.java index 1337889a8678b760a889b90e3c6b1e89e9e9be66..7022a6d6ebf02302c4a7911bdc8f493e3f8e9325 100644 --- a/src/main/java/fi/utu/tech/telephonegame/Refiner.java +++ b/src/main/java/fi/utu/tech/telephonegame/Refiner.java @@ -4,13 +4,6 @@ import java.util.Random; public class Refiner { - private static final String[] text = new String( - "Lorem ipsum dolor sit amet, consectetur adipiscing elit Aliquam laoreet vitae lectus id vehicula " - + "lacinia interdum Ut rhoncus, ante in tempor interdum, ipsum orci imperdiet massa, ut porta " - + "in erat cursus interdum Fusce quis leo venenatis, venenatis massa mollis, convallis mauris " - + "Vivamus nec auctor diam Curabitur tincidunt tincidunt sapien, et porta urna dapibus vitae " - + "tempus quis Mauris vitae eros velit Morbi suscipit aliquet massa mollis sollicitudin" - + "turpis varius tortor, quis commodo dolor justo ac massa").split(" "); private static Random rnd = new Random(); // Creates a list of Matti Nykänen quotes @@ -65,9 +58,8 @@ public class Refiner { String outText = inText; // Change the content of the message here. - // Refiner adds a random Matti Nykänen quote to the end of the message (template solution commented out IOT save it) - outText = outText + " " + masat[rnd.nextInt(masat.length)]; // + text[rnd.nextInt(text.length)]; - + // Refiner adds a random Matti Nykänen quote to the end of the message + outText = outText + " " + masat[rnd.nextInt(masat.length)]; return outText; } diff --git a/src/main/java/fi/utu/tech/telephonegame/network/ClientHandler.java b/src/main/java/fi/utu/tech/telephonegame/network/ClientHandler.java index 16f773f780b5fc34e07f9975263069f34fcfeac5..462fad29af8bd59f6e26923460fc250d357b6996 100644 --- a/src/main/java/fi/utu/tech/telephonegame/network/ClientHandler.java +++ b/src/main/java/fi/utu/tech/telephonegame/network/ClientHandler.java @@ -9,19 +9,16 @@ import java.net.Socket; public class ClientHandler extends Thread{ private final Socket s; private NetworkService n; - private String clientIP; - private int clientPort; private ObjectInputStream inputStream; private ObjectOutputStream outputStream; public ClientHandler(Socket s, NetworkService n) throws IOException { this.s = s; this.n = n; + n.registerClient(this); } public ClientHandler(String clientIP, int clientPort, NetworkService n) throws IOException{ - this.clientIP = clientIP; - this.clientPort = clientPort; this.n = n; this.s = new Socket(InetAddress.getByName(clientIP), clientPort); n.registerClient(this); diff --git a/src/main/java/fi/utu/tech/telephonegame/network/NetworkService.java b/src/main/java/fi/utu/tech/telephonegame/network/NetworkService.java index 625e9679bb45355578e8352593c39160bac88e55..dda809077903d684f6a69e45f27ba8ca82f48e1d 100644 --- a/src/main/java/fi/utu/tech/telephonegame/network/NetworkService.java +++ b/src/main/java/fi/utu/tech/telephonegame/network/NetworkService.java @@ -1,22 +1,14 @@ package fi.utu.tech.telephonegame.network; import java.net.NetworkInterface; -import java.net.ServerSocket; -import java.net.Socket; import java.net.SocketException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Enumeration; -import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.LinkedTransferQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.TransferQueue; - -import fi.utu.tech.telephonegame.util.ConcurrentExpiringHashSet; - -import java.io.DataInputStream; -import java.io.DataOutputStream; import java.io.IOException; import java.net.Inet6Address; import java.net.InetAddress; @@ -30,9 +22,6 @@ public class NetworkService extends Thread implements Network { public TransferQueue<Object> inQueue = new LinkedTransferQueue<Object>(); private CopyOnWriteArrayList<ClientHandler> clientList = new CopyOnWriteArrayList<ClientHandler>(); private Resolver resolver; - private DataInputStream input = null; - private DataOutputStream out = null; - private Network n; /* @@ -94,6 +83,7 @@ public class NetworkService extends Thread implements Network { for(ClientHandler c :clientList) { c.send(env); + System.out.println("Envelope sent. " + c ); } } @@ -105,6 +95,7 @@ public class NetworkService extends Thread implements Network { public void postMessage(Object outMessage) { try { inQueue.offer(outMessage, 1, TimeUnit.SECONDS); + System.out.println("Object offered. " + outMessage ); } catch (InterruptedException e) { e.printStackTrace(); }