Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.ttt.countdowns;
- import org.bukkit.Bukkit;
- import org.bukkit.Sound;
- import org.bukkit.entity.Player;
- import de.ttt.gamestates.GameState;
- import de.ttt.gamestates.GameStateManager;
- import de.ttt.gamestates.LobbyState;
- import de.ttt.main.Main;
- import me.ttt.utils.Title;
- public class LobbyCountdown extends Countdown {
- private static final int CONTDOWN_TIME = 60, IDLE_TIME = 20;
- private GameStateManager gameStateManager;
- private int seconds;
- private boolean isRunning;
- private int idleID;
- private boolean isIdling;
- private boolean isStarting;
- public LobbyCountdown(GameStateManager gameStateManager) {
- this.gameStateManager = gameStateManager;
- seconds = 61;
- }
- @Override
- public void start() {
- for(Player all : Bukkit.getOnlinePlayers()) {
- isRunning = true;
- taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(gameStateManager.getPlugin(), new Runnable() {
- @Override
- public void run() {
- if(seconds >= 1)
- all.setLevel(seconds);
- all.setExp((float)seconds / 60);
- switch(seconds) {
- case 60: case 30: case 15: case 10: case 5: case 4: case 3: case 2:
- all.sendMessage(Main.PREFIX + "§7Das Spiel startet in §a" + seconds + " §7Sekunden§7.");
- all.playSound(all.getLocation(), Sound.NOTE_PLING, 1, 1);
- Title.sendTitle(all, 5, 10, 5, "§a" + seconds, "§4");
- if(seconds == 15)
- isStarting = true;
- break;
- case 1:
- all.sendMessage(Main.PREFIX + "§7Das Spiel startet in §aeiner §7Sekunde§7.");
- all.playSound(all.getLocation(), Sound.NOTE_PLING, 1, 1);
- break;
- case 0:
- gameStateManager.setGameState(GameState.INGAME_STATE);
- break;
- default:
- break;
- }
- seconds --;
- }
- }, 0, 20);
- }
- }
- @Override
- public void stop() {
- if(isRunning) {
- Bukkit.getScheduler().cancelTask(taskID);
- isRunning = false;
- seconds = CONTDOWN_TIME;
- }
- }
- public void startIdle() {
- for(Player all : Bukkit.getOnlinePlayers()) {
- isIdling = true;
- idleID = Bukkit.getScheduler().scheduleSyncRepeatingTask(gameStateManager.getPlugin(), new Runnable() {
- @Override
- public void run() {
- int missingPlayers = LobbyState.MIN_PLAYERS - gameStateManager.getPlugin().getPlayers().size();
- if(missingPlayers != 1)
- all.sendMessage(Main.PREFIX + "§cEs fehlen noch §6" + missingPlayers + " Spieler §cbis zum Start!");
- else
- all.sendMessage(Main.PREFIX + "§cEs fehlt noch §6ein Spieler §cbis zum Start!");
- }
- }, 0, IDLE_TIME * 20);
- }
- }
- public void stopIdle() {
- if(isIdling) {
- Bukkit.getScheduler().cancelTask(idleID);
- isIdling = false;
- }
- }
- public boolean isRunning() {
- return isRunning;
- }
- public boolean isStarting() {
- return isStarting;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement