From 1c1d41ff102b24946315c25eace91be66bfd50b2 Mon Sep 17 00:00:00 2001 From: steev Date: Thu, 30 Jan 2025 11:48:41 +0100 Subject: [PATCH] refactored packages fixed bug that prevent scoreboard from updating properly --- .../de/steev/Tridentwar/States/Aborting.java | 4 +- .../de/steev/Tridentwar/States/Active.java | 30 +++++++- .../de/steev/Tridentwar/States/Lobby.java | 2 +- .../de/steev/Tridentwar/States/Starting.java | 6 +- .../de/steev/Tridentwar/States/Stopping.java | 4 +- .../de/steev/Tridentwar/States/Waiting.java | 4 +- .../java/de/steev/Tridentwar/States/Won.java | 4 +- .../java/de/steev/Tridentwar/Tridentwar.java | 6 +- .../commands/TridentwarCommand.java | 6 +- .../{Handlers => handlers}/FileHandler.java | 4 +- .../listeners/EntityDamageListener.java | 6 +- .../Tridentwar/listeners/JoinListener.java | 6 +- .../Tridentwar/listeners/LeaveListener.java | 6 +- .../listeners/PlayerDamageListener.java | 6 +- .../listeners/ProjectileHitListener.java | 6 +- .../listeners/ProjectileLaunchListener.java | 8 +- .../steev/Tridentwar/manager/GameManager.java | 12 +-- .../steev/Tridentwar/manager/GameState.java | 2 +- .../Tridentwar/manager/MessageManager.java | 2 +- .../Tridentwar/manager/PlayerManager.java | 2 +- .../Tridentwar/manager/ScoreBoardManager.java | 77 +++++++++---------- .../Tridentwar/manager/SoundManager.java | 2 +- .../Tridentwar/manager/TridentManager.java | 4 +- .../tasks/GameStartCountdownTask.java | 30 +++++++- .../Tridentwar/tasks/LobbyWaitingTask.java | 36 ++++++++- .../Tridentwar/tasks/TridentResetTask.java | 4 +- 26 files changed, 175 insertions(+), 104 deletions(-) rename src/main/java/de/steev/Tridentwar/{Handlers => handlers}/FileHandler.java (97%) diff --git a/src/main/java/de/steev/Tridentwar/States/Aborting.java b/src/main/java/de/steev/Tridentwar/States/Aborting.java index 4cc33b7..f0122bb 100644 --- a/src/main/java/de/steev/Tridentwar/States/Aborting.java +++ b/src/main/java/de/steev/Tridentwar/States/Aborting.java @@ -1,7 +1,7 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/de/steev/Tridentwar/States/Active.java b/src/main/java/de/steev/Tridentwar/States/Active.java index 5a781fb..3b29261 100644 --- a/src/main/java/de/steev/Tridentwar/States/Active.java +++ b/src/main/java/de/steev/Tridentwar/States/Active.java @@ -1,14 +1,21 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; +import de.steev.Tridentwar.manager.GameManager; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.entity.Player; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.ScoreboardManager; public class Active { private final GameManager gameManager; + private final ScoreboardManager manager; + private boolean isInitialized = false; public Active(GameManager gameManager) { + this.manager = Bukkit.getScoreboardManager(); this.gameManager = gameManager; } @@ -18,9 +25,26 @@ public class Active { this.gameManager.getPlayerManager().setPlayersHealth(20F); this.gameManager.getPlayerManager().setAlive(Bukkit.getOnlinePlayers().size()); this.gameManager.getPlayerManager().giveKits(); + + Scoreboard board = manager.getNewScoreboard(); + Objective obj = board.registerNewObjective("Tridentwar", "dummy", "SLPNetwork"); + obj.setDisplaySlot(DisplaySlot.SIDEBAR); + for (Player p : Bukkit.getOnlinePlayers()) { - this.gameManager.getPlayerManager().setKills(p, 0); - this.gameManager.getScoreBoardManager().updateScoreBoard(p, this.gameManager.getPlayerManager().getAlive(), this.gameManager.getPlayerManager().getKills(p)); + + if (!isInitialized) { + this.gameManager.getPlayerManager().setKills(p, 0); + } + + obj.getScore("=-=-=-=-=-=-=-=-=-=-=").setScore(5); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.player") + " " + p.getDisplayName()).setScore(4); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.alive") + " " + this.gameManager.getPlayerManager().getAlive()).setScore(3); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.kills") + " " + this.gameManager.getPlayerManager().getKills(p)).setScore(2); + obj.getScore("").setScore(1); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.server")).setScore(0); + + p.setScoreboard(board); + } } } diff --git a/src/main/java/de/steev/Tridentwar/States/Lobby.java b/src/main/java/de/steev/Tridentwar/States/Lobby.java index dd4bcda..757e8e3 100644 --- a/src/main/java/de/steev/Tridentwar/States/Lobby.java +++ b/src/main/java/de/steev/Tridentwar/States/Lobby.java @@ -1,6 +1,6 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; +import de.steev.Tridentwar.manager.GameManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; diff --git a/src/main/java/de/steev/Tridentwar/States/Starting.java b/src/main/java/de/steev/Tridentwar/States/Starting.java index 3a96436..b8f15bf 100644 --- a/src/main/java/de/steev/Tridentwar/States/Starting.java +++ b/src/main/java/de/steev/Tridentwar/States/Starting.java @@ -1,8 +1,8 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; -import de.steev.Tridentwar.Tasks.GameStartCountdownTask; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; +import de.steev.Tridentwar.tasks.GameStartCountdownTask; import org.bukkit.Bukkit; import org.bukkit.ChatColor; diff --git a/src/main/java/de/steev/Tridentwar/States/Stopping.java b/src/main/java/de/steev/Tridentwar/States/Stopping.java index 1101035..933edbf 100644 --- a/src/main/java/de/steev/Tridentwar/States/Stopping.java +++ b/src/main/java/de/steev/Tridentwar/States/Stopping.java @@ -1,7 +1,7 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/de/steev/Tridentwar/States/Waiting.java b/src/main/java/de/steev/Tridentwar/States/Waiting.java index 3843b08..ccbb1ba 100644 --- a/src/main/java/de/steev/Tridentwar/States/Waiting.java +++ b/src/main/java/de/steev/Tridentwar/States/Waiting.java @@ -1,7 +1,7 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Tasks.LobbyWaitingTask; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.tasks.LobbyWaitingTask; import org.bukkit.Bukkit; import org.bukkit.ChatColor; diff --git a/src/main/java/de/steev/Tridentwar/States/Won.java b/src/main/java/de/steev/Tridentwar/States/Won.java index 90db4df..f008c35 100644 --- a/src/main/java/de/steev/Tridentwar/States/Won.java +++ b/src/main/java/de/steev/Tridentwar/States/Won.java @@ -1,7 +1,7 @@ package de.steev.Tridentwar.States; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; diff --git a/src/main/java/de/steev/Tridentwar/Tridentwar.java b/src/main/java/de/steev/Tridentwar/Tridentwar.java index 76e9ce3..130e5d6 100644 --- a/src/main/java/de/steev/Tridentwar/Tridentwar.java +++ b/src/main/java/de/steev/Tridentwar/Tridentwar.java @@ -1,8 +1,8 @@ package de.steev.Tridentwar; -import de.steev.Tridentwar.Commands.TridentwarCommand; -import de.steev.Tridentwar.Listeners.*; -import de.steev.Tridentwar.Manager.GameManager; +import de.steev.Tridentwar.commands.TridentwarCommand; +import de.steev.Tridentwar.listeners.*; +import de.steev.Tridentwar.manager.GameManager; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java b/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java index 21585cf..e23aca4 100644 --- a/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java +++ b/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java @@ -1,7 +1,7 @@ -package de.steev.Tridentwar.Commands; +package de.steev.Tridentwar.commands; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; diff --git a/src/main/java/de/steev/Tridentwar/Handlers/FileHandler.java b/src/main/java/de/steev/Tridentwar/handlers/FileHandler.java similarity index 97% rename from src/main/java/de/steev/Tridentwar/Handlers/FileHandler.java rename to src/main/java/de/steev/Tridentwar/handlers/FileHandler.java index cd4b304..f79f2ba 100644 --- a/src/main/java/de/steev/Tridentwar/Handlers/FileHandler.java +++ b/src/main/java/de/steev/Tridentwar/handlers/FileHandler.java @@ -1,6 +1,6 @@ -package de.steev.Tridentwar.Handlers; +package de.steev.Tridentwar.handlers; -import de.steev.Tridentwar.Manager.GameManager; +import de.steev.Tridentwar.manager.GameManager; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/de/steev/Tridentwar/listeners/EntityDamageListener.java b/src/main/java/de/steev/Tridentwar/listeners/EntityDamageListener.java index c1411ab..86566ca 100644 --- a/src/main/java/de/steev/Tridentwar/listeners/EntityDamageListener.java +++ b/src/main/java/de/steev/Tridentwar/listeners/EntityDamageListener.java @@ -1,7 +1,7 @@ -package de.steev.Tridentwar.Listeners; +package de.steev.Tridentwar.listeners; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Sound; diff --git a/src/main/java/de/steev/Tridentwar/listeners/JoinListener.java b/src/main/java/de/steev/Tridentwar/listeners/JoinListener.java index cb5d047..c0ba28c 100644 --- a/src/main/java/de/steev/Tridentwar/listeners/JoinListener.java +++ b/src/main/java/de/steev/Tridentwar/listeners/JoinListener.java @@ -1,7 +1,7 @@ -package de.steev.Tridentwar.Listeners; +package de.steev.Tridentwar.listeners; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Effect; import org.bukkit.GameMode; import org.bukkit.Material; diff --git a/src/main/java/de/steev/Tridentwar/listeners/LeaveListener.java b/src/main/java/de/steev/Tridentwar/listeners/LeaveListener.java index 5298da0..5a715c6 100644 --- a/src/main/java/de/steev/Tridentwar/listeners/LeaveListener.java +++ b/src/main/java/de/steev/Tridentwar/listeners/LeaveListener.java @@ -1,7 +1,7 @@ -package de.steev.Tridentwar.Listeners; +package de.steev.Tridentwar.listeners; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.GameMode; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/de/steev/Tridentwar/listeners/PlayerDamageListener.java b/src/main/java/de/steev/Tridentwar/listeners/PlayerDamageListener.java index ae0d36d..6ace646 100644 --- a/src/main/java/de/steev/Tridentwar/listeners/PlayerDamageListener.java +++ b/src/main/java/de/steev/Tridentwar/listeners/PlayerDamageListener.java @@ -1,7 +1,7 @@ -package de.steev.Tridentwar.Listeners; +package de.steev.Tridentwar.listeners; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Sound; diff --git a/src/main/java/de/steev/Tridentwar/listeners/ProjectileHitListener.java b/src/main/java/de/steev/Tridentwar/listeners/ProjectileHitListener.java index 9de57bb..b02db7a 100644 --- a/src/main/java/de/steev/Tridentwar/listeners/ProjectileHitListener.java +++ b/src/main/java/de/steev/Tridentwar/listeners/ProjectileHitListener.java @@ -1,7 +1,7 @@ -package de.steev.Tridentwar.Listeners; +package de.steev.Tridentwar.listeners; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; diff --git a/src/main/java/de/steev/Tridentwar/listeners/ProjectileLaunchListener.java b/src/main/java/de/steev/Tridentwar/listeners/ProjectileLaunchListener.java index 76b3e17..c01b39d 100644 --- a/src/main/java/de/steev/Tridentwar/listeners/ProjectileLaunchListener.java +++ b/src/main/java/de/steev/Tridentwar/listeners/ProjectileLaunchListener.java @@ -1,9 +1,9 @@ -package de.steev.Tridentwar.Listeners; +package de.steev.Tridentwar.listeners; import de.steev.Tridentwar.Tridentwar; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; -import de.steev.Tridentwar.Tasks.TridentResetTask; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; +import de.steev.Tridentwar.tasks.TridentResetTask; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/de/steev/Tridentwar/manager/GameManager.java b/src/main/java/de/steev/Tridentwar/manager/GameManager.java index cae0421..4f4eb79 100644 --- a/src/main/java/de/steev/Tridentwar/manager/GameManager.java +++ b/src/main/java/de/steev/Tridentwar/manager/GameManager.java @@ -1,17 +1,13 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; -import de.steev.Tridentwar.Handlers.FileHandler; +import de.steev.Tridentwar.handlers.FileHandler; import de.steev.Tridentwar.States.*; import de.steev.Tridentwar.Tridentwar; -import de.steev.Tridentwar.Tasks.GameStartCountdownTask; -import de.steev.Tridentwar.Tasks.LobbyWaitingTask; +import de.steev.Tridentwar.tasks.GameStartCountdownTask; +import de.steev.Tridentwar.tasks.LobbyWaitingTask; import org.bukkit.*; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; -import org.checkerframework.checker.units.qual.A; import java.io.File; -import java.util.Objects; public class GameManager { private final Tridentwar plugin; diff --git a/src/main/java/de/steev/Tridentwar/manager/GameState.java b/src/main/java/de/steev/Tridentwar/manager/GameState.java index 27391db..6ea6262 100644 --- a/src/main/java/de/steev/Tridentwar/manager/GameState.java +++ b/src/main/java/de/steev/Tridentwar/manager/GameState.java @@ -1,4 +1,4 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; public enum GameState { LOBBY, WAITING, STARTING, ACTIVE, WON, RESTARTING, STOPPING, ABORTING; diff --git a/src/main/java/de/steev/Tridentwar/manager/MessageManager.java b/src/main/java/de/steev/Tridentwar/manager/MessageManager.java index 72b01c0..4dd9963 100644 --- a/src/main/java/de/steev/Tridentwar/manager/MessageManager.java +++ b/src/main/java/de/steev/Tridentwar/manager/MessageManager.java @@ -1,4 +1,4 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; diff --git a/src/main/java/de/steev/Tridentwar/manager/PlayerManager.java b/src/main/java/de/steev/Tridentwar/manager/PlayerManager.java index 0512caa..2917189 100644 --- a/src/main/java/de/steev/Tridentwar/manager/PlayerManager.java +++ b/src/main/java/de/steev/Tridentwar/manager/PlayerManager.java @@ -1,4 +1,4 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; diff --git a/src/main/java/de/steev/Tridentwar/manager/ScoreBoardManager.java b/src/main/java/de/steev/Tridentwar/manager/ScoreBoardManager.java index c212fa3..a38da0e 100644 --- a/src/main/java/de/steev/Tridentwar/manager/ScoreBoardManager.java +++ b/src/main/java/de/steev/Tridentwar/manager/ScoreBoardManager.java @@ -1,9 +1,11 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scoreboard.*; +// TODO: consider building a scoreboard builder +// TODO: reworking scoreboard logic to make it possible to replace the entire scoreboard public class ScoreBoardManager { private GameManager gameManager; private final ScoreboardManager manager; @@ -12,7 +14,10 @@ public class ScoreBoardManager { * Manages Scoreboards created by the plugin * @param gameManager the local gamemanager instance */ - public ScoreBoardManager(GameManager gameManager) { this.manager = Bukkit.getScoreboardManager(); } + public ScoreBoardManager(GameManager gameManager) { + this.gameManager = gameManager; + this.manager = Bukkit.getScoreboardManager(); + } /** * Creates and sets a scoreboard for a player @@ -21,26 +26,18 @@ public class ScoreBoardManager { * @param kills how many kills the player got */ public void createScoreBoard(Player player, int alive, int kills) { - // Create board instance Scoreboard board = manager.getNewScoreboard(); - - // Create Board Objective Objective obj = board.registerNewObjective("Tridentwar", "dummy", "SLPNetwork"); obj.setDisplaySlot(DisplaySlot.SIDEBAR); - // Create Scores - Score splitter = obj.getScore("=-=-=-=-=-=-=-=-=-=-="); - splitter.setScore(5); - Score playerName = obj.getScore("Player: " + player.getDisplayName()); - playerName.setScore(4); - Score aliveScore = obj.getScore("Alive: " + alive); - aliveScore.setScore(3); - Score killsScore = obj.getScore("Kills: " + kills); - killsScore.setScore(2); - Score blankScore = obj.getScore(""); - blankScore.setScore(1); - Score hostScore = obj.getScore("play.slpnetwork.de"); - hostScore.setScore(0); + obj.getScore("=-=-=-=-=-=-=-=-=-=-=").setScore(5); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.player") + " " + player.getDisplayName()).setScore(4); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.alive") + " " + alive).setScore(3); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.kills") + " " + kills).setScore(2); + obj.getScore("").setScore(1); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.server")).setScore(0); + + player.setScoreboard(board); // **Scoreboard setzen** } /** @@ -50,32 +47,32 @@ public class ScoreBoardManager { * @param kills how many kills the player got * TODO: add time */ - public void updateScoreBoard(Player player, int alive, int kills){ - // Grab Scoreboard from Player + public void updateScoreBoard(Player player, int alive, int kills) { Scoreboard board = player.getScoreboard(); - // Detect if a Scoreboard has been created - if(board == null) { - // If there is none, create one + // Falls der Spieler kein eigenes Scoreboard hat, erstelle eins + if (board == null || board.getObjective(DisplaySlot.SIDEBAR) == null) { createScoreBoard(player, alive, kills); - } else { - // Fetch objective from existing scoreboard - Objective obj = board.getObjective(DisplaySlot.SIDEBAR); - - // Replace Scores present on the Screen - Score splitter = obj.getScore("=-=-=-=-=-=-=-=-=-=-="); - splitter.setScore(5); - Score playerName = obj.getScore("Player: " + player.getDisplayName()); - playerName.setScore(4); - Score aliveScore = obj.getScore("Alive: " + alive); - aliveScore.setScore(3); - Score killsScore = obj.getScore("Kills: " + kills); - killsScore.setScore(2); - Score blankScore = obj.getScore(""); - blankScore.setScore(1); - Score hostScore = obj.getScore("play.slpnetwork.de"); - hostScore.setScore(0); + player.setScoreboard(board); + return; } + + Objective obj = board.getObjective(DisplaySlot.SIDEBAR); + + if (obj == null) { // Falls das Objective aus irgendeinem Grund null ist + obj = board.registerNewObjective("Tridentwar", "dummy", "SLPNetwork"); + obj.setDisplaySlot(DisplaySlot.SIDEBAR); + } + + // Scores aktualisieren + obj.getScore("=-=-=-=-=-=-=-=-=-=-=").setScore(5); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.player") + " " + player.getDisplayName()).setScore(4); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.alive") + " " + alive).setScore(3); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.kills") + " " + kills).setScore(2); + obj.getScore("").setScore(1); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.server")).setScore(0); + + player.setScoreboard(board); } /** diff --git a/src/main/java/de/steev/Tridentwar/manager/SoundManager.java b/src/main/java/de/steev/Tridentwar/manager/SoundManager.java index 29e1741..c3d2cbd 100644 --- a/src/main/java/de/steev/Tridentwar/manager/SoundManager.java +++ b/src/main/java/de/steev/Tridentwar/manager/SoundManager.java @@ -1,4 +1,4 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; import org.bukkit.Bukkit; import org.bukkit.Sound; diff --git a/src/main/java/de/steev/Tridentwar/manager/TridentManager.java b/src/main/java/de/steev/Tridentwar/manager/TridentManager.java index 6f8d1cd..f3aaa61 100644 --- a/src/main/java/de/steev/Tridentwar/manager/TridentManager.java +++ b/src/main/java/de/steev/Tridentwar/manager/TridentManager.java @@ -1,6 +1,6 @@ -package de.steev.Tridentwar.Manager; +package de.steev.Tridentwar.manager; -import de.steev.Tridentwar.Tasks.TridentResetTask; +import de.steev.Tridentwar.tasks.TridentResetTask; import org.bukkit.entity.Player; import java.util.HashMap; diff --git a/src/main/java/de/steev/Tridentwar/tasks/GameStartCountdownTask.java b/src/main/java/de/steev/Tridentwar/tasks/GameStartCountdownTask.java index 94f932c..9424002 100644 --- a/src/main/java/de/steev/Tridentwar/tasks/GameStartCountdownTask.java +++ b/src/main/java/de/steev/Tridentwar/tasks/GameStartCountdownTask.java @@ -1,13 +1,21 @@ -package de.steev.Tridentwar.Tasks; +package de.steev.Tridentwar.tasks; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.ScoreboardManager; public class GameStartCountdownTask extends BukkitRunnable { private GameManager gameManager; + private final ScoreboardManager manager; + public GameStartCountdownTask (GameManager gameManager) { + this.manager = Bukkit.getScoreboardManager(); this.gameManager = gameManager; } @@ -15,6 +23,22 @@ public class GameStartCountdownTask extends BukkitRunnable { @Override public void run() { + + Scoreboard board = manager.getNewScoreboard(); + + Objective obj = board.registerNewObjective("Tridentwar", "dummy", "SLPNetwork"); + obj.setDisplaySlot(DisplaySlot.SIDEBAR); + + for (Player player : Bukkit.getOnlinePlayers()){ + obj.getScore("=-=-=-=-=-=-=-=-=-=-=").setScore(4); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.lobby.player") + " " + player.getDisplayName()).setScore(3); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.lobby.timeleft") + " " + timeLeft).setScore(2); + obj.getScore("").setScore(1); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.server")).setScore(0); + + player.setScoreboard(board); + } + timeLeft--; if(timeLeft <= 0) { cancel(); diff --git a/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java b/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java index 1dae960..1888f31 100644 --- a/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java +++ b/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java @@ -1,15 +1,23 @@ -package de.steev.Tridentwar.Tasks; +package de.steev.Tridentwar.tasks; -import de.steev.Tridentwar.Manager.GameManager; -import de.steev.Tridentwar.Manager.GameState; +import de.steev.Tridentwar.manager.GameManager; +import de.steev.Tridentwar.manager.GameState; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.ScoreboardManager; public class LobbyWaitingTask extends BukkitRunnable { private GameManager gameManager; + private final ScoreboardManager manager; + public LobbyWaitingTask(GameManager gameManager) { this.gameManager = gameManager; + this.manager = Bukkit.getScoreboardManager(); System.out.println("DEBUG: Lobby is Waiting"); } @@ -17,6 +25,21 @@ public class LobbyWaitingTask extends BukkitRunnable { @Override public void run() { + Scoreboard board = manager.getNewScoreboard(); + + Objective obj = board.registerNewObjective("Tridentwar", "dummy", "SLPNetwork"); + obj.setDisplaySlot(DisplaySlot.SIDEBAR); + + for (Player player : Bukkit.getOnlinePlayers()){ + obj.getScore("=-=-=-=-=-=-=-=-=-=-=").setScore(4); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.lobby.player") + " " + player.getDisplayName()).setScore(3); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.lobby.timeleft") + " " + timeLeft).setScore(2); + obj.getScore("").setScore(1); + obj.getScore(this.gameManager.getPlugin().config.getString("scoreboard.ingame.server")).setScore(0); + + player.setScoreboard(board); + } + timeLeft--; this.gameManager.getMessageManager().broadCastXPBar(ChatColor.translateAlternateColorCodes('&', this.gameManager.getPlugin().languageDataConfig.getString("game.countdown") + timeLeft)); if (timeLeft > 10) { @@ -48,4 +71,11 @@ public class LobbyWaitingTask extends BukkitRunnable { } } } + + /** + * calls cancel to stop task + */ + public void stopTask() { + cancel(); + } } diff --git a/src/main/java/de/steev/Tridentwar/tasks/TridentResetTask.java b/src/main/java/de/steev/Tridentwar/tasks/TridentResetTask.java index 6eca9f1..a4b0584 100644 --- a/src/main/java/de/steev/Tridentwar/tasks/TridentResetTask.java +++ b/src/main/java/de/steev/Tridentwar/tasks/TridentResetTask.java @@ -1,6 +1,6 @@ -package de.steev.Tridentwar.Tasks; +package de.steev.Tridentwar.tasks; -import de.steev.Tridentwar.Manager.GameManager; +import de.steev.Tridentwar.manager.GameManager; import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.Player;