diff --git a/src/main/java/io/github/thatsmusic99/headsplus/placeholders/CacheManager.java b/src/main/java/io/github/thatsmusic99/headsplus/placeholders/CacheManager.java index 1d4b8a94..821a9a0f 100644 --- a/src/main/java/io/github/thatsmusic99/headsplus/placeholders/CacheManager.java +++ b/src/main/java/io/github/thatsmusic99/headsplus/placeholders/CacheManager.java @@ -62,9 +62,12 @@ public long getXP(OfflinePlayer player) { } public String getLevel(OfflinePlayer player) { + // Check HPPlayer cache, ez - if (HPPlayer.getHPPlayer(player.getUniqueId()) != null) - return HPPlayer.getHPPlayer(player.getUniqueId()).getLevel().getDisplayName(); + HPPlayer hpPlayer = HPPlayer.getHPPlayer(player.getUniqueId()); + if (hpPlayer != null) return hpPlayer.getLevel().getConfigName(); + + // Get the UUID UUID uuid = player.getUniqueId(); updateCaches("level_" + player.getName(), uuid.toString(), cachedLevels, () -> PlayerSQLManager.get().getLevel(uuid, true)); diff --git a/src/main/java/io/github/thatsmusic99/headsplus/placeholders/HPExpansion.java b/src/main/java/io/github/thatsmusic99/headsplus/placeholders/HPExpansion.java index 3da201e4..96686c30 100644 --- a/src/main/java/io/github/thatsmusic99/headsplus/placeholders/HPExpansion.java +++ b/src/main/java/io/github/thatsmusic99/headsplus/placeholders/HPExpansion.java @@ -58,16 +58,44 @@ public String onRequest(OfflinePlayer player, @NotNull String identifier) { } if (identifier.equals("remaining_xp")) { + String level = CacheManager.get().getLevel(player); if (level == null) return "-1"; + Level levelObj = LevelsManager.get().getLevel(level); + levelObj = LevelsManager.get().getNextLevel(levelObj.getConfigName()); long xp = CacheManager.get().getXP(player); if (xp == -1) return "-1"; return String.valueOf(levelObj.getRequiredXP() - xp); } + if (identifier.equals("next_level")) { + String level = CacheManager.get().getLevel(player); + if (level == null) return "N/A"; + + Level nextLevel = LevelsManager.get().getNextLevel(level); + if (nextLevel == null) return "N/A"; + + return nextLevel.getDisplayName(); + } + + if (identifier.equals("next_level_xp")) { + String level = CacheManager.get().getLevel(player); + if (level == null) return "-1"; + + Level nextLevel = LevelsManager.get().getNextLevel(level); + if (nextLevel == null) return "-1"; + + return String.valueOf(nextLevel.getRequiredXP()); + } + if (identifier.equals("level")) { - return CacheManager.get().getLevel(player); + String level = CacheManager.get().getLevel(player); + if (level == null) return "N/A"; + + Level actualLevel = LevelsManager.get().getLevel(level); + if (actualLevel == null) return "N/A"; + return actualLevel.getDisplayName(); } if (identifier.equals("completed_challenges_total")) {