From 67aba9081bb73aeaa822b059e8ca6defc8352a2f Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sat, 6 Sep 2025 23:11:25 -0400 Subject: rename pacakges dev.tylerm -> cat.freya --- .../cat/freya/khs/configuration/Localization.java | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/main/java/cat/freya/khs/configuration/Localization.java (limited to 'src/main/java/cat/freya/khs/configuration/Localization.java') diff --git a/src/main/java/cat/freya/khs/configuration/Localization.java b/src/main/java/cat/freya/khs/configuration/Localization.java new file mode 100644 index 0000000..8b18696 --- /dev/null +++ b/src/main/java/cat/freya/khs/configuration/Localization.java @@ -0,0 +1,80 @@ +package cat.freya.khs.configuration; + +import net.md_5.bungee.api.ChatColor; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +public class Localization { + + public static final Map LOCAL = new HashMap<>(); + public static final Map DEFAULT_LOCAL = new HashMap<>(); + + private static final Map CHANGES = new HashMap() {{ + put("en-US", new String[][]{ + {"WORLDBORDER_DECREASING"}, + {"START","TAUNTED"}, + {"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}, + {"GAME_PLAYER_FOUND", "GAME_PLAYER_FOUND_BY"} + }); + put("de-DE", new String[][]{ + {}, + {"TAUNTED"}, + {"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}, + {"GAME_PLAYER_FOUND", "GAME_PLAYER_FOUND_BY"} + }); + }}; + + public static void loadLocalization() { + + 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; + String[] changeList = CHANGES.get(Config.locale)[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.locale)) { + manager.resetFile("lang"+File.separator+"localization_"+Config.locale +".yml"); + } + + manager.saveConfig(); + + for(String key : manager.getConfigurationSection("Localization").getKeys(false)) { + LOCAL.put( + 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 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(message.toString()); + } +} -- cgit v1.2.3-freya