diff options
Diffstat (limited to '')
3 files changed, 38 insertions, 2 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java index be86660..ee9d88d 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java @@ -16,7 +16,8 @@ public class Config { warningPrefix, spawnWorld, exitWorld, - lobbyWorld; + lobbyWorld, + local; public static Vector spawnPosition, @@ -128,6 +129,7 @@ public class Config { pvpEnabled = manager.getBoolean("pvp"); autoJoin = manager.getBoolean("autoJoin"); teleportToExit = manager.getBoolean("teleportToExit"); + local = manager.getString("local"); } 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 0129680..d16f3d8 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java @@ -32,6 +32,28 @@ public class ConfigManager { } catch (IOException e){} } + public ConfigManager(String filename, String defaultFilename){ + this.file = new File(Main.plugin.getDataFolder(), filename); + + if(!file.exists()){ + saveDefaultConfiguration(); + } + + this.config = YamlConfiguration.loadConfiguration(file); + + InputStream input = Main.plugin.getResource(defaultFilename); + InputStreamReader reader = new InputStreamReader(input); + this.defaultConfig = YamlConfiguration.loadConfiguration(reader); + try{ + input.close(); + reader.close(); + } catch (IOException e){ + Main.plugin.getLogger().severe("Couldn't find "+defaultFilename+" internally. Did you set an incorrect local?"); + Main.plugin.getServer().getPluginManager().disablePlugin(Main.plugin); + throw new RuntimeException(); + } + } + private void saveDefaultConfiguration(){ try{ InputStream input = Main.plugin.getResource(file.getName()); @@ -77,6 +99,11 @@ public class ConfigManager { config.set(path, defaultConfig.get(path)); } + public void resetConfig(){ + config = defaultConfig; + saveConfig(); + } + public boolean getBoolean(String path){ boolean value = config.getBoolean(path); if(value == false){ diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java index 1ae8ca2..c404aa3 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java @@ -1,5 +1,6 @@ package net.tylermurphy.hideAndSeek.configuration; +import java.io.File; import java.util.HashMap; import java.util.Map; @@ -13,7 +14,7 @@ public class Localization { public static void loadLocalization() { - ConfigManager manager = new ConfigManager("localization.yml"); + ConfigManager manager = new ConfigManager("localization.yml", "lang"+File.separator+"localization_"+Config.local+".yml"); int PLUGIN_VERSION = 2; int VERSION = manager.getInt("version"); @@ -27,6 +28,12 @@ public class Localization { manager.reset("version"); } + String SELECTED_LOCAL = manager.getString("local"); + if(!SELECTED_LOCAL.equals(Config.local)){ + manager.resetConfig(); + } + + manager.saveConfig(); for(String key : manager.getConfigurationSection("Localization").getKeys(false)) { |