package nmt.minecraft.Regicide.ScoreBoard; import java.util.Collection; import nmt.minecraft.Regicide.Game.Player.RPlayer; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Team; public class ScoreBoard { private org.bukkit.scoreboard.Scoreboard board; private Objective scoreObjective; private PointBar scoreBar; private Team kingTeam, playerTeam; private RPlayer currentKing; public ScoreBoard() { this.board = Bukkit.getScoreboardManager().getNewScoreboard(); scoreObjective = board.registerNewObjective("Points", "dummy"); scoreObjective.setDisplaySlot(DisplaySlot.SIDEBAR); scoreBar = new PointBar(); playerTeam = board.registerNewTeam("Players"); kingTeam = board.registerNewTeam("King"); kingTeam.setPrefix(ChatColor.GOLD.toString()); playerTeam.setPrefix(ChatColor.BLUE.toString()); } public void updateScore(RPlayer player, int score) { scoreObjective.getScore(player.getPlayer().getDisplayName()).setScore(score); } public void displayScoreboard(Collection<RPlayer> players) { for (RPlayer play : players) { updateScore(play, 0); play.getPlayer().setScoreboard(board); playerTeam.addEntry(play.getPlayer().getDisplayName()); } } public void updateKing(RPlayer king) { scoreBar.setKing(king); //update names on scoreboard if (currentKing != null) { kingTeam.removeEntry(currentKing.getPlayer().getDisplayName()); playerTeam.addEntry(currentKing.getPlayer().getDisplayName()); } playerTeam.removeEntry(king.getPlayer().getDisplayName()); kingTeam.addEntry(king.getPlayer().getDisplayName()); currentKing = king; king.getPlayer().sendMessage(ChatColor.BLUE + "You are now the king!"); } /** * Updates the scoreboard and PointBar to accurately show information * @param time num from 0.0 to 1.0 describing how close to another point the king is */ public void update(float time) { scoreBar.update(time); } public void removePlayer(RPlayer player) { board.resetScores(player.getPlayer().getDisplayName()); player.getPlayer().setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard()); } }