|
@@ -40,7 +40,7 @@ import de.butzlabben.missilewars.game.stats.FightStats;
|
|
import de.butzlabben.missilewars.game.timer.EndTimer;
|
|
import de.butzlabben.missilewars.game.timer.EndTimer;
|
|
import de.butzlabben.missilewars.game.timer.GameTimer;
|
|
import de.butzlabben.missilewars.game.timer.GameTimer;
|
|
import de.butzlabben.missilewars.game.timer.LobbyTimer;
|
|
import de.butzlabben.missilewars.game.timer.LobbyTimer;
|
|
-import de.butzlabben.missilewars.game.timer.Timer;
|
|
|
|
|
|
+import de.butzlabben.missilewars.game.timer.TaskManager;
|
|
import de.butzlabben.missilewars.inventory.OrcItem;
|
|
import de.butzlabben.missilewars.inventory.OrcItem;
|
|
import de.butzlabben.missilewars.listener.game.EndListener;
|
|
import de.butzlabben.missilewars.listener.game.EndListener;
|
|
import de.butzlabben.missilewars.listener.game.GameBoundListener;
|
|
import de.butzlabben.missilewars.listener.game.GameBoundListener;
|
|
@@ -84,8 +84,6 @@ public class Game {
|
|
private final Map<String, Integer> votes = new HashMap<>(); // Votes for the maps.
|
|
private final Map<String, Integer> votes = new HashMap<>(); // Votes for the maps.
|
|
private final Lobby lobby;
|
|
private final Lobby lobby;
|
|
private final HashMap<UUID, BukkitTask> playerTasks = new HashMap<>();
|
|
private final HashMap<UUID, BukkitTask> playerTasks = new HashMap<>();
|
|
- private Timer timer;
|
|
|
|
- private BukkitTask bt;
|
|
|
|
private GameState state = GameState.LOBBY;
|
|
private GameState state = GameState.LOBBY;
|
|
private Team team1;
|
|
private Team team1;
|
|
private Team team2;
|
|
private Team team2;
|
|
@@ -99,6 +97,7 @@ public class Game {
|
|
private ScoreboardManager scoreboardManager;
|
|
private ScoreboardManager scoreboardManager;
|
|
private GameBoundListener listener;
|
|
private GameBoundListener listener;
|
|
private EquipmentManager equipmentManager;
|
|
private EquipmentManager equipmentManager;
|
|
|
|
+ private TaskManager taskManager;
|
|
|
|
|
|
public Game(Lobby lobby) {
|
|
public Game(Lobby lobby) {
|
|
Logger.BOOT.log("Loading lobby " + lobby.getName());
|
|
Logger.BOOT.log("Loading lobby " + lobby.getName());
|
|
@@ -139,10 +138,11 @@ public class Game {
|
|
|
|
|
|
Logger.DEBUG.log("Start timer");
|
|
Logger.DEBUG.log("Start timer");
|
|
|
|
|
|
- stopTimer();
|
|
|
|
|
|
+ taskManager = new TaskManager(this);
|
|
|
|
+ taskManager.stopTimer();
|
|
updateGameListener(new LobbyListener(this));
|
|
updateGameListener(new LobbyListener(this));
|
|
- timer = new LobbyTimer(this, lobby.getLobbyTime());
|
|
|
|
- bt = Bukkit.getScheduler().runTaskTimer(MissileWars.getInstance(), timer, 0, 20);
|
|
|
|
|
|
+ taskManager.setTimer(new LobbyTimer(this, lobby.getLobbyTime()));
|
|
|
|
+ taskManager.setBukkitTask(0, 20);
|
|
state = GameState.LOBBY;
|
|
state = GameState.LOBBY;
|
|
|
|
|
|
Bukkit.getScheduler().runTaskLater(MissileWars.getInstance(), () -> applyForAllPlayers(this::runTeleportEventForPlayer), 2);
|
|
Bukkit.getScheduler().runTaskLater(MissileWars.getInstance(), () -> applyForAllPlayers(this::runTeleportEventForPlayer), 2);
|
|
@@ -214,10 +214,10 @@ public class Game {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- stopTimer();
|
|
|
|
|
|
+ taskManager.stopTimer();
|
|
updateGameListener(new GameListener(this));
|
|
updateGameListener(new GameListener(this));
|
|
- timer = new GameTimer(this);
|
|
|
|
- bt = Bukkit.getScheduler().runTaskTimer(MissileWars.getInstance(), timer, 5, 20);
|
|
|
|
|
|
+ taskManager.setTimer(new GameTimer(this));
|
|
|
|
+ taskManager.setBukkitTask(5, 20);
|
|
state = GameState.INGAME;
|
|
state = GameState.INGAME;
|
|
|
|
|
|
timestart = System.currentTimeMillis();
|
|
timestart = System.currentTimeMillis();
|
|
@@ -229,11 +229,6 @@ public class Game {
|
|
Bukkit.getPluginManager().callEvent(new GameStartEvent(this));
|
|
Bukkit.getPluginManager().callEvent(new GameStartEvent(this));
|
|
}
|
|
}
|
|
|
|
|
|
- private void stopTimer() {
|
|
|
|
- if (bt != null)
|
|
|
|
- bt.cancel();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public void stopGame() {
|
|
public void stopGame() {
|
|
if (Config.isSetup()) return;
|
|
if (Config.isSetup()) return;
|
|
|
|
|
|
@@ -252,10 +247,10 @@ public class Game {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- stopTimer();
|
|
|
|
|
|
+ taskManager.stopTimer();
|
|
updateGameListener(new EndListener(this));
|
|
updateGameListener(new EndListener(this));
|
|
- timer = new EndTimer(this);
|
|
|
|
- bt = Bukkit.getScheduler().runTaskTimer(MissileWars.getInstance(), timer, 5, 20);
|
|
|
|
|
|
+ taskManager.setTimer(new EndTimer(this));
|
|
|
|
+ taskManager.setBukkitTask(5, 20);
|
|
state = GameState.END;
|
|
state = GameState.END;
|
|
|
|
|
|
updateMOTD();
|
|
updateMOTD();
|
|
@@ -443,7 +438,7 @@ public class Game {
|
|
public void resetGame() {
|
|
public void resetGame() {
|
|
HandlerList.unregisterAll(listener);
|
|
HandlerList.unregisterAll(listener);
|
|
|
|
|
|
- stopTimer();
|
|
|
|
|
|
+ taskManager = new TaskManager(this);
|
|
|
|
|
|
applyForAllPlayers(this::teleportToAfterGameSpawn);
|
|
applyForAllPlayers(this::teleportToAfterGameSpawn);
|
|
|
|
|