aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/cowtipper/cowlection/util
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2021-04-23 14:43:24 +0200
committerCow <cow@volloeko.de>2021-04-23 14:43:24 +0200
commitc4392eb697e507340454a8735e7b4d3bd297f5f1 (patch)
treef5cc857d8b9e5c8f9032d590b456663d5ad3123b /src/main/java/de/cowtipper/cowlection/util
parent35f5d00656a968a003dd42b9150c9f19b1f3c9fd (diff)
downloadCowlection-c4392eb697e507340454a8735e7b4d3bd297f5f1.tar.gz
Cowlection-c4392eb697e507340454a8735e7b4d3bd297f5f1.tar.bz2
Cowlection-c4392eb697e507340454a8735e7b4d3bd297f5f1.zip
Added Chest Tracker & Analyzer
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/util')
-rw-r--r--src/main/java/de/cowtipper/cowlection/util/ApiUtils.java17
-rw-r--r--src/main/java/de/cowtipper/cowlection/util/Utils.java17
2 files changed, 31 insertions, 3 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/util/ApiUtils.java b/src/main/java/de/cowtipper/cowlection/util/ApiUtils.java
index 03e4a14..584e818 100644
--- a/src/main/java/de/cowtipper/cowlection/util/ApiUtils.java
+++ b/src/main/java/de/cowtipper/cowlection/util/ApiUtils.java
@@ -5,6 +5,7 @@ import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
import com.mojang.util.UUIDTypeAdapter;
import de.cowtipper.cowlection.Cowlection;
+import de.cowtipper.cowlection.chestTracker.HyBazaarData;
import de.cowtipper.cowlection.command.exception.ThrowingConsumer;
import de.cowtipper.cowlection.config.CredentialStorage;
import de.cowtipper.cowlection.data.*;
@@ -27,6 +28,7 @@ public class ApiUtils {
private static final String UUID_TO_NAME_URL = "https://api.mojang.com/user/profiles/%s/names";
private static final String ONLINE_STATUS_URL = "https://api.hypixel.net/status?key=%s&uuid=%s";
private static final String SKYBLOCK_STATS_URL = "https://api.hypixel.net/skyblock/profiles?key=%s&uuid=%s";
+ private static final String BAZAAR_URL = "https://api.hypixel.net/skyblock/bazaar";
private static final String PLAYER_URL = "https://api.hypixel.net/player?key=%s&uuid=%s";
private static final String API_KEY_URL = "https://api.hypixel.net/key?key=%s";
private static final ExecutorService pool = Executors.newCachedThreadPool();
@@ -101,6 +103,21 @@ public class ApiUtils {
return null;
}
+ public static void fetchBazaarData(ThrowingConsumer<HyBazaarData> action) {
+ pool.execute(() -> action.accept(getBazaarData()));
+ }
+
+ private static HyBazaarData getBazaarData() {
+ try (BufferedReader reader = makeApiCall(BAZAAR_URL)) {
+ if (reader != null) {
+ return GsonUtils.fromJson(reader, HyBazaarData.class);
+ }
+ } catch (IOException | JsonSyntaxException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
public static void fetchHyPlayerDetails(Friend stalkedPlayer, ThrowingConsumer<HyPlayerData> action) {
pool.execute(() -> action.accept(stalkHyPlayer(stalkedPlayer)));
}
diff --git a/src/main/java/de/cowtipper/cowlection/util/Utils.java b/src/main/java/de/cowtipper/cowlection/util/Utils.java
index 47eb356..f15b095 100644
--- a/src/main/java/de/cowtipper/cowlection/util/Utils.java
+++ b/src/main/java/de/cowtipper/cowlection/util/Utils.java
@@ -12,6 +12,7 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
@@ -21,6 +22,8 @@ public final class Utils {
public static final Pattern VALID_UUID_PATTERN = Pattern.compile("^(\\w{8})-(\\w{4})-(\\w{4})-(\\w{4})-(\\w{12})$");
private static final Pattern VALID_USERNAME = Pattern.compile("^[\\w]{1,16}$");
private static final NavigableMap<Double, Character> NUMBER_SUFFIXES = new TreeMap<>();
+ private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#,##0.#", new DecimalFormatSymbols(Locale.ENGLISH));
+ private static final DecimalFormat NUMBER_FORMAT = new DecimalFormat("#,##0", new DecimalFormatSymbols(Locale.ENGLISH));
static {
NUMBER_SUFFIXES.put(1_000d, 'k');
@@ -90,10 +93,10 @@ public final class Utils {
}
double monthsPast = daysPast / 30.5d;
if (monthsPast < 12) {
- return new DecimalFormat("0.#").format(monthsPast) + " month" + (monthsPast >= 2 ? "s" : "");
+ return DECIMAL_FORMAT.format(monthsPast) + " month" + (monthsPast >= 2 ? "s" : "");
}
double yearsPast = monthsPast / 12d;
- return new DecimalFormat("0.#").format(yearsPast) + " year" + (yearsPast >= 2 ? "s" : "");
+ return DECIMAL_FORMAT.format(yearsPast) + " year" + (yearsPast >= 2 ? "s" : "");
}
public static String toRealPath(Path path) {
@@ -109,6 +112,14 @@ public final class Utils {
return toRealPath(path.toPath());
}
+ public static String formatDecimal(double number) {
+ return DECIMAL_FORMAT.format(number);
+ }
+
+ public static String formatNumber(double number) {
+ return NUMBER_FORMAT.format(number);
+ }
+
/**
* Formats a large number with abbreviations for each factor of a thousand (k, m, b, t)
*/
@@ -132,7 +143,7 @@ public final class Utils {
default:
amountOfDecimals = "###";
}
- DecimalFormat df = new DecimalFormat("#,##0." + amountOfDecimals);
+ DecimalFormat df = new DecimalFormat("#,##0." + amountOfDecimals, new DecimalFormatSymbols(Locale.ENGLISH));
return df.format(number / divideBy) + suffix;
}