summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/util/Board.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Board.java118
1 files changed, 73 insertions, 45 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
index 17a60b1..9d856b5 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
@@ -26,7 +26,8 @@ public class Board {
private List<String> Hider, Seeker, Spectator;
private Map<String, Player> playerList = new HashMap<String,Player>();
-
+ private Map<String, CustomBoard> customBoards = new HashMap<String, CustomBoard>();
+
public boolean isPlayer(Player player) {
return playerList.containsKey(player.getName());
}
@@ -145,64 +146,91 @@ public class Board {
seekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
}
}
-
- private void createLobbyBoard(Player player) {
-
- Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
- Objective obj = board.registerNewObjective("LobbyScoreboard", "dummy",
- ChatColor.translateAlternateColorCodes('&', "&l&eHIDE AND SEEK"));
- createTeamsForBoard(board);
- obj.setDisplaySlot(DisplaySlot.SIDEBAR);
- Score waiting = obj.getScore("Waiting to start...");
- waiting.setScore(6);
- Score blank1 = obj.getScore(ChatColor.RESET.toString());
- blank1.setScore(5);
- Score players = obj.getScore("Players: "+playerList.values().size());
- players.setScore(4);
- Score blank2 = obj.getScore(ChatColor.RESET.toString() + ChatColor.RESET.toString());
- blank2.setScore(3);
- Score seeker = obj.getScore(ChatColor.BOLD + "" + ChatColor.RED + "SEEKER%" + ChatColor.WHITE + getSeekerPercent());
- seeker.setScore(2);
- Score hider = obj.getScore(ChatColor.BOLD + "" + ChatColor.GOLD + "HIDER%" + ChatColor.WHITE + getHiderPercent());
- hider.setScore(1);
- player.setScoreboard(board);
+
+ public void createLobbyBoard(Player player) {
+ createLobbyBoard(player, true);
}
-
- private void createGameBoard(Player player) {
- Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
- Objective obj = board.registerNewObjective("GameScoreboard", "dummy",
- ChatColor.translateAlternateColorCodes('&', "&l&eHIDE AND SEEK"));
- createTeamsForBoard(board);
- obj.setDisplaySlot(DisplaySlot.SIDEBAR);
- Score team = obj.getScore("Team: " + getTeam(player));
- team.setScore(6);
- Score blank1 = obj.getScore(ChatColor.RESET.toString());
- blank1.setScore(5);
- if(gameLength > 0) {
- Score waiting = obj.getScore(ChatColor.GREEN + "Time Left: " + ChatColor.WHITE + Main.plugin.timeLeft/60 + "m" + Main.plugin.timeLeft%60 + "s");
- waiting.setScore(4);
- Score blank2 = obj.getScore(ChatColor.RESET.toString() + ChatColor.RESET.toString());
- blank2.setScore(3);
+
+ private void createLobbyBoard(Player player, boolean recreate) {
+ CustomBoard board = customBoards.get(player.getName());
+ if(recreate) {
+ board = new CustomBoard(player, "&l&eHIDE AND SEEK");
+ board.updateTeams();
+ }
+ board.setLine("hiders", ChatColor.BOLD + "" + ChatColor.YELLOW + "HIDER%" + ChatColor.WHITE + getHiderPercent());
+ board.setLine("seekers", ChatColor.BOLD + "" + ChatColor.RED + "SEEKER%" + ChatColor.WHITE + getSeekerPercent());
+ board.addBlank();
+ board.setLine("players", "Players: " + playerList.values().size());
+ board.addBlank();
+ board.setLine("waiting", "Waiting to start...");
+ board.display();
+ customBoards.put(player.getName(), board);
+ }
+
+ public void createGameBoard(Player player){
+ createGameBoard(player, true);
+ }
+
+ private void createGameBoard(Player player, boolean recreate){
+ CustomBoard board = customBoards.get(player.getName());
+ if(recreate) {
+ board = new CustomBoard(player, "&l&eHIDE AND SEEK");
+ }
+ board.setLine("hiders", ChatColor.BOLD + "" + ChatColor.YELLOW + "HIDERS:" + ChatColor.WHITE + " " + Hider.size());
+ board.setLine("seekers", ChatColor.BOLD + "" + ChatColor.RED + "SEEKERS:" + ChatColor.WHITE + " " + Seeker.size());
+ board.addBlank();
+ if(glowEnabled){
+ if(Main.plugin.glow == null || Main.plugin.status.equals("Starting") || !Main.plugin.glow.isRunning())
+ board.setLine("glow", "Glow: " + ChatColor.RED + "Inactive");
+ else
+ board.setLine("glow", "Glow: " + ChatColor.GREEN + "Active");
}
- Score seeker = obj.getScore(ChatColor.BOLD + "" + ChatColor.RED + "SEEKERS:" + ChatColor.WHITE + " " + Seeker.size());
- seeker.setScore(2);
- Score hider = obj.getScore(ChatColor.BOLD + "" + ChatColor.GOLD + "HIDERS:" + ChatColor.WHITE + " " + Hider.size());
- hider.setScore(1);
- player.setScoreboard(board);
+ if(tauntEnabled && tauntCountdown){
+ if(Main.plugin.taunt == null || Main.plugin.status.equals("Starting"))
+ board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + "0m0s");
+ else if(!tauntLast && Hider.size() == 1){
+ board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + "Expired");
+ } else if(!Main.plugin.taunt.isRunning())
+ board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + Main.plugin.taunt.getDelay()/60 + "m" + Main.plugin.taunt.getDelay()%60 + "s");
+ else
+ board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + "Active");
+ }
+ if(worldborderEnabled){
+ if(Main.plugin.worldborder == null || Main.plugin.status.equals("Starting")){
+ board.setLine("board", "WorldBorder: " + ChatColor.YELLOW + "0m0s");
+ } else if(!Main.plugin.worldborder.isRunning()) {
+ board.setLine("board", "WorldBorder: " + ChatColor.YELLOW + Main.plugin.worldborder.getDelay()/60 + "m" + Main.plugin.worldborder.getDelay()%60 + "s");
+ } else {
+ board.setLine("board", "WorldBorder: " + ChatColor.YELLOW + "Decreasing");
+ }
+ }
+ if(glowEnabled || (tauntEnabled && tauntCountdown) || worldborderEnabled)
+ board.addBlank();
+ board.setLine("time", "Time Left: " + ChatColor.GREEN + Main.plugin.timeLeft/60 + "m" + Main.plugin.timeLeft%60 + "s");
+ board.addBlank();
+ board.setLine("team", "Team: " + getTeam(player));
+ board.display();
+ customBoards.put(player.getName(), board);
}
public void removeBoard(Player player) {
player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard());
+ customBoards.remove(player.getName());
}
public void reloadLobbyBoards() {
for(Player player : playerList.values())
- createLobbyBoard(player);
+ createLobbyBoard(player, false);
}
public void reloadGameBoards() {
for(Player player : playerList.values())
- createGameBoard(player);
+ createGameBoard(player, false);
+ }
+
+ public void reloadBoardTeams() {
+ for(CustomBoard board : customBoards.values())
+ board.updateTeams();
}
private String getSeekerPercent() {