diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/util')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/Board.java | 160 | ||||
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/Util.java | 2 |
2 files changed, 113 insertions, 49 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java index f1fceba..76698aa 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java @@ -10,26 +10,23 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.ScoreboardManager; import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team.Option; import org.bukkit.scoreboard.Team.OptionStatus; +import net.tylermurphy.hideAndSeek.Main; + import static net.tylermurphy.hideAndSeek.Config.*; public class Board { - private Team HiderTeam, SeekerTeam, SpectatorTeam; private List<String> Hider, Seeker, Spectator; private Map<String, Player> playerList = new HashMap<String,Player>(); - private boolean setup = false; - - public boolean isReady() { - return setup; - } - public boolean isPlayer(Player player) { return playerList.containsKey(player.getName()); } @@ -90,7 +87,7 @@ public class Board { Hider.add(player.getName()); Seeker.remove(player.getName()); Spectator.remove(player.getName()); - HiderTeam.addEntry(player.getName()); + //HiderTeam.addEntry(player.getName()); if(!playerList.containsKey(player.getName())) playerList.put(player.getName(), player); } @@ -99,7 +96,7 @@ public class Board { Hider.remove(player.getName()); Seeker.add(player.getName()); Spectator.remove(player.getName()); - SeekerTeam.addEntry(player.getName()); + //SeekerTeam.addEntry(player.getName()); if(!playerList.containsKey(player.getName())) playerList.put(player.getName(), player); } @@ -108,7 +105,7 @@ public class Board { Hider.remove(player.getName()); Seeker.remove(player.getName()); Spectator.add(player.getName()); - SpectatorTeam.addEntry(player.getName()); + //SpectatorTeam.addEntry(player.getName()); if(!playerList.containsKey(player.getName())) playerList.put(player.getName(), player); } @@ -117,9 +114,9 @@ public class Board { Hider.remove(player.getName()); Seeker.remove(player.getName()); Spectator.remove(player.getName()); - HiderTeam.removeEntry(player.getName()); - SeekerTeam.removeEntry(player.getName()); - SpectatorTeam.removeEntry(player.getName()); + //HiderTeam.removeEntry(player.getName()); + //SeekerTeam.removeEntry(player.getName()); + //SpectatorTeam.removeEntry(player.getName()); playerList.remove(player.getName()); } @@ -130,49 +127,116 @@ public class Board { else return false; } - public void init() { + public void reload() { Hider = new ArrayList<String>(); Seeker = new ArrayList<String>(); Spectator = new ArrayList<String>(); - reload(); - } - - public void reload() { - - ScoreboardManager manager = Bukkit.getScoreboardManager(); - if(manager == null) return; - Scoreboard board = manager.getMainScoreboard(); - - try { board.registerNewTeam("Seeker"); } catch(Exception e) {} - SeekerTeam = board.getTeam("Seeker"); - SeekerTeam.setColor(ChatColor.RED); - if(nametagsVisible) SeekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OTHER_TEAMS); - else SeekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - - try { board.registerNewTeam("Hider"); } catch(Exception e) {} - HiderTeam = board.getTeam("Hider"); - HiderTeam.setColor(ChatColor.GOLD); - if(nametagsVisible) HiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OWN_TEAM); - else HiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - - try { board.registerNewTeam("Spectator"); } catch(Exception e) {} - SpectatorTeam = board.getTeam("Spectator"); - SpectatorTeam.setColor(ChatColor.GRAY); - SpectatorTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - - setup = true; } public void reset() { Hider.clear(); Seeker.clear(); Spectator.clear(); - for(String entry : HiderTeam.getEntries()) - HiderTeam.removeEntry(entry); - for(String entry : SeekerTeam.getEntries()) - SeekerTeam.removeEntry(entry); - for(String entry : SpectatorTeam.getEntries()) - SpectatorTeam.removeEntry(entry); +// for(String entry : HiderTeam.getEntries()) +// HiderTeam.removeEntry(entry); +// for(String entry : SeekerTeam.getEntries()) +// SeekerTeam.removeEntry(entry); +// for(String entry : SpectatorTeam.getEntries()) +// SpectatorTeam.removeEntry(entry); + } + + private void createTeamsForBoard(Scoreboard board) { + Team hiderTeam = board.registerNewTeam("Hider"); + for(String name : Hider) + hiderTeam.addEntry(name); + Team seekerTeam = board.registerNewTeam("Seeker"); + for(String name : Seeker) + seekerTeam.addEntry(name); + if(nametagsVisible) { + hiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OWN_TEAM); + seekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OTHER_TEAMS); + } else { + hiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); + 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.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); + } + + 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); + 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); + 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); + } + + public void removeBoard(Player player) { + player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard()); + } + + public void reloadLobbyBoards() { + for(Player player : playerList.values()) + createLobbyBoard(player); + } + + public void reloadGameBoards() { + for(Player player : playerList.values()) + createGameBoard(player); + } + + private String getSeekerPercent() { + if(playerList.size() < 2) + return " --"; + else + return " "+(int)(100*(1.0/playerList.size())); + } + + private String getHiderPercent() { + if(playerList.size() < 2) + return " --"; + else + return " "+(int)(100-100*(1.0/playerList.size())); + } + + private String getTeam(Player player) { + if(isHider(player)) return ChatColor.GOLD + "HIDER"; + else if(isSeeker(player)) return ChatColor.RED + "SEEKER"; + else if(isSpectator(player)) return ChatColor.GRAY + "SPECTATOR"; + else return ChatColor.WHITE + "UNKNOWN"; } } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java index 7c7e230..ee158dc 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java @@ -49,7 +49,7 @@ public class Util { Bukkit.getScheduler().runTaskLaterAsynchronously(Main.plugin, new Runnable() { public void run() { if(gameId == Main.plugin.gameId) - Util.broadcastMessage(messagePrefix + "Hiders have 1 seconds to hide!"); + Util.broadcastMessage(message); } }, delay); } |