summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/Main.java2
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java19
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Join.java6
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java2
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java14
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java13
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java12
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java14
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java10
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java13
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java131
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java5
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Board.java15
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/CustomBoard.java8
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Util.java54
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java2
16 files changed, 229 insertions, 91 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Main.java b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
index 1a5570e..f5c8518 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/Main.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
@@ -22,6 +22,7 @@ import net.tylermurphy.hideAndSeek.bukkit.TabCompleter;
import net.tylermurphy.hideAndSeek.bukkit.Tick;
import net.tylermurphy.hideAndSeek.configuration.Config;
import net.tylermurphy.hideAndSeek.configuration.Localization;
+import net.tylermurphy.hideAndSeek.configuration.Items;
import net.tylermurphy.hideAndSeek.events.Glow;
import net.tylermurphy.hideAndSeek.events.Taunt;
import net.tylermurphy.hideAndSeek.events.Worldborder;
@@ -63,6 +64,7 @@ public class Main extends JavaPlugin implements Listener {
// Init Configuration
Config.loadConfig();
Localization.loadLocalization();
+ Items.loadItems();
// Create World Loader
worldLoader = new WorldLoader(spawnWorld);
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
index dc8b9ce..2e8eafb 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
@@ -2,6 +2,7 @@ package net.tylermurphy.hideAndSeek.bukkit;
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+import net.tylermurphy.hideAndSeek.command.Join;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
@@ -38,10 +39,18 @@ public class EventListener implements Listener {
event.getPlayer().setLevel(0);
Main.plugin.board.remove(event.getPlayer());
if(!Util.isSetup()) return;
- if(event.getPlayer().getWorld().getName().equals("hideandseek_"+spawnWorld) || event.getPlayer().getWorld().getName().equals(lobbyWorld)){
- event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()));
- event.getPlayer().setGameMode(GameMode.ADVENTURE);
-
+ if(autoJoin){
+ Join.join(event.getPlayer());
+ } else if(teleportToExit) {
+ if (event.getPlayer().getWorld().getName().equals("hideandseek_" + spawnWorld) || event.getPlayer().getWorld().getName().equals(lobbyWorld)) {
+ event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()));
+ event.getPlayer().setGameMode(GameMode.ADVENTURE);
+ }
+ } else {
+ if (event.getPlayer().getWorld().getName().equals("hideandseek_" + spawnWorld)) {
+ event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()));
+ event.getPlayer().setGameMode(GameMode.ADVENTURE);
+ }
}
}
@@ -90,7 +99,7 @@ public class EventListener implements Listener {
}
}
Player player = (Player) event.getEntity();
- if(player.getHealth()-event.getDamage() < 0) {
+ if(player.getHealth()-event.getDamage() < 0 || !pvpEnabled) {
if(spawnPosition == null) return;
event.setCancelled(true);
player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java
index b3691bf..17b8f7a 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java
@@ -30,6 +30,10 @@ public class Join implements ICommand {
return;
}
+ join(player);
+ }
+
+ public static void join(Player player){
if(Main.plugin.status.equals("Standby")) {
player.getInventory().clear();
Main.plugin.board.addHider(player);
@@ -46,7 +50,7 @@ public class Join implements ICommand {
Main.plugin.board.createGameBoard(player);
player.teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
}
-
+
player.setFoodLevel(20);
player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getBaseValue());
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java
index 2c7ba04..971cd13 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java
@@ -2,6 +2,7 @@ package net.tylermurphy.hideAndSeek.command;
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+import net.tylermurphy.hideAndSeek.configuration.Items;
import org.bukkit.command.CommandSender;
import net.tylermurphy.hideAndSeek.Main;
@@ -20,6 +21,7 @@ public class Reload implements ICommand {
}
Config.loadConfig();
Localization.loadLocalization();
+ Items.loadItems();
sender.sendMessage(messagePrefix + message("CONFIG_RELOAD"));
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java
index 210f7fe..c94a0d1 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java
@@ -24,15 +24,25 @@ public class SetBounds implements ICommand {
sender.sendMessage(errorPrefix + message("BOUNDS_WRONG_WORLD"));
return;
}
+ if(player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0){
+ sender.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
+ return;
+ }
+ boolean first = true;
+ if(saveMinX != 0 && saveMinZ != 0 && saveMaxX != 0 && saveMaxZ != 0) {
+ saveMinX = 0; saveMinZ= 0; saveMaxX = 0; saveMaxZ = 0;
+ }
if(saveMaxX == 0) {
addToConfig("bounds.max.x", player.getLocation().getBlockX());
saveMaxX = player.getLocation().getBlockX();
} else if(saveMaxX < player.getLocation().getBlockX()) {
+ first = false;
addToConfig("bounds.max.x", player.getLocation().getBlockX());
addToConfig("bounds.min.x", saveMaxX);
saveMinX = saveMaxX;
saveMaxX = player.getLocation().getBlockX();
} else {
+ first = false;
addToConfig("bounds.min.x", player.getLocation().getBlockX());
saveMinX = player.getLocation().getBlockX();
}
@@ -40,15 +50,17 @@ public class SetBounds implements ICommand {
addToConfig("bounds.max.z", player.getLocation().getBlockZ());
saveMaxZ = player.getLocation().getBlockZ();
} else if(saveMaxZ < player.getLocation().getBlockZ()) {
+ first = false;
addToConfig("bounds.max.z", player.getLocation().getBlockZ());
addToConfig("bounds.min.z", saveMaxZ);
saveMinZ = saveMaxZ;
saveMaxZ = player.getLocation().getBlockZ();
} else {
+ first = false;
addToConfig("bounds.min.z", player.getLocation().getBlockZ());
saveMinZ = player.getLocation().getBlockZ();
}
- sender.sendMessage(messagePrefix + message("BOUNDS"));
+ sender.sendMessage(messagePrefix + message("BOUNDS").addAmount(first ? 1 : 2));
saveConfig();
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java
index c9d2fae..e0b8a5d 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java
@@ -15,18 +15,21 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetExitLocation implements ICommand {
public void execute(CommandSender sender, String[] args) {
+ if(!Main.plugin.status.equals("Standby")) {
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
+ return;
+ }
Vector newExitPosition = new Vector();
Player player = (Player) sender;
+ if(player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0 || player.getLocation().getBlockY() == 0){
+ sender.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
+ return;
+ }
newExitPosition.setX(player.getLocation().getBlockX());
newExitPosition.setY(player.getLocation().getBlockY());
newExitPosition.setZ(player.getLocation().getBlockZ());
- if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
- return;
- }
exitPosition = newExitPosition;
sender.sendMessage(messagePrefix + message("EXIT_SPAWN"));
- Map<String, Object> temp = new HashMap<String,Object>();
addToConfig("spawns.exit.x", exitPosition.getX());
addToConfig("spawns.exit.y", exitPosition.getY());
addToConfig("spawns.exit.z", exitPosition.getZ());
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java
index a8a1887..53ae721 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java
@@ -15,15 +15,19 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetLobbyLocation implements ICommand {
public void execute(CommandSender sender, String[] args) {
+ if(!Main.plugin.status.equals("Standby")) {
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
+ return;
+ }
Vector newLobbyPosition = new Vector();
Player player = (Player) sender;
+ if(player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0 || player.getLocation().getBlockY() == 0){
+ sender.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
+ return;
+ }
newLobbyPosition.setX(player.getLocation().getBlockX());
newLobbyPosition.setY(player.getLocation().getBlockY());
newLobbyPosition.setZ(player.getLocation().getBlockZ());
- if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
- return;
- }
lobbyPosition = newLobbyPosition;
sender.sendMessage(messagePrefix + message("LOBBY_SPAWN"));
addToConfig("spawns.lobby.x", lobbyPosition.getX());
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java
index d634968..5324ecf 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java
@@ -17,16 +17,20 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetSpawnLocation implements ICommand {
public void execute(CommandSender sender, String[] args) {
+ if(!Main.plugin.status.equals("Standby")) {
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
+ return;
+ }
Vector newSpawnPosition = new Vector();
Player player = (Player) sender;
+ if(player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0 || player.getLocation().getBlockY() == 0){
+ sender.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
+ return;
+ }
newSpawnPosition.setX(player.getLocation().getBlockX());
newSpawnPosition.setY(player.getLocation().getBlockY());
newSpawnPosition.setZ(player.getLocation().getBlockZ());
- if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
- return;
- }
- if(worldborderEnabled && spawnPosition.distance(worldborderPosition) > 100) {
+ if(worldborderEnabled && newSpawnPosition.distance(worldborderPosition) > 100) {
sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION"));
return;
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
index 04faca2..f2b7680 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
@@ -13,7 +13,7 @@ import net.tylermurphy.hideAndSeek.Main;
public class Config {
- static ConfigManager manager;
+ private static ConfigManager manager;
public static String
messagePrefix,
@@ -42,7 +42,10 @@ public class Config {
tauntCountdown,
tauntLast,
glowEnabled,
- glowStackable;
+ glowStackable,
+ pvpEnabled,
+ autoJoin,
+ teleportToExit;
public static int
minPlayers,
@@ -131,6 +134,9 @@ public class Config {
permissionsRequired = manager.getBoolean("permissionsRequired");
minPlayers = Math.max(2, manager.getInt("minPlayers"));
gameLength = manager.getInt("gameLength");
+ pvpEnabled = manager.getBoolean("pvp");
+ autoJoin = manager.getBoolean("autoJoin");
+ teleportToExit = manager.getBoolean("teleportToExit");
}
public static void addToConfig(String path, Object value) {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java
index 7ea38db..df970bf 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java
@@ -30,7 +30,6 @@ public class ConfigManager {
input.close();
reader.close();
} catch (IOException e){}
-
}
private void saveDefaultConfiguration(){
@@ -43,16 +42,6 @@ public class ConfigManager {
}
}
- public void addToSection(String sectionName, Map<String,Object> values) {
- ConfigurationSection section = config.getConfigurationSection(sectionName);
- if(section == null) section = config.createSection(sectionName);
- Map<String,Object> sectionValues = section.getValues(true);
- for(Map.Entry<String, Object> entry : values.entrySet()) {
- sectionValues.put(entry.getKey(), entry.getValue());
- }
- config.createSection(sectionName, sectionValues);
- }
-
public void addToConfig(String path, Object value) {
config.set(path, value);
}
@@ -89,7 +78,7 @@ public class ConfigManager {
if(value == false){
return defaultConfig.getBoolean(path);
} else {
- return value;
+ return true;
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java
new file mode 100644
index 0000000..fbf5d2c
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java
@@ -0,0 +1,131 @@
+package net.tylermurphy.hideAndSeek.configuration;
+
+import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.NamespacedKey;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.enchantments.Enchantment;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.inventory.meta.PotionMeta;
+import org.bukkit.potion.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+public class Items {
+
+ private static ConfigManager manager;
+
+ public static List<ItemStack> HIDER_ITEMS, SEEKER_ITEMS;
+ public static List<PotionEffect> HIDER_EFFECTS, SEEKER_EFFECTS;
+
+ public static void loadItems() {
+
+ manager = new ConfigManager("items.yml");
+
+ SEEKER_ITEMS = new ArrayList<ItemStack>();
+ ConfigurationSection SeekerItems = manager.getConfigurationSection("items.seeker");
+ int i = 1;
+ while (true) {
+ ConfigurationSection section = SeekerItems.getConfigurationSection(String.valueOf(i));
+ if(section == null) break;
+ ItemStack item = createItem(section);
+ if(item != null) SEEKER_ITEMS.add(item);
+ i++;
+ }
+
+ HIDER_ITEMS = new ArrayList<ItemStack>();
+ ConfigurationSection HiderItems = manager.getConfigurationSection("items.hider");
+ i = 1;
+ while (true) {
+ ConfigurationSection section = HiderItems.getConfigurationSection(String.valueOf(i));
+ if(section == null) break;
+ ItemStack item = createItem(section);
+ if(item != null) HIDER_ITEMS.add(item);
+ i++;
+ }
+
+ SEEKER_EFFECTS = new ArrayList<PotionEffect>();
+ ConfigurationSection SeekerEffects = manager.getConfigurationSection("effects.seeker");
+ i = 1;
+ while (true) {
+ ConfigurationSection section = SeekerEffects.getConfigurationSection(String.valueOf(i));
+ if(section == null) break;
+ PotionEffect effect = getPotionEffect(section);
+ if(effect != null) SEEKER_EFFECTS.add(effect);
+ i++;
+ }
+
+ HIDER_EFFECTS = new ArrayList<PotionEffect>();
+ ConfigurationSection HiderEffects = manager.getConfigurationSection("effects.hider");
+ i = 1;
+ while (true) {
+ ConfigurationSection section = HiderEffects.getConfigurationSection(String.valueOf(i));
+ if(section == null) break;
+ PotionEffect effect = getPotionEffect(section);
+ if(effect != null) HIDER_EFFECTS.add(effect);
+ i++;
+ }
+
+ }
+
+ private static ItemStack createItem(ConfigurationSection item) {
+ String material_string = item.getString("material");
+ if(material_string == null) return null;
+ Material material = Material.valueOf(material_string.toUpperCase());
+ int amount = item.getInt("amount");
+ ItemStack stack = new ItemStack(material, amount);
+ if(material == Material.POTION || material == Material.SPLASH_POTION || material == Material.LINGERING_POTION){
+ PotionMeta meta = getPotionMeta(stack, item);
+ stack.setItemMeta(meta);
+ } else {
+ ConfigurationSection enchantments = item.getConfigurationSection("enchantments");
+ if (enchantments != null)
+ for (String enchantment_string : enchantments.getKeys(false)) {
+ Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(enchantment_string));
+ if (enchantment == null) continue;
+ stack.addUnsafeEnchantment(
+ enchantment,
+ enchantments.getInt(enchantment_string)
+ );
+ }
+ ItemMeta meta = getItemMeta(stack,item);
+ stack.setItemMeta(meta);
+ }
+ return stack;
+ }
+
+ private static ItemMeta getItemMeta(ItemStack stack, ConfigurationSection item){
+ ItemMeta meta = stack.getItemMeta();
+ assert meta != null;
+ String name = item.getString("name");
+ if(name != null)
+ meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name));
+ meta.setUnbreakable(item.getBoolean("unbreakable"));
+ meta.setLore(item.getStringList("lore"));
+ return meta;
+ }
+
+ private static PotionMeta getPotionMeta(ItemStack stack, ConfigurationSection item){
+ String type = item.getString("type");
+ PotionMeta meta = (PotionMeta) stack.getItemMeta();
+ if(type==null) return meta;
+ assert meta != null;
+ meta.setBasePotionData(new PotionData((PotionType.valueOf(type.toUpperCase()))));
+ return meta;
+ }
+
+ private static PotionEffect getPotionEffect(ConfigurationSection item){
+ String type = item.getString("type");
+ if(type == null) return null;
+ return new PotionEffect(
+ Objects.requireNonNull(PotionEffectType.getByName(type.toUpperCase())),
+ item.getInt("duration"),
+ item.getInt("amplifier"),
+ item.getBoolean("ambient"),
+ item.getBoolean("particles")
+ );
+ }
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java
index 82d19d4..9980a4e 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java
@@ -21,7 +21,8 @@ public class Localization {
public static boolean loadLocalization() {
manager = new ConfigManager("localization.yml");
-
+ manager.saveConfig();
+
for(String key : manager.getConfigurationSection("Localization").getKeys(false)) {
LOCAL.put(
key,
@@ -29,8 +30,6 @@ public class Localization {
);
}
- manager.saveConfig();
-
return true;
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
index 59b9ac8..80cbdee 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
@@ -159,9 +159,9 @@ public class Board {
}
board.setLine("hiders", ChatColor.BOLD + "" + ChatColor.YELLOW + "HIDER%" + ChatColor.WHITE + getHiderPercent());
board.setLine("seekers", ChatColor.BOLD + "" + ChatColor.RED + "SEEKER%" + ChatColor.WHITE + getSeekerPercent());
- board.addBlank(recreate);
+ board.addBlank();
board.setLine("players", "Players: " + playerList.values().size());
- board.addBlank(recreate);
+ board.addBlank();
board.setLine("waiting", "Waiting to start...");
board.display();
customBoards.put(player.getName(), board);
@@ -175,11 +175,10 @@ public class Board {
CustomBoard board = customBoards.get(player.getName());
if(recreate) {
board = new CustomBoard(player, "&l&eHIDE AND SEEK");
- board.updateTeams();
}
board.setLine("hiders", ChatColor.BOLD + "" + ChatColor.YELLOW + "HIDERS:" + ChatColor.WHITE + " " + Hider.size());
board.setLine("seekers", ChatColor.BOLD + "" + ChatColor.RED + "SEEKERS:" + ChatColor.WHITE + " " + Seeker.size());
- board.addBlank(recreate);
+ board.addBlank();
if(glowEnabled){
if(Main.plugin.glow == null || !Main.plugin.glow.isRunning())
board.setLine("glow", "Glow: " + ChatColor.RED + "Inactive");
@@ -189,15 +188,17 @@ public class Board {
if(tauntEnabled && tauntCountdown){
if(Main.plugin.taunt == null)
board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + "0m0s");
- else if(!Main.plugin.taunt.isRunning())
+ else if(!tauntLast && Hider.size() == 1){
+ board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + "Expired");
+ } else if(!Main.plugin.taunt.isRunning())
board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + Main.plugin.taunt.getDelay()/60 + "m" + Main.plugin.taunt.getDelay()%60 + "s");
else
board.setLine("taunt", "Taunt: " + ChatColor.YELLOW + "Active");
}
if(glowEnabled || (tauntEnabled && tauntCountdown))
- board.addBlank(recreate);
+ board.addBlank();
board.setLine("time", "Time Left: " + ChatColor.GREEN + Main.plugin.timeLeft/60 + "m" + Main.plugin.timeLeft%60 + "s");
- board.addBlank(recreate);
+ board.addBlank();
board.setLine("team", "Team: " + getTeam(player));
board.display();
customBoards.put(player.getName(), board);
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/CustomBoard.java b/src/main/java/net/tylermurphy/hideAndSeek/util/CustomBoard.java
index a01d965..69d865a 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/CustomBoard.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/CustomBoard.java
@@ -18,6 +18,7 @@ public class CustomBoard {
private final Player player;
private final Map<String,Line> LINES;
private int blanks;
+ private boolean displayed;
public CustomBoard(Player player, String title){
this.board = Bukkit.getScoreboardManager().getNewScoreboard();
@@ -26,6 +27,8 @@ public class CustomBoard {
this.obj = board.registerNewObjective(
"Scoreboard", "dummy", ChatColor.translateAlternateColorCodes('&', title));
this.blanks = 0;
+ this.displayed = false;
+ this.updateTeams();
}
public void updateTeams() {
@@ -67,8 +70,8 @@ public class CustomBoard {
LINES.put(key, line);
}
- public void addBlank(boolean value){
- if(!value) return;
+ public void addBlank(){
+ if(displayed) return;
String temp = "";
for(int i = 0; i <= blanks; i ++)
temp += ChatColor.RESET;
@@ -86,6 +89,7 @@ public class CustomBoard {
}
public void display() {
+ displayed = true;
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
player.setScoreboard(board);
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java
index 3ab04a9..c24936b 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java
@@ -7,6 +7,7 @@ import java.util.ArrayList;
import java.util.List;
import net.md_5.bungee.api.ChatColor;
+import net.tylermurphy.hideAndSeek.configuration.Items;
import net.tylermurphy.hideAndSeek.configuration.LocalizationString;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@@ -55,48 +56,18 @@ public class Util {
for (PotionEffect effect : player.getActivePotionEffects()) {
player.removePotionEffect(effect.getType());
}
- player.addPotionEffect(new PotionEffect(PotionEffectType.DOLPHINS_GRACE, 1000000, 1, false, false));
if (Main.plugin.board.isSeeker(player)) {
- 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);
-
- 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));
+ if(pvpEnabled)
+ for(ItemStack item : Items.SEEKER_ITEMS)
+ player.getInventory().addItem(item);
+ for(PotionEffect effect : Items.SEEKER_EFFECTS)
+ player.addPotionEffect(effect);
} else if (Main.plugin.board.isHider(player)) {
- 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);
-
+ if(pvpEnabled)
+ for(ItemStack item : Items.HIDER_ITEMS)
+ player.getInventory().addItem(item);
+ for(PotionEffect effect : Items.HIDER_EFFECTS)
+ player.addPotionEffect(effect);
if(glowEnabled) {
ItemStack snowball = new ItemStack(Material.SNOWBALL, 1);
ItemMeta snowballMeta = snowball.getItemMeta();
@@ -109,9 +80,6 @@ public class Util {
snowball.setItemMeta(snowballMeta);
player.getInventory().addItem(snowball);
}
-
- player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 1, false, false));
}
}
-
} \ No newline at end of file
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java
index cfb85bf..5a8c324 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/world/WorldLoader.java
@@ -35,7 +35,7 @@ public class WorldLoader {
public void loadMap(){
Bukkit.getServer().createWorld(new WorldCreator(savename).generator(new VoidGenerator()));
- Bukkit.getServer().getWorld(savename).setAutoSave(false);
+ Bukkit.getServer().getWorld(savename).setAutoSave(false);
}
public void rollback(){