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());
+ }
}