From 0e39f06f9e437b20c85a22610e93c95de14a8c06 Mon Sep 17 00:00:00 2001 From: Seraina Date: Sun, 27 Mar 2022 14:44:55 +0200 Subject: [PATCH] Added Alexandrs "Added name duplicate handler by modifying the ClientHandler class as well as adding a class where all Client names are stored" commit --- .../ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java | 1 - .../dmi/dbis/cs108/multiplayer/server/ClientHandler.java | 6 ++++++ .../cs108/multiplayer/{client => server}/NameGenerator.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) rename src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/{client => server}/NameGenerator.java (90%) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java index a4f5127..98e7232 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java @@ -2,7 +2,6 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.ClientPinger; - import java.net.Socket; import java.io.*; import java.net.UnknownHostException; diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java index 6b204bf..5c072cf 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/ClientHandler.java @@ -29,6 +29,12 @@ public class ClientHandler implements Runnable { this.out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); this.in = new BufferedReader((new InputStreamReader((socket.getInputStream())))); this.clientUserName = in.readLine(); + // duplicate handling: if username already taken, assign random name to client + if (AllClientNames.allNames("").contains(clientUserName)) { + clientUserName = NameGenerator.randomName(); + } + // add username to list of all client names for future duplicate checking + AllClientNames.allNames(clientUserName); connectedClients.add(this); serverPinger = new ServerPinger(out, socket); Thread sP = new Thread(serverPinger); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/NameGenerator.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/NameGenerator.java similarity index 90% rename from src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/NameGenerator.java rename to src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/NameGenerator.java index 7ec6886..2739cf7 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/NameGenerator.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/server/NameGenerator.java @@ -1,4 +1,4 @@ -package ch.unibas.dmi.dbis.cs108.multiplayer.client; +package ch.unibas.dmi.dbis.cs108.multiplayer.server; import java.util.Random;