Ir para conteúdo

[TUTORIAL] Mensagens centralizadas!


Lucca.

Posts Recomendados

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)

 

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

Editado por Lucca.
Link para o comentário
Compartilhar em outros sites

Aqui nunca centraliza .-.

 

 

oMz3TfB.png

@EventHandler
	public void ab(PlayerInteractEvent e) {
		CenterMessage.sendCenteredMessage(e.getPlayer(), "§a§m-----------------------------"
				+ "\n"
				+ "§eVocê conseguiu 1 diamante!\n"
				+ "§aAgora você pode acessar o site minecraft.com.mibr e entrar e comprsar vip."
				+ "\n"
				+ "§a§m-----------------------------");
	}

(NÃO LIGUE PARA A MENSAGEM , EU ESCREVI ERRADO DE PROPÓSITO.) 

 

Por que  não centraliza? ;-;

Link para o comentário
Compartilhar em outros sites

 

Aqui nunca centraliza .-.

 

 

oMz3TfB.png

@EventHandler
	public void ab(PlayerInteractEvent e) {
		CenterMessage.sendCenteredMessage(e.getPlayer(), "§a§m-----------------------------"
				+ "\n"
				+ "§eVocê conseguiu 1 diamante!\n"
				+ "§aAgora você pode acessar o site minecraft.com.mibr e entrar e comprsar vip."
				+ "\n"
				+ "§a§m-----------------------------");
	}
(NÃO LIGUE PARA A MENSAGEM , EU ESCREVI ERRADO DE PROPÓSITO.)

 

Por que não centraliza? ;-;

Cara, tem que mandar linha por linha

 

Fonte: https://www.spigotmc.org/threads/free-code-sending-perfectly-centered-chat-message.95872/

 

Sério, era só procurar "spigot center message" no Google que você iria encontrar quem fez...

 

Não entendi, oque isso faz mrm?
Eu podia te dar um warn, mas to legal hoje.

 

Pelo jeito não sabe ler, ISSO CENTRALIZA UMA MENSAGEM NO CHAT

Link para o comentário
Compartilhar em outros sites

Aqui nunca centraliza .-.

 

 

oMz3TfB.png

@EventHandler
	public void ab(PlayerInteractEvent e) {
		CenterMessage.sendCenteredMessage(e.getPlayer(), "§a§m-----------------------------"
				+ "\n"
				+ "§eVocê conseguiu 1 diamante!\n"
				+ "§aAgora você pode acessar o site minecraft.com.mibr e entrar e comprsar vip."
				+ "\n"
				+ "§a§m-----------------------------");
	}

(NÃO LIGUE PARA A MENSAGEM , EU ESCREVI ERRADO DE PROPÓSITO.) 

 

Por que  não centraliza? ;-;

Se a mensagem é muito grande ele não centraliza, é melhor você verificar o tamanho do seu texto, e, se for muito grande, você manda separadamente.

Link para o comentário
Compartilhar em outros sites

Guest iTzFernandPlus⁴ ¿ ₱ęčæ
Cara, tem que mandar linha por linhaEu podia te dar um warn, mas to legal hoje.

Pelo jeito não sabe ler, ISSO CENTRALIZA UMA MENSAGEM NO CHAT

Oque seria centralizar?

Link para o comentário
Compartilhar em outros sites

Guest iTzFernandPlus⁴ ¿ ₱ęčæ
Significado de Centralizar

v.t. Tornar central; reunir em um mesmo centro; fazer convergir para o centro.

Aff kra minha linguagem por favor, ele deixa as mensagens no centro do chat?

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...