diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java index 14f3620..66412a4 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java @@ -49,9 +49,10 @@ public class Commands { RTP_CommandEvent event = new RTP_CommandEvent(sendi, cmd); //Command Event Bukkit.getServer().getPluginManager().callEvent(event); - if (!event.isCancelled()) + if (!event.isCancelled()) { cmd.execute(sendi, label, args); - Bukkit.getServer().getPluginManager().callEvent(new RTP_CommandEvent_After(sendi, cmd)); + Bukkit.getServer().getPluginManager().callEvent(new RTP_CommandEvent_After(sendi, cmd)); + } } else pl.getText().getNoPermission(sendi); return; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java index 0a5ca65..d718008 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java @@ -5,6 +5,8 @@ import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Messages { private final String preM = "Messages.", preH = "Help.", preU = "Usage."; @@ -129,7 +131,28 @@ public class Messages { } public String color(String str) { - return ChatColor.translateAlternateColorCodes('&', str); + return translateHexColorCodes(str); + } + + //Thank you to zwrumpy on Spigot! (https://www.spigotmc.org/threads/hex-color-code-translate.449748/#post-4270781) + //Supports 1.8 to 1.18 + private static String translateHexColorCodes(String message) { + Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}"); + Matcher matcher = pattern.matcher(message); + while (matcher.find()) { + String hexCode = message.substring(matcher.start(), matcher.end()); + String replaceSharp = hexCode.replace('#', 'x'); + + char[] ch = replaceSharp.toCharArray(); + StringBuilder builder = new StringBuilder(""); + for (char c : ch) { + builder.append("&").append(c); + } + + message = message.replace(hexCode, builder.toString()); + matcher = pattern.matcher(message); + } + return ChatColor.translateAlternateColorCodes('&', message); } public String colorPre(String str) {