diff options
| author | Cow <cow@volloeko.de> | 2021-04-23 14:43:24 +0200 |
|---|---|---|
| committer | Cow <cow@volloeko.de> | 2021-04-23 14:43:24 +0200 |
| commit | c4392eb697e507340454a8735e7b4d3bd297f5f1 (patch) | |
| tree | f5cc857d8b9e5c8f9032d590b456663d5ad3123b /src/main/java/de/cowtipper/cowlection/util | |
| parent | 35f5d00656a968a003dd42b9150c9f19b1f3c9fd (diff) | |
| download | Cowlection-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.java | 17 | ||||
| -rw-r--r-- | src/main/java/de/cowtipper/cowlection/util/Utils.java | 17 |
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; } |
