summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2021-10-20 21:37:38 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2021-10-20 21:37:38 -0400
commitd076b77686c4ce44d9aa034b33fa6d818110cb01 (patch)
treeeec136b8b3823a570172dab8991b58861828a427 /src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
parentteams reference rewrite (diff)
downloadkenshinshideandseek-d076b77686c4ce44d9aa034b33fa6d818110cb01.tar.gz
kenshinshideandseek-d076b77686c4ce44d9aa034b33fa6d818110cb01.tar.bz2
kenshinshideandseek-d076b77686c4ce44d9aa034b33fa6d818110cb01.zip
nametags fix
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/util/Board.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Board.java160
1 files changed, 112 insertions, 48 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";
}
}