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 4136a97..e774904 100644 --- a/src/main/java/li/cinnazeyy/langlibs/core/language/LangLibAPI.java +++ b/src/main/java/li/cinnazeyy/langlibs/core/language/LangLibAPI.java @@ -26,18 +26,18 @@ public static void register(Plugin plugin, LanguageFile[] langFiles) { Bukkit.getConsoleSender().sendMessage(Component.text("Registered plugin " + plugin.getName() + " to the language system")); } - public static String getPlayerLang(Player player) { - String lang = playerLocale.get(player.getUniqueId()); + public static String getPlayerLang(UUID playerUUID) { + String lang = playerLocale.get(playerUUID); if (lang != null) return lang; else { - try (ResultSet rsUser = DatabaseConnection.createStatement("SELECT uuid, lang FROM langUsers WHERE uuid = ?").setValue(player.getUniqueId().toString()).executeQuery()) { + try (ResultSet rsUser = DatabaseConnection.createStatement("SELECT uuid, lang FROM langUsers WHERE uuid = ?").setValue(playerUUID.toString()).executeQuery()) { if (rsUser.next()) playerLocale.put(UUID.fromString(rsUser.getString(1)),rsUser.getString(2)); DatabaseConnection.closeResultSet(rsUser); } catch (SQLException e) { Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", e); } } - return playerLocale.get(player.getUniqueId()); + return playerLocale.get(playerUUID); } public static void setPlayerLang(Player player, String lang) { diff --git a/src/main/java/li/cinnazeyy/langlibs/core/language/LanguageUtil.java b/src/main/java/li/cinnazeyy/langlibs/core/language/LanguageUtil.java index 5d38145..da335cb 100644 --- a/src/main/java/li/cinnazeyy/langlibs/core/language/LanguageUtil.java +++ b/src/main/java/li/cinnazeyy/langlibs/core/language/LanguageUtil.java @@ -9,10 +9,10 @@ import java.util.Arrays; import java.util.List; +import java.util.UUID; public class LanguageUtil extends YamlFileFactory { private static final String CONFIG_VERSION_PATH = "config-version"; - private final static String LANG_HEAD_ID_PATH = "lang.head-id"; public LanguageFile[] languageFiles; public LanguageUtil(Plugin plugin) { @@ -28,23 +28,43 @@ public LanguageUtil(Plugin plugin) { } public String get(CommandSender sender, String key) { - return (sender instanceof Player ? getLanguageFileByPlayer((Player) sender) : languageFiles[0]).getTranslation(key); + return (sender instanceof Player ? getLanguageFileByPlayer(((Player) sender).getUniqueId()) : + languageFiles[0]).getTranslation(key); + } + + public String get(UUID playerUUID, String key) { + return getLanguageFileByPlayer(playerUUID).getTranslation(key); } public String get(CommandSender sender, String key, String... args) { - return (sender instanceof Player ? getLanguageFileByPlayer((Player) sender) : languageFiles[0]).getTranslation(key, args); + return (sender instanceof Player ? getLanguageFileByPlayer(((Player) sender).getUniqueId()) : + languageFiles[0]).getTranslation(key, args); + } + + public String get(UUID playerUUID, String key, String... args) { + return getLanguageFileByPlayer(playerUUID).getTranslation(key, args); } public List getList(CommandSender sender, String key) { - return (sender instanceof Player ? getLanguageFileByPlayer((Player) sender) : languageFiles[0]).getTranslations(key); + return (sender instanceof Player ? getLanguageFileByPlayer(((Player) sender).getUniqueId()) : + languageFiles[0]).getTranslations(key); + } + + public List getList(UUID playerUUID, String key) { + return getLanguageFileByPlayer(playerUUID).getTranslations(key); } public List getList(CommandSender sender, String key, String... args) { - return (sender instanceof Player ? getLanguageFileByPlayer((Player) sender) : languageFiles[0]).getTranslations(key, args); + return (sender instanceof Player ? getLanguageFileByPlayer(((Player) sender).getUniqueId()) : + languageFiles[0]).getTranslations(key, args); + } + + public List getList(UUID playerUUID, String key, String... args) { + return getLanguageFileByPlayer(playerUUID).getTranslations(key, args); } - public LanguageFile getLanguageFileByPlayer(Player player) { - String locale = LangLibAPI.getPlayerLang(player); + public LanguageFile getLanguageFileByPlayer(UUID playerUUID) { + String locale = LangLibAPI.getPlayerLang(playerUUID); return Arrays.stream(languageFiles) .filter(lang -> lang.getLanguage().toString().equalsIgnoreCase(locale))