diff --git a/src/main/java/xyz/atnrch/nicko/gui/items/home/ExitItem.java b/src/main/java/xyz/atnrch/nicko/gui/items/home/ExitItem.java index f4ca6f4..ea6ff09 100644 --- a/src/main/java/xyz/atnrch/nicko/gui/items/home/ExitItem.java +++ b/src/main/java/xyz/atnrch/nicko/gui/items/home/ExitItem.java @@ -1,6 +1,5 @@ package xyz.atnrch.nicko.gui.items.home; -import com.comphenix.protocol.utility.MinecraftVersion; import org.bukkit.Material; import org.bukkit.event.inventory.ClickType; import xyz.xenondevs.invui.item.builder.ItemBuilder; @@ -9,13 +8,14 @@ import xyz.xenondevs.invui.item.impl.SimpleItem; public class ExitItem extends SimpleItem { public ExitItem() { super(new ItemBuilder(Material.OAK_DOOR).setDisplayName("Exit"), click -> { - if(MinecraftVersion.BEE_UPDATE.atOrAbove()) { - - } final ClickType clickType = click.getClickType(); if (clickType.isLeftClick() || clickType.isRightClick()) { click.getEvent().getView().close(); } }); } + + public ItemBuilder getItemBuilder() { + return null; + } } diff --git a/src/main/java/xyz/atnrch/nicko/i18n/I18N.java b/src/main/java/xyz/atnrch/nicko/i18n/I18N.java index 466af0a..891f3e9 100644 --- a/src/main/java/xyz/atnrch/nicko/i18n/I18N.java +++ b/src/main/java/xyz/atnrch/nicko/i18n/I18N.java @@ -13,6 +13,7 @@ import java.util.List; public class I18N { private final MessageFormat formatter = new MessageFormat(""); + private final YamlConfig yamlConfig; private final NickoBukkit instance = NickoBukkit.getInstance(); private final Player player; private final Locale playerLocale; @@ -20,11 +21,13 @@ public class I18N { public I18N(Player player) { this.player = player; this.playerLocale = getPlayerLocale(); + this.yamlConfig = getYamlConfig(); } public I18N(Locale locale) { this.player = null; this.playerLocale = locale; + this.yamlConfig = getYamlConfig(); } public List translateItem(String key, Object... arguments) { @@ -64,35 +67,20 @@ public class I18N { } private String readString(String key) { - YamlConfig yamlFile; - if (playerLocale == Locale.CUSTOM) { - yamlFile = instance.getLocaleFileManager().getYamlFile(); - } else { - final InputStream resource = instance.getResource(playerLocale.getCode() + ".yml"); - yamlFile = YamlConfig.load(resource); - } - return yamlFile.getString(key); + return yamlConfig.getString(key); } private ArrayList readList(String key) { - final ArrayList lines = new ArrayList<>(); - YamlConfig yamlFile; + return yamlConfig.getStringList(key); + } + + private YamlConfig getYamlConfig() { if (playerLocale == Locale.CUSTOM) { - yamlFile = instance.getLocaleFileManager().getYamlFile(); + return instance.getLocaleFileManager().getYamlFile(); } else { final InputStream resource = instance.getResource(playerLocale.getCode() + ".yml"); - yamlFile = YamlConfig.load(resource); + return new YamlConfig(resource); } - - // 9 is a magic number - for (int i = 0; i < yamlFile.getInt(key + ".length"); i++) { - final String line = yamlFile.getString(key + ".content[" + i + "]"); - System.out.println("line = " + line); - if (line != null && !line.equals("{" + i + "}")) { - lines.add(line); - } - } - return lines; } private Locale getPlayerLocale() { diff --git a/src/main/java/xyz/atnrch/nicko/i18n/ItemTranslator.java b/src/main/java/xyz/atnrch/nicko/i18n/ItemTranslator.java new file mode 100644 index 0000000..f5242d5 --- /dev/null +++ b/src/main/java/xyz/atnrch/nicko/i18n/ItemTranslator.java @@ -0,0 +1,38 @@ +package xyz.atnrch.nicko.i18n; + +import java.util.ArrayList; +import java.util.Iterator; + +public class ItemTranslator { + private final String name; + private final ArrayList lore; + + public ItemTranslator(String name, ArrayList lore) { + this.name = name; + this.lore = lore; + } + + public Object[] translate(String... args) { + // Add all elements to a list + final ArrayList toTranslate = new ArrayList<>(); + toTranslate.add(name); + toTranslate.addAll(lore); + + // Set starting index to 0 + int index = 0; + + // While iterator next value exists/isn't null + final Iterator iterator = toTranslate.iterator(); + while (!iterator.hasNext() || iterator.next() == null) { + // Get the current line + final String currentLine = toTranslate.get(index); + + // Replace with the corresponding varargs index + toTranslate.set(index, currentLine.replace("{" + index + "}", args[index])); + + // Increment the index + index++; + } + return new Object[]{toTranslate.get(0), toTranslate.subList(1, toTranslate.size())}; + } +} diff --git a/src/main/resources/en.yml b/src/main/resources/en.yml index 7087dd6..f5471d9 100644 --- a/src/main/resources/en.yml +++ b/src/main/resources/en.yml @@ -25,4 +25,33 @@ event: admin: cache: invalidate_cache: "§fComplete cache invalidated." - invalidate_entry: "§6{0} §fhas been invalidated." \ No newline at end of file + invalidate_entry: "§6{0} §fhas been invalidated." + +gui: + exit: "Exit" + home: + admin: + name: "Administration panel" + lore: + - "Configure and manage Nicko." + settings: + name: "Settings" + lore: + - "Configure your experience." + change_name: + name: "§6Nickname §fchange" + change_skin: + name: "§6Skin §fchange" + change_both: + name: "Change §6both" + reset: + name: "Reset appearance" + lore: + - "Completely remove your disguise." + settings: + language: + name: "Language" + lore: + - "{0}" + - "§7§oGet through the values" + - "§7§oby left or right clicking." \ No newline at end of file