fixed task duplication by refactoring how tasks are managed through tasks or command
This commit is contained in:
@@ -38,6 +38,7 @@ public class TridentwarCommand implements CommandExecutor {
|
||||
case "start":
|
||||
if(commandSender.hasPermission(this.gameManager.getPlugin().config.getString("admin.start")) ||
|
||||
commandSender.hasPermission(this.gameManager.getPlugin().config.getString("admin.all"))) {
|
||||
gameManager.getLobbyWaitingTask().cancel();
|
||||
gameManager.setGameState(GameState.STARTING);
|
||||
} else {
|
||||
// Get permission error message from config
|
||||
|
||||
@@ -4,6 +4,7 @@ import de.steev.Tridentwar.manager.GameManager;
|
||||
import de.steev.Tridentwar.manager.GameState;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.scoreboard.DisplaySlot;
|
||||
@@ -25,12 +26,21 @@ public class LobbyWaitingTask extends BukkitRunnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
if (Bukkit.getOnlinePlayers().size() >= this.gameManager.getPlugin().config.getInt("maxplayers")) {
|
||||
timeLeft=10;
|
||||
}
|
||||
|
||||
Scoreboard board = manager.getNewScoreboard();
|
||||
|
||||
Objective obj = board.registerNewObjective("Tridentwar", "dummy", "SLPNetwork");
|
||||
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
|
||||
|
||||
|
||||
timeLeft--;
|
||||
|
||||
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);
|
||||
@@ -40,7 +50,6 @@ public class LobbyWaitingTask extends BukkitRunnable {
|
||||
player.setScoreboard(board);
|
||||
}
|
||||
|
||||
timeLeft--;
|
||||
this.gameManager.getMessageManager().broadCastXPBar(ChatColor.translateAlternateColorCodes('&', this.gameManager.getPlugin().languageDataConfig.getString("game.countdown") + timeLeft));
|
||||
if (timeLeft > 10) {
|
||||
switch (timeLeft) {
|
||||
@@ -64,7 +73,7 @@ public class LobbyWaitingTask extends BukkitRunnable {
|
||||
} else {
|
||||
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&',
|
||||
this.gameManager.getFileHandler().replaceVars(this.gameManager.getPlugin().languageDataConfig.getString("game.starting"), null, null)));
|
||||
gameManager.setGameState(GameState.STARTING);
|
||||
this.gameManager.setGameState(GameState.ACTIVE);
|
||||
}
|
||||
cancel();
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user