diff --git a/Effekte Challenge V2/src/main/java/com/xonics/ef/classes/Challenge.java b/Effekte Challenge V2/src/main/java/com/xonics/ef/classes/EffekteChallenge.java similarity index 86% rename from Effekte Challenge V2/src/main/java/com/xonics/ef/classes/Challenge.java rename to Effekte Challenge V2/src/main/java/com/xonics/ef/classes/EffekteChallenge.java index ec6bac7..08619e1 100644 --- a/Effekte Challenge V2/src/main/java/com/xonics/ef/classes/Challenge.java +++ b/Effekte Challenge V2/src/main/java/com/xonics/ef/classes/EffekteChallenge.java @@ -10,20 +10,19 @@ import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; import com.xonics.ef.main; -public class Challenge { - - private boolean isRunning; +public class EffekteChallenge { + private static boolean isRunning; private List players; private BukkitRunnable task; private TimeManager tm; - public Challenge(List participants, int timer) { + public EffekteChallenge(List participants, int timer) { this.players = participants; - this.isRunning = false; + isRunning = false; this.tm.setTime(timer); } - public Challenge(List participants) { + public EffekteChallenge(List participants) { this(participants, 20); } @@ -59,12 +58,14 @@ public class Challenge { } }; task.runTaskTimer(main.getInstance(), 0L, 20L); + } else { + Bukkit.broadcastMessage("§cDie Challenge läuft bereits!"); } } public void stop() { this.task.cancel(); - this.isRunning = false; + isRunning = false; Timer.stop(); } @@ -91,4 +92,8 @@ public class Challenge { } } + public static boolean isRunning() { + return isRunning; + } + } diff --git a/Effekte Challenge V2/src/main/java/com/xonics/ef/commands/ChallengeCommands.java b/Effekte Challenge V2/src/main/java/com/xonics/ef/commands/ChallengeCommands.java new file mode 100644 index 0000000..5ce1ac6 --- /dev/null +++ b/Effekte Challenge V2/src/main/java/com/xonics/ef/commands/ChallengeCommands.java @@ -0,0 +1,55 @@ +package com.xonics.ef.commands; + +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import com.xonics.ef.classes.EffekteChallenge; +import java.util.ArrayList; +import java.util.List; + +public class ChallengeCommands implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + int effektcooldown = 0; + if (args.length > 0) { + try { + effektcooldown = Integer.parseInt(args[0]); + } catch (NumberFormatException e) { + sender.sendMessage(args[0] + " ist keine gültige Zahl!"); + return false; + } + } + List players = new ArrayList(); + for (Player p : Bukkit.getOnlinePlayers()) { + players.add(p); + } + + EffekteChallenge challenge = new EffekteChallenge(players, effektcooldown); + + switch (command.getName().toLowerCase()) { + case "start": + if (EffekteChallenge.isRunning()) { + sender.sendMessage("§cDas Challenge läuft bereits!"); + return false; + } else { + challenge.start(); + sender.sendMessage("Die Challenge wurde gestartet."); + return true; + } + + case "stop": + if (!EffekteChallenge.isRunning()) { + sender.sendMessage("§cDie Challenge läuft nicht!"); + return false; + } else { + challenge.stop(); + challenge = null; + sender.sendMessage("Die Challenge wurde gestoppt."); + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/Effekte Challenge V2/src/main/java/com/xonics/ef/main.java b/Effekte Challenge V2/src/main/java/com/xonics/ef/main.java index 3d5baa3..9b10a6e 100644 --- a/Effekte Challenge V2/src/main/java/com/xonics/ef/main.java +++ b/Effekte Challenge V2/src/main/java/com/xonics/ef/main.java @@ -3,6 +3,7 @@ package com.xonics.ef; import org.bukkit.plugin.java.JavaPlugin; import com.xonics.ef.managers.PluginManager; import com.xonics.ef.listeners.PlayerListener; +import com.xonics.ef.commands.ChallengeCommands; import com.xonics.ef.commands.TimerCommands; public class main extends JavaPlugin { @@ -27,6 +28,8 @@ public class main extends JavaPlugin { // Register commands getCommand("pause").setExecutor(new TimerCommands()); getCommand("resume").setExecutor(new TimerCommands()); + getCommand("start").setExecutor(new ChallengeCommands()); + getCommand("stop").setExecutor(new ChallengeCommands()); getLogger().info("Effekte Challenge V2 has been enabled!"); }