diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2022-04-13 14:02:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-13 14:02:00 -0400 |
commit | 44040cc87b23726d19834de76f1cdae6f6458448 (patch) | |
tree | ccbbc26fb4622775394a3388a8836d9c28f9ff9b /src/main/java/net/tylermurphy/hideAndSeek/configuration | |
parent | Merge pull request #20 from tylermurphy534/1.3.3 (diff) | |
parent | 1.4.0 rc3 (diff) | |
download | kenshinshideandseek-44040cc87b23726d19834de76f1cdae6f6458448.tar.gz kenshinshideandseek-44040cc87b23726d19834de76f1cdae6f6458448.tar.bz2 kenshinshideandseek-44040cc87b23726d19834de76f1cdae6f6458448.zip |
Merge pull request #22 from tylermurphy534/1.4.0
1.4.0
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration')
4 files changed, 176 insertions, 111 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java index 524eeac..5213f5d 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java @@ -19,11 +19,15 @@ package net.tylermurphy.hideAndSeek.configuration; +import net.tylermurphy.hideAndSeek.util.Version; import org.bukkit.util.Vector; +import java.util.Collections; +import java.util.List; + public class Config { - private static ConfigManager manager; + private static ConfigManager config, leaderboard; public static String messagePrefix, @@ -36,7 +40,7 @@ public class Config { spawnWorld, exitWorld, lobbyWorld, - local; + locale; public static Vector spawnPosition, @@ -57,7 +61,8 @@ public class Config { pvpEnabled, autoJoin, teleportToExit, - lobbyCountdownEnabled; + lobbyCountdownEnabled, + seekerPing; public static int minPlayers, @@ -74,101 +79,152 @@ public class Config { countdown, changeCountdown, lobbyMin, - lobbyMax; + lobbyMax, + seekerPingLevel1, + seekerPingLevel2, + seekerPingLevel3; + + public static String + LOBBY_TITLE, + GAME_TITLE, + COUNTDOWN_WAITING, + COUNTDOWN_COUNTING, + COUNTDOWN_ADMINSTART, + TAUNT_COUNTING, + TAUNT_ACTIVE, + TAUNT_EXPIRED, + GLOW_ACTIVE, + GLOW_INACTIVE, + BORDER_COUNTING, + BORDER_DECREASING; + + public static List<String> + LOBBY_CONTENTS, + GAME_CONTENTS; + + public static List<String> + blockedCommands; public static void loadConfig() { - manager = new ConfigManager("config.yml"); - manager.saveConfig(); + config = new ConfigManager("config.yml"); + config.saveConfig(); + leaderboard = new ConfigManager("leaderboard.yml"); + leaderboard.saveConfig(); //Spawn spawnPosition = new Vector( - manager.getDouble("spawns.game.x"), - Math.max(0, Math.min(255, manager.getDouble("spawns.game.y"))), - manager.getDouble("spawns.game.z") + config.getDouble("spawns.game.x"), + Math.max(0, Math.min(255, config.getDouble("spawns.game.y"))), + config.getDouble("spawns.game.z") ); - spawnWorld = manager.getString("spawns.game.world"); + spawnWorld = config.getString("spawns.game.world"); ///Lobby lobbyPosition = new Vector( - manager.getDouble("spawns.lobby.x"), - Math.max(0, Math.min(255, manager.getDouble("spawns.lobby.y"))), - manager.getDouble("spawns.lobby.z") + config.getDouble("spawns.lobby.x"), + Math.max(0, Math.min(255, config.getDouble("spawns.lobby.y"))), + config.getDouble("spawns.lobby.z") ); - lobbyWorld = manager.getString("spawns.lobby.world"); + lobbyWorld = config.getString("spawns.lobby.world"); - announceMessagesToNonPlayers = manager.getBoolean("announceMessagesToNonPlayers"); + announceMessagesToNonPlayers = config.getBoolean("announceMessagesToNonPlayers"); exitPosition = new Vector( - manager.getDouble("spawns.exit.x"), - Math.max(0, Math.min(255, manager.getDouble("spawns.exit.y"))), - manager.getDouble("spawns.exit.z") + config.getDouble("spawns.exit.x"), + Math.max(0, Math.min(255, config.getDouble("spawns.exit.y"))), + config.getDouble("spawns.exit.z") ); - exitWorld = manager.getString("spawns.exit.world"); + exitWorld = config.getString("spawns.exit.world"); //World border worldborderPosition = new Vector( - manager.getInt("worldBorder.x"), + config.getInt("worldBorder.x"), 0, - manager.getInt("worldBorder.z") + config.getInt("worldBorder.z") ); - worldborderSize = Math.max(100, manager.getInt("worldBorder.size")); - worldborderDelay = Math.max(1, manager.getInt("worldBorder.delay")); - worldborderEnabled = manager.getBoolean("worldBorder.enabled"); + worldborderSize = Math.max(100, config.getInt("worldBorder.size")); + worldborderDelay = Math.max(1, config.getInt("worldBorder.delay")); + worldborderEnabled = config.getBoolean("worldBorder.enabled"); //Prefix char SYMBOLE = '\u00A7'; String SYMBOLE_STRING = String.valueOf(SYMBOLE); - messagePrefix = manager.getString("prefix.default").replace("&", SYMBOLE_STRING); - errorPrefix = manager.getString("prefix.error").replace("&", SYMBOLE_STRING); - tauntPrefix = manager.getString("prefix.taunt").replace("&", SYMBOLE_STRING); - worldborderPrefix = manager.getString("prefix.border").replace("&", SYMBOLE_STRING); - abortPrefix = manager.getString("prefix.abort").replace("&", SYMBOLE_STRING); - gameoverPrefix = manager.getString("prefix.gameover").replace("&", SYMBOLE_STRING); - warningPrefix = manager.getString("prefix.warning").replace("&", SYMBOLE_STRING); + messagePrefix = config.getString("prefix.default").replace("&", SYMBOLE_STRING); + errorPrefix = config.getString("prefix.error").replace("&", SYMBOLE_STRING); + tauntPrefix = config.getString("prefix.taunt").replace("&", SYMBOLE_STRING); + worldborderPrefix = config.getString("prefix.border").replace("&", SYMBOLE_STRING); + abortPrefix = config.getString("prefix.abort").replace("&", SYMBOLE_STRING); + gameoverPrefix = config.getString("prefix.gameover").replace("&", SYMBOLE_STRING); + warningPrefix = config.getString("prefix.warning").replace("&", SYMBOLE_STRING); //Map Bounds - saveMinX = manager.getInt("bounds.min.x"); - saveMinZ = manager.getInt("bounds.min.z"); - saveMaxX = manager.getInt("bounds.max.x"); - saveMaxZ = manager.getInt("bounds.max.z"); + saveMinX = config.getInt("bounds.min.x"); + saveMinZ = config.getInt("bounds.min.z"); + saveMaxX = config.getInt("bounds.max.x"); + saveMaxZ = config.getInt("bounds.max.z"); //Taunt - tauntEnabled = manager.getBoolean("taunt.enabled"); - tauntCountdown = manager.getBoolean("taunt.showCountdown"); - tauntDelay = Math.max(60,manager.getInt("taunt.delay")); - tauntLast = manager.getBoolean("taunt.whenLastPerson"); + tauntEnabled = config.getBoolean("taunt.enabled"); + tauntCountdown = config.getBoolean("taunt.showCountdown"); + tauntDelay = Math.max(60, config.getInt("taunt.delay")); + tauntLast = config.getBoolean("taunt.whenLastPerson"); //Glow - glowLength = Math.max(1,manager.getInt("glow.time")); - glowStackable = manager.getBoolean("glow.stackable"); - glowEnabled = manager.getBoolean("glow.enabled"); + glowLength = Math.max(1, config.getInt("glow.time")); + glowStackable = config.getBoolean("glow.stackable"); + glowEnabled = config.getBoolean("glow.enabled") && Version.atLeast("1.9"); //Lobby - minPlayers = Math.max(2, manager.getInt("minPlayers")); - countdown = Math.max(10,manager.getInt("lobby.countdown")); - changeCountdown = Math.max(minPlayers,manager.getInt("lobby.changeCountdown")); - lobbyMin = Math.max(minPlayers,manager.getInt("lobby.min")); - lobbyMax = manager.getInt("lobby.max"); - lobbyCountdownEnabled = manager.getBoolean("lobby.enabled"); + minPlayers = Math.max(2, config.getInt("minPlayers")); + countdown = Math.max(10, config.getInt("lobby.countdown")); + changeCountdown = Math.max(minPlayers, config.getInt("lobby.changeCountdown")); + lobbyMin = Math.max(minPlayers, config.getInt("lobby.min")); + lobbyMax = config.getInt("lobby.max"); + lobbyCountdownEnabled = config.getBoolean("lobby.enabled"); + + //SeekerPing + seekerPing = config.getBoolean("seekerPing.enabled"); + seekerPingLevel1 = config.getInt("seekerPing.distances.level1"); + seekerPingLevel2 = config.getInt("seekerPing.distances.level2"); + seekerPingLevel3 = config.getInt("seekerPing.distances.level3"); //Other - nametagsVisible = manager.getBoolean("nametagsVisible"); - permissionsRequired = manager.getBoolean("permissionsRequired"); - gameLength = manager.getInt("gameLength"); - pvpEnabled = manager.getBoolean("pvp"); - autoJoin = manager.getBoolean("autoJoin"); - teleportToExit = manager.getBoolean("teleportToExit"); - local = manager.getString("local"); + nametagsVisible = config.getBoolean("nametagsVisible"); + permissionsRequired = config.getBoolean("permissionsRequired"); + gameLength = config.getInt("gameLength"); + pvpEnabled = config.getBoolean("pvp"); + autoJoin = config.getBoolean("autoJoin"); + teleportToExit = config.getBoolean("teleportToExit"); + locale = config.getString("locale", "local"); + blockedCommands = config.getStringList("blockedCommands"); + + //Leaderboard + LOBBY_TITLE = leaderboard.getString("lobby.title"); + GAME_TITLE = leaderboard.getString("game.title"); + LOBBY_CONTENTS = leaderboard.getStringList("lobby.content"); + Collections.reverse(LOBBY_CONTENTS); + GAME_CONTENTS = leaderboard.getStringList("game.content"); + Collections.reverse(GAME_CONTENTS); + COUNTDOWN_WAITING = leaderboard.getString("countdown.waiting"); + COUNTDOWN_COUNTING = leaderboard.getString("countdown.counting"); + COUNTDOWN_ADMINSTART = leaderboard.getString("countdown.adminStart"); + TAUNT_COUNTING = leaderboard.getString("taunt.counting"); + TAUNT_ACTIVE = leaderboard.getString("taunt.active"); + TAUNT_EXPIRED = leaderboard.getString("taunt.expired"); + GLOW_ACTIVE = leaderboard.getString("glow.active"); + GLOW_INACTIVE = leaderboard.getString("glow.inactive"); + BORDER_COUNTING = leaderboard.getString("border.counting"); + BORDER_DECREASING = leaderboard.getString("border.decreasing"); } public static void addToConfig(String path, Object value) { - manager.set(path, value); + config.set(path, value); } public static void saveConfig() { - manager.saveConfig(); + config.saveConfig(); } }
\ No newline at end of file diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java index 84ad5b4..66073cd 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java @@ -26,6 +26,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import java.io.*; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.util.List; import java.util.Map; public class ConfigManager { @@ -121,6 +122,10 @@ public class ConfigManager { } } + public int getDefaultInt(String path){ + return defaultConfig.getInt(path); + } + public String getString(String path){ String value = config.getString(path); if(value == null){ @@ -130,6 +135,29 @@ public class ConfigManager { } } + public String getString(String path, String oldPath){ + String value = config.getString(path); + if(value == null){ + String oldValue = config.getString(oldPath); + if(oldValue == null){ + return defaultConfig.getString(path); + } else { + return oldValue; + } + } else { + return value; + } + } + + public List<String> getStringList(String path){ + List<String> value = config.getStringList(path); + if(value == null){ + return defaultConfig.getStringList(path); + } else { + return value; + } + } + public void reset(String path){ config.set(path, defaultConfig.get(path)); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java index 569cae6..1c77ec2 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java @@ -19,14 +19,12 @@ package net.tylermurphy.hideAndSeek.configuration; -import org.bukkit.ChatColor; +import com.cryptomorin.xseries.XItemStack; +import net.tylermurphy.hideAndSeek.util.Version; import org.bukkit.Material; -import org.bukkit.NamespacedKey; import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.enchantments.Enchantment; +import org.bukkit.configuration.file.YamlConfiguration; 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; @@ -63,7 +61,6 @@ public class Items { if(item != null) HIDER_ITEMS.add(item); i++; } - SEEKER_EFFECTS = new ArrayList<>(); ConfigurationSection SeekerEffects = manager.getConfigurationSection("effects.seeker"); i = 1; @@ -89,55 +86,36 @@ public class Items { } 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); + ConfigurationSection config = new YamlConfiguration().createSection("temp"); + String material = item.getString("material").toUpperCase(); + boolean splash = false; + if(!Version.atLeast("1.9")){ + if(material.contains("POTION")){ + config.set("level", 1); + } + if(material.equalsIgnoreCase("SPLASH_POTION") || material.equalsIgnoreCase("LINGERING_POTION")){ + material = "POTION"; + splash = true; + } } + config.set("name", item.getString("name")); + config.set("material", material); + config.set("enchants", item.getConfigurationSection("enchantments")); + config.set("unbreakable", item.getBoolean("unbreakable")); + if(item.isSet("lore")) + config.set("lore", item.getStringList("lore")); + if (material.equalsIgnoreCase("POTION") || material.equalsIgnoreCase("SPLASH_POTION") || material.equalsIgnoreCase("LINGERING_POTION")) + config.set("base-effect", String.format("%s,%s,%s", item.getString("type"), false, splash)); + ItemStack stack = XItemStack.deserialize(config); + stack.setAmount(item.getInt("amount")); + if(stack.getData().getItemType() == Material.AIR) return null; 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; + if(PotionEffectType.getByName(type.toUpperCase()) == null) return null; return new PotionEffect( Objects.requireNonNull(PotionEffectType.getByName(type.toUpperCase())), item.getInt("duration"), diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java index d5ae01d..b93329f 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java @@ -29,18 +29,21 @@ public class Localization { public static final Map<String,LocalizationString> LOCAL = new HashMap<>(); - private static final String[][] CHANGES = {{"WORLDBORDER_DECREASING"}}; + private static final Map<String,String[][]> CHANGES = new HashMap<String,String[][]>() {{ + put("en-US", new String[][]{{"WORLDBORDER_DECREASING"},{"START","TAUNTED"}}); + put("de-DE", new String[][]{{}}); + }}; public static void loadLocalization() { - ConfigManager manager = new ConfigManager("localization.yml", "lang"+File.separator+"localization_"+Config.local+".yml"); + ConfigManager manager = new ConfigManager("localization.yml", "lang/localization_"+Config.locale +".yml"); - int PLUGIN_VERSION = 2; + int PLUGIN_VERSION = manager.getDefaultInt("version"); int VERSION = manager.getInt("version"); if(VERSION < PLUGIN_VERSION){ for(int i = VERSION; i < PLUGIN_VERSION; i++){ if(i < 1) continue; - String[] changeList = CHANGES[i-1]; + String[] changeList = CHANGES.get(Config.locale)[i-1]; for(String change : changeList) manager.reset("Localization." + change); } @@ -50,8 +53,8 @@ public class Localization { String SELECTED_LOCAL = manager.getString("type"); if(SELECTED_LOCAL == null){ manager.reset("type"); - } else if(!SELECTED_LOCAL.equals(Config.local)){ - manager.resetFile("lang"+File.separator+"localization_"+Config.local+".yml"); + } else if(!SELECTED_LOCAL.equals(Config.locale)){ + manager.resetFile("lang"+File.separator+"localization_"+Config.locale +".yml"); } manager.saveConfig(); |