summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/configuration
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-10-30 21:40:59 -0400
committertylermurphy534 <tylermurphy534@gmail.com>2022-10-30 21:40:59 -0400
commit1325e042a6e7af37669bcd32e9d7a133f2ae22e6 (patch)
treee6703c90dcdbefac6954a1f2023b78892c0dc788 /src/main/java/net/tylermurphy/hideAndSeek/configuration
parentstart adding multi map support (diff)
downloadkenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.tar.gz
kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.tar.bz2
kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.zip
finish beta build of multi map support
Diffstat (limited to '')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Map.java52
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java37
2 files changed, 68 insertions, 21 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Map.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Map.java
index b18a0b0..42cab4b 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Map.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Map.java
@@ -1,6 +1,7 @@
package net.tylermurphy.hideAndSeek.configuration;
import java.io.File;
+import java.util.ArrayList;
import java.util.List;
import net.tylermurphy.hideAndSeek.Main;
@@ -22,7 +23,7 @@ public class Map {
seekerLobbyPosition = new Location(null, 0, 0, 0);
private String
- gameWorldName;
+ gameWorldName = "world";
private int
xBoundMin = 0,
@@ -36,10 +37,10 @@ public class Map {
worldBorderChange = 0;
private boolean
- blockhunt;
+ blockhunt = false;
private List<Material>
- blockhuntBlocks;
+ blockhuntBlocks = new ArrayList<>();
private final Border
worldBorder;
@@ -55,7 +56,8 @@ public class Map {
public void setSpawn(Location pos) {
this.spawnPosition = pos;
- this.gameWorldName = pos.getWorld().getName();
+ if(pos.getWorld() != null)
+ this.gameWorldName = pos.getWorld().getName();
}
public void setLobby(Location pos) {
@@ -73,7 +75,6 @@ public class Map {
this.worldBorderChange = 0;
this.xWorldBorder = 0;
this.zWorldBorder = 0;
- this.worldBorder.resetWorldBorder();
} else {
this.worldBorderSize = size;
this.worldBorderDelay = delay;
@@ -81,6 +82,7 @@ public class Map {
this.xWorldBorder = x;
this.zWorldBorder = z;
}
+ this.worldBorder.resetWorldBorder();
}
public void setBlockhunt(boolean enabled, List<Material> blocks) {
@@ -98,14 +100,31 @@ public class Map {
this.zBoundMax = z;
}
+ public Location getGameSpawn() {
+ if(mapSaveEnabled) {
+ return new Location(
+ Bukkit.getWorld("hs_" + gameWorldName),
+ spawnPosition.getX(),
+ spawnPosition.getY(),
+ spawnPosition.getZ()
+ );
+ } else {
+ return spawnPosition;
+ }
+ }
+
+ public String getGameSpawnName() {
+ return "hs_"+gameWorldName;
+ }
+
public Location getSpawn() {
- if(mapSaveEnabled)
- spawnPosition.setWorld(Bukkit.getWorld("hs_"+gameWorldName));
- else
- spawnPosition.setWorld(Bukkit.getWorld(gameWorldName));
return spawnPosition;
}
+ public String getSpawnName() {
+ return gameWorldName;
+ }
+
public Location getLobby() {
return lobbyPosition;
}
@@ -114,6 +133,19 @@ public class Map {
return seekerLobbyPosition;
}
+ public Location getGameSeekerLobby() {
+ if(mapSaveEnabled) {
+ return new Location(
+ Bukkit.getWorld("hs_" + gameWorldName),
+ seekerLobbyPosition.getX(),
+ seekerLobbyPosition.getY(),
+ seekerLobbyPosition.getZ()
+ );
+ } else {
+ return seekerLobbyPosition;
+ }
+ }
+
public boolean isWorldBorderEnabled() {
return worldBorderSize > 0;
}
@@ -158,7 +190,7 @@ public class Map {
return new Vector(
xBoundMax,
0,
- zBoundMin
+ zBoundMax
);
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
index 736fec2..4f18639 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
@@ -21,10 +21,17 @@ public class Maps {
}
public static Map getRandomMap() {
- Optional<Map> map = MAPS.values().stream().skip(new Random().nextInt(MAPS.values().size())).findFirst();
- if(map.isPresent()) return map.get();
- setMap("default", new Map("default"));
- return MAPS.get("default");
+ Optional<Map> map;
+ if(MAPS.values().size() > 0) {
+ Collection<Map> setupMaps = MAPS.values().stream().filter(m -> !m.isNotSetup()).collect(Collectors.toList());
+ if(setupMaps.size() < 1) {
+ return null;
+ }
+ map = setupMaps.stream().skip(new Random().nextInt(setupMaps.size())).findFirst();
+ } else {
+ map = Optional.empty();
+ }
+ return map.orElse(null);
}
public static void setMap(String name, Map map) {
@@ -32,6 +39,12 @@ public class Maps {
saveMaps();
}
+ public static boolean removeMap(String name) {
+ boolean status = MAPS.remove(name) != null;
+ saveMaps();
+ return status;
+ }
+
public static Collection<Map> getAllMaps() {
return MAPS.values();
}
@@ -69,9 +82,11 @@ public class Maps {
data.getInt("worldborder.delay"),
data.getInt("worldborder.change")
);
+ List<String> blockhunt = data.getStringList("blockhunt.blocks");
+ if(blockhunt == null) blockhunt = new ArrayList<>();
map.setBlockhunt(
- data.getBoolean("blockhunt.enabled"),
- data.getStringList("blockhunt.blocks")
+ data.getBoolean("blockhunt.enabled"),
+ blockhunt
.stream()
.map(XMaterial::matchXMaterial)
.filter(Optional::isPresent)
@@ -113,8 +128,8 @@ public class Maps {
data.set("worldborder.pos.delay", map.getWorldBorderData().getY());
data.set("worldborder.pos.change", map.getWorldBorderData().getZ());
data.set("blockhunt.enabled", map.isBlockHuntEnabled());
- data.set("blockhunt.blocks", map.getBlockHunt().stream().map(Material::name));
- maps.set(map.getName(), map);
+ data.set("blockhunt.blocks", map.getBlockHunt().stream().map(Material::name).collect(Collectors.toList()));
+ maps.set(map.getName(), data);
}
manager.set("maps", maps);
@@ -128,9 +143,9 @@ public class Maps {
} else {
data.set("spawns." + name + ".world", "world");
}
- data.set("spawns.." + name + ".x", spawn.getX());
- data.set("spawns.." + name + ".y", spawn.getY());
- data.set("spawns.." + name + ".z", spawn.getZ());
+ data.set("spawns." + name + ".x", spawn.getX());
+ data.set("spawns." + name + ".y", spawn.getY());
+ data.set("spawns." + name + ".z", spawn.getZ());
}
}