diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java index b93329f..9418414 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java @@ -19,30 +19,31 @@ package net.tylermurphy.hideAndSeek.configuration; +import net.md_5.bungee.api.ChatColor; + import java.io.File; import java.util.HashMap; import java.util.Map; -import net.md_5.bungee.api.ChatColor; - public class Localization { public static final Map<String,LocalizationString> LOCAL = new HashMap<>(); + public static final Map<String,LocalizationString> DEFAULT_LOCAL = new HashMap<>(); 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[][]{{}}); + put("de-DE", new String[][]{{},{"TAUNTED"}}); }}; public static void loadLocalization() { - ConfigManager manager = new ConfigManager("localization.yml", "lang/localization_"+Config.locale +".yml"); + ConfigManager manager = ConfigManager.create("localization.yml", "lang/localization_"+Config.locale +".yml"); 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; + if (VERSION < PLUGIN_VERSION) { + for(int i = VERSION; i < PLUGIN_VERSION; i++) { + if (i < 1) continue; String[] changeList = CHANGES.get(Config.locale)[i-1]; for(String change : changeList) manager.reset("Localization." + change); @@ -51,9 +52,9 @@ public class Localization { } String SELECTED_LOCAL = manager.getString("type"); - if(SELECTED_LOCAL == null){ + if (SELECTED_LOCAL == null) { manager.reset("type"); - } else if(!SELECTED_LOCAL.equals(Config.locale)){ + } else if (!SELECTED_LOCAL.equals(Config.locale)) { manager.resetFile("lang"+File.separator+"localization_"+Config.locale +".yml"); } @@ -61,17 +62,28 @@ public class Localization { for(String key : manager.getConfigurationSection("Localization").getKeys(false)) { LOCAL.put( - key, + key, new LocalizationString( ChatColor.translateAlternateColorCodes('&', manager.getString("Localization."+key) ) ) - ); + ); + } + + for(String key : manager.getDefaultConfigurationSection("Localization").getKeys(false)) { + DEFAULT_LOCAL.put( + key, + new LocalizationString( ChatColor.translateAlternateColorCodes('&', manager.getString("Localization."+key) ) ) + ); } } public static LocalizationString message(String key) { - LocalizationString temp = LOCAL.get(key); - if(temp == null) { - return new LocalizationString(ChatColor.RED + "" + ChatColor.ITALIC + key + " is not found in localization.yml. This is a plugin issue, please report it."); + LocalizationString message = LOCAL.get(key); + if (message == null) { + LocalizationString defaultMessage = DEFAULT_LOCAL.get(key); + if(defaultMessage == null) { + return new LocalizationString(ChatColor.RED + "" + ChatColor.ITALIC + key + " is not found in localization.yml. This is a plugin issue, please report it."); + } + return new LocalizationString(defaultMessage.toString()); } - return new LocalizationString(temp.toString()); + return new LocalizationString(message.toString()); } } |