From 0974771872cb348a455a445a240c554c03727ecb Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Fri, 26 Aug 2022 14:51:17 +0200 Subject: [PATCH] Ajout de la reconnaissance des couleurs. --- .../com/slprojects/slcraftplugin/Main.java | 37 ++++++++++++------- src/main/resources/config.yml | 2 +- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/slprojects/slcraftplugin/Main.java b/src/main/java/com/slprojects/slcraftplugin/Main.java index cdf82a3..0234431 100644 --- a/src/main/java/com/slprojects/slcraftplugin/Main.java +++ b/src/main/java/com/slprojects/slcraftplugin/Main.java @@ -143,22 +143,25 @@ public final class Main extends JavaPlugin implements Listener { @SuppressWarnings({"unchecked", "deprecation"}) @EventHandler(priority = EventPriority.LOWEST) void AsyncChatEvent(AsyncPlayerChatEvent e) { - String playerMessage = e.getMessage(); - //on applique les text markup + String playerFormattedMessage = e.getMessage(); + // On applique les text markup + // Markdown //italique + gras "***" - playerMessage = Pattern.compile("\\*\\*\\*(.*?)\\*\\*\\*").matcher(playerMessage).replaceAll("§l§o$1§r"); + playerFormattedMessage = Pattern.compile("\\*\\*\\*(.*?)\\*\\*\\*").matcher(playerFormattedMessage).replaceAll("§l§o$1§r"); //gras "**" - playerMessage = Pattern.compile("\\*\\*(.*?)\\*\\*").matcher(playerMessage).replaceAll("§l$1§r"); + playerFormattedMessage = Pattern.compile("\\*\\*(.*?)\\*\\*").matcher(playerFormattedMessage).replaceAll("§l$1§r"); //italique "*" - playerMessage = Pattern.compile("\\*(.*?)\\*").matcher(playerMessage).replaceAll("§o$1§r"); + playerFormattedMessage = Pattern.compile("\\*(.*?)\\*").matcher(playerFormattedMessage).replaceAll("§o$1§r"); //underline - playerMessage = Pattern.compile("__(.*?)__").matcher(playerMessage).replaceAll("§n$1§r"); + playerFormattedMessage = Pattern.compile("__(.*?)__").matcher(playerFormattedMessage).replaceAll("§n$1§r"); //barré - playerMessage = Pattern.compile("~~(.*?)~~").matcher(playerMessage).replaceAll("§m$1§r "); + playerFormattedMessage = Pattern.compile("~~(.*?)~~").matcher(playerFormattedMessage).replaceAll("§m$1§r "); + // Couleurs + playerFormattedMessage = Pattern.compile("&([a-f]|r|[0-8])").matcher(playerFormattedMessage).replaceAll("§$1"); // Ping utilisateur - Matcher m = Pattern.compile("@(.*?)($|[ ,;:!])").matcher(playerMessage); + Matcher m = Pattern.compile("@(.*?)($|[ ,;:!])").matcher(playerFormattedMessage); List<String> playerTags = new ArrayList<>(); while (m.find()) { playerTags.add(m.group(1)); @@ -170,22 +173,28 @@ public final class Main extends JavaPlugin implements Listener { // Si le joueur a qui on va poster le message (p) a été mentionné if(playerTags.contains(p.getName())){ // On colorise sa mention - playerMessage = Pattern.compile("@(" + p.getName() + ")($|[ ,;:!])").matcher(playerMessage).replaceAll("§r§l§d@$1§r$2"); + playerFormattedMessage = Pattern.compile("@(" + p.getName() + ")($|[ ,;:!])").matcher(playerFormattedMessage).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() + " §aVous a mentionné !")); p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 100, 2); // On colorie les autres mentions - playerMessage = Pattern.compile(" @(.*?)($|[ ,;:!])").matcher(playerMessage).replaceAll("§r§b @$1§r$2"); + playerFormattedMessage = Pattern.compile(" @(.*?)($|[ ,;:!])").matcher(playerFormattedMessage).replaceAll("§r§b @$1§r$2"); } - String CompleteMessage = playerMetaData.getPrefix() + e.getPlayer().getName() + "§r: " + playerMessage; + String CompleteMessage = playerMetaData.getPrefix() + e.getPlayer().getName() + "§r: " + playerFormattedMessage; // On envoie le message au joueur p.sendMessage(CompleteMessage); + + // Et dans la console + if(e.getPlayer() == p){ + getServer().getConsoleSender().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 + // On envoie le message sur discord (on envoie le msg sans les couleur ni le formatage) + String discordFriendlyMsg = Pattern.compile("&([a-f]|r|[0-8])").matcher(e.getMessage()).replaceAll(""); + sendMessageToDiscord(discordFriendlyMsg, e.getPlayer().getName()); + // On désactive le message de base de minecraft e.setCancelled(true); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 75e6254..237af8a 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -35,4 +35,4 @@ msg-verbose: false discordBot-api-url: "http://node.sl-projects.com:27001/" # Config générale -server-type: dev \ No newline at end of file +server-type: prod # prod/dev \ No newline at end of file -- GitLab