+ Added way to disable the scoreboard.

This commit is contained in:
Steffion 2013-09-22 15:54:36 +02:00
parent 197e647ece
commit 572ef9d948
2 changed files with 59 additions and 55 deletions

View File

@ -82,6 +82,7 @@ public enum ConfigC {
"%A%arenaname%", "%A%players%%N/%A%maxplayers%", "%A%arenaname%", "%A%players%%N/%A%maxplayers%",
"%EIngame: %A%timeleft%" }, W.config), "%EIngame: %A%timeleft%" }, W.config),
scoreboard_enabled (true, W.config),
scoreboard_title ("[" + BlockHunt.pdfFile.getName() + "]", W.config), scoreboard_title ("[" + BlockHunt.pdfFile.getName() + "]", W.config),
scoreboard_timeleft ("%ATime left:", W.config), scoreboard_timeleft ("%ATime left:", W.config),
scoreboard_seekers ("%NSeekers:", W.config), scoreboard_seekers ("%NSeekers:", W.config),

View File

@ -12,67 +12,70 @@ import org.bukkit.scoreboard.Scoreboard;
public class ScoreboardHandler { public class ScoreboardHandler {
public static void createScoreboard(Arena arena) { public static void createScoreboard(Arena arena) {
Scoreboard board = arena.scoreboard; if ((Boolean) W.config.get(ConfigC.scoreboard_enabled) == true) {
if (board.getObjective(arena.arenaName) != null) { Scoreboard board = arena.scoreboard;
updateScoreboard(arena); if (board.getObjective(arena.arenaName) != null) {
return; updateScoreboard(arena);
} return;
Objective object = board.registerNewObjective(arena.arenaName, "dummy");
object.setDisplaySlot(DisplaySlot.SIDEBAR);
object.setDisplayName(MessageM.replaceAll((String) W.config
.get(ConfigC.scoreboard_title)));
Score timeleft = object
.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config
.get(ConfigC.scoreboard_timeleft))));
timeleft.setScore(arena.timer);
Score seekers = object
.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config
.get(ConfigC.scoreboard_seekers))));
seekers.setScore(arena.seekers.size());
Score hiders = object.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config.get(ConfigC.scoreboard_hiders))));
hiders.setScore(arena.playersInArena.size() - arena.seekers.size());
if (arena.gameState == ArenaState.INGAME) {
for (Player pl : arena.playersInArena) {
pl.setScoreboard(board);
} }
} else {
for (Player pl : arena.playersInArena) { Objective object = board.registerNewObjective(arena.arenaName,
pl.setScoreboard(Bukkit.getScoreboardManager() "dummy");
.getNewScoreboard()); object.setDisplaySlot(DisplaySlot.SIDEBAR);
object.setDisplayName(MessageM.replaceAll((String) W.config
.get(ConfigC.scoreboard_title)));
Score timeleft = object.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config
.get(ConfigC.scoreboard_timeleft))));
timeleft.setScore(arena.timer);
Score seekers = object.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config
.get(ConfigC.scoreboard_seekers))));
seekers.setScore(arena.seekers.size());
Score hiders = object.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config
.get(ConfigC.scoreboard_hiders))));
hiders.setScore(arena.playersInArena.size() - arena.seekers.size());
if (arena.gameState == ArenaState.INGAME) {
for (Player pl : arena.playersInArena) {
pl.setScoreboard(board);
}
} else {
for (Player pl : arena.playersInArena) {
pl.setScoreboard(Bukkit.getScoreboardManager()
.getNewScoreboard());
}
} }
} }
} }
public static void updateScoreboard(Arena arena) { public static void updateScoreboard(Arena arena) {
Scoreboard board = arena.scoreboard; if ((Boolean) W.config.get(ConfigC.scoreboard_enabled) == true) {
Objective object = board.getObjective(DisplaySlot.SIDEBAR); Scoreboard board = arena.scoreboard;
object.setDisplayName(MessageM.replaceAll((String) W.config Objective object = board.getObjective(DisplaySlot.SIDEBAR);
.get(ConfigC.scoreboard_title))); object.setDisplayName(MessageM.replaceAll((String) W.config
Score timeleft = object .get(ConfigC.scoreboard_title)));
.getScore(Bukkit.getOfflinePlayer(MessageM Score timeleft = object.getScore(Bukkit.getOfflinePlayer(MessageM
.replaceAll((String) W.config .replaceAll((String) W.config
.get(ConfigC.scoreboard_timeleft)))); .get(ConfigC.scoreboard_timeleft))));
timeleft.setScore(arena.timer); timeleft.setScore(arena.timer);
Score seekers = object Score seekers = object.getScore(Bukkit.getOfflinePlayer(MessageM
.getScore(Bukkit.getOfflinePlayer(MessageM .replaceAll((String) W.config
.replaceAll((String) W.config .get(ConfigC.scoreboard_seekers))));
.get(ConfigC.scoreboard_seekers)))); seekers.setScore(arena.seekers.size());
seekers.setScore(arena.seekers.size()); Score hiders = object.getScore(Bukkit.getOfflinePlayer(MessageM
Score hiders = object.getScore(Bukkit.getOfflinePlayer(MessageM .replaceAll((String) W.config
.replaceAll((String) W.config.get(ConfigC.scoreboard_hiders)))); .get(ConfigC.scoreboard_hiders))));
hiders.setScore(arena.playersInArena.size() - arena.seekers.size()); hiders.setScore(arena.playersInArena.size() - arena.seekers.size());
if (arena.gameState == ArenaState.INGAME) { if (arena.gameState == ArenaState.INGAME) {
for (Player pl : arena.playersInArena) { for (Player pl : arena.playersInArena) {
pl.setScoreboard(board); pl.setScoreboard(board);
} }
} else { } else {
for (Player pl : arena.playersInArena) { for (Player pl : arena.playersInArena) {
pl.setScoreboard(Bukkit.getScoreboardManager() pl.setScoreboard(Bukkit.getScoreboardManager()
.getNewScoreboard()); .getNewScoreboard());
}
} }
} }
} }