From 32f803d610d454d0b0b379999f500cad9b02b17c Mon Sep 17 00:00:00 2001
From: Florian MONSION <florian.monsion@etu.univ-nantes.fr>
Date: Thu, 23 Dec 2021 16:19:34 +0100
Subject: [PATCH] Last global commit with comments and changes. Could not add
 the cards in the bank.

---
 .../java/fr/univnantes/alma/application.java  |  6 +--
 7-wonders-client/pom.xml                      |  6 +++
 .../fr/univnantes/alma/PlayerController.java  | 10 ++++-
 7-wonders-server/pom.xml                      |  8 +++-
 .../alma/implement/GameServerImp.java         | 40 +++++++++----------
 .../src/main/java/fr/univnantes/alma/app.java | 20 +++++-----
 pom.xml                                       |  2 +-
 7 files changed, 53 insertions(+), 39 deletions(-)

diff --git a/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java b/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java
index 4e6e68f..42fdf8f 100644
--- a/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java
+++ b/7-wonder-clientWebSocket/src/main/java/fr/univnantes/alma/application.java
@@ -8,10 +8,10 @@ import java.net.URI;
 public class application {
     public  static void main(String[] args) {
         try {
-            WebSocketContainer container = ContainerProvider.getWebSocketContainer(); // 获取WebSocket连接器,其中具体实现可以参照websocket-api.jar的源码,Class.forName("org.apache.tomcat.websocket.WsWebSocketContainer");
+            WebSocketContainer container = ContainerProvider.getWebSocketContainer(); // Obtenez le connecteur WebSocket, l'implémentation spécifique peut faire référence au code source de websocket-api.jar, Class.forName("org.apache.tomcat.websocket.WsWebSocketContainer");
             String uri = "ws://localhost:8081/log/log";
-            Session session = container.connectToServer(ClientController.class, new URI(uri)); // 连接会话
-            session.getBasicRemote().sendText("123132132131"); // 发送文本消息
+            Session session = container.connectToServer(ClientController.class, new URI(uri)); //Session de connexion
+            session.getBasicRemote().sendText("123132132131"); // Envoyer un texte
             session.getBasicRemote().sendText("4564546");
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/7-wonders-client/pom.xml b/7-wonders-client/pom.xml
index 0f875ea..efd0d55 100644
--- a/7-wonders-client/pom.xml
+++ b/7-wonders-client/pom.xml
@@ -29,6 +29,12 @@
             <version>1.0-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>fr.univnantes.alma</groupId>
+            <artifactId>7-wonder-middlewareClient</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java b/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java
index ee68a4b..bedbd8f 100644
--- a/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java
+++ b/7-wonders-client/src/main/java/fr/univnantes/alma/PlayerController.java
@@ -2,6 +2,7 @@ package fr.univnantes.alma;
 
 import java.util.LinkedList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 public class PlayerController implements Player {
 
@@ -40,8 +41,13 @@ public class PlayerController implements Player {
     }
 
     @Override
-    public boolean waitServer(int sec) {
-        return false;
+    public boolean waitServer(int sec){
+        try {
+            TimeUnit.SECONDS.sleep(sec);
+            return true;                            //WIP : attente du serveur par défaut.
+        }catch(InterruptedException interruption){
+            return false;
+        }
     }
 
     @Override
diff --git a/7-wonders-server/pom.xml b/7-wonders-server/pom.xml
index ad0a93a..c56ebbf 100644
--- a/7-wonders-server/pom.xml
+++ b/7-wonders-server/pom.xml
@@ -52,7 +52,13 @@
 			<version>1.0-SNAPSHOT</version>
 			<scope>compile</scope>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>fr.univnantes.alma</groupId>
+            <artifactId>7-wonder-middlewareServeur</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
 
 	<build>
 		<plugins>
diff --git a/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java b/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java
index e9fca5d..ac945e8 100644
--- a/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java
+++ b/7-wonders-server/src/main/java/fr/univnantes/alma/implement/GameServerImp.java
@@ -1,16 +1,17 @@
 package fr.univnantes.alma.implement;
 
-import fr.univnantes.alma.Card;
-import fr.univnantes.alma.GameServer;
-import fr.univnantes.alma.MiddlewareServer;
-import fr.univnantes.alma.Player;
+import fr.univnantes.alma.*;
 import fr.univnantes.alma.cards.CardAge;
 import fr.univnantes.alma.cards.CardWonder;
+import fr.univnantes.alma.cards.Resources;
+import fr.univnantes.alma.messages.Connexion;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 
-import static fr.univnantes.alma.cards.Structures.GUILD;
+import static fr.univnantes.alma.cards.Structures.*;
 
 public class GameServerImp implements GameServer {
     ArrayList<Player> player;
@@ -19,10 +20,10 @@ public class GameServerImp implements GameServer {
     ArrayList<Card> cardBank;
 
     public GameServerImp() {
-        this.player= new ArrayList<Player>();
+        this.player= new ArrayList<>();
         this.isGamePlayed=false;
-        this.middlewareServer=null; // TODO : middlewareServer must be Imp.
-        this.cardBank = new ArrayList<Card>(); //TODO : il faut remplir les cards banques
+        this.middlewareServer=new MiddlewareServerController(new Connexion("creation middleware server. Hello new Middleware Server"), this);
+        this.cardBank = new ArrayList<>(); //TODO : il faut remplir les cards banques
     }
 
     @Override
@@ -66,10 +67,10 @@ public class GameServerImp implements GameServer {
     @Override
     public boolean cardSort() {
         int nbPlayer = this.player.size();
-        ArrayList<Card> cardBankSorted = new ArrayList<Card>();
-        ArrayList<Card> cardGuilds = new ArrayList<Card>();
+        ArrayList<Card> cardBankSorted = new ArrayList<>();
+        ArrayList<Card> cardGuilds = new ArrayList<>();
 
-        //sort card base on number of player and sort card guildes
+        //sort card base on number of player and sort card guilds
         for (Card x : this.cardBank) {
             if (x instanceof  CardAge) {
                 if ( ((CardAge)x).getMinPlayer()>=nbPlayer ){
@@ -79,10 +80,9 @@ public class GameServerImp implements GameServer {
                 if ( (((CardAge) x).getStructure()==GUILD) && (cardGuilds.size()<nbPlayer+2) ) {
                     cardGuilds.add(x);
                 }
-
-                if (x instanceof CardWonder) {
-                    cardBankSorted.add(x);
-                }
+            }
+            if (x instanceof CardWonder) {
+                cardBankSorted.add(x);
             }
         }
         cardBankSorted.addAll(cardGuilds);
@@ -92,16 +92,14 @@ public class GameServerImp implements GameServer {
 
     @Override
     public boolean cardDistribution(int age) {
-        ArrayList<Card> cardsAgePack = new ArrayList<Card>(); //cards age that we need to use, extract from cardBanc
+        ArrayList<Card> cardsAgePack = new ArrayList<>(); //cards age that we need to use, extract from cardBank
         int i;
-        Card cardAge;
-
         if (age<0) {
             return false;
         } else{
             if (age==1) {
                 //extraction cards wonder and cards age I
-                ArrayList<Card> cardsWonders = new ArrayList<Card>();
+                ArrayList<Card> cardsWonders = new ArrayList<>();
                 for (Card x : this.cardBank) {
                     if (x instanceof CardWonder) {
                         cardsWonders.add(x);
@@ -117,7 +115,7 @@ public class GameServerImp implements GameServer {
                 Iterator<Card> iteratorWonder = cardsWonders.iterator();
                 Iterator<Card> iteratorAge = cardsAgePack.iterator();
                 Card cardWonder = iteratorWonder.next();
-                cardAge = iteratorAge.next();
+                Card cardAge = iteratorAge.next();
                 for (Player p : this.player) {
                     p.addCard(cardWonder);
                     for (i = 1; i <= 7; i++) {
@@ -142,7 +140,7 @@ public class GameServerImp implements GameServer {
                     this.cardBank.removeAll(cardsAgePack);
 
                     Iterator<Card> iteratorCardAge=cardsAgePack.iterator();
-                    cardAge = iteratorCardAge.next();
+                    Card cardAge = iteratorCardAge.next();
 
                     //distribution to players
                     for (Player p : this.player){
diff --git a/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java b/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java
index 73be4e0..4f51c86 100644
--- a/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java
+++ b/7-wonders-serverWebSocket/src/main/java/fr/univnantes/alma/app.java
@@ -14,18 +14,16 @@ public class app {
             WebSocketContainer container = ContainerProvider.getWebSocketContainer();
             String uri = "ws://localhost:8081/log/hello/hello/websocket";
             Session session = container.connectToServer(Client.class, new URI(uri));
-            char lf = 10; // 这个是换行
-            char nl = 0; // 这个是消息结尾的标记,一定要
+            char lf = 10; // saut de ligne
+            char nl = 0; // la marque de la fin du message
             StringBuilder sb = new StringBuilder();
-            sb.append("SEND").append(lf); // 请求的命令策略
-            sb.append("destination:/app/hello").append(lf); // 请求的资源
-            sb.append("content-length:14").append(lf).append(lf); // 消息体的长度
-            sb.append("{\"name\":\"123\"}").append(nl); // 消息体
-
-            session.getBasicRemote().sendText(sb.toString()); // 发送消息
-            Thread.sleep(50000); // 等待一小会
-            session.close(); // 关闭连接
-
+            sb.append("SEND").append(lf); // Stratégie de commandement demandée
+            sb.append("destination:/app/hello").append(lf); // Ressource demandée
+            sb.append("content-length:14").append(lf).append(lf); //La longueur du corps du message
+            sb.append("{\"name\":\"123\"}").append(nl); // Corps du message
+            session.getBasicRemote().sendText(sb.toString()); // Envoies un message
+            Thread.sleep(50000); // Attends un moment
+            session.close(); // Ferme la connexion
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/pom.xml b/pom.xml
index d900359..266ed50 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
         <module>7-wonders-web</module>
         <module>7-wonders-core</module>
         <module>7-wonders-client</module>
-        <module>7-wonders-clientWebSocket</module>
+        <module>7-wonder-clientWebSocket</module>
         <module>7-wonders-serverWebSocket</module>
         <module>7-wonder-middlewareServeur</module>
         <module>7-wonder-middlewareClient</module>
-- 
GitLab