Ir para conteúdo

[Util] Scoreboard com mais de 16 letras super fácil


DaviDEV

Posts Recomendados

Eae galera DaviDEV aqui bom hoje vou ensinar a fazer score com mais e 16 letras

Fiz um util pra facilitar isto, além de facilitar a fazer score facilita a adcionar mais letrar

Print:

6rnnVE6.png

Exemplo de Usos:

      DaviDEVScoreboard score = new DaviDEVScoreboard(
        HungerGames.prefixo.replace("[", "").replace("]", ""));
      score.addLinha(" ", 15);
      score.addLinha("§aIniciando em: §f" + StringTimer.TimerScore(HungerGames.tempo_inicio), 14);
      score.addLinha("  ", 13);
      score.addLinha(
        "§aJogadores: §f" + HungerGames.jogadores.size() + "§7§l/§f" + Bukkit.getMaxPlayers(),
        12);
      score.addLinha("   ", 11);
      String nome = Habilidade.getAbility(p);
      score.addLinha("§aSeu kit: §f" + nome == null ? nome = "Sem kit" : nome, 10);
      score.addLinha("    ", 9);

Classe:

package me.davidev.crafthg.Score;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;

/**
 * 
 * @author DaviDEV
 *
 */
public class DaviDEVScoreboard {

	private Objective obj;
	private Scoreboard sb;

	private String gerarTimeNome(Scoreboard sb) {
		String timeNome = "time";
		timeNome = timeNome + sb.getTeams().size() + 1;
		return timeNome;
	}
	
	/**
	 * Criar scoreboard
	 * @param titulo Titulo que vai aparecer na Score
	 */
	public DaviDEVScoreboard(String titulo) {
		this.sb = Bukkit.getScoreboardManager().getNewScoreboard();
		this.obj = sb.registerNewObjective("scoreboardutils", "davidev");
		obj.setDisplayName(titulo);
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
	}
	
	/**
	 * Adciona uma linha nova
	 * @param texto Texto que vai ficar escrito na linha
	 * @param linha Linha em que vai ser adcionado
	 */
	@SuppressWarnings("deprecation")
	public void addLinha(String texto, int linha) {
		int n = texto.length();
		Score s = null;
		Team t = null;
		if (n <= 16) {
			s = obj.getScore(Bukkit.getOfflinePlayer(texto));
		} else if (n > 16 && n < 32) {
			t = sb.registerNewTeam(gerarTimeNome(sb));
			t.setPrefix(texto.substring(0, 16));
			String nome = texto.substring(16);
			t.addPlayer(Bukkit.getOfflinePlayer(nome));
			s = obj.getScore(Bukkit.getOfflinePlayer(nome));
		} else if (n > 32) {
			t = sb.registerNewTeam(gerarTimeNome(sb));
			t.setPrefix(texto.substring(0, 16));
			t.setSuffix(texto.substring(32));
			String nome = texto.substring(16, 32);
			t.addPlayer(Bukkit.getOfflinePlayer(nome));
			s = obj.getScore(Bukkit.getOfflinePlayer(nome));
		}
		s.setScore(linha);
	}
	
	/**
	 * Pega a score
	 * @return a score
	 */
	public Scoreboard getScoreboard() {
		return sb;
	}
	
	/**
	 * Seta a score para jogador
	 * @param p jogador
	 */
	public void setScoreboard(Player p) {
		p.setScoreboard(sb);
	}
	
	/**
	 * Seta score para jogadores
	 * @param p jogadores
	 */
	public void setScoreboard(Player... p) {
		for (Player pl : p)
			pl.setScoreboard(sb);
	}

}

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

Veii me tira uma duvida é que é minha segunda vez que mecho com scoreboard onde coloco esse codigo?

 

DaviDEVScoreboard score = new DaviDEVScoreboard(
HungerGames.prefixo.replace("[", "").replace(]", ""));
score.addLinha(" ", 15);
score.addLinha("§aIniciando em: §f" + StringTimer.TimerScore(HungerGames.tempo_inicio), 14);
score.addLinha(" ", 13);
score.addLinha(
"§aJogadores: §f" + HungerGames.jogadores.size() + "§7§l/§f" + Bukkit.getMaxPlayers(),
12);
score.addLinha(" ", 11);
String nome = Habilidade.getAbility(p);
score.addLinha("§aSeu kit: §f" + nome == null ? nome = "Sem kit" : nome, 10);
score.addLinha(" ", 9);

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...