1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 11:45:51 +00:00

[CI skip] Refactoring

This commit is contained in:
TheBusyBiscuit 2020-06-24 20:50:53 +02:00
parent 58ccc4b87a
commit 2424a2ceab
3 changed files with 57 additions and 34 deletions

View File

@ -54,7 +54,7 @@ public class LocalizationService extends SlimefunLocalization implements Persist
translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations"); translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations");
defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b"); defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b");
defaultLanguage.setMessages(getConfig().getConfiguration()); defaultLanguage.setMessagesFile(getConfig().getConfiguration());
loadEmbeddedLanguages(); loadEmbeddedLanguages();
@ -147,10 +147,10 @@ public class LocalizationService extends SlimefunLocalization implements Persist
getConfig().clear(); getConfig().clear();
} }
defaultLanguage.setResearches(streamConfigFile("researches_" + language + ".yml", null)); defaultLanguage.setResearchesFile(streamConfigFile("researches_" + language + ".yml", null));
defaultLanguage.setResources(streamConfigFile("resources_" + language + ".yml", null)); defaultLanguage.setResourcesFile(streamConfigFile("resources_" + language + ".yml", null));
defaultLanguage.setCategories(streamConfigFile("categories_" + language + ".yml", null)); defaultLanguage.setCategoriesFile(streamConfigFile("categories_" + language + ".yml", null));
defaultLanguage.setRecipeTypes(streamConfigFile("recipes_" + language + ".yml", null)); defaultLanguage.setRecipeTypesFile(streamConfigFile("recipes_" + language + ".yml", null));
Slimefun.getLogger().log(Level.INFO, "Loaded language \"{0}\"", language); Slimefun.getLogger().log(Level.INFO, "Loaded language \"{0}\"", language);
getConfig().setValue(LANGUAGE_PATH, language); getConfig().setValue(LANGUAGE_PATH, language);
@ -179,11 +179,11 @@ public class LocalizationService extends SlimefunLocalization implements Persist
FileConfiguration recipes = streamConfigFile("recipes_" + id + ".yml", null); FileConfiguration recipes = streamConfigFile("recipes_" + id + ".yml", null);
Language language = new Language(id, hash); Language language = new Language(id, hash);
language.setMessages(messages); language.setMessagesFile(messages);
language.setResearches(researches); language.setResearchesFile(researches);
language.setResources(resources); language.setResourcesFile(resources);
language.setCategories(categories); language.setCategoriesFile(categories);
language.setRecipeTypes(recipes); language.setRecipeTypesFile(recipes);
languages.put(id, language); languages.put(id, language);
} }
@ -201,13 +201,16 @@ public class LocalizationService extends SlimefunLocalization implements Persist
*/ */
public double getProgress(Language lang) { public double getProgress(Language lang) {
int defaultKeys = getTotalKeys(languages.get("en")); 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); return Math.min(DoubleHandler.fixDouble(100.0 * (getTotalKeys(lang) / (double) defaultKeys)), 100.0);
} }
private int getTotalKeys(Language lang) { 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) { private int getKeys(FileConfiguration... files) {

View File

@ -60,43 +60,53 @@ public final class Language {
return id; return id;
} }
public FileConfiguration getMessages() { FileConfiguration getMessagesFile() {
return messages; return messages;
} }
public FileConfiguration getResearches() { FileConfiguration getResearchesFile() {
return researches; return researches;
} }
public FileConfiguration getResources() { FileConfiguration getResourcesFile() {
return resources; return resources;
} }
public FileConfiguration getCategories() { FileConfiguration getCategoriesFile() {
return categories; return categories;
} }
public FileConfiguration getRecipeTypes() { FileConfiguration getRecipeTypesFile() {
return recipeTypes; return recipeTypes;
} }
public void setMessages(FileConfiguration config) { public void setMessagesFile(FileConfiguration config) {
Validate.notNull(config);
this.messages = config; this.messages = config;
} }
public void setResearches(FileConfiguration config) { public void setResearchesFile(FileConfiguration config) {
Validate.notNull(config);
this.researches = config; this.researches = config;
} }
public void setResources(FileConfiguration config) { public void setResourcesFile(FileConfiguration config) {
Validate.notNull(config);
this.resources = config; this.resources = config;
} }
public void setCategories(FileConfiguration config) { public void setCategoriesFile(FileConfiguration config) {
Validate.notNull(config);
this.categories = config; this.categories = config;
} }
public void setRecipeTypes(FileConfiguration config) { public void setRecipeTypesFile(FileConfiguration config) {
Validate.notNull(config);
this.recipeTypes = config; this.recipeTypes = config;
} }
@ -119,7 +129,8 @@ public final class Language {
* @return The localized name of this {@link Language} * @return The localized name of this {@link Language}
*/ */
public String getName(Player p) { 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(); 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() };
}
} }

View File

@ -88,37 +88,37 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
public String getMessage(Player p, String key) { public String getMessage(Player p, String key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language == null) return "NO LANGUAGE FOUND"; if (language == null) return "NO LANGUAGE FOUND";
return language.getMessages().getString(key); return language.getMessagesFile().getString(key);
} }
public List<String> getMessages(Player p, String key) { public List<String> getMessages(Player p, String key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language == null) return Arrays.asList("NO LANGUAGE FOUND"); 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) { public String getResearchName(Player p, NamespacedKey key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language.getResearches() == null) return null; if (language.getResearchesFile() == null) return null;
return language.getResearches().getString(key.getNamespace() + "." + key.getKey()); return language.getResearchesFile().getString(key.getNamespace() + "." + key.getKey());
} }
public String getCategoryName(Player p, NamespacedKey key) { public String getCategoryName(Player p, NamespacedKey key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language.getCategories() == null) return null; if (language.getCategoriesFile() == null) return null;
return language.getCategories().getString(key.getNamespace() + "." + key.getKey()); return language.getCategoriesFile().getString(key.getNamespace() + "." + key.getKey());
} }
public String getResourceString(Player p, String key) { public String getResourceString(Player p, String key) {
Language language = getLanguage(p); 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) { if (value != null) {
return value; return value;
} }
else { 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(); ItemStack item = recipeType.toItem();
NamespacedKey key = recipeType.getKey(); 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"); language = getLanguage("en");
} }
if (!language.getRecipeTypes().contains(key.getNamespace() + "." + key.getKey())) { if (!language.getRecipeTypesFile().contains(key.getNamespace() + "." + key.getKey())) {
return item; return item;
} }
FileConfiguration config = language.getRecipeTypes(); FileConfiguration config = language.getRecipeTypesFile();
return new CustomItem(item, meta -> { return new CustomItem(item, meta -> {
meta.setDisplayName(ChatColor.AQUA + config.getString(key.getNamespace() + "." + key.getKey() + ".name")); meta.setDisplayName(ChatColor.AQUA + config.getString(key.getNamespace() + "." + key.getKey() + ".name"));