summaryrefslogtreewikicommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java4
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java27
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java9
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)) {