diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..91f48b2 --- /dev/null +++ b/config.yml @@ -0,0 +1,39 @@ +# general +prefix: null +minplayers: 2 +maxplayers: 4 +# The language selected here can only be changed by reloading the plugin +# the language must equal the language file in ../lang +# by default avaiable are: de-ger, en-us +language: "en-us" +autorestart: false +lobby-auto-queue: true +force-on-spawn: true +lobby-server: "lobby" + +# scoreboard +scoreboard: + lobby: + player: "Player:" + timeleft: "Starting in:" + server: "your.server.ip" + ingame: + timeleft: "Time:" + player: "Player:" + alive: "Alive:" + kills: "kills:" + server: "your.server.ip" + +# spawn points +lobby: null +arena: null + +# Permissions +admin: + all: "tw.admin" + setlocation: + all: "tw.admin.setlocation" + lobby: "tw.admin.setlocation.lobby" + arena: "tw.admin.setlocation.arena" + start: "tw.admin.start" + stop: "tw.admin.stop" \ No newline at end of file diff --git a/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java b/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java index e23aca4..ad22f70 100644 --- a/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java +++ b/src/main/java/de/steev/Tridentwar/commands/TridentwarCommand.java @@ -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 diff --git a/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java b/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java index 1888f31..946fe55 100644 --- a/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java +++ b/src/main/java/de/steev/Tridentwar/tasks/LobbyWaitingTask.java @@ -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;