From dd58bd4a7705da2c97e2bbd6a5979225e5f8245d Mon Sep 17 00:00:00 2001 From: Julian Braun Date: Mon, 5 Apr 2021 14:57:59 +0200 Subject: performance fixes --- .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 4 +++- .../skyblocker/skyblock/item/PriceInfoTooltip.java | 26 ++++++++++++---------- .../java/me/xmrvizzy/skyblocker/utils/Utils.java | 7 ++++-- 3 files changed, 22 insertions(+), 15 deletions(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 8be9fb3d..0d77486d 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -2,6 +2,8 @@ package me.xmrvizzy.skyblocker; import java.util.Map; +import com.google.gson.JsonObject; + import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock; import me.xmrvizzy.skyblocker.utils.Utils; @@ -12,7 +14,7 @@ import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; public class SkyblockerMod implements ClientModInitializer { public static final String NAMESPACE = "skyblocker"; private static int TICKS = 0; - public static Map prices = PriceInfoTooltip.downloadPrices(); + @Override public void onInitializeClient() { HotbarSlotLock.init(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java index e1296d37..c34e4136 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java @@ -33,21 +33,23 @@ import com.google.gson.JsonPrimitive; import me.xmrvizzy.skyblocker.SkyblockerMod; public class PriceInfoTooltip { - + private JsonObject auctionPricesJson = null; + public static JsonObject prices = PriceInfoTooltip.downloadPrices(); public static void onInjectTooltip(ItemStack stack, TooltipContext context, List list) { String name = getInternalNameForItem(stack); - + try { - if(!list.toString().contains("Lowest BIN Price")){ - if(SkyblockerMod.prices != null && SkyblockerMod.prices.containsKey(name)){ + if(!list.toString().contains("Avg. BIN Price") && prices.has(name) ){ + if(prices != null){ - Double price = round((Double)SkyblockerMod.prices.get(name), 2); + JsonElement getPrice = prices.get(name); + Double price = round(getPrice.getAsDouble(), 2); - list.add(new LiteralText("Lowest BIN Price: " + price).formatted(Formatting.GOLD)); + list.add(new LiteralText("Avg. BIN Price: ").formatted(Formatting.GOLD).append(new LiteralText(price.toString() + " Coins").formatted(Formatting.DARK_AQUA))); } } }catch(Exception e) { - + MinecraftClient.getInstance().player.sendMessage(new LiteralText(e.toString()), false); } } @@ -89,14 +91,14 @@ public class PriceInfoTooltip { return internalname; } - public static Map downloadPrices() { + public static JsonObject downloadPrices() { try { - downloadUsingStream("https://moulberry.codes/auction_averages_lbin/1day.json.gz", "1day.json.gz"); - decompressGzipFile("1day.json.gz", "1day.json"); + downloadUsingStream("https://moulberry.codes/auction_averages_lbin/3day.json.gz", "3day.json.gz"); + decompressGzipFile("3day.json.gz", "3day.json"); Gson gson = new Gson(); - Reader reader = Files.newBufferedReader(Paths.get("1day.json")); + Reader reader = Files.newBufferedReader(Paths.get("3day.json")); // convert JSON file to map - Map map = gson.fromJson(reader, Map.class); + JsonObject map = gson.fromJson(reader, JsonObject.class); return map; } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index ef1390e6..538de291 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -22,7 +22,7 @@ import java.util.stream.Collectors; public class Utils { public static boolean isSkyblock = false; public static boolean isDungeons = false; - + public static boolean isInjected = false; public static String parseActionBar(String msg) { String[] sections = msg.split(" {3,}"); List unused = new ArrayList(); @@ -60,7 +60,10 @@ public class Utils { if (sidebar.isEmpty()) return; if (sidebar.get(sidebar.size() - 1).equals("www.hypixel.net")) { if (sidebar.get(0).contains("SKYBLOCK")){ - ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); + if(isInjected == false){ + isInjected = true; + ItemTooltipCallback.EVENT.register(PriceInfoTooltip::onInjectTooltip); + } isSkyblock = true; } else isSkyblock = false; -- cgit