diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/LevelFinder.java | 16 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java | 14 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/LevelFinder.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/LevelFinder.java index 9b0fdfb1..f53df0f5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/LevelFinder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/LevelFinder.java @@ -8,16 +8,20 @@ public class LevelFinder { public long xp; public int level; public double fill; + public long levelXP; + public long nextLevelXP; public LevelInfo(long xp, int level) { this.xp = xp; this.level = level; } - public LevelInfo(long xp, int level, double fill) { + public LevelInfo(long xp, int level, double fill, double levelXP, double nextLevelXP) { this.xp = xp; this.level = level; this.fill = fill; + this.levelXP = (long) levelXP; + this.nextLevelXP = (long) nextLevelXP; } } @@ -256,16 +260,20 @@ public class LevelFinder { for (int i = boundaries.size() - 1; i >= 0 ; i--) { if (xp >= boundaries.get(i).xp) { double fill; + double xpInCurrentLevel; + double levelXPRange; if (i < boundaries.getLast().level) { double currentLevelXP = boundaries.get(i).xp; double nextLevelXP = boundaries.get(i + 1).xp; - double levelXPRange = nextLevelXP - currentLevelXP; - double xpInCurrentLevel = xp - currentLevelXP; + levelXPRange = nextLevelXP - currentLevelXP; + xpInCurrentLevel = xp - currentLevelXP; fill = xpInCurrentLevel / levelXPRange; } else { fill = 1.0; + xpInCurrentLevel = xp - boundaries.getLast().xp; + levelXPRange = boundaries.getLast().xp - boundaries.get(boundaries.size()-2).xp; } - return new LevelInfo(xp, boundaries.get(i).level, fill); + return new LevelInfo(xp, boundaries.get(i).level, fill, xpInCurrentLevel, levelXPRange); } } return new LevelInfo(0L, 0); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java index dca4dd85..8dadedaf 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java @@ -14,6 +14,8 @@ import java.util.Optional; import java.util.UUID; public class ProfileViewerUtils { + public static final NumberFormat COMMA_FORMATTER = NumberFormat.getNumberInstance(Locale.US); + public static ItemStack createSkull(String textureB64) { ItemStack skull = new ItemStack(Items.PLAYER_HEAD); try { @@ -27,5 +29,15 @@ public class ProfileViewerUtils { return skull; } - public static final NumberFormat COMMA_FORMATTER = NumberFormat.getNumberInstance(Locale.US); + public static String numLetterFormat(double amount) { + if (amount >= 1_000_000_000) { + return String.format("%.4gB", amount / 1_000_000_000); + } else if (amount >= 1_000_000) { + return String.format("%.4gM", amount / 1_000_000); + } else if (amount >= 1_000) { + return String.format("%.4gK", amount / 1_000); + } else { + return String.valueOf((int)(amount)); + } + } } |