Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static String centerMessage(String message){
- if(message == null || message.equals("")) return "";
- message = ChatColor.translateAlternateColorCodes('&', message);
- int messagePxSize = 0;
- boolean previousCode = false;
- boolean isBold = false;
- for(char c : message.toCharArray()){
- if(c == ChatColor.COLOR_CHAR){//much safer
- previousCode = true;
- }else if(previousCode){
- previousCode = false;
- char nc = Character.toLowerCase(c);
- if(!isBold)
- if(nc == ChatColor.BOLD.getChar())
- isBold = true;
- else
- if(nc == ChatColor.RESET.getChar())
- 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;
- StringBuilder sb = new StringBuilder((int) (Math.ceil((float)toCompensate/spaceLength) + message.length()));//some optimization
- for(int i = 0; i < toCompensate; i += spaceLength)
- sb.append(" ");
- return sb.append(message).toString();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement