diff --git a/pom.xml b/pom.xml index fa4d8f3..62cc5ab 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ ce.ajneb97 ConditionalEvents - 4.76.1 + 4.76.2 21 diff --git a/src/main/java/ce/ajneb97/managers/MessagesManager.java b/src/main/java/ce/ajneb97/managers/MessagesManager.java index 0e762bf..7ba1756 100644 --- a/src/main/java/ce/ajneb97/managers/MessagesManager.java +++ b/src/main/java/ce/ajneb97/managers/MessagesManager.java @@ -1,145 +1,151 @@ -package ce.ajneb97.managers; + package ce.ajneb97.managers; -import ce.ajneb97.api.ConditionalEventsAPI; -import ce.ajneb97.libs.centeredmessages.DefaultFontInfo; -import ce.ajneb97.utils.MiniMessageUtils; -import ce.ajneb97.utils.OtherUtils; -import net.md_5.bungee.api.ChatColor; -import org.bukkit.command.CommandSender; + import ce.ajneb97.api.ConditionalEventsAPI; + import ce.ajneb97.libs.centeredmessages.DefaultFontInfo; + import ce.ajneb97.utils.MiniMessageUtils; + import ce.ajneb97.utils.OtherUtils; + import net.md_5.bungee.api.ChatColor; + import org.bukkit.command.CommandSender; -import java.util.regex.Matcher; -import java.util.regex.Pattern; + import java.util.regex.Matcher; + import java.util.regex.Pattern; -public class MessagesManager { + public class MessagesManager { - private String timeSeconds; - private String timeMinutes; - private String timeHours; - private String timeDays; - private String prefix; - private String placeholderAPICooldownReady; - private String placeholderAPICooldownNameError; + private String timeSeconds; + private String timeMinutes; + private String timeHours; + private String timeDays; + private String prefix; + private String placeholderAPICooldownReady; + private String placeholderAPICooldownNameError; - public String getTimeSeconds() { - return timeSeconds; - } + public String getTimeSeconds() { + return timeSeconds; + } - public void setTimeSeconds(String timeSeconds) { - this.timeSeconds = timeSeconds; - } + public void setTimeSeconds(String timeSeconds) { + this.timeSeconds = timeSeconds; + } - public String getTimeMinutes() { - return timeMinutes; - } + public String getTimeMinutes() { + return timeMinutes; + } - public void setTimeMinutes(String timeMinutes) { - this.timeMinutes = timeMinutes; - } + public void setTimeMinutes(String timeMinutes) { + this.timeMinutes = timeMinutes; + } - public String getTimeHours() { - return timeHours; - } + public String getTimeHours() { + return timeHours; + } - public void setTimeHours(String timeHours) { - this.timeHours = timeHours; - } + public void setTimeHours(String timeHours) { + this.timeHours = timeHours; + } - public String getTimeDays() { - return timeDays; - } + public String getTimeDays() { + return timeDays; + } - public void setTimeDays(String timeDays) { - this.timeDays = timeDays; - } + public void setTimeDays(String timeDays) { + this.timeDays = timeDays; + } - public String getPrefix() { - return prefix; - } + public String getPrefix() { + return prefix; + } - public void setPrefix(String prefix) { - this.prefix = prefix; - } + public void setPrefix(String prefix) { + this.prefix = prefix; + } - public String getPlaceholderAPICooldownReady() { - return placeholderAPICooldownReady; - } + public String getPlaceholderAPICooldownReady() { + return placeholderAPICooldownReady; + } - public void setPlaceholderAPICooldownReady(String placeholderAPICooldownReady) { - this.placeholderAPICooldownReady = placeholderAPICooldownReady; - } + public void setPlaceholderAPICooldownReady(String placeholderAPICooldownReady) { + this.placeholderAPICooldownReady = placeholderAPICooldownReady; + } - public String getPlaceholderAPICooldownNameError() { - return placeholderAPICooldownNameError; - } + public String getPlaceholderAPICooldownNameError() { + return placeholderAPICooldownNameError; + } - public void setPlaceholderAPICooldownNameError(String placeholderAPICooldownNameError) { - this.placeholderAPICooldownNameError = placeholderAPICooldownNameError; - } + public void setPlaceholderAPICooldownNameError(String placeholderAPICooldownNameError) { + this.placeholderAPICooldownNameError = placeholderAPICooldownNameError; + } - public void sendMessage(CommandSender sender, String message, boolean prefix){ - if(!message.isEmpty()){ - if(ConditionalEventsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ - MiniMessageUtils.messagePrefix(sender,message,prefix,this.prefix); - }else{ - if(prefix){ - sender.sendMessage(getLegacyColoredMessage(this.prefix+message)); + public void sendMessage(CommandSender sender, String message, boolean prefix){ + if(!message.isEmpty()){ + if(ConditionalEventsAPI.getPlugin().getConfigsManager().getMainConfigManager().isUseMiniMessage()){ + MiniMessageUtils.messagePrefix(sender,message,prefix,this.prefix); }else{ - sender.sendMessage(getLegacyColoredMessage(message)); + if(prefix){ + sender.sendMessage(getLegacyColoredMessage(this.prefix+message)); + }else{ + sender.sendMessage(getLegacyColoredMessage(message)); + } } } } - } - public static String getLegacyColoredMessage(String message) { + public static String getLegacyColoredMessage(String message) { if(OtherUtils.isNew()) { - Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}"); + Pattern pattern = Pattern.compile("(&#|#)[a-fA-F0-9]{6}|&x(&[a-fA-F0-9]){6}"); Matcher match = pattern.matcher(message); while(match.find()) { String color = message.substring(match.start(),match.end()); - message = message.replace(color, ChatColor.of(color)+""); + String colorToUse = color; + if(color.startsWith("&x")){ + colorToUse = "#" + color.substring(2).replace("&", ""); + } else if(color.startsWith("&#")){ + colorToUse = color.substring(1); + } + message = message.replace(color, ChatColor.of(colorToUse)+""); match = pattern.matcher(message); } } - message = ChatColor.translateAlternateColorCodes('&', message); - return message; + message = ChatColor.translateAlternateColorCodes('&', message); + return message; + } + + public static String getCenteredMessage(String message){ + int CENTER_PX = 154; + int messagePxSize = 0; + boolean previousCode = false; + boolean isBold = false; + + for(char c : message.toCharArray()){ + if(c == '\u00A7'){ + previousCode = true; + continue; + }else if(previousCode == true){ + previousCode = false; + if(c == 'l' || c == 'L'){ + isBold = true; + continue; + }else isBold = false; + }else{ + DefaultFontInfo dFI = DefaultFontInfo.getDefaultFontInfo(c); + messagePxSize += isBold ? dFI.getBoldLength() : dFI.getLength(); + messagePxSize++; + } + } + + int halvedMessageSize = messagePxSize / 2; + int toCompensate = CENTER_PX - halvedMessageSize; + int spaceLength = DefaultFontInfo.SPACE.getLength() + 1; + int compensated = 0; + StringBuilder sb = new StringBuilder(); + while(compensated < toCompensate){ + sb.append(" "); + compensated += spaceLength; + } + return (sb.toString() + message); + } } - - public static String getCenteredMessage(String message){ - int CENTER_PX = 154; - int messagePxSize = 0; - boolean previousCode = false; - boolean isBold = false; - - for(char c : message.toCharArray()){ - if(c == 'ยง'){ - previousCode = true; - continue; - }else if(previousCode == true){ - previousCode = false; - if(c == 'l' || c == 'L'){ - isBold = true; - continue; - }else isBold = false; - }else{ - DefaultFontInfo dFI = DefaultFontInfo.getDefaultFontInfo(c); - messagePxSize += isBold ? dFI.getBoldLength() : dFI.getLength(); - messagePxSize++; - } - } - - int halvedMessageSize = messagePxSize / 2; - int toCompensate = CENTER_PX - halvedMessageSize; - int spaceLength = DefaultFontInfo.SPACE.getLength() + 1; - int compensated = 0; - StringBuilder sb = new StringBuilder(); - while(compensated < toCompensate){ - sb.append(" "); - compensated += spaceLength; - } - return (sb.toString() + message); - } -}