From 2572f8f387aa11fa098e93a462c6c68364532a5a Mon Sep 17 00:00:00 2001 From: GabrieleRadice <265572328+GabrieleRadice@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:05:44 +0200 Subject: [PATCH] Add: Added TCP Client Handling Logic in TCPClient.java + Refactoring. --- .../gc14/Network/{TCP => }/EventType.java | 2 +- .../gc14/Network/NetworkEvents/AddPlayer.java | 2 +- .../NetworkEvents/DrawLowerBuildingCard.java | 2 +- .../NetworkEvents/DrawLowerTribeCard.java | 2 +- .../NetworkEvents/DrawUpperBuildingCard.java | 2 +- .../NetworkEvents/DrawUpperTribeCard.java | 2 +- .../PickOptionalBuildingCard.java | 2 +- .../NetworkEvents/PickOptionalTribeCard.java | 2 +- .../Network/NetworkEvents/SlotChoice.java | 2 +- .../gc14/Network/TCP/Client/TCPClient.java | 82 +++++++++++++------ .../ingsw/gc14/Network/TCP/NetworkEvent.java | 10 --- .../Network/TCP/NetworkEvents/AddPlayer.java | 26 ------ .../NetworkEvents/DrawLowerBuildingCard.java | 29 ------- .../TCP/NetworkEvents/DrawLowerTribeCard.java | 29 ------- .../NetworkEvents/DrawUpperBuildingCard.java | 29 ------- .../TCP/NetworkEvents/DrawUpperTribeCard.java | 29 ------- .../PickOptionalBuildingCard.java | 29 ------- .../NetworkEvents/PickOptionalTribeCard.java | 29 ------- .../Network/TCP/NetworkEvents/SlotChoice.java | 29 ------- .../Network/TCP/Server/ClientHandler.java | 6 +- .../gc14/Network/TCP/Server/TCPServer.java | 6 +- .../java/it/polimi/ingsw/gc14/View/IView.java | 2 - 22 files changed, 74 insertions(+), 279 deletions(-) rename src/main/java/it/polimi/ingsw/gc14/Network/{TCP => }/EventType.java (82%) delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvent.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/AddPlayer.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerBuildingCard.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerTribeCard.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperBuildingCard.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperTribeCard.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalBuildingCard.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalTribeCard.java delete mode 100644 src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/SlotChoice.java diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/EventType.java b/src/main/java/it/polimi/ingsw/gc14/Network/EventType.java similarity index 82% rename from src/main/java/it/polimi/ingsw/gc14/Network/TCP/EventType.java rename to src/main/java/it/polimi/ingsw/gc14/Network/EventType.java index 3b63fcb..aae15bf 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/EventType.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/EventType.java @@ -1,4 +1,4 @@ -package it.polimi.ingsw.gc14.Network.TCP; +package it.polimi.ingsw.gc14.Network; public enum EventType { ADD_PLAYER, diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java index 3032dfb..3d3a9c5 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/AddPlayer.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java index 3cfcadd..a4910dd 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerBuildingCard.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java index 0884279..85f4598 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawLowerTribeCard.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java index d77d759..77f7c60 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperBuildingCard.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java index 92cc9c0..0f6d04d 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/DrawUpperTribeCard.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java index 1b3b89c..dcf3822 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalBuildingCard.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java index 886db9f..46cc783 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/PickOptionalTribeCard.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java index 035dfdf..700335a 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/NetworkEvents/SlotChoice.java @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.NetworkEvents; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; +import it.polimi.ingsw.gc14.Network.EventType; import it.polimi.ingsw.gc14.Network.NetworkEvent; import it.polimi.ingsw.gc14.View.IView; diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Client/TCPClient.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Client/TCPClient.java index b4cc5ec..113cd2e 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Client/TCPClient.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Client/TCPClient.java @@ -1,37 +1,69 @@ package it.polimi.ingsw.gc14.Network.TCP.Client; -import it.polimi.ingsw.gc14.View.IView; +import it.polimi.ingsw.gc14.Controller.GameController; +import it.polimi.ingsw.gc14.Network.NetworkEvent; +import it.polimi.ingsw.gc14.Network.NetworkEvents.AddPlayer; import java.io.*; import java.net.*; -public class TCPClient implements Serializable { - public TCPClient(IView view) { - IView iView = view; +public class TCPClient implements Serializable{ + Socket communicationSocket = null; + ObjectInputStream socketReceive; + ObjectOutputStream socketSend; + + GameController controller; + String hostname; + int port; + + public TCPClient(GameController controller, String hostname, int port){ + this.controller = controller; + this.hostname = hostname; + this.port = port; } - public static void main(String[] args) { - String hostName = "127.0.0.1"; - int portNumber = 5200; - Socket communicationSocket = null; - try { - communicationSocket = new Socket(hostName, portNumber); + + public boolean start(String user){ + try{ + communicationSocket = new Socket(hostname, port); + socketSend = new ObjectOutputStream(communicationSocket.getOutputStream()); + socketReceive = new ObjectInputStream(communicationSocket.getInputStream()); + + socketSend.writeObject(new AddPlayer(user)); + if(communicationSocket.getInputStream().read() == -1){ + return false; + } + else{ + Thread listener = new Thread(() -> ReceiveMessage()); + listener.start(); + return true; + } + } + catch(Exception e){ + return false; + } + } + + private void ReceiveMessage(){ + while(true){ + try{ + ((NetworkEvent)(socketReceive.readObject())).apply(controller); + } + catch(IOException e){ + e.printStackTrace(); + } + catch(ClassNotFoundException e){ + throw new RuntimeException(e); + } + return; + } + } + + private void SendEvent(NetworkEvent event){ + try{ + socketSend.writeObject(event); } catch (IOException e) { - System.err.println(e.toString() + " " + hostName); - System.exit(1); - } - PrintWriter out = null; - BufferedReader in = null; - try { - out = new PrintWriter(communicationSocket.getOutputStream(), true); - in = new BufferedReader(new InputStreamReader(communicationSocket.getInputStream())); - } catch (IOException e) { - System.err.println(e.toString() + " " + hostName); - System.exit(1); - } - String userInput = ""; - while (true) { - + e.printStackTrace(); } } diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvent.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvent.java deleted file mode 100644 index addbf74..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvent.java +++ /dev/null @@ -1,10 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP; - -import it.polimi.ingsw.gc14.Controller.GameController; - -import java.io.Serializable; - -public abstract class NetworkEvent implements Serializable { - - public abstract boolean apply(GameController gameController); -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/AddPlayer.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/AddPlayer.java deleted file mode 100644 index 0067bcd..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/AddPlayer.java +++ /dev/null @@ -1,26 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class AddPlayer extends NetworkEvent implements Serializable { - private String username; - private EventType eventType; - public AddPlayer(String username) { - this.username = username; - this.eventType = EventType.ADD_PLAYER; - } - @Override - public boolean apply(GameController gameController) - { - return gameController.addPlayer(username); - } - public String apply(IView gameController) - { - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerBuildingCard.java deleted file mode 100644 index 8e7fc80..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerBuildingCard.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class DrawLowerBuildingCard extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public DrawLowerBuildingCard(String username, int pos){ - this.username = username; - this.eventType = EventType.DRAW_LOWER_BUILD; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.drawLowerBuildingCard(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerTribeCard.java deleted file mode 100644 index 17848d1..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawLowerTribeCard.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class DrawLowerTribeCard extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public DrawLowerTribeCard(String username, int pos){ - this.username = username; - this.eventType = EventType.DRAW_LOWER_TRIBE; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.drawLowerTribeCard(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperBuildingCard.java deleted file mode 100644 index a39bbb1..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperBuildingCard.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class DrawUpperBuildingCard extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public DrawUpperBuildingCard(String username, int pos){ - this.username = username; - this.eventType = EventType.DRAW_UPPER_BUILD; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.drawUpperBuildingCard(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperTribeCard.java deleted file mode 100644 index 6f261ed..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/DrawUpperTribeCard.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class DrawUpperTribeCard extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public DrawUpperTribeCard(String username, int pos){ - this.username = username; - this.eventType = EventType.DRAW_UPPER_TRIBE; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.drawUpperTribeCard(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalBuildingCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalBuildingCard.java deleted file mode 100644 index 1946be3..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalBuildingCard.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class PickOptionalBuildingCard extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public PickOptionalBuildingCard(String username, int pos){ - this.username = username; - this.eventType = EventType.PICK_OPTIONAL_BUILD; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.pickOptionalBuildingCard(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalTribeCard.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalTribeCard.java deleted file mode 100644 index 5620976..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/PickOptionalTribeCard.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class PickOptionalTribeCard extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public PickOptionalTribeCard(String username, int pos){ - this.username = username; - this.eventType = EventType.PICK_OPTIONAL_TRIBE; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.pickOptionalTribeCard(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/SlotChoice.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/SlotChoice.java deleted file mode 100644 index 2c6caa1..0000000 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/NetworkEvents/SlotChoice.java +++ /dev/null @@ -1,29 +0,0 @@ -package it.polimi.ingsw.gc14.Network.TCP.NetworkEvents; - -import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; -import it.polimi.ingsw.gc14.View.IView; - -import java.io.Serializable; - -public class SlotChoice extends NetworkEvent implements Serializable{ - private String username; - private EventType eventType; - private int pos; - - public SlotChoice(String username, int pos){ - this.username = username; - this.eventType = EventType.SLOT_CHOICE; - this.pos = pos; - } - - @Override - public boolean apply(GameController gameController){ - return gameController.slotChoice(username, pos); - } - - public String apply(IView gameController){ - return gameController.toString(); - } -} diff --git a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/ClientHandler.java b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/ClientHandler.java index 1a3b94f..97ea3c1 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/ClientHandler.java +++ b/src/main/java/it/polimi/ingsw/gc14/Network/TCP/Server/ClientHandler.java @@ -1,8 +1,8 @@ package it.polimi.ingsw.gc14.Network.TCP.Server; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.EventType; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; +import it.polimi.ingsw.gc14.Network.NetworkEvent; +import it.polimi.ingsw.gc14.Network.EventType; import java.io.*; import java.net.*; @@ -40,7 +40,7 @@ public class ClientHandler implements Runnable { } while(true){ try{ - input = (NetworkEvent)(in.readObject()); + input = (NetworkEvent) (in.readObject()); if(input.apply(gameController)){ server.broadcastUpdate(input); } 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 38fafe1..da62d1d 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 @@ -1,7 +1,7 @@ package it.polimi.ingsw.gc14.Network.TCP.Server; import it.polimi.ingsw.gc14.Controller.GameController; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; +import it.polimi.ingsw.gc14.Network.NetworkEvent; import java.io.*; import java.net.*; @@ -41,9 +41,13 @@ public class TCPServer { try{ clientSocket = serverTCP.accept(); if(!gameController.addPlayer(clientSocket.getInputStream().toString()) || ConnectedPlayers > gameController.getModel().getNPlayers()){ + clientSocket.getOutputStream().write((int)(-1)); clientSocket.close(); System.out.println("Invalid parameters. Connection terminated.\n"); } + else{ + clientSocket.getOutputStream().write((int)(1)); + } // gestione di ADD_PLAYER } catch (IOException e){ diff --git a/src/main/java/it/polimi/ingsw/gc14/View/IView.java b/src/main/java/it/polimi/ingsw/gc14/View/IView.java index 042191d..ac13003 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/IView.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/IView.java @@ -1,7 +1,5 @@ package it.polimi.ingsw.gc14.View; -import it.polimi.ingsw.gc14.Network.TCP.NetworkEvent; - public interface IView { // --- Setup --- void showWelcome();