MENSAGENS CENTRALIZADAS!
Olá! hoje irei ensinar como enviar uma mensagem centralizada para algum player no chat!
OBS:Não fui eu que criei este code!
OBS²: Não sei quem foi, então não tem como por créditos.. (se alguém souber, me avise)
Créditos: Lucca..
Bom, basta você adicionar o seguinte método a sua class:
private final static int CENTER_PX = 154; public static void sendCenteredMessage(Player player, String message){ if(message == null || message.equals("")) player.sendMessage(""); message = ChatColor.translateAlternateColorCodes('&', message); 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; } player.sendMessage(sb.toString() + message); }
Após isso, basta fazer apenas isto:
sendCenteredMessage(p, "Teste gamersboard");
E sua mensagem será enviada ao player p, totalmente centralizada!
@EDIT
Você também precisará criar uma class de nome DefaultFontInfo, contendo o seguinte code: CLIQUE AQUI PARA VER O CODE
E lembrando, este code suporta totalmente o uso de cores (§).