summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java
blob: 61dc5a4d7222ca6d9173fb31b0344d7e9bfaacd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package net.tylermurphy.hideAndSeek.configuration;

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<>();

	private static String[][] CHANGES = {{"WORLDBORDER_DECREASING"}};

	public static void loadLocalization() {

		ConfigManager manager = new ConfigManager("localization.yml", "lang"+File.separator+"localization_"+Config.local+".yml");

		int PLUGIN_VERSION = 2;
		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];
				for(String change : changeList)
					manager.reset("Localization." + change);
			}
			manager.reset("version");
		}

		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");
		}

		manager.saveConfig();

		for(String key : manager.getConfigurationSection("Localization").getKeys(false)) {
			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.");
		}
		return new LocalizationString(temp.toString());
	}
}