diff --git a/pom.xml b/pom.xml index ab02bd7..42b8936 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ li.cinnazeyy LangLibs - 1.1 + 1.3 jar LangLibs @@ -79,7 +79,7 @@ io.papermc.paper paper-api - 1.20.1-R0.1-SNAPSHOT + 1.20.2-R0.1-SNAPSHOT provided @@ -112,6 +112,7 @@ com.github.hamza-cskn.obliviate-invs core 4.1.13 + compile @@ -125,7 +126,7 @@ com.alpsbte.alpslib alpslib-utils - 1.0.13 + 1.1.0 compile diff --git a/src/main/java/li/cinnazeyy/langlibs/LangLibs.java b/src/main/java/li/cinnazeyy/langlibs/LangLibs.java index 980dcd7..e6caa45 100644 --- a/src/main/java/li/cinnazeyy/langlibs/LangLibs.java +++ b/src/main/java/li/cinnazeyy/langlibs/LangLibs.java @@ -3,6 +3,7 @@ import li.cinnazeyy.langlibs.commands.CMD_Language; import li.cinnazeyy.langlibs.core.DatabaseConnection; import li.cinnazeyy.langlibs.core.EventListener; +import li.cinnazeyy.langlibs.util.LangUtils; import mc.obliviate.inventory.InventoryAPI; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -16,7 +17,7 @@ import java.util.logging.Level; public final class LangLibs extends JavaPlugin { - private static final String VERSION = "1.1"; + private static final String VERSION = "1.3"; private static LangLibs plugin; private YamlConfiguration config; @Override @@ -26,6 +27,9 @@ public void onEnable() { // Create configs createConfig(); + // Register language heads + LangUtils.registerCustomHeads(); + // Initialize database connection try { DatabaseConnection.InitializeDatabase(); diff --git a/src/main/java/li/cinnazeyy/langlibs/core/EventListener.java b/src/main/java/li/cinnazeyy/langlibs/core/EventListener.java index e90aa42..1eb54a6 100644 --- a/src/main/java/li/cinnazeyy/langlibs/core/EventListener.java +++ b/src/main/java/li/cinnazeyy/langlibs/core/EventListener.java @@ -2,8 +2,6 @@ import li.cinnazeyy.langlibs.LangLibs; import li.cinnazeyy.langlibs.core.language.LangLibAPI; -import li.cinnazeyy.langlibs.util.HeadUtils; -import me.arcaniax.hdb.api.DatabaseLoadEvent; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -36,9 +34,4 @@ public void onJoin(PlayerJoinEvent event) { public void onDisconnect(PlayerQuitEvent event) { LangLibAPI.removePlayerLang(event.getPlayer()); } - - @EventHandler - public void onDatabaseLoad(DatabaseLoadEvent event) { - HeadUtils.loadHeadsAsync(); - } } diff --git a/src/main/java/li/cinnazeyy/langlibs/core/Language.java b/src/main/java/li/cinnazeyy/langlibs/core/Language.java index a3b1b11..b646c27 100644 --- a/src/main/java/li/cinnazeyy/langlibs/core/Language.java +++ b/src/main/java/li/cinnazeyy/langlibs/core/Language.java @@ -9,13 +9,31 @@ public enum Language { ru_RU("Русский", "Россия","4406", 2005), zh_CN("简体中文", "中国大陆","23238",2006), zh_TW("繁體中文", "台灣","11627", 2007); - public final String Region, Name, HeadId; - public final int ItemModel; + + private final String name, region, headId; + private final int itemModel; + Language(String name, String region, String headId, int itemModel) { - this.Name = name; - this.Region = region; - this.HeadId = headId; - this.ItemModel = itemModel; + this.name = name; + this.region = region; + this.headId = headId; + this.itemModel = itemModel; + } + + public String getRegion() { + return region; + } + + public String getName() { + return name; + } + + public String getHeadId() { + return headId; + } + + public int getItemModel() { + return itemModel; } } diff --git a/src/main/java/li/cinnazeyy/langlibs/core/language/LangLibAPI.java b/src/main/java/li/cinnazeyy/langlibs/core/language/LangLibAPI.java index e774904..2a28781 100644 --- a/src/main/java/li/cinnazeyy/langlibs/core/language/LangLibAPI.java +++ b/src/main/java/li/cinnazeyy/langlibs/core/language/LangLibAPI.java @@ -18,8 +18,8 @@ public class LangLibAPI { - private static HashMap pluginLangFiles = new HashMap<>(); - private static HashMap playerLocale = new HashMap<>(); + private static final HashMap pluginLangFiles = new HashMap<>(); + private static final HashMap playerLocale = new HashMap<>(); public static void register(Plugin plugin, LanguageFile[] langFiles) { pluginLangFiles.put(plugin,langFiles); @@ -88,6 +88,4 @@ public static LanguageFile[] getLanguageFiles(Plugin plugin) { if (languageFiles == null) throw new RuntimeException("LanguageAPI has not been registered yet!"); return languageFiles; } - - } diff --git a/src/main/java/li/cinnazeyy/langlibs/core/menu/LanguageSelectMenu.java b/src/main/java/li/cinnazeyy/langlibs/core/menu/LanguageSelectMenu.java index 54f1294..22099d4 100644 --- a/src/main/java/li/cinnazeyy/langlibs/core/menu/LanguageSelectMenu.java +++ b/src/main/java/li/cinnazeyy/langlibs/core/menu/LanguageSelectMenu.java @@ -1,21 +1,19 @@ package li.cinnazeyy.langlibs.core.menu; +import com.alpsbte.alpslib.utils.head.AlpsHeadUtils; import com.alpsbte.alpslib.utils.item.ItemBuilder; import li.cinnazeyy.langlibs.LangLibs; import li.cinnazeyy.langlibs.core.Language; import li.cinnazeyy.langlibs.core.event.LanguageChangeEvent; import li.cinnazeyy.langlibs.core.language.LangLibAPI; -import li.cinnazeyy.langlibs.util.HeadUtils; import mc.obliviate.inventory.Gui; import mc.obliviate.inventory.Icon; -import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryOpenEvent; -import java.awt.*; import java.util.Objects; public class LanguageSelectMenu extends Gui { @@ -36,9 +34,9 @@ public void onOpen(InventoryOpenEvent event) { private Icon getLanguageIcon(Language lang) { boolean useHeads = LangLibs.getPlugin().getConfig().getBoolean("languageSelection.useHeads"); Icon icon = useHeads ? - new Icon(new ItemBuilder(HeadUtils.LANGUAGE_HEADS.get(lang).getAsItemStack()).build()) - : new Icon(new ItemBuilder(Material.PAPER).setItemModel(lang.ItemModel).build()); - icon.setName("§6§l" + lang.Name + " §r§8(§7" + lang.Region + "§8)"); //TODO: Use Components instead + new Icon(new ItemBuilder(AlpsHeadUtils.getCustomHead(lang.getHeadId())).build()) + : new Icon(new ItemBuilder(Material.PAPER).setItemModel(lang.getItemModel()).build()); + icon.setName("§6§l" + lang.getName() + " §r§8(§7" + lang.getRegion() + "§8)"); //TODO: Use Components instead icon.onClick((event) -> clickLanguageIcon(event, lang)); return icon; } diff --git a/src/main/java/li/cinnazeyy/langlibs/util/HeadUtils.java b/src/main/java/li/cinnazeyy/langlibs/util/HeadUtils.java deleted file mode 100644 index eb20b6e..0000000 --- a/src/main/java/li/cinnazeyy/langlibs/util/HeadUtils.java +++ /dev/null @@ -1,19 +0,0 @@ -package li.cinnazeyy.langlibs.util; - -import com.alpsbte.alpslib.utils.heads.CustomHead; -import li.cinnazeyy.langlibs.LangLibs; -import li.cinnazeyy.langlibs.core.Language; -import org.bukkit.Bukkit; - -import java.util.HashMap; - -public class HeadUtils { - public static HashMap LANGUAGE_HEADS; - public static void loadHeadsAsync() { - Bukkit.getScheduler().runTaskAsynchronously(LangLibs.getPlugin(),() -> { - for (Language lang:Language.values()) { - LANGUAGE_HEADS.put(lang,new CustomHead(lang.HeadId)); - } - }); - } -} \ No newline at end of file diff --git a/src/main/java/li/cinnazeyy/langlibs/util/Utils.java b/src/main/java/li/cinnazeyy/langlibs/util/LangUtils.java similarity index 53% rename from src/main/java/li/cinnazeyy/langlibs/util/Utils.java rename to src/main/java/li/cinnazeyy/langlibs/util/LangUtils.java index ccfccb8..47aa0be 100644 --- a/src/main/java/li/cinnazeyy/langlibs/util/Utils.java +++ b/src/main/java/li/cinnazeyy/langlibs/util/LangUtils.java @@ -1,6 +1,9 @@ package li.cinnazeyy.langlibs.util; -public class Utils { +import com.alpsbte.alpslib.utils.head.AlpsHeadUtils; +import li.cinnazeyy.langlibs.core.Language; + +public class LangUtils { private static final String messagePrefix = ""; public static String getInfoMessageFormat(String info) { @@ -10,4 +13,8 @@ public static String getInfoMessageFormat(String info) { public static String getErrorMessageFormat(String error) { return messagePrefix + "§c" + error; } + + public static void registerCustomHeads() { + for (Language lang : Language.values()) AlpsHeadUtils.registerCustomHead(lang.getHeadId()); + } }