Ir para conteúdo
  • 0

[Dúvida] Scoreboard (bukkit code)


Solitario

Pergunta

Meu code:

 

(Scoreboard)

	
	public static void ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = Bukkit.getScoreboardManager().getNewScoreboard();
		Objective obj = Board.registerNewObjective("Score", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
		p.setScoreboard(Board);
	}

@EDIT:

Muda isso ae ... n quero saber nd de list essas coisas n ... (quero sim só que não sobre isso agora)

 

Quero saber como posso colocar essa scoreboard + o code do TablistOrganizer (https://www.spigotmc.org/resources/tablistorganizer-beta.15713/)

A funcionar juntos ... (Se eu ativar a score ele some as tag do tab)

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

5 respostass a esta questão

Posts Recomendados

ok ok ... ambos estão funcionando ... ou pelo menos parece só que tive que mudar para este:

public static Scoreboard ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = p.getScoreboard();
		Objective obj = Board.registerNewObjective("Score2", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
		return Board;
	}
	
	@EventHandler
	public void move(PlayerMoveEvent e) {
		e.getPlayer().setScoreboard(ScoreboardManager2(e.getPlayer()));
	}

só que no event para ficar atualizando fica dando erro:

 

PaZTK51.png

 

Print do code:

 

dKWuHWR.png

 

não recomendo usar no PlayerMoveEvent, e sim numa task.. mas é no PlayerMove que se começa a aprender então..

public static Scoreboard ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = p.getScoreboard();
                Objective obj;
                if(p.getScoreboard().getObjective("Score2") == null){
		    obj = Board.registerNewObjective("Score2", "dummy");
		} else {
                    obj = p.getScoreboard().getObjective("Score2");
                }
                obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
		return Board;
	}
	
	@EventHandler
	public void move(PlayerMoveEvent e) {
		e.getPlayer().setScoreboard(ScoreboardManager2(e.getPlayer()));
	}

Como pode ver no erro que deu, você fica criando um objective, mas ele já tinha sido criado, então tem que verificar se já existe ou não

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

Acho que é por você estar usando 2 scores, tenta isso


	public static void ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = p.getScoreboard();
		Objective obj = Board.registerNewObjective("Score", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
	}
Link para o comentário
Compartilhar em outros sites

 

Acho que é por você estar usando 2 scores, tenta isso


	public static void ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = p.getScoreboard();
		Objective obj = Board.registerNewObjective("Score", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
	}

ok ok ... ambos estão funcionando ... ou pelo menos parece só que tive que mudar para este:

public static Scoreboard ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = p.getScoreboard();
		Objective obj = Board.registerNewObjective("Score2", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
		return Board;
	}
	
	@EventHandler
	public void move(PlayerMoveEvent e) {
		e.getPlayer().setScoreboard(ScoreboardManager2(e.getPlayer()));
	}

só que no event para ficar atualizando fica dando erro:

 

PaZTK51.png

 

Print do code:

 

dKWuHWR.png

 

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

não recomendo usar no PlayerMoveEvent, e sim numa task.. mas é no PlayerMove que se começa a aprender então..

public static Scoreboard ScoreboardManager2(Player p){
		main.mysql.connection();
		int kills = main.mysql.getKills(p.getUniqueId().toString());
		int deaths = main.mysql.getDeaths(p.getUniqueId().toString());
		Scoreboard Board = p.getScoreboard();
                Objective obj;
                if(p.getScoreboard().getObjective("Score2") == null){
		    obj = Board.registerNewObjective("Score2", "dummy");
		} else {
                    obj = p.getScoreboard().getObjective("Score2");
                }
                obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§e§l^-^");
		Score a1 = obj.getScore("       §c§lKills §f» §b" + kills + "    ");
		Score a2 = obj.getScore("       §7§lMortes §f» §b" + deaths + "    ");
		a1.setScore(13);
		a2.setScore(12);
		return Board;
	}
	
	@EventHandler
	public void move(PlayerMoveEvent e) {
		e.getPlayer().setScoreboard(ScoreboardManager2(e.getPlayer()));
	}

Como pode ver no erro que deu, você fica criando um objective, mas ele já tinha sido criado, então tem que verificar se já existe ou não

É ... queria numa task só que sla ... Bom, obrigado ^^

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...