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