summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/configuration
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-04-13 14:02:00 -0400
committerGitHub <noreply@github.com>2022-04-13 14:02:00 -0400
commit44040cc87b23726d19834de76f1cdae6f6458448 (patch)
treeccbbc26fb4622775394a3388a8836d9c28f9ff9b /src/main/java/net/tylermurphy/hideAndSeek/configuration
parentMerge pull request #20 from tylermurphy534/1.3.3 (diff)
parent1.4.0 rc3 (diff)
downloadkenshinshideandseek-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')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java170
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java28
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java74
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java15
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();