summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
diff options
context:
space:
mode:
authorTyler Murphy <tylerm@tylerm.dev>2023-07-30 18:12:47 -0400
committerTyler Murphy <tylerm@tylerm.dev>2023-07-30 18:12:47 -0400
commit000219a5ff183e469129e5804d0a6090d6b47b26 (patch)
tree5217465c967796680cc03b11359490f638d6b78c /src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
parentMerge branch 'main' of ssh://g.tylerm.dev:21/tylermurphy534/KenshinsHideAndSe... (diff)
downloadkenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.tar.gz
kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.tar.bz2
kenshinshideandseek-000219a5ff183e469129e5804d0a6090d6b47b26.zip
1.7.5 rc4
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java158
1 files changed, 0 insertions, 158 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
deleted file mode 100644
index d691fa9..0000000
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Maps.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package net.tylermurphy.hideAndSeek.configuration;
-
-import java.util.*;
-import java.util.stream.Collectors;
-
-import net.tylermurphy.hideAndSeek.Main;
-import net.tylermurphy.hideAndSeek.util.Location;
-import org.bukkit.Material;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.configuration.file.YamlConfiguration;
-
-import com.cryptomorin.xseries.XMaterial;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-public class Maps {
-
- private static final HashMap<String, Map> MAPS = new HashMap<>();
-
- @Nullable
- public static Map getMap(String name) {
- return MAPS.get(name);
- }
-
- @Nullable
- public static Map getRandomMap() {
- 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) {
- MAPS.put(name, map);
- saveMaps();
- }
-
- public static boolean removeMap(String name) {
- boolean status = MAPS.remove(name) != null;
- saveMaps();
- return status;
- }
-
- @NotNull
- public static Collection<Map> getAllMaps() {
- return MAPS.values();
- }
-
- public static void loadMaps() {
-
- ConfigManager manager = ConfigManager.create("maps.yml");
-
- ConfigurationSection maps = manager.getConfigurationSection("maps");
- if(maps == null) return;
- Set<String> keys = maps.getKeys(false);
- if(keys == null) return;
-
- MAPS.clear();
- for(String key : keys) {
- MAPS.put(key, parseMap(maps, key));
- }
-
- }
-
- private static Map parseMap(ConfigurationSection maps, String name) {
- ConfigurationSection data = maps.getConfigurationSection(name);
- if(data == null) return null;
- Map map = new Map(name);
- Main.getInstance().getLogger().info("Loading map: " + name + "...");
- map.setSpawn(getSpawn(data, "game"));
- map.setLobby(getSpawn(data, "lobby"));
- map.setSeekerLobby(getSpawn(data, "seeker"));
- map.setBoundMin(data.getInt("bounds.min.x"), data.getInt("bounds.min.z"));
- map.setBoundMax(data.getInt("bounds.max.x"), data.getInt("bounds.max.z"));
- map.setWorldBorderData(
- data.getInt("worldborder.pos.x"),
- data.getInt("worldborder.pos.z"),
- data.getInt("worldborder.size"),
- 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"),
- blockhunt
- .stream()
- .map(XMaterial::matchXMaterial)
- .filter(Optional::isPresent)
- .map(e -> e.get().parseMaterial())
- .filter(Objects::nonNull)
- .collect(Collectors.toList())
- );
- return map;
- }
-
- private static Location getSpawn(ConfigurationSection data, String spawn) {
- String world = data.getString("spawns."+spawn+".world");
- double x = data.getDouble("spawns."+spawn+".x");
- double y = data.getDouble("spawns."+spawn+".y");
- double z = data.getDouble("spawns."+spawn+".z");
- return new Location(world, x, y, z);
- }
-
- private static void saveMaps() {
-
- ConfigManager manager = ConfigManager.create("maps.yml");
- ConfigurationSection maps = new YamlConfiguration();
-
- for(Map map : MAPS.values()) {
- ConfigurationSection data = new YamlConfiguration();
- saveSpawn(data, map.getSpawn(), "game", map);
- saveSpawn(data, map.getLobby(), "lobby", map);
- saveSpawn(data, map.getSeekerLobby(), "seeker", map);
- data.set("bounds.min.x", map.getBoundsMin().getX());
- data.set("bounds.min.z", map.getBoundsMin().getZ());
- data.set("bounds.max.x", map.getBoundsMax().getX());
- data.set("bounds.max.z", map.getBoundsMax().getZ());
- data.set("worldborder.pos.x", map.getWorldBorderPos().getX());
- data.set("worldborder.pos.z", map.getWorldBorderPos().getZ());
- data.set("worldborder.pos.size", map.getWorldBorderData().getX());
- 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).collect(Collectors.toList()));
- maps.set(map.getName(), data);
- }
-
- manager.set("maps", maps);
- manager.overwriteConfig();
-
- }
-
- private static void saveSpawn(ConfigurationSection data, Location spawn, String name, Map map) {
- String worldName = getWorldName(name, map);
- data.set("spawns." + name + ".world", worldName);
- data.set("spawns." + name + ".x", spawn.getX());
- data.set("spawns." + name + ".y", spawn.getY());
- data.set("spawns." + name + ".z", spawn.getZ());
- }
-
- private static String getWorldName(String name, Map map) {
- switch (name) {
- case "game": return map.getSpawnName();
- case "lobby": return map.getLobbyName();
- case "seeker": return map.getSeekerLobbyName();
- default: return null;
- }
- }
-
-}