diff --git a/.gitignore b/.gitignore
index 0fe21feb46d72337f36284bbb43b8deb5c1c6d4e..fcc3fe69fed2a9728dc2c73014d76b62b92b782e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
 
 target/SLCraftPlugin-1.6.0.jar
 *.jar
+target/SLCraftPlugin-1.6.0.jar
+target/original-SLCraftPlugin-1.6.0.jar
+target/maven-archiver/pom.properties
+target/classes/com/slprojects/slcraftplugin/Main.class
diff --git a/src/main/java/com/slprojects/slcraftplugin/Main.java b/src/main/java/com/slprojects/slcraftplugin/Main.java
index 17246908b478c0d34088d461fea2c8047df7e033..2a7b7d57a5fca7c1e640d9791fc79033e301d9ce 100644
--- a/src/main/java/com/slprojects/slcraftplugin/Main.java
+++ b/src/main/java/com/slprojects/slcraftplugin/Main.java
@@ -36,6 +36,7 @@ import java.util.List;
 import java.util.Objects;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
+import java.util.regex.MatchResult;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -122,49 +123,44 @@ public final class Main extends JavaPlugin implements Listener {
     @SuppressWarnings({"unchecked", "deprecation"})
     @EventHandler(priority = EventPriority.LOWEST)
     void AsyncChatEvent(AsyncPlayerChatEvent e) {
-        // on formate le message sur discord
-        //on cherche un bold char "**"
-        Player gg = Bukkit.getPlayer("gagafeee");
-        //FinalMessage = e.getMessage().replace("*{", "§l");
         String FinalMessage = e.getMessage();
-        //italique + gras "***"
-        FinalMessage = Pattern.compile("\\*\\*\\*(.*?)\\*\\*\\*").matcher(FinalMessage).replaceAll("§l§o$1§r");
-        //gras "**"
-        FinalMessage = Pattern.compile("\\*\\*(.*?)\\*\\*").matcher(FinalMessage).replaceAll("§l$1§r");
-        //italique "*"
-        FinalMessage = Pattern.compile("\\*(.*?)\\*").matcher(FinalMessage).replaceAll("§o$1§r");
-        //underline
-        FinalMessage = Pattern.compile("__(.*?)__").matcher(FinalMessage).replaceAll("§n$1§r");
-        //barré
-        FinalMessage = Pattern.compile("~~(.*?)~~").matcher(FinalMessage).replaceAll("§m$1§r ");
-
-
-        // On envoie le message sur discord
-
-        for (Player p: Bukkit.getOnlinePlayers()) {
-            //Simple coloration
-            FinalMessage = FinalMessage.replace(e.getPlayer().getName(),"§b" + e.getPlayer().getName());
-            while (FinalMessage.contains("@") && (FinalMessage.charAt(FinalMessage.indexOf("@")-1 )!= "b".charAt(0))){
-                gg.sendMessage("while");
-                if (FinalMessage.toLowerCase().contains(p.getName().toLowerCase()) && FinalMessage.charAt(FinalMessage.toLowerCase().indexOf(p.getName().toLowerCase())-1) == "@".charAt(0)){
-                    //Mention
-                    FinalMessage = FinalMessage + " ";
-
-                    String pseudo = FinalMessage.substring(FinalMessage.indexOf("@")+1);
-                    pseudo = pseudo.substring(0,pseudo.charAt(pseudo.indexOf(" ")-1) == " ".charAt(0) ? pseudo.indexOf(" ") : pseudo.charAt(pseudo.indexOf(" ")-1) == ",".charAt(0) ? pseudo.indexOf(",") : pseudo.charAt(pseudo.indexOf(" ")-1) == ".".charAt(0) ? pseudo.indexOf(".") : 0);
-                    Player MentionedPlayer = Bukkit.getPlayer(pseudo);
-                    FinalMessage = Pattern.compile("@(.*?) ").matcher(FinalMessage).replaceAll("§r§l§d@$1§r ");
-                    FinalMessage = FinalMessage.substring(0,FinalMessage.length()-1);
-                    MentionedPlayer.sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§b " + e.getPlayer().getName() + " §amentioned you !"));
-                    MentionedPlayer.playSound(MentionedPlayer.getLocation(),Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 100, 2);
-                    gg.sendMessage("true " + FinalMessage);
-                }
-            }
-
+        //on applique les text markup
+            //italique + gras "***"
+            FinalMessage = Pattern.compile("\\*\\*\\*(.*?)\\*\\*\\*").matcher(FinalMessage).replaceAll("§l§o$1§r");
+            //gras "**"
+            FinalMessage = Pattern.compile("\\*\\*(.*?)\\*\\*").matcher(FinalMessage).replaceAll("§l$1§r");
+            //italique "*"
+            FinalMessage = Pattern.compile("\\*(.*?)\\*").matcher(FinalMessage).replaceAll("§o$1§r");
+            //underline
+            FinalMessage = Pattern.compile("__(.*?)__").matcher(FinalMessage).replaceAll("§n$1§r");
+            //barré
+            FinalMessage = Pattern.compile("~~(.*?)~~").matcher(FinalMessage).replaceAll("§m$1§r ");
+
+
+        //on poste le message aux joueurs 1 par 1
+        for (Player p: Bukkit.getOnlinePlayers()){
+            Matcher m = Pattern.compile("@(.*?)($|[ ,;:!])").matcher(FinalMessage);
+            List<String> list = new ArrayList<>();
+            while (m.find()) {list.add(m.group(1));}
+            // si le joueur a qui on va poster le message (p) a été mentionné
+            if(list.contains(p.getName())){
+                //On colorise sa mention
+                FinalMessage = Pattern.compile("@(" + p.getName() + ")($|[ ,;:!])").matcher(FinalMessage).replaceAll("§r§l§d@$1§r$2");
+                //on lui joue un son + un texte dans la barre d'action
+                p.sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§b " + e.getPlayer().getName() + " §amentioned you !"));
+                p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 100, 2);
+                //on colorie les autres mentions
+                FinalMessage = Pattern.compile(" @(.*?)($|[ ,;:!])").matcher(FinalMessage).replaceAll("§r§b @$1§r$2");
 
-            p.sendMessage(FinalMessage);
-            sendMessageToDiscord(FinalMessage, e.getPlayer().getName());
+            }
+            //on ajoute le préfix (Admin|Joueur) puis le pseudo du joueur qui envoie le message
+            String CompleteMessage = "§3[" + (e.getPlayer().isOp() ? "§dAdmin" : "§bPlayer") + "§3] §a" + e.getPlayer().getName() + "§r: " + FinalMessage;
+            //on envoie le message au joueur
+            p.sendMessage(CompleteMessage);
+            //on envoie le message sur discord (on envoie le msg sans les couleur ni le formatage)
+            sendMessageToDiscord(e.getMessage(), e.getPlayer().getName());
         }
+        //on désactive le message de base de minecraft
         e.setCancelled(true);
     }
 
diff --git a/target/SLCraftPlugin-1.6.0.jar b/target/SLCraftPlugin-1.6.0.jar
index 0c95637955038e39d78a37679bde7f67045e71ab..4038eb5fcc2e576a91223522892cc753535d2166 100644
Binary files a/target/SLCraftPlugin-1.6.0.jar and b/target/SLCraftPlugin-1.6.0.jar differ
diff --git a/target/classes/com/slprojects/slcraftplugin/Main.class b/target/classes/com/slprojects/slcraftplugin/Main.class
index 6106ec67018b604c49142177cf62e9bc29862d30..553df8060803aa7c725fff38f4c926cf9bc85b1d 100644
Binary files a/target/classes/com/slprojects/slcraftplugin/Main.class and b/target/classes/com/slprojects/slcraftplugin/Main.class differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
index fc66f11da3057956c85159612eee98b38bcca7ec..eac8075ace61d8d8100450acd00954ef62224068 100644
--- a/target/maven-archiver/pom.properties
+++ b/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven
-#Sat Jul 09 19:43:22 CEST 2022
+#Thu Jul 14 18:22:17 CEST 2022
 groupId=com.slprojects
 artifactId=SLCraftPlugin
 version=1.6.0
diff --git a/target/original-SLCraftPlugin-1.6.0.jar b/target/original-SLCraftPlugin-1.6.0.jar
index 5c702d2ca37023192571b000ef8a244e6e59f184..81a641f3621ee18390915d974232357a4c67d73c 100644
Binary files a/target/original-SLCraftPlugin-1.6.0.jar and b/target/original-SLCraftPlugin-1.6.0.jar differ