diff --git a/pom.xml b/pom.xml
index 85bc166..93b6b6a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,34 +1,43 @@
-
- 4.0.0
- net.tylermurphy
- HideAndSeek
- 1.0.0
- Hide and Seek Plugin
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- 1.8
-
-
-
-
-
+4.0.0
+ net.tylermurphy
+ HideAndSeek
+ 1.2.0
+ Hide and Seek Plugin
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.8
+
+
+
+
+
- spigot-repo
- https://hub.spigotmc.org/nexus/content/repositories/public/
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/public/
-
-
-
- org.spigotmc
- spigot-api
- 1.17.1-R0.1-SNAPSHOT
- jar
- provided
-
+
+ dmulloy2-repo
+ https://repo.dmulloy2.net/repository/public/
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.17.1-R0.1-SNAPSHOT
+ jar
+ provided
+
+
+ com.comphenix.protocol
+ ProtocolLib
+ 4.7.0
+
\ No newline at end of file
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java b/src/main/java/net/tylermurphy/hideAndSeek/CommandHandler.java
similarity index 76%
rename from src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java
rename to src/main/java/net/tylermurphy/hideAndSeek/CommandHandler.java
index b50247a..2703145 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/CommandManager.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/CommandHandler.java
@@ -1,20 +1,24 @@
-package net.tylermurphy.hideAndSeek.manager;
+package net.tylermurphy.hideAndSeek;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;
import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import net.tylermurphy.hideAndSeek.ICommand;
-import net.tylermurphy.hideAndSeek.commands.*;
+import net.tylermurphy.hideAndSeek.commands.About;
+import net.tylermurphy.hideAndSeek.commands.Help;
+import net.tylermurphy.hideAndSeek.commands.SetBorder;
+import net.tylermurphy.hideAndSeek.commands.SetSpawnLocation;
+import net.tylermurphy.hideAndSeek.commands.Start;
+import net.tylermurphy.hideAndSeek.commands.Stop;
+import net.tylermurphy.hideAndSeek.util.ICommand;
import static net.tylermurphy.hideAndSeek.Store.*;
-public class CommandManager implements CommandExecutor {
+public class CommandHandler {
public static Map COMMAND_REGISTER = new LinkedHashMap();
@@ -29,10 +33,8 @@ public class CommandManager implements CommandExecutor {
registerCommand(new Help());
registerCommand(new Start());
registerCommand(new Stop());
- registerCommand(new SetSeeker());
registerCommand(new SetSpawnLocation());
registerCommand(new SetBorder());
- registerCommand(new EnableBorder());
}
public static boolean handleCommand(CommandSender sender, Command cmd, String label, String[] args) {
@@ -54,7 +56,7 @@ public class CommandManager implements CommandExecutor {
}
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- return CommandManager.handleCommand(sender, command, label, args);
+ return CommandHandler.handleCommand(sender, command, label, args);
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/CommandTabCompleter.java b/src/main/java/net/tylermurphy/hideAndSeek/CommandTabCompleter.java
new file mode 100644
index 0000000..778850f
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/CommandTabCompleter.java
@@ -0,0 +1,36 @@
+package net.tylermurphy.hideAndSeek;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+
+public class CommandTabCompleter{
+
+ public static List handleTabComplete(CommandSender sender, Command command, String label, String[] args) {
+ if(args.length == 1) {
+ return new ArrayList(CommandHandler.COMMAND_REGISTER.keySet());
+ } else if(args.length > 1) {
+ if(!CommandHandler.COMMAND_REGISTER.containsKey(args[0].toLowerCase())) {
+ return null;
+ } else {
+ String[] usage = CommandHandler.COMMAND_REGISTER.get(args[0].toLowerCase()).getUsage().split(" ");
+ if(args.length - 2 < usage.length) {
+ String parameter = usage[args.length-2];
+ if(parameter.equals("")) {
+ return null;//playerList.values().stream().map(p -> p.getName()).collect(Collectors.toList());
+ } else {
+ List temp = new ArrayList();
+ temp.add(parameter.replace("<", "").replace(">", ""));
+ return temp;
+ }
+ } else {
+ return null;
+ }
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Main.java b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
index d35ece8..508f4d1 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/Main.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
@@ -2,6 +2,8 @@ package net.tylermurphy.hideAndSeek;
import static net.tylermurphy.hideAndSeek.Store.*;
+import java.util.List;
+
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
@@ -11,22 +13,19 @@ import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.Vector;
-import net.tylermurphy.hideAndSeek.manager.BoardManager;
-import net.tylermurphy.hideAndSeek.manager.CommandManager;
-import net.tylermurphy.hideAndSeek.manager.EventManager;
-import net.tylermurphy.hideAndSeek.manager.TickManager;
+import net.tylermurphy.hideAndSeek.events.EventListener;
+import net.tylermurphy.hideAndSeek.events.EventTick;
public class Main extends JavaPlugin implements Listener {
public static Main plugin;
- private int tickTaskId;
public void onEnable() {
plugin = this;
// Setup Initial Player Count
- getServer().getPluginManager().registerEvents(new EventManager(), this);
+ getServer().getPluginManager().registerEvents(new EventListener(), this);
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
playerList.put(player.getName(), player);
}
@@ -45,38 +44,32 @@ public class Main extends JavaPlugin implements Listener {
}
worldborderEnabled = getConfig().getBoolean("borderEnabled");
- // Init Gamerules
- 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");
-
// Register Commands
- CommandManager.registerCommands();
-
- // Init Scoreboard
- if(Bukkit.getScoreboardManager() != null) {
- BoardManager.loadScoreboard();
- }
+ CommandHandler.registerCommands();
// Start Tick Timer
- tickTaskId = Bukkit.getServer().getScheduler().runTaskTimer(this, new Runnable(){
+ Bukkit.getServer().getScheduler().runTaskTimer(this, new Runnable(){
public void run(){
- TickManager.onTick();
+ try{
+ EventTick.onTick();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- },0,1).getTaskId();
+ },0,1);
}
public void onDisable() {
- Bukkit.getServer().getScheduler().cancelTask(tickTaskId);
saveConfig();
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- return CommandManager.handleCommand(sender, cmd, label, args);
+ return CommandHandler.handleCommand(sender, cmd, label, args);
+ }
+
+ public List onTabComplete(CommandSender sender, Command command, String label, String[] args) {
+ return CommandTabCompleter.handleTabComplete(sender, command, label, args);
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Store.java b/src/main/java/net/tylermurphy/hideAndSeek/Store.java
index 05122b3..85cef2a 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/Store.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/Store.java
@@ -1,33 +1,37 @@
package net.tylermurphy.hideAndSeek;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
+import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector;
-import net.md_5.bungee.api.ChatColor;
-
public class Store {
public static Map playerList = new HashMap();
- public static List loadedPlayers = new ArrayList();
- public static Scoreboard board;
+
+ public static Scoreboard board;
public static Team Hider,Seeker,Spectator;
+
public static String status = "Setup";
+
public static String messagePrefix = String.format("%sHide and Seek > %s", ChatColor.BLUE, ChatColor.WHITE);
public static String errorPrefix = String.format("%sError > %s", ChatColor.RED, ChatColor.WHITE);
- public static Vector spawnPosition,worldborderPosition;
+
+ public static Vector spawnPosition;
+
+ public static Vector worldborderPosition;
public static int worldborderSize,worldborderDelay,currentWorldborderSize;
public static boolean worldborderEnabled = false, decreaseBorder = false;
+
public static String tauntPlayer = "";
- public static HashMap playerData = new HashMap();
- public static int startTaskId;
+
+ public static int glowTime = 0;
+
public static int gameId = 0;
public static FileConfiguration getConfig() {
@@ -38,20 +42,4 @@ public class Store {
Main.plugin.saveConfig();
}
- public static int getPlayerData(String playerName, String key) {
- if(playerData.get(playerName + " " + key) == null) {
- return 0;
- } else {
- return playerData.get(playerName + " " + key);
- }
- }
-
- public static void setPlayerData(String playerName, String key, int value) {
- playerData.put(playerName + " " + key, value);
- }
-
- public static void resetPlayerData(String playerName, boolean giveItems) {
- playerData.put(playerName+" Death", 0);
- playerData.put(playerName+" GiveStatus", (giveItems) ? 1 : 0);
- }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/About.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/About.java
index 91cc430..c500dd6 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/About.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/About.java
@@ -3,13 +3,13 @@ package net.tylermurphy.hideAndSeek.commands;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
-import net.tylermurphy.hideAndSeek.ICommand;
+import net.tylermurphy.hideAndSeek.util.ICommand;
public class About implements ICommand {
public void execute(CommandSender sender, String[] args) {
sender.sendMessage(
- String.format("%s%sHide and Seek %s(1.0.0%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) +
+ String.format("%s%sHide and Seek %s(1.2.0%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) +
String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) +
String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE)
);
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/EnableBorder.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/EnableBorder.java
deleted file mode 100644
index 6c925e2..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/EnableBorder.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package net.tylermurphy.hideAndSeek.commands;
-
-import org.bukkit.command.CommandSender;
-
-import net.tylermurphy.hideAndSeek.ICommand;
-import net.tylermurphy.hideAndSeek.manager.WorldborderManager;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-public class EnableBorder implements ICommand {
-
- public void execute(CommandSender sender, String[] args) {
- if(!status.equals("Standby") && !status.equals("Setup")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
- return;
- }
- if(worldborderPosition == null) {
- sender.sendMessage(errorPrefix + "Please setup worldborder info before enabling");
- return;
- }
- boolean bool;
- try { bool = Boolean.parseBoolean(args[0]); } catch (Exception e) {
- sender.sendMessage(errorPrefix + "Please enter true or false");
- return;
- }
- if(spawnPosition != null && worldborderPosition != null && spawnPosition.distance(worldborderPosition) > 100) {
- sender.sendMessage(errorPrefix + "Cannot enable worldborder, spawn position is outside 100 blocks from worldborder");
- return;
- }
- sender.sendMessage(messagePrefix + "Set worldborder to "+args[0]);
- getConfig().set("borderEnabled", bool);
- worldborderEnabled = bool;
- saveConfig();
- WorldborderManager.reset();
- }
-
- public String getLabel() {
- return "enableBorder";
- }
-
- public String getUsage() {
- return "";
- }
-
- public String getDescription() {
- return "Enables or disables worldborder";
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/Help.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/Help.java
index 1839e41..a74464e 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/Help.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/Help.java
@@ -3,14 +3,14 @@ package net.tylermurphy.hideAndSeek.commands;
import org.bukkit.command.CommandSender;
import net.md_5.bungee.api.ChatColor;
-import net.tylermurphy.hideAndSeek.ICommand;
-import net.tylermurphy.hideAndSeek.manager.CommandManager;
+import net.tylermurphy.hideAndSeek.CommandHandler;
+import net.tylermurphy.hideAndSeek.util.ICommand;
public class Help implements ICommand {
public void execute(CommandSender sender, String[] args) {
String message = "";
- for(ICommand command : CommandManager.COMMAND_REGISTER.values()) {
+ for(ICommand command : CommandHandler.COMMAND_REGISTER.values()) {
message += String.format("%s/hs %s%s %s%s\n %s%s%s", ChatColor.AQUA, ChatColor.WHITE, command.getLabel().toLowerCase(), ChatColor.BLUE, command.getUsage(), ChatColor.GRAY, ChatColor.ITALIC, command.getDescription()+"\n");
}
message = message.substring(0, message.length()-2);
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/SetBorder.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/SetBorder.java
index 6482c45..a485c91 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/SetBorder.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/SetBorder.java
@@ -4,8 +4,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
-import net.tylermurphy.hideAndSeek.ICommand;
-import net.tylermurphy.hideAndSeek.manager.WorldborderManager;
+import net.tylermurphy.hideAndSeek.util.Functions;
+import net.tylermurphy.hideAndSeek.util.ICommand;
import static net.tylermurphy.hideAndSeek.Store.*;
@@ -21,7 +21,11 @@ public class SetBorder implements ICommand {
return;
}
if(args.length < 2) {
- sender.sendMessage(errorPrefix + "Please enter worldborder size and delay");
+ getConfig().set("borderEnabled", false);
+ worldborderEnabled = false;
+ saveConfig();
+ sender.sendMessage(messagePrefix + "Disabled worldborder.");
+ Functions.resetWorldborder();
return;
}
int num,delay;
@@ -53,8 +57,10 @@ public class SetBorder implements ICommand {
getConfig().set("borderPosition", newWorldborderPosition);
getConfig().set("borderSize", num);
getConfig().set("borderDelay", delay);
+ getConfig().set("borderEnabled", false);
+ worldborderEnabled = true;
saveConfig();
- WorldborderManager.reset();
+ Functions.resetWorldborder();
}
public String getLabel() {
@@ -66,7 +72,7 @@ public class SetBorder implements ICommand {
}
public String getDescription() {
- return "Sets worldboarder's center location, size in blocks, and delay in minutes";
+ return "Sets worldboarder's center location, size in blocks, and delay in minutes per shrink. Add no arguments to disable.";
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSeeker.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSeeker.java
deleted file mode 100644
index 5a2fc4b..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSeeker.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package net.tylermurphy.hideAndSeek.commands;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import net.tylermurphy.hideAndSeek.ICommand;
-
-public class SetSeeker implements ICommand {
-
- public void execute(CommandSender sender, String[] args) {
- if(!status.equals("Standby") && !status.equals("Setup")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
- return;
- }
- String playerName;
- if(args.length < 1) {
- playerName = sender.getName();
- } else {
- playerName = args[0];
- }
- Player player = playerList.get(playerName);
- if(player == null) {
- sender.sendMessage(errorPrefix + "Invalid player: " + playerName);
- return;
- }
- for(Player temp : playerList.values()) {
- Hider.addEntry(temp.getName());
- }
- Seeker.addEntry(player.getName());
- sender.sendMessage(String.format("%s Set %s as the seaker.", messagePrefix, playerName));
- }
-
- public String getLabel() {
- return "setSeeker";
- }
-
- public String getUsage() {
- return "";
- }
-
- public String getDescription() {
- return "Sets the current or select player as the seeker";
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSpawnLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSpawnLocation.java
index 821d469..48a8d60 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSpawnLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/SetSpawnLocation.java
@@ -1,11 +1,10 @@
package net.tylermurphy.hideAndSeek.commands;
-import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
-import net.tylermurphy.hideAndSeek.ICommand;
+import net.tylermurphy.hideAndSeek.util.ICommand;
import static net.tylermurphy.hideAndSeek.Store.*;
@@ -26,8 +25,8 @@ public class SetSpawnLocation implements ICommand {
sender.sendMessage(messagePrefix + "Set spawn position to current location");
getConfig().set("spawnPosition", newSpawnPosition);
saveConfig();
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("setworldspawn %s %s %s", player.getLocation().getBlockX(), player.getLocation().getBlockY(), player.getLocation().getBlockZ()));
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("spawnpoint @a %s %s %s", player.getLocation().getBlockX(), player.getLocation().getBlockY(), player.getLocation().getBlockZ()));
+// Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("setworldspawn %s %s %s", player.getLocation().getBlockX(), player.getLocation().getBlockY(), player.getLocation().getBlockZ()));
+// Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("spawnpoint @a %s %s %s", player.getLocation().getBlockX(), player.getLocation().getBlockY(), player.getLocation().getBlockZ()));
}
public String getLabel() {
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");
- 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");
- playerData = new HashMap();
+ 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;
+ }
+ for(Player temp : playerList.values()) {
+ Hider.addEntry(temp.getName());
+ }
+ Seeker.addEntry(seeker.getName());
+
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 "";
}
public String getDescription() {
- return "Starts the game";
+ return "Starts the game either with a random seeker or chosen one";
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/commands/Stop.java b/src/main/java/net/tylermurphy/hideAndSeek/commands/Stop.java
index b4ccca4..1c31ccd 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/commands/Stop.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/commands/Stop.java
@@ -10,14 +10,15 @@ import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
-import net.tylermurphy.hideAndSeek.ICommand;
-import net.tylermurphy.hideAndSeek.manager.WorldborderManager;
+import net.tylermurphy.hideAndSeek.util.Functions;
+import net.tylermurphy.hideAndSeek.util.ICommand;
public class Stop implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(status.equals("Starting") || status.equals("Playing")) {
- onStop(true);
+ Bukkit.broadcastMessage(messagePrefix + "Game has been force stopped.");
+ onStop();
} else {
sender.sendMessage(errorPrefix + "There is no game in progress");
@@ -29,15 +30,10 @@ public class Stop implements ICommand {
return "stop";
}
- public static void onStop(boolean forced) {
+ public static void onStop() {
if(status.equals("Standby") || status.equals("Setup")) return;
- if(forced) {
- Bukkit.broadcastMessage(messagePrefix + "Game has been force stopped.");
- } else {
- Bukkit.broadcastMessage(messagePrefix + "Game over! All hiders have been found.");
- }
status = "Standby";
- Bukkit.getServer().getScheduler().cancelTask(startTaskId);
+ gameId++;
for(Player player : playerList.values()) {
player.setGameMode(GameMode.ADVENTURE);
Hider.addEntry(player.getName());
@@ -47,9 +43,11 @@ public class Stop implements ICommand {
player.removePotionEffect(effect.getType());
}
player.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 100));
+ for(Player temp : playerList.values()) {
+ Functions.setGlow(player, temp, false);
+ }
}
- WorldborderManager.reset();
- gameId++;
+ Functions.resetWorldborder();
}
public String getUsage() {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/events/EventListener.java
new file mode 100644
index 0000000..7c095b1
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/events/EventListener.java
@@ -0,0 +1,115 @@
+package net.tylermurphy.hideAndSeek.events;
+
+import static net.tylermurphy.hideAndSeek.Store.*;
+
+import org.bukkit.Bukkit;
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.attribute.Attribute;
+import org.bukkit.entity.Player;
+import org.bukkit.entity.Snowball;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityRegainHealthEvent;
+import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
+import org.bukkit.event.entity.FoodLevelChangeEvent;
+import org.bukkit.event.entity.ProjectileLaunchEvent;
+import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.event.player.PlayerQuitEvent;
+import org.bukkit.potion.PotionEffect;
+
+import net.md_5.bungee.api.ChatColor;
+import net.tylermurphy.hideAndSeek.Main;
+import net.tylermurphy.hideAndSeek.util.Functions;
+
+public class EventListener implements Listener {
+
+ @EventHandler
+ public void onPlayerJoin(PlayerJoinEvent event) {
+ if(status.equals("Playing") || status.equals("Starting")) {
+ Spectator.addEntry(event.getPlayer().getName());
+ event.getPlayer().sendMessage(messagePrefix + "You have joined mid game, and thus have been placed on the spectator team.");
+ event.getPlayer().setGameMode(GameMode.SPECTATOR);
+ event.getPlayer().getInventory().clear();
+ for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){
+ event.getPlayer().removePotionEffect(effect.getType());
+ }
+ event.getPlayer().teleport(new Location(event.getPlayer().getWorld(), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
+ } else if(status.equals("Setup") || status.equals("Standby")) {
+ Hider.addEntry(event.getPlayer().getName());
+ }
+ playerList.put(event.getPlayer().getName(), event.getPlayer());
+ }
+
+ @EventHandler
+ public void onQuit(PlayerQuitEvent event) {
+ playerList.remove(event.getPlayer().getName());
+ Hider.removeEntry(event.getPlayer().getName());
+ Seeker.removeEntry(event.getPlayer().getName());
+ Spectator.removeEntry(event.getPlayer().getName());
+ }
+
+ @EventHandler
+ public void onPlayerDamage(EntityDamageEvent event) {
+ if(event.getEntity() instanceof Player) {
+ if(!status.equals("Playing")) {
+ event.setCancelled(true);
+ return;
+ }
+ Player player = (Player) event.getEntity();
+ if(player.getHealth()-event.getDamage() < 0) {
+ if(spawnPosition == null) return;
+ event.setCancelled(true);
+ player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
+ player.teleport(new Location(player.getWorld(), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ()));
+ Functions.playSound(player, Sound.ENTITY_PLAYER_DEATH, 1, 1);
+ if(Hider.hasEntry(event.getEntity().getName())) {
+ Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s has died and become a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
+ }
+ if(Seeker.hasEntry(event.getEntity().getName())) {
+ Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s has been beat by a hider", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE));
+ }
+ Seeker.addEntry(player.getName());
+ Functions.resetPlayer(player);
+ }
+ }
+
+ }
+
+ @EventHandler
+ public void onProjectile(ProjectileLaunchEvent event) {
+ if(!status.equals("Playing")) return;
+ if(event.getEntity() instanceof Snowball) {
+ Snowball snowball = (Snowball) event.getEntity();
+ if(snowball.getShooter() instanceof Player) {
+ Player player = (Player) snowball.getShooter();
+ if(Hider.hasEntry(player.getName())) {
+ glowTime++;
+ snowball.remove();
+ player.getInventory().remove(Material.SNOWBALL);
+ int temp = gameId;
+ Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() {
+ public void run() {
+ if(temp != gameId) return;
+ glowTime--;
+ }
+ }, 20 * 30);
+ }
+ }
+ }
+ }
+
+ @EventHandler
+ public void onFoodLevelChange(FoodLevelChangeEvent event) {
+ event.setCancelled(true);
+ }
+
+ @EventHandler
+ public void onPlayerRegainHealth(EntityRegainHealthEvent event) {
+ if(event.getRegainReason() == RegainReason.SATIATED || event.getRegainReason() == RegainReason.REGEN)
+ event.setCancelled(true);
+ }
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java b/src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java
new file mode 100644
index 0000000..a0bf36a
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java
@@ -0,0 +1,139 @@
+package net.tylermurphy.hideAndSeek.events;
+
+import static net.tylermurphy.hideAndSeek.Store.*;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Color;
+import org.bukkit.FireworkEffect;
+import org.bukkit.Location;
+import org.bukkit.Sound;
+import org.bukkit.World;
+import org.bukkit.WorldBorder;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Firework;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.meta.FireworkMeta;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+
+import net.tylermurphy.hideAndSeek.commands.Stop;
+import net.tylermurphy.hideAndSeek.util.Functions;
+
+public class EventTick {
+
+ static int tick = 0;
+
+ public static void onTick() {
+
+ if(board == null) {
+ Functions.loadScoreboard();
+ }
+
+ Functions.emptyOfflinePlayers();
+
+ if(status.equals("Starting")) {
+ onStarting();
+ } else if(status.equals("Playing")) {
+ onPlaying();
+ }
+
+ tick ++;
+
+ if(( status.equals("Starting") || status.equals("Playing") ) && Hider.getSize() < 1) {
+ Bukkit.broadcastMessage(messagePrefix + "Game over! All hiders have been found.");
+ Stop.onStop();
+ }
+ if(( status.equals("Starting") || status.equals("Playing") ) && Seeker.getSize() < 1) {
+ Bukkit.broadcastMessage(messagePrefix + "Game has ended as all seekers have quit.");
+ Stop.onStop();
+ }
+ }
+
+ private static void onStarting() {
+ for(String playerName : Seeker.getEntries()) {
+ Player player = playerList.get(playerName);
+ if(player != null) {
+ player.teleport(new Location(player.getWorld(), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
+ }
+ }
+ }
+
+ private static void onPlaying() {
+ if(decreaseBorder) {
+ World world = Bukkit.getWorld("world");
+ WorldBorder border = world.getWorldBorder();
+ border.setSize(border.getSize()-100,30);
+ decreaseBorder = false;
+ }
+ if(!tauntPlayer.equals("")) {
+ Player taunted = playerList.get(tauntPlayer);
+ if(taunted != null) {
+ Firework fw = (Firework) taunted.getLocation().getWorld().spawnEntity(taunted.getLocation(), EntityType.FIREWORK);
+ FireworkMeta fwm = fw.getFireworkMeta();
+ fwm.setPower(4);
+ fwm.addEffect(FireworkEffect.builder()
+ .withColor(Color.BLUE)
+ .withColor(Color.RED)
+ .withColor(Color.YELLOW)
+ .with(FireworkEffect.Type.STAR)
+ .with(FireworkEffect.Type.BALL)
+ .with(FireworkEffect.Type.BALL_LARGE)
+ .flicker(true)
+ .withTrail()
+ .build());
+ fw.setFireworkMeta(fwm);
+ Bukkit.getServer().broadcastMessage(ChatColor.YELLOW + "Taunt >" + ChatColor.WHITE + " Taunt has been activated");
+ }
+ tauntPlayer = "";
+ }
+ for(Player player : playerList.values()) {
+ player.addPotionEffect(new PotionEffect(PotionEffectType.DOLPHINS_GRACE, 1000000, 1, false, false));
+ }
+ for(String playerName : Seeker.getEntries()) {
+ Player player = playerList.get(playerName);
+ if(player != null) {
+ player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000000, 2, false, false));
+ player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 1000000, 1, false, false));
+ player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 1000000, 1, false, false));
+ player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 10, false, false));
+ }
+ }
+ for(String playerName : Hider.getEntries()) {
+ Player player = playerList.get(playerName);
+ if(player != null) {
+ player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 1, false, false));
+ }
+ int distance = 100;
+ for(String seekerName : Seeker.getEntries()) {
+ Player seeker = playerList.get(seekerName);
+ int temp = (int) player.getLocation().distance(seeker.getLocation());
+ if(distance > temp) {
+ distance = temp;
+ }
+ if(glowTime > 0) {
+ Functions.setGlow(player, seeker, true);
+ } else {
+ Functions.setGlow(player, seeker, false);
+ }
+ }
+ switch(tick%10) {
+ case 0:
+ if(distance < 30) Functions.playSound(player, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .5f, 1f);
+ if(distance < 10) Functions.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f);
+ break;
+ case 3:
+ if(distance < 30) Functions.playSound(player, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .3f, 1f);
+ if(distance < 10) Functions.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f);
+ break;
+ case 6:
+ if(distance < 10) Functions.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f);
+ break;
+ case 9:
+ if(distance < 20) Functions.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f);
+ break;
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/BoardManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/BoardManager.java
deleted file mode 100644
index db618b5..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/BoardManager.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package net.tylermurphy.hideAndSeek.manager;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.scoreboard.Scoreboard;
-import org.bukkit.scoreboard.ScoreboardManager;
-import org.bukkit.scoreboard.Team.Option;
-import org.bukkit.scoreboard.Team.OptionStatus;
-
-public class BoardManager {
-
- public static void loadScoreboard() {
-
- ScoreboardManager manager = Bukkit.getScoreboardManager();
- Scoreboard mainBoard = manager.getMainScoreboard();
-
- try { mainBoard.registerNewTeam("Seeker");} catch(Exception e) {}
- Seeker = mainBoard.getTeam("Seeker");
- Seeker.setColor(ChatColor.RED);
- Seeker.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
- Seeker.setAllowFriendlyFire(false);
-
- try { mainBoard.registerNewTeam("Hider");} catch(Exception e) {}
- Hider = mainBoard.getTeam("Hider");
- Hider.setColor(ChatColor.GOLD);
- Hider.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
- Hider.setAllowFriendlyFire(false);
-
- try { mainBoard.registerNewTeam("Spectator");} catch(Exception e) {}
- Spectator = mainBoard.getTeam("Spectator");
- Spectator.setColor(ChatColor.GRAY);
- Spectator.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
- Spectator.setAllowFriendlyFire(false);
-
- board = mainBoard;
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java
deleted file mode 100644
index 00c59d2..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package net.tylermurphy.hideAndSeek.manager;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-import org.bukkit.Bukkit;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.entity.PlayerDeathEvent;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.potion.PotionEffect;
-
-import net.md_5.bungee.api.ChatColor;
-
-public class EventManager implements Listener {
-
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent event) {
- if(status.equals("Playing") || status.equals("Starting")) {
- Spectator.addEntry(event.getPlayer().getName());
- resetPlayerData(event.getPlayer().getName(), false);
- event.getPlayer().sendMessage(messagePrefix + "You have joined mid game, and thus have been placed on the spectator team.");
- event.getPlayer().setGameMode(GameMode.SPECTATOR);
- event.getPlayer().getInventory().clear();
- for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){
- event.getPlayer().removePotionEffect(effect.getType());
- }
- event.getPlayer().teleport(new Location(event.getPlayer().getWorld(), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
- } else if(status.equals("Setup") || status.equals("Standby")) {
- Hider.addEntry(event.getPlayer().getName());
- }
- playerList.put(event.getPlayer().getName(), event.getPlayer());
- if(board == null) BoardManager.loadScoreboard();
- }
-
- @EventHandler
- public void onQuit(PlayerQuitEvent event) {
- playerList.remove(event.getPlayer().getName());
- Hider.removeEntry(event.getPlayer().getName());
- Seeker.removeEntry(event.getPlayer().getName());
- Spectator.removeEntry(event.getPlayer().getName());
- }
-
- @EventHandler
- public void onDeath(PlayerDeathEvent event) {
- if(status.equals("Playing")) {
- if(Hider.hasEntry(event.getEntity().getName())) {
- Bukkit.getServer().broadcastMessage(String.format(messagePrefix + "%s%s%s has died and become a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
- }
- if(Seeker.hasEntry(event.getEntity().getName())) {
- Bukkit.getServer().broadcastMessage(String.format(messagePrefix + "%s%s%s has been beat by a hider", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE));
- }
-
- setPlayerData(event.getEntity().getName(), "Death", 1);
- setPlayerData(event.getEntity().getName(), "GiveStatus", 1);
- }
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/TauntManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/TauntManager.java
deleted file mode 100644
index 6465e44..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/TauntManager.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.tylermurphy.hideAndSeek.manager;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.entity.Player;
-
-import net.tylermurphy.hideAndSeek.Main;
-
-public class TauntManager {
-
-public static void schedule() {
-
- Bukkit.getServer().getScheduler().runTaskAsynchronously(Main.plugin, new Runnable(){
-
- public void run() {
- int temp = gameId;
- while(true) {
- if(tauntPlayer != null && !tauntPlayer.equals("")) {
- try { Thread.sleep(1000); } catch (InterruptedException e) {}
- if(gameId != temp) break;
- continue;
- }
- try { Thread.sleep(1000*60); } catch (InterruptedException e) {}
- if(gameId != temp) break;
- if(Math.random() > .9) {
- Player taunted = null;
- int rand = (int) (Math.random()*Hider.getEntries().size());
- for(Player player : playerList.values()) {
- if(Hider.hasEntry(player.getName())) {
- rand--;
- if(rand==0) {
- taunted = player;
- break;
- }
- }
- }
- if(taunted != null) {
- taunted.sendMessage(ChatColor.RED + "" + ChatColor.ITALIC + "Oh no! You have been chosed to be taunted.");
- Bukkit.getServer().broadcastMessage(ChatColor.YELLOW + "Taunt >" + ChatColor.WHITE + " A random hider will be taunted in the next 30s");
- try { Thread.sleep(1000*30); } catch (InterruptedException e) {}
- if(gameId != temp) break;
- tauntPlayer = taunted.getName();
- }
- }
- }
- }
- });
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/TickManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/TickManager.java
deleted file mode 100644
index 7b6cedf..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/TickManager.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package net.tylermurphy.hideAndSeek.manager;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.Color;
-import org.bukkit.FireworkEffect;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.enchantments.Enchantment;
-import org.bukkit.entity.EntityType;
-import org.bukkit.entity.Firework;
-import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.FireworkMeta;
-import org.bukkit.inventory.meta.ItemMeta;
-import org.bukkit.inventory.meta.PotionMeta;
-import org.bukkit.potion.PotionData;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
-import org.bukkit.potion.PotionType;
-import org.bukkit.scoreboard.Team.Option;
-import org.bukkit.scoreboard.Team.OptionStatus;
-
-import net.tylermurphy.hideAndSeek.commands.Stop;
-
-public class TickManager {
-
- static int tick = 0;
-
- public static void onTick() {
-
- if(board == null) return;
-
- checkTeams();
-
- for(Player player : playerList.values()) {
- player.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 1000000, 127, false, false));
- }
-
- if(status.equals("Standby") || status.equals("Setup")) {
- onStandby();
- } else if(status.equals("Starting")) {
- onStarting();
- } else if(status.equals("Playing")) {
- onPlaying();
- }
-
- tick ++;
- tick %= 10;
-
- if(Hider.getSize() < 1) {
- Stop.onStop(false);
- }
- if(Seeker.getSize() < 1) {
- Stop.onStop(false);
- }
- }
-
- private static void checkTeams() {
-
- try { Hider.getSize(); }
- catch (Exception e) {
- board.registerNewTeam("Hider");
- Hider = board.getTeam("Hider");
- Hider.setColor(ChatColor.GOLD);
- Hider.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
- Hider.setAllowFriendlyFire(false);
- }
-
- try { Seeker.getSize(); }
- catch (Exception e) {
- board.registerNewTeam("Seeker");
- Seeker = board.getTeam("Seeker");
- Seeker.setColor(ChatColor.RED);
- Seeker.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
- Seeker.setAllowFriendlyFire(false);
- }
-
- try { Spectator.getSize(); }
- catch (Exception e) {
- board.registerNewTeam("Spectator");
- Spectator = board.getTeam("Spectator");
- Spectator.setColor(ChatColor.GRAY);
- Spectator.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
- Spectator.setAllowFriendlyFire(false);
- }
-
- for(String entry : Hider.getEntries()) {
- if(!playerList.containsKey(entry)) {
- Hider.removeEntry(entry);
- }
- }
-
- for(String entry : Seeker.getEntries()) {
- if(!playerList.containsKey(entry)) {
- Seeker.removeEntry(entry);
- }
- }
-
- for(String entry : Spectator.getEntries()) {
- if(!playerList.containsKey(entry)) {
- Spectator.removeEntry(entry);
- }
- }
- }
-
- private static void onStandby() {
- for(Player player : playerList.values()) {
- player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 1000000, 127, false, false));
- }
- }
-
- private static void onStarting() {
- for(String playerName : Seeker.getEntries()) {
- Player player = playerList.get(playerName);
- if(player != null) {
- player.teleport(new Location(player.getWorld(), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
- }
- }
- }
-
- private static void onPlaying() {
- if(decreaseBorder) {
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "worldborder add -100 30");
- decreaseBorder = false;
- }
- if(!tauntPlayer.equals("")) {
- Player taunted = playerList.get(tauntPlayer);
- if(taunted != null) {
- Firework fw = (Firework) taunted.getLocation().getWorld().spawnEntity(taunted.getLocation(), EntityType.FIREWORK);
- FireworkMeta fwm = fw.getFireworkMeta();
- fwm.setPower(2);
- fwm.addEffect(FireworkEffect.builder()
- .withColor(Color.BLUE)
- .withColor(Color.RED)
- .withColor(Color.YELLOW)
- .with(FireworkEffect.Type.STAR)
- .with(FireworkEffect.Type.BALL)
- .with(FireworkEffect.Type.BALL_LARGE)
- .flicker(true)
- .withTrail()
- .build());
- fw.setFireworkMeta(fwm);
- Bukkit.getServer().broadcastMessage(ChatColor.YELLOW + "Taunt >" + ChatColor.WHITE + " Taunt has been activated");
- }
- tauntPlayer = "";
- }
- for(Player player : playerList.values()) {
- player.addPotionEffect(new PotionEffect(PotionEffectType.DOLPHINS_GRACE, 1000000, 1, false, false));
- if(getPlayerData(player.getName(),"Death") > 0) {
- setPlayerData(player.getName(),"Death",0);
- Seeker.addEntry(player.getName());
- }
- if(getPlayerData(player.getName(),"GiveStatus") > 0) {
- setPlayerData(player.getName(),"GiveStatus",0);
- player.getInventory().clear();
- for(PotionEffect effect : player.getActivePotionEffects()){
- player.removePotionEffect(effect.getType());
- }
- if(Seeker.getEntries().contains(player.getName())){
- ItemStack diamondSword = new ItemStack(Material.DIAMOND_SWORD,1);
- diamondSword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
- ItemMeta diamondSwordMeta = diamondSword.getItemMeta();
- diamondSwordMeta.setDisplayName("Seeker Sword");
- diamondSwordMeta.setUnbreakable(true);
- diamondSword.setItemMeta(diamondSwordMeta);
- player.getInventory().addItem(diamondSword);
-
- ItemStack wackyStick = new ItemStack(Material.STICK,1);
- wackyStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 3);
- ItemMeta wackyStickMeta = wackyStick.getItemMeta();
- wackyStickMeta.setDisplayName("Wacky Stick");
- wackyStick.setItemMeta(wackyStickMeta);
- player.getInventory().addItem(wackyStick);
- }
- else if(Hider.getEntries().contains(player.getName())){
- ItemStack stoneSword = new ItemStack(Material.STONE_SWORD,1);
- stoneSword.addEnchantment(Enchantment.DAMAGE_ALL, 2);
- ItemMeta stoneSwordMeta = stoneSword.getItemMeta();
- stoneSwordMeta.setDisplayName("Hider Sword");
- stoneSwordMeta.setUnbreakable(true);
- stoneSword.setItemMeta(stoneSwordMeta);
- player.getInventory().addItem(stoneSword);
-
- ItemStack splashPotion = new ItemStack(Material.SPLASH_POTION,1);
- PotionMeta splashPotionMeta = (PotionMeta) splashPotion.getItemMeta();
- splashPotionMeta.setBasePotionData(new PotionData(PotionType.REGEN));
- splashPotion.setItemMeta(splashPotionMeta);
- player.getInventory().addItem(splashPotion);
-
- ItemStack potion = new ItemStack(Material.POTION,2);
- PotionMeta potionMeta = (PotionMeta) potion.getItemMeta();
- potionMeta.setBasePotionData(new PotionData(PotionType.INSTANT_HEAL));
- potion.setItemMeta(potionMeta);
- player.getInventory().addItem(potion);
- }
- }
- }
- for(String playerName : Seeker.getEntries()) {
- Player player = playerList.get(playerName);
- if(player != null) {
- player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000000, 2, false, false));
- player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 1000000, 1, false, false));
- player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 1000000, 1, false, false));
- player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 10, false, false));
- }
- }
- for(String playerName : Hider.getEntries()) {
- Player player = playerList.get(playerName);
- if(player != null) {
- player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 1, false, false));
- }
- int distance = 100;
- for(String seekerName : Seeker.getEntries()) {
- Player seeker = playerList.get(seekerName);
- int temp = (int) player.getLocation().distance(seeker.getLocation());
- if(distance > temp) {
- distance = temp;
- }
- }
- int x = player.getLocation().getBlockX();
- int y = player.getLocation().getBlockY();
- int z = player.getLocation().getBlockZ();
- switch(tick) {
- case 0:
- if(distance < 30) Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("playsound minecraft:block.note_block.basedrum master %s %s %s %s .5 1",player.getName(),x,y,z));
- if(distance < 10) Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("playsound minecraft:block.note_block.bit master %s %s %s %s .3 1",player.getName(),x,y,z));
- break;
- case 3:
- if(distance < 30) Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("playsound minecraft:block.note_block.basedrum master %s %s %s %s 3.31",player.getName(),x,y,z));
- if(distance < 10) Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("playsound minecraft:block.note_block.bit master %s %s %s %s .3 1",player.getName(),x,y,z));
- break;
- case 6:
- if(distance < 10) Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("playsound minecraft:block.note_block.bit master %s %s %s %s .3 1",player.getName(),x,y,z));
- break;
- case 9:
- if(distance < 20) Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("playsound minecraft:block.note_block.bit master %s %s %s %s .3 1",player.getName(),x,y,z));
- break;
- }
- }
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/WorldborderManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/WorldborderManager.java
deleted file mode 100644
index aa0011c..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/WorldborderManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package net.tylermurphy.hideAndSeek.manager;
-
-import static net.tylermurphy.hideAndSeek.Store.*;
-
-import org.bukkit.Bukkit;
-
-import net.md_5.bungee.api.ChatColor;
-import net.tylermurphy.hideAndSeek.Main;
-
-public class WorldborderManager {
-
- public static void schedule() {
-
- Bukkit.getServer().getScheduler().runTaskAsynchronously(Main.plugin, new Runnable(){
-
- public void run() {
- int temp = gameId;
- while(true) {
- try { Thread.sleep(1000*60*worldborderDelay); } catch (InterruptedException e) {}
- if(gameId != temp) break;
- if(currentWorldborderSize-100 > 100) {
- Bukkit.getServer().broadcastMessage(ChatColor.RED + "World Border> " + ChatColor.WHITE + "Worldborder decreacing by 100 blocks over the next 30s");
- currentWorldborderSize -= 100;
- decreaseBorder = true;
- } else {
- break;
- }
- }
- }
- });
- }
-
- public static void reset() {
- if(worldborderEnabled) {
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "worldborder set "+worldborderSize);
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), String.format("worldborder center %s %s",worldborderPosition.getBlockX(),worldborderPosition.getBlockZ()));
- currentWorldborderSize = worldborderSize;
- } else {
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "worldborder set 30000000");
- Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "worldborder center 0 0");
- }
- }
-
-}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java
new file mode 100644
index 0000000..73d6e94
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java
@@ -0,0 +1,265 @@
+package net.tylermurphy.hideAndSeek.util;
+
+import static net.tylermurphy.hideAndSeek.Store.Hider;
+import static net.tylermurphy.hideAndSeek.Store.Seeker;
+import static net.tylermurphy.hideAndSeek.Store.Spectator;
+import static net.tylermurphy.hideAndSeek.Store.board;
+import static net.tylermurphy.hideAndSeek.Store.currentWorldborderSize;
+import static net.tylermurphy.hideAndSeek.Store.decreaseBorder;
+import static net.tylermurphy.hideAndSeek.Store.gameId;
+import static net.tylermurphy.hideAndSeek.Store.playerList;
+import static net.tylermurphy.hideAndSeek.Store.tauntPlayer;
+import static net.tylermurphy.hideAndSeek.Store.worldborderDelay;
+import static net.tylermurphy.hideAndSeek.Store.worldborderEnabled;
+import static net.tylermurphy.hideAndSeek.Store.worldborderPosition;
+import static net.tylermurphy.hideAndSeek.Store.worldborderSize;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.World;
+import org.bukkit.WorldBorder;
+import org.bukkit.enchantments.Enchantment;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.inventory.meta.PotionMeta;
+import org.bukkit.potion.PotionData;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionType;
+import org.bukkit.scoreboard.Scoreboard;
+import org.bukkit.scoreboard.ScoreboardManager;
+import org.bukkit.scoreboard.Team.Option;
+import org.bukkit.scoreboard.Team.OptionStatus;
+
+import com.comphenix.protocol.PacketType;
+import com.comphenix.protocol.ProtocolLibrary;
+import com.comphenix.protocol.ProtocolManager;
+import com.comphenix.protocol.events.PacketContainer;
+import com.comphenix.protocol.wrappers.EnumWrappers.SoundCategory;
+import com.comphenix.protocol.wrappers.WrappedDataWatcher;
+import com.comphenix.protocol.wrappers.WrappedDataWatcher.Registry;
+import com.comphenix.protocol.wrappers.WrappedDataWatcher.Serializer;
+
+import net.tylermurphy.hideAndSeek.Main;
+
+public class Functions {
+
+ private static ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
+
+ public static void resetPlayer(Player player) {
+ player.getInventory().clear();
+ for(PotionEffect effect : player.getActivePotionEffects()){
+ player.removePotionEffect(effect.getType());
+ }
+ if(Seeker.getEntries().contains(player.getName())){
+ ItemStack diamondSword = new ItemStack(Material.DIAMOND_SWORD,1);
+ diamondSword.addEnchantment(Enchantment.DAMAGE_ALL, 1);
+ ItemMeta diamondSwordMeta = diamondSword.getItemMeta();
+ diamondSwordMeta.setDisplayName("Seeker Sword");
+ diamondSwordMeta.setUnbreakable(true);
+ diamondSword.setItemMeta(diamondSwordMeta);
+ player.getInventory().addItem(diamondSword);
+
+ ItemStack wackyStick = new ItemStack(Material.STICK,1);
+ wackyStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 3);
+ ItemMeta wackyStickMeta = wackyStick.getItemMeta();
+ wackyStickMeta.setDisplayName("Wacky Stick");
+ wackyStick.setItemMeta(wackyStickMeta);
+ player.getInventory().addItem(wackyStick);
+ }
+ else if(Hider.getEntries().contains(player.getName())){
+ ItemStack stoneSword = new ItemStack(Material.STONE_SWORD,1);
+ stoneSword.addEnchantment(Enchantment.DAMAGE_ALL, 2);
+ ItemMeta stoneSwordMeta = stoneSword.getItemMeta();
+ stoneSwordMeta.setDisplayName("Hider Sword");
+ stoneSwordMeta.setUnbreakable(true);
+ stoneSword.setItemMeta(stoneSwordMeta);
+ player.getInventory().addItem(stoneSword);
+
+ ItemStack splashPotion = new ItemStack(Material.SPLASH_POTION,1);
+ PotionMeta splashPotionMeta = (PotionMeta) splashPotion.getItemMeta();
+ splashPotionMeta.setBasePotionData(new PotionData(PotionType.REGEN));
+ splashPotion.setItemMeta(splashPotionMeta);
+ player.getInventory().addItem(splashPotion);
+
+ ItemStack potion = new ItemStack(Material.POTION,2);
+ PotionMeta potionMeta = (PotionMeta) potion.getItemMeta();
+ potionMeta.setBasePotionData(new PotionData(PotionType.INSTANT_HEAL));
+ potion.setItemMeta(potionMeta);
+ player.getInventory().addItem(potion);
+
+ ItemStack snowball = new ItemStack(Material.SNOWBALL,1);
+ ItemMeta snowballMeta = snowball.getItemMeta();
+ snowballMeta.setDisplayName("Glow Powerup");
+ List snowballLore = new ArrayList();
+ snowballLore.add("Throw to make all seekers glow");
+ snowballLore.add("Last 30s, all hiders can see it");
+ snowballLore.add("Time stacks on multi use");
+ snowballMeta.setLore(snowballLore);
+ player.getInventory().addItem(snowball);
+ }
+ }
+
+ public static void emptyOfflinePlayers() {
+
+ for(String entry : Hider.getEntries()) {
+ if(!playerList.containsKey(entry)) {
+ Hider.removeEntry(entry);
+ }
+ }
+
+ for(String entry : Seeker.getEntries()) {
+ if(!playerList.containsKey(entry)) {
+ Seeker.removeEntry(entry);
+ }
+ }
+
+ for(String entry : Spectator.getEntries()) {
+ if(!playerList.containsKey(entry)) {
+ Spectator.removeEntry(entry);
+ }
+ }
+ }
+
+ public static void loadScoreboard() {
+
+ ScoreboardManager manager = Bukkit.getScoreboardManager();
+ Scoreboard mainBoard = manager.getMainScoreboard();
+
+ try { mainBoard.registerNewTeam("Seeker");} catch(Exception e) {}
+ Seeker = mainBoard.getTeam("Seeker");
+ Seeker.setColor(ChatColor.RED);
+ Seeker.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
+ Seeker.setAllowFriendlyFire(false);
+
+ try { mainBoard.registerNewTeam("Hider");} catch(Exception e) {}
+ Hider = mainBoard.getTeam("Hider");
+ Hider.setColor(ChatColor.GOLD);
+ Hider.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
+ Hider.setAllowFriendlyFire(false);
+
+ try { mainBoard.registerNewTeam("Spectator");} catch(Exception e) {}
+ Spectator = mainBoard.getTeam("Spectator");
+ Spectator.setColor(ChatColor.GRAY);
+ Spectator.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER);
+ Spectator.setAllowFriendlyFire(false);
+
+ board = mainBoard;
+ }
+
+ public static void playSound(Player player, Sound sound, float volume, float pitch) {
+ PacketContainer packet = protocolManager.createPacket(PacketType.Play.Server.NAMED_SOUND_EFFECT);
+ packet.getSoundCategories().write(0, SoundCategory.MASTER);
+ packet.getSoundEffects().write(0, sound);
+ packet.getIntegers().write(0, (int)(player.getLocation().getX() * 8.0));
+ packet.getIntegers().write(1, (int)(player.getLocation().getY() * 8.0));
+ packet.getIntegers().write(2, (int)(player.getLocation().getZ() * 8.0));
+ packet.getFloat().write(0, volume);
+ packet.getFloat().write(1, pitch);
+ try {
+ protocolManager.sendServerPacket(player, packet);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void setGlow(Player player, Player target, boolean glowing) {
+ PacketContainer packet = protocolManager.createPacket(PacketType.Play.Server.ENTITY_METADATA);
+ packet.getIntegers().write(0, target.getEntityId());
+ WrappedDataWatcher watcher = new WrappedDataWatcher();
+ Serializer serializer = Registry.get(Byte.class);
+ watcher.setEntity(target);
+ if(glowing) {
+ watcher.setObject(0, serializer, (byte) (0x40));
+ } else {
+ watcher.setObject(0, serializer, (byte) (0x0));
+ }
+ packet.getWatchableCollectionModifier().write(0, watcher.getWatchableObjects());
+ try {
+ protocolManager.sendServerPacket(player, packet);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void scheduleTaunt() {
+ Bukkit.getServer().getScheduler().runTaskAsynchronously(Main.plugin, new Runnable(){
+
+ public void run() {
+ int temp = gameId;
+ while(true) {
+ if(tauntPlayer != null && !tauntPlayer.equals("")) {
+ try { Thread.sleep(1000); } catch (InterruptedException e) {}
+ if(gameId != temp) break;
+ continue;
+ }
+ try { Thread.sleep(1000*60); } catch (InterruptedException e) {}
+ if(gameId != temp) break;
+ if(Math.random() > .8) {
+ Player taunted = null;
+ int rand = (int) (Math.random()*Hider.getEntries().size());
+ for(Player player : playerList.values()) {
+ if(Hider.hasEntry(player.getName())) {
+ rand--;
+ if(rand==0) {
+ taunted = player;
+ break;
+ }
+ }
+ }
+ if(taunted != null) {
+ taunted.sendMessage(ChatColor.RED + "" + ChatColor.ITALIC + "Oh no! You have been chosed to be taunted.");
+ Bukkit.getServer().broadcastMessage(ChatColor.YELLOW + "Taunt >" + ChatColor.WHITE + " A random hider will be taunted in the next 30s");
+ try { Thread.sleep(1000*30); } catch (InterruptedException e) {}
+ if(gameId != temp) break;
+ tauntPlayer = taunted.getName();
+ }
+ }
+ }
+ }
+ });
+ }
+
+ public static void scheduleWorldborder() {
+
+ Bukkit.getServer().getScheduler().runTaskAsynchronously(Main.plugin, new Runnable(){
+
+ public void run() {
+ int temp = gameId;
+ while(true) {
+ try { Thread.sleep(1000*60*worldborderDelay); } catch (InterruptedException e) {}
+ if(gameId != temp) break;
+ if(currentWorldborderSize-100 > 100) {
+ Bukkit.getServer().broadcastMessage(ChatColor.RED + "World Border> " + ChatColor.WHITE + "Worldborder decreacing by 100 blocks over the next 30s");
+ currentWorldborderSize -= 100;
+ decreaseBorder = true;
+ } else {
+ break;
+ }
+ }
+ }
+ });
+ }
+
+ public static void resetWorldborder() {
+ if(worldborderEnabled) {
+ World world = Bukkit.getWorld("world");
+ WorldBorder border = world.getWorldBorder();
+ border.setSize(worldborderSize);
+ border.setCenter(worldborderPosition.getX(), worldborderPosition.getZ());
+ currentWorldborderSize = worldborderSize;
+ } else {
+ World world = Bukkit.getWorld("world");
+ WorldBorder border = world.getWorldBorder();
+ border.setSize(30000000);
+ border.setCenter(0, 0);
+ }
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/ICommand.java b/src/main/java/net/tylermurphy/hideAndSeek/util/ICommand.java
similarity index 84%
rename from src/main/java/net/tylermurphy/hideAndSeek/ICommand.java
rename to src/main/java/net/tylermurphy/hideAndSeek/util/ICommand.java
index 304384f..373096f 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/ICommand.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/ICommand.java
@@ -1,4 +1,4 @@
-package net.tylermurphy.hideAndSeek;
+package net.tylermurphy.hideAndSeek.util;
import org.bukkit.command.CommandSender;
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index ea176f0..4250258 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,8 +1,10 @@
name: HideAndSeek
main: net.tylermurphy.hideAndSeek.Main
-version: 1.0
+version: 1.2.0
author: KenshinEto
load: STARTUP
+api-version: 1.17
+depend: [ProtocolLib]
commands:
hideandseek:
description: Hide and Seek command