diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2021-08-24 18:09:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-24 18:09:31 -0400 |
commit | e45c39faf085a1dd517b92762581d3d8c2d2bbaf (patch) | |
tree | e73e8ad0eb3bb61cd358c2f93c65d65188c2e49c /src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java | |
parent | fixed keep inv and death messages (diff) | |
parent | refactoring, command restructure, bug fixes, glow rewrite (diff) | |
download | kenshinshideandseek-e45c39faf085a1dd517b92762581d3d8c2d2bbaf.tar.gz kenshinshideandseek-e45c39faf085a1dd517b92762581d3d8c2d2bbaf.tar.bz2 kenshinshideandseek-e45c39faf085a1dd517b92762581d3d8c2d2bbaf.zip |
Merge pull request #6 from tylermurphy534/dev
merge fix
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java | 97 |
1 files changed, 64 insertions, 33 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java index 5bf1c13..45797b8 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/Start.java @@ -9,14 +9,13 @@ 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 net.tylermurphy.hideAndSeek.util.Functions; +import net.tylermurphy.hideAndSeek.util.ICommand; import static net.tylermurphy.hideAndSeek.Store.*; -import java.util.HashMap; +import java.util.Random; public class Start implements ICommand { @@ -29,24 +28,28 @@ public class Start implements ICommand { sender.sendMessage(errorPrefix + "Game is already in session"); return; } - if(Hider.getSize() < 1) { - sender.sendMessage(errorPrefix + "No Hiders were found"); + if(playerList.size() < 2) { + sender.sendMessage(errorPrefix + "You must have at least 2 players to start"); return; } - if(Seeker.getSize() < 1) { - sender.sendMessage(errorPrefix + "No Seekers were found"); + + String seekerName; + if(args.length < 1) { + seekerName = playerList.values().stream().skip(new Random().nextInt(playerList.values().size())).findFirst().get().getName(); + } else { + seekerName = args[0]; + } + Player seeker = playerList.get(seekerName); + if(seeker == null) { + sender.sendMessage(errorPrefix + "Invalid player: " + seekerName); return; } - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gamerule sendCommandFeedback false"); - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gamerule doImmediateRespawn true"); - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gamerule logAdminCommands false"); - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gamerule naturalRegeneration false"); - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gamerule keepInventory true"); - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "gamerule showDeathMessages false"); + for(Player temp : playerList.values()) { + Hider.addEntry(temp.getName()); + } + Seeker.addEntry(seeker.getName()); - playerData = new 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())); @@ -54,7 +57,7 @@ public class Start implements ICommand { player.removePotionEffect(effect.getType()); } } - Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("spawnpoint @a %s %s %s", spawnPosition.getBlockX(), spawnPosition.getBlockY(), spawnPosition.getBlockZ())); + //Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("spawnpoint @a %s %s %s", spawnPosition.getBlockX(), spawnPosition.getBlockY(), spawnPosition.getBlockZ())); for(String playerName : Seeker.getEntries()) { Player player = playerList.get(playerName); if(player != null) { @@ -68,40 +71,68 @@ public class Start implements ICommand { player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,1000000,5,false,false)); } } - WorldborderManager.reset(); + Functions.resetWorldborder(); status = "Starting"; - startTaskId = Bukkit.getServer().getScheduler().runTaskAsynchronously(Main.plugin, new Runnable(){ + int temp = gameId; + Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 30 seconds to hide!"); + + Bukkit.getServer().getScheduler().runTaskLater(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) {} + } + }, 20 * 10); + + Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { + public void run() { if(temp != gameId) return; Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 10 seconds to hide!"); - try { Thread.sleep(5*1000); } catch (InterruptedException e) {} + } + }, 20 * 20); + + Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { + public void run() { if(temp != gameId) return; Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 5 seconds to hide!"); - try { Thread.sleep(2*1000); } catch (InterruptedException e) {} + } + }, 20 * 25); + + Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { + public void run() { if(temp != gameId) return; Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 3 seconds to hide!"); - try { Thread.sleep(1*1000); } catch (InterruptedException e) {} + } + }, 20 * 27); + + Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { + public void run() { if(temp != gameId) return; Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 2 seconds to hide!"); - try { Thread.sleep(1*1000); } catch (InterruptedException e) {} + } + }, 20 * 28); + + Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { + public void run() { if(temp != gameId) return; Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 1 seconds to hide!"); - try { Thread.sleep(1*1000); } catch (InterruptedException e) {} + } + }, 20 * 29); + + Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { + public void run() { if(temp != gameId) return; Bukkit.getServer().broadcastMessage(messagePrefix + "Attetion SEEKERS, its time to find the hiders!"); status = "Playing"; + for(Player player : playerList.values()) { + Functions.resetPlayer(player); + } } - }).getTaskId(); + }, 20 * 30); + if(worldborderEnabled) { - WorldborderManager.schedule(); + Functions.scheduleWorldborder(); } - TauntManager.schedule(); + Functions.scheduleTaunt(); } public String getLabel() { @@ -109,11 +140,11 @@ public class Start implements ICommand { } public String getUsage() { - return ""; + return "<player>"; } public String getDescription() { - return "Starts the game"; + return "Starts the game either with a random seeker or chosen one"; } } |