aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils
diff options
context:
space:
mode:
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.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/profileviewer/utils/ProfileViewerUtils.java14
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));
+ }
+ }
}