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 (§).