summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java
new file mode 100644
index 0000000..8dc0f5f
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java
@@ -0,0 +1,111 @@
+package net.tylermurphy.hideAndSeek.commands;
+
+import org.bukkit.Bukkit;
+
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+
+import net.tylermurphy.hideAndSeek.ICommand;
+import net.tylermurphy.hideAndSeek.Main;
+import net.tylermurphy.hideAndSeek.manager.TauntManager;
+import net.tylermurphy.hideAndSeek.manager.WorldborderManager;
+
+import static net.tylermurphy.hideAndSeek.Store.*;
+
+import java.util.HashMap;
+
+public class Start implements ICommand {
+
+ public void execute(CommandSender sender, String[] args) {
+ if(status.equals("Setup")) {
+ sender.sendMessage(errorPrefix + "Please set spawn location first");
+ return;
+ }
+ if(!status.equals("Standby")) {
+ sender.sendMessage(errorPrefix + "Game is already in session");
+ return;
+ }
+ if(Hider.getSize() < 1) {
+ sender.sendMessage(errorPrefix + "No Hiders were found");
+ return;
+ }
+ if(Seeker.getSize() < 1) {
+ sender.sendMessage(errorPrefix + "No Seekers were found");
+ return;
+ }
+ playerData = new HashMap<String,HashMap<String,Integer>>();
+ for(Player player : playerList.values()) {
+ resetPlayerData(player.getName(),true);
+ player.getInventory().clear();
+ player.setGameMode(GameMode.ADVENTURE);
+ player.teleport(new Location(player.getWorld(), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
+ for(PotionEffect effect : player.getActivePotionEffects()){
+ player.removePotionEffect(effect.getType());
+ }
+ }
+ for(String playerName : Seeker.getEntries()) {
+ Player player = playerList.get(playerName);
+ if(player != null) {
+ player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS,1000000,127,false,false));
+ player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,1000000,127,false,false));
+ }
+ }
+ for(String playerName : Hider.getEntries()) {
+ Player player = playerList.get(playerName);
+ if(player != null) {
+ player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,1000000,5,false,false));
+ }
+ }
+ WorldborderManager.reset();
+ status = "Starting";
+ startTaskId = Bukkit.getServer().getScheduler().runTaskAsynchronously(Main.plugin, new Runnable(){
+ public void run() {
+ int temp = gameId;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 30 seconds to hide!");
+ try { Thread.sleep(10*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 20 seconds to hide!");
+ try { Thread.sleep(10*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 10 seconds to hide!");
+ try { Thread.sleep(5*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 5 seconds to hide!");
+ try { Thread.sleep(2*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 3 seconds to hide!");
+ try { Thread.sleep(1*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 2 seconds to hide!");
+ try { Thread.sleep(1*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 1 seconds to hide!");
+ try { Thread.sleep(1*1000); } catch (InterruptedException e) {}
+ if(temp != gameId) return;
+ Bukkit.getServer().broadcastMessage(messagePrefix + "Attetion SEEKERS, its time to find the hiders!");
+ status = "Playing";
+ }
+ }).getTaskId();
+ if(worldborderEnabled) {
+ WorldborderManager.schedule();
+ }
+ TauntManager.schedule();
+ }
+
+ public String getLabel() {
+ return "start";
+ }
+
+ public String getUsage() {
+ return "";
+ }
+
+ public String getDescription() {
+ return "Starts the game";
+ }
+
+}