From 2424a2ceab7c6f4611fa0a4a3a028d9caf3b27e7 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 24 Jun 2020 20:50:53 +0200 Subject: [PATCH] [CI skip] Refactoring --- .../core/services/LocalizationService.java | 27 ++++++------ .../core/services/localization/Language.java | 42 ++++++++++++++----- .../localization/SlimefunLocalization.java | 22 +++++----- 3 files changed, 57 insertions(+), 34 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java index 4d3ede7dd..38ed49a49 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java @@ -54,7 +54,7 @@ public class LocalizationService extends SlimefunLocalization implements Persist translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations"); defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b"); - defaultLanguage.setMessages(getConfig().getConfiguration()); + defaultLanguage.setMessagesFile(getConfig().getConfiguration()); loadEmbeddedLanguages(); @@ -147,10 +147,10 @@ public class LocalizationService extends SlimefunLocalization implements Persist getConfig().clear(); } - defaultLanguage.setResearches(streamConfigFile("researches_" + language + ".yml", null)); - defaultLanguage.setResources(streamConfigFile("resources_" + language + ".yml", null)); - defaultLanguage.setCategories(streamConfigFile("categories_" + language + ".yml", null)); - defaultLanguage.setRecipeTypes(streamConfigFile("recipes_" + language + ".yml", null)); + defaultLanguage.setResearchesFile(streamConfigFile("researches_" + language + ".yml", null)); + defaultLanguage.setResourcesFile(streamConfigFile("resources_" + language + ".yml", null)); + defaultLanguage.setCategoriesFile(streamConfigFile("categories_" + language + ".yml", null)); + defaultLanguage.setRecipeTypesFile(streamConfigFile("recipes_" + language + ".yml", null)); Slimefun.getLogger().log(Level.INFO, "Loaded language \"{0}\"", language); getConfig().setValue(LANGUAGE_PATH, language); @@ -179,11 +179,11 @@ public class LocalizationService extends SlimefunLocalization implements Persist FileConfiguration recipes = streamConfigFile("recipes_" + id + ".yml", null); Language language = new Language(id, hash); - language.setMessages(messages); - language.setResearches(researches); - language.setResources(resources); - language.setCategories(categories); - language.setRecipeTypes(recipes); + language.setMessagesFile(messages); + language.setResearchesFile(researches); + language.setResourcesFile(resources); + language.setCategoriesFile(categories); + language.setRecipeTypesFile(recipes); languages.put(id, language); } @@ -201,13 +201,16 @@ public class LocalizationService extends SlimefunLocalization implements Persist */ public double getProgress(Language lang) { int defaultKeys = getTotalKeys(languages.get("en")); - if (defaultKeys == 0) return 0; + + if (defaultKeys == 0) { + return 0; + } return Math.min(DoubleHandler.fixDouble(100.0 * (getTotalKeys(lang) / (double) defaultKeys)), 100.0); } private int getTotalKeys(Language lang) { - return getKeys(lang.getMessages(), lang.getResearches(), lang.getResources(), lang.getCategories(), lang.getRecipeTypes()); + return getKeys(lang.getFiles()); } private int getKeys(FileConfiguration... files) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java index bf7c5b1d7..097937170 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java @@ -60,43 +60,53 @@ public final class Language { return id; } - public FileConfiguration getMessages() { + FileConfiguration getMessagesFile() { return messages; } - public FileConfiguration getResearches() { + FileConfiguration getResearchesFile() { return researches; } - public FileConfiguration getResources() { + FileConfiguration getResourcesFile() { return resources; } - public FileConfiguration getCategories() { + FileConfiguration getCategoriesFile() { return categories; } - public FileConfiguration getRecipeTypes() { + FileConfiguration getRecipeTypesFile() { return recipeTypes; } - public void setMessages(FileConfiguration config) { + public void setMessagesFile(FileConfiguration config) { + Validate.notNull(config); + this.messages = config; } - public void setResearches(FileConfiguration config) { + public void setResearchesFile(FileConfiguration config) { + Validate.notNull(config); + this.researches = config; } - public void setResources(FileConfiguration config) { + public void setResourcesFile(FileConfiguration config) { + Validate.notNull(config); + this.resources = config; } - public void setCategories(FileConfiguration config) { + public void setCategoriesFile(FileConfiguration config) { + Validate.notNull(config); + this.categories = config; } - public void setRecipeTypes(FileConfiguration config) { + public void setRecipeTypesFile(FileConfiguration config) { + Validate.notNull(config); + this.recipeTypes = config; } @@ -119,7 +129,8 @@ public final class Language { * @return The localized name of this {@link Language} */ public String getName(Player p) { - return SlimefunPlugin.getLocal().getMessage(p, "languages." + id); + String name = SlimefunPlugin.getLocal().getMessage(p, "languages." + id); + return name != null ? name : toString(); } /** @@ -132,4 +143,13 @@ public final class Language { return this == SlimefunPlugin.getLocal().getDefaultLanguage(); } + @Override + public String toString() { + return "Language [ id= " + id + " | default=" + isDefault() + " ]"; + } + + public FileConfiguration[] getFiles() { + return new FileConfiguration[] { getMessagesFile(), getCategoriesFile(), getResearchesFile(), getResourcesFile() }; + } + } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java index 0a491bcf4..c7c9012cd 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java @@ -88,37 +88,37 @@ public abstract class SlimefunLocalization extends Localization implements Keyed public String getMessage(Player p, String key) { Language language = getLanguage(p); if (language == null) return "NO LANGUAGE FOUND"; - return language.getMessages().getString(key); + return language.getMessagesFile().getString(key); } public List getMessages(Player p, String key) { Language language = getLanguage(p); if (language == null) return Arrays.asList("NO LANGUAGE FOUND"); - return language.getMessages().getStringList(key); + return language.getMessagesFile().getStringList(key); } public String getResearchName(Player p, NamespacedKey key) { Language language = getLanguage(p); - if (language.getResearches() == null) return null; - return language.getResearches().getString(key.getNamespace() + "." + key.getKey()); + if (language.getResearchesFile() == null) return null; + return language.getResearchesFile().getString(key.getNamespace() + "." + key.getKey()); } public String getCategoryName(Player p, NamespacedKey key) { Language language = getLanguage(p); - if (language.getCategories() == null) return null; - return language.getCategories().getString(key.getNamespace() + "." + key.getKey()); + if (language.getCategoriesFile() == null) return null; + return language.getCategoriesFile().getString(key.getNamespace() + "." + key.getKey()); } public String getResourceString(Player p, String key) { Language language = getLanguage(p); - String value = language.getResources() != null ? language.getResources().getString(key) : null; + String value = language.getResourcesFile() != null ? language.getResourcesFile().getString(key) : null; if (value != null) { return value; } else { - return getLanguage("en").getResources().getString(key); + return getLanguage("en").getResourcesFile().getString(key); } } @@ -127,15 +127,15 @@ public abstract class SlimefunLocalization extends Localization implements Keyed ItemStack item = recipeType.toItem(); NamespacedKey key = recipeType.getKey(); - if (language.getRecipeTypes() == null || !language.getRecipeTypes().contains(key.getNamespace() + "." + key.getKey())) { + if (language.getRecipeTypesFile() == null || !language.getRecipeTypesFile().contains(key.getNamespace() + "." + key.getKey())) { language = getLanguage("en"); } - if (!language.getRecipeTypes().contains(key.getNamespace() + "." + key.getKey())) { + if (!language.getRecipeTypesFile().contains(key.getNamespace() + "." + key.getKey())) { return item; } - FileConfiguration config = language.getRecipeTypes(); + FileConfiguration config = language.getRecipeTypesFile(); return new CustomItem(item, meta -> { meta.setDisplayName(ChatColor.AQUA + config.getString(key.getNamespace() + "." + key.getKey() + ".name"));