From f8e69213684dd69ce9cbaa8e5da9fb41c813e2a7 Mon Sep 17 00:00:00 2001 From: rubenpirreram Date: Fri, 19 Jun 2026 20:09:58 +0200 Subject: [PATCH] Fixed: Error Username --- .../it/polimi/ingsw/gc14/Controller/GameController.java | 8 +++++++- src/main/java/it/polimi/ingsw/gc14/ErrorType.java | 2 +- .../polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java | 2 +- .../polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/it/polimi/ingsw/gc14/Controller/GameController.java b/src/main/java/it/polimi/ingsw/gc14/Controller/GameController.java index 23b9752..f4e6550 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Controller/GameController.java +++ b/src/main/java/it/polimi/ingsw/gc14/Controller/GameController.java @@ -90,7 +90,13 @@ public class GameController { * {@code false} otherwise. */ public synchronized boolean addPlayer(String username) { - return model.addPlayer(new Player(username)); + if(username.trim().length()>10) + return false; + Player player = model.getPlayerByUsername(username); + if(player!=null) + return false; + player = new Player(username); + return model.addPlayer(player); } /** diff --git a/src/main/java/it/polimi/ingsw/gc14/ErrorType.java b/src/main/java/it/polimi/ingsw/gc14/ErrorType.java index df3e1bc..5c4484b 100644 --- a/src/main/java/it/polimi/ingsw/gc14/ErrorType.java +++ b/src/main/java/it/polimi/ingsw/gc14/ErrorType.java @@ -3,7 +3,7 @@ package it.polimi.ingsw.gc14; /** Enumeration of error types that can be returned by server-side operations. */ public enum ErrorType { /** The chosen username is already taken by another connected player. */ - USERNAME_ALREADY_USED("Username is already in use"), + INVALID_USERNAME("Username is already in use or too long"), /** The user is already connected to the server. */ USER_ALREADY_CONNECTED("User is already connected"), /** The requested number of players is outside the allowed range. */ diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java b/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java index 14e2c80..01e9e89 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/RMI/Server/RMIServer.java @@ -112,7 +112,7 @@ public class RMIServer extends UnicastRemoteObject implements IGameServer { System.out.println("Heartbeat connected for: " + username); return null; } else { - return ErrorType.USERNAME_ALREADY_USED; + return ErrorType.INVALID_USERNAME; } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java index f2310c9..6a6502c 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/TCPServer.java @@ -186,7 +186,7 @@ public class TCPServer { new Thread(handler).start(); continue; } else { - eventAddPlayer.setErrorType(ErrorType.USERNAME_ALREADY_USED); + eventAddPlayer.setErrorType(ErrorType.INVALID_USERNAME); eventAddPlayer.setIsError(true); clientSend.writeObject(eventAddPlayer); clientSocket.close();