/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.arkhamnetwork.arcade.commons.scoreboard; import org.arkhamnetwork.arcade.commons.storage.ArcadeHashMap; import org.arkhamnetwork.arcade.commons.utils.MessageUtils; import org.arkhamnetwork.arcade.core.Arcade; import org.bukkit.entity.Player; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Scoreboard; /** * * @author devan_000 */ public class ArcadeScoreboard { private Scoreboard scoreboard; private ArcadeHashMap<Integer, String> storedLines = new ArcadeHashMap<>(); public ArcadeScoreboard() { scoreboard = Arcade.getInstance().getServer().getScoreboardManager() .getNewScoreboard(); scoreboard.registerNewObjective("Arcade", "Arcade"); } public boolean hasLine(int lineID) { return storedLines.get(lineID) != null; } public void setSlot(DisplaySlot slot) { scoreboard.getObjective("Arcade").setDisplaySlot(slot); } public void setName(String name) { scoreboard.getObjective("Arcade").setDisplayName( MessageUtils.translateToColorCode(name)); } public String getName() { return scoreboard.getObjective("Arcade").getDisplayName(); } public void addLine(int id, String name, int scoreValue) { storedLines.put(id, name); scoreboard.getObjective("Arcade") .getScore(MessageUtils.translateToColorCode(name)) .setScore(scoreValue); } public void removeLine(int id) { scoreboard.resetScores(storedLines.get(id)); storedLines.remove(id); } public void updateLine(int id, String newName, int newScoreValue) { scoreboard.resetScores(storedLines.get(id)); addLine(id, newName, newScoreValue); } public void setForPlayer(Player player) { player.setScoreboard(scoreboard); } }