Ir para conteúdo

[Lib] CustomScoreboard - Crie scoreboards s/ flick


Braayy

Posts Recomendados

Fala galera :D

Bom, hj eu estou aqui trazendo uma Lib bem simples pra quem gosta de fazer scoreboard mas faz flickando D:

Aqui esta ela:

package braayy.testes;

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

public class CustomScoreboard {

	private Scoreboard score;
	private Objective obj;

	public CustomScoreboard(String title) {
		this.score = Bukkit.getScoreboardManager().getNewScoreboard();
		this.obj = score.registerNewObjective("score", "dummy");

		obj.setDisplayName(title);
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
	}

	public String getTitle() {
		return obj.getDisplayName();
	}

	public CustomScoreboard addLine(int line, String value) {
		obj.getScore(value).setScore(line);
		return this;
	}

	public CustomScoreboard addLine(int line, String prefix, String suffix) {
		Team team = getLine(line);
		if (team == null) team = score.registerNewTeam("Line" + line);
		team.addEntry(prefix);
		team.setSuffix(suffix);

		obj.getScore(prefix).setScore(line);
		return this;
	}

	public CustomScoreboard sendTo(Player p) {
		p.setScoreboard(score);
		return this;
	}

	public Team getLine(int line) {
		return score.getTeam("Line" + line);
	}

	public Objective getObjective() {
		return obj;
	}

	public Scoreboard getScoreboard() {
		return score;
	}

	public CustomScoreboard update(int line, String suffix) {
		Team team = getLine(line);
		if (team == null) return this;

		team.setSuffix(suffix);
		return this;
	}
}

Bom, como eu fiz essa lib com a minha lógica kk

Nada mais justo do que eu mostrar um exemplo de uso:

package braayy.testes;

import java.util.HashMap;

import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {
	
	private HashMap<String, CustomScoreboard> score = new HashMap<>();
	private HashMap<String, Integer> passos = new HashMap<>();
	
	@Override
	public void onEnable() {
		getServer().getPluginManager().registerEvents(this, this);
		saveDefaultConfig();
	}
	
	@Override
	public void onDisable() {
		HandlerList.unregisterAll((JavaPlugin) this);
	}
	
	@EventHandler
	public void onJoin(PlayerJoinEvent e) {
		String name = e.getPlayer().getName().toLowerCase();
		score.put(name, new CustomScoreboard("§aBraayyScore")
				.addLine(15, "")
				.addLine(14, "§7Passos: ", "0")
				.sendTo(e.getPlayer()));
	}
	
	@EventHandler
	public void aoMove(PlayerMoveEvent e) {
		String name = e.getPlayer().getName().toLowerCase();
		
		if (!score.containsKey(name)) return;
		
		if (!passos.containsKey(name)) {
			passos.put(name, 1);
			score.get(name).update(14, "1");
			return;
		}
		
		int p = passos.get(name).intValue();
		p++;
		passos.put(name, p);
		score.get(name).update(14, String.valueOf(p));
	}
	
}

Bom, espero que voces gostem :D

Se gosto da UP

Link para o comentário
Compartilhar em outros sites

Belo tutorial e lib

 

mas usar esse sistema de passos vai dar uma merda bem grande, e o PlayerMoveEvent pega o movimento da tela também então teria q checar a localização do player para não ter erro

 

pra galera que for usar faça um async pra fazer update não um evento de movimento.

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