From 41dde7b568278953bf1c5a68ae09e50f2bb8d9b8 Mon Sep 17 00:00:00 2001 From: Miraculixx Date: Tue, 31 Jan 2023 13:09:27 +0100 Subject: Adding QuickNav Customization Adding a way to customize the quick navigation buttons in the inventory. Every button can be toggled, has a display icon with nbt data, a click event and GUI name for highlighting. On default, everything is like before. The only problem is cloth config translation. I never worked before with cloth and don't want to copy paste the same key 12 times for the 12 buttons. If anyone is good with cloth config and know how to change the path, just edit it or message me :+1: --- .../skyblocker/skyblock/quicknav/QuickNav.java | 41 +++++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java index bcc57a00..4ea7fb99 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java @@ -1,35 +1,50 @@ package me.xmrvizzy.skyblocker.skyblock.quicknav; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.StringNbtReader; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; public class QuickNav { private static final String skyblockHubIconNbt = "{id:\"minecraft:player_head\",Count:1,tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}}"; private static final String dungeonHubIconNbt = "{id:\"minecraft:player_head\",Count:1,tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}}"; public static List init(String screenTitle) { List buttons = new ArrayList<>(); + SkyblockerConfig.QuickNav data = SkyblockerConfig.get().quickNav; try { - buttons.add(new QuickNavButton(0, screenTitle.contains("Your Skills"), "/skills", new ItemStack(Items.DIAMOND_SWORD))); - buttons.add(new QuickNavButton(1, screenTitle.contains("Collection"), "/collection", new ItemStack(Items.PAINTING))); - - buttons.add(new QuickNavButton(3, screenTitle.contains("Pets"), "/pets", new ItemStack(Items.BONE))); - buttons.add(new QuickNavButton(4, screenTitle.contains("Wardrobe"), "/wardrobe", ItemStack.fromNbt(StringNbtReader.parse("{id:\"minecraft:leather_chestplate\", Count:1, tag:{display:{color:8991416}}}")))); - buttons.add(new QuickNavButton(5, screenTitle.contains("Storage"), "/storage", new ItemStack(Items.ENDER_CHEST))); - - buttons.add(new QuickNavButton(6, false, "/warp hub", ItemStack.fromNbt(StringNbtReader.parse(skyblockHubIconNbt)))); - buttons.add(new QuickNavButton(7, false, "/warp dungeon_hub", ItemStack.fromNbt(StringNbtReader.parse(dungeonHubIconNbt)))); - - buttons.add(new QuickNavButton(9, screenTitle.contains("Enchant Item"), "/etable", new ItemStack(Items.ENCHANTING_TABLE))); - buttons.add(new QuickNavButton(10, screenTitle.contains("Anvil"), "/anvil", new ItemStack(Items.ANVIL))); - buttons.add(new QuickNavButton(11, screenTitle.contains("Craft Item"), "/craft", new ItemStack(Items.CRAFTING_TABLE))); + if (data.button1.render) buttons.add(parseButton(data.button1, screenTitle, 0)); + if (data.button2.render) buttons.add(parseButton(data.button2, screenTitle, 1)); + if (data.button3.render) buttons.add(parseButton(data.button3, screenTitle, 2)); + if (data.button4.render) buttons.add(parseButton(data.button4, screenTitle, 3)); + if (data.button5.render) buttons.add(parseButton(data.button5, screenTitle, 4)); + if (data.button6.render) buttons.add(parseButton(data.button6, screenTitle, 5)); + if (data.button7.render) buttons.add(parseButton(data.button7, screenTitle, 6)); + if (data.button8.render) buttons.add(parseButton(data.button8, screenTitle, 7)); + if (data.button9.render) buttons.add(parseButton(data.button9, screenTitle, 8)); + if (data.button10.render) buttons.add(parseButton(data.button10, screenTitle, 9)); + if (data.button11.render) buttons.add(parseButton(data.button11, screenTitle, 10)); + if (data.button12.render) buttons.add(parseButton(data.button12, screenTitle, 11)); } catch (CommandSyntaxException e) { e.printStackTrace(); } return buttons; } + + private static QuickNavButton parseButton(SkyblockerConfig.QuickNavItem buttonInfo, String screenTitle, int id) throws CommandSyntaxException { + SkyblockerConfig.ItemData itemData = buttonInfo.item; + String nbtString = "{id:\"minecraft:" + itemData.itemName.toLowerCase(Locale.ROOT) + "\",Count:1"; + if (itemData.nbt.length() > 2) nbtString += "," + itemData.nbt; + nbtString += "}"; + return new QuickNavButton(id, + screenTitle.contains(buttonInfo.uiTitle), + buttonInfo.clickEvent, + ItemStack.fromNbt(StringNbtReader.parse(nbtString)) + ); + } } -- cgit From 6b0877224d9913cffe0de2227fa968f5b6c16f72 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Wed, 8 Feb 2023 21:18:03 -0500 Subject: Fixes crash with WikiLookup --- src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java index ef2c3f8a..1e3e6af7 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java @@ -47,8 +47,8 @@ public class WikiLookup { return id; } - public static void openWiki(Slot slot){ - if (Utils.isOnSkyblock){ + public static void openWiki(Slot slot) { + if (Utils.isOnSkyblock) { id = getSkyblockId(slot); try { //Setting up a connection with the repo @@ -65,6 +65,9 @@ public class WikiLookup { } catch (IOException | NullPointerException e) { e.printStackTrace(); client.player.sendMessage(Text.of("Can't locate a wiki article for this item..."), false); + } catch (ArrayIndexOutOfBoundsException | IllegalStateException e) { + e.printStackTrace(); + client.player.sendMessage(Text.of("Error while retrieving wiki article..."), false); } } } -- cgit From edf78d0f5c80556aea2a97d46f2da8cc38596358 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sun, 12 Feb 2023 20:27:49 -0500 Subject: Fixed IndexOutOfBoundsException in WikiLookup --- src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java index 1e3e6af7..afaf487f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/WikiLookup.java @@ -65,7 +65,7 @@ public class WikiLookup { } catch (IOException | NullPointerException e) { e.printStackTrace(); client.player.sendMessage(Text.of("Can't locate a wiki article for this item..."), false); - } catch (ArrayIndexOutOfBoundsException | IllegalStateException e) { + } catch (IndexOutOfBoundsException | IllegalStateException e) { e.printStackTrace(); client.player.sendMessage(Text.of("Error while retrieving wiki article..."), false); } -- cgit From 72527ed6ae5f014a93691fdaebc13a7608824fc0 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Sun, 19 Feb 2023 19:22:24 +0100 Subject: fix LBIN --- .../xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock') 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 9c681cb1..dfc498a1 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java @@ -353,11 +353,18 @@ public class PriceInfoTooltip { private static void downloadLowestPrices() { JsonObject result = null; try { - URL apiAddr = new URL("https://skytils.gg/api/auctions/lowestbins"); + URL apiAddr = new URL("https://lb.tricked.pro/lowestbins"); InputStreamReader reader = new InputStreamReader(apiAddr.openStream()); result = new Gson().fromJson(reader, JsonObject.class); } catch (IOException e) { - LOGGER.warn("[Skyblocker] Failed to download lowest BIN prices!", e); + LOGGER.warn("[Skyblocker] Failed to download lowest BIN prices from the main source!", e); + try { + URL apiAddr = new URL("https://lb2.tricked.pro/lowestbins"); + InputStreamReader reader = new InputStreamReader(apiAddr.openStream()); + result = new Gson().fromJson(reader, JsonObject.class); + } catch (IOException e2) { + LOGGER.warn("[Skyblocker] Failed to download lowest BIN prices from the backup source!", e2); + } } lowestPricesJson = result; } -- cgit