aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-02-27 11:53:57 -0500
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-02-27 11:53:57 -0500
commitb09f774d422263ce15b97d6d0804beddf856176d (patch)
treee542258481d7496b15679f3c329ef9e087c7d8fc /src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
parent22cb02adbeb24b7ec98f843bcaba99cebe3e4f03 (diff)
downloadnotenoughupdates-b09f774d422263ce15b97d6d0804beddf856176d.tar.gz
notenoughupdates-b09f774d422263ce15b97d6d0804beddf856176d.tar.bz2
notenoughupdates-b09f774d422263ce15b97d6d0804beddf856176d.zip
feat: improve formating :)
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java1095
1 files changed, 557 insertions, 538 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
index b16092ab..470b0381 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java
@@ -27,543 +27,562 @@ import java.util.List;
import java.util.Map;
public class NEUConfig extends Config {
- private void editOverlay(String activeConfig, TextOverlay overlay, Position position) {
- Vector2f size = overlay.getDummySize();
- int width = (int) size.x;
- int height = (int) size.y;
- Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {
- overlay.renderDummy();
- OverlayManager.dontRenderOverlay = overlay.getClass();
- }, () -> {}, () -> NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(NEUConfigEditor.editor)));
- }
-
- @Override
- public void executeRunnable(int runnableId) {
- String activeConfigCategory = null;
- if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) {
- GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen;
- if (wrapper.element instanceof NEUConfigEditor) {
- activeConfigCategory = ((NEUConfigEditor) wrapper.element).getSelectedCategoryName();
- }
- }
-
- switch (runnableId) {
- case 0:
- ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/neumap");
- return;
- case 1:
- editOverlay(activeConfigCategory, OverlayManager.miningOverlay, mining.overlayPosition);
- return;
- case 2:
- Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(
- NotEnoughUpdates.INSTANCE.config.mining.drillFuelBarPosition,
- NotEnoughUpdates.INSTANCE.config.mining.drillFuelBarWidth, 12, () -> {},
- () -> {}, () -> NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(NEUConfigEditor.editor)));
- return;
- case 3:
- editOverlay(activeConfigCategory, OverlayManager.farmingOverlay, skillOverlays.farmingPosition);
- return;
- case 4:
- editOverlay(activeConfigCategory, OverlayManager.petInfoOverlay, petOverlay.petInfoPosition);
- return;
- case 5:
- editOverlay(activeConfigCategory, OverlayManager.timersOverlay, miscOverlays.todoPosition);
- return;
- case 6:
- NotEnoughUpdates.INSTANCE.openGui = new NEUOverlayPlacements();
- return;
- case 7:
- NotEnoughUpdates.INSTANCE.openGui = new GuiInvButtonEditor();
- return;
- case 8:
- NotEnoughUpdates.INSTANCE.openGui = new GuiEnchantColour();
- return;
- case 9:
- editOverlay(activeConfigCategory, OverlayManager.bonemerangOverlay, itemOverlays.bonemerangPosition);
- return;
- case 10:
- editOverlay(activeConfigCategory, OverlayManager.crystalHollowOverlay, mining.crystalHollowOverlayPosition);
- return;
- case 11:
- editOverlay(activeConfigCategory, OverlayManager.miningSkillOverlay, skillOverlays.miningPosition);
- return;
- case 12:
- ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/dn");
- return;
- case 13:
- ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/pv");
- return;
- case 14:
- editOverlay(activeConfigCategory, OverlayManager.fishingSkillOverlay, skillOverlays.fishingPosition);
- return;
- case 16:
- ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/neusouls clear");
- return;
- case 17:
- ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/neusouls unclear");
- return;
- case 18:
- editOverlay(activeConfigCategory, OverlayManager.slayerOverlay, slayerOverlay.slayerPosition);
- return;
- case 19:
- editOverlay(activeConfigCategory, OverlayManager.combatSkillOverlay, skillOverlays.combatPosition);
-
- }
- }
-
- @Expose
- @Category(
- name = "Misc",
- desc = "Miscellaneous options which don't fit into any other category"
- )
- public Misc misc = new Misc();
-
- @Expose
- @Category(
- name = "GUI Locations",
- desc = "Edit the GUI locations of everything here"
- )
- public LocationEdit locationedit = new LocationEdit();
-
- @Expose
- @Category(
- name = "Notifications",
- desc = "Notifications"
- )
- public Notifications notifications = new Notifications();
-
- @Expose
- @Category(
- name = "Item List",
- desc = "Item List"
- )
- public Itemlist itemlist = new Itemlist();
-
- @Expose
- @Category(
- name = "Toolbar",
- desc = "Toolbar"
- )
- public Toolbar toolbar = new Toolbar();
-
- @Expose
- @Category(
- name = "Inventory Buttons",
- desc = "Inventory Buttons"
- )
- public InventoryButtons inventoryButtons = new InventoryButtons();
-
- @Expose
- @Category(
- name = "Slot Locking",
- desc = "Slot Locking"
- )
- public SlotLocking slotLocking = new SlotLocking();
-
- @Expose
- @Category(
- name = "Tooltip Tweaks",
- desc = "Tooltip Tweaks"
- )
- public TooltipTweaks tooltipTweaks = new TooltipTweaks();
-
- @Expose
- @Category(
- name = "Item Overlays",
- desc = "Item Overlays"
- )
- public ItemOverlays itemOverlays = new ItemOverlays();
-
- @Expose
- @Category(
- name = "Skill Overlays",
- desc = "Skill Overlays"
- )
- public SkillOverlays skillOverlays = new SkillOverlays();
-
- @Expose
- @Category(
- name = "Todo Overlay",
- desc = "Todo Overlay"
- )
- public MiscOverlays miscOverlays = new MiscOverlays();
-
- @Expose
- @Category(
- name = "Slayer Overlay",
- desc = "Slayer Overlay"
- )
- public SlayerOverlay slayerOverlay = new SlayerOverlay();
-
- @Expose
- @Category(
- name = "Storage GUI",
- desc = "Storage GUI"
- )
- public StorageGUI storageGUI = new StorageGUI();
-
- @Expose
- @Category(
- name = "Dungeons",
- desc = "Dungeons"
- )
- public Dungeons dungeons = new Dungeons();
-
- @Expose
- @Category(
- name = "Enchanting GUI/Solvers",
- desc = "Enchanting GUI/Solvers"
- )
- public Enchanting enchantingSolvers = new Enchanting();
-
- @Expose
- @Category(
- name = "Mining",
- desc = "Mining"
- )
- public Mining mining = new Mining();
-
- @Expose
- @Category(
- name = "Fishing",
- desc = "Fishing"
- )
- public Fishing fishing = new Fishing();
-
- @Expose
- @Category(
- name = "NEU Auction House",
- desc = "NEU Auction House"
- )
- public NeuAuctionHouse neuAuctionHouse = new NeuAuctionHouse();
-
- @Expose
- @Category(
- name = "Improved SB Menus",
- desc = "Improved SB Menus"
- )
- public ImprovedSBMenu improvedSBMenu = new ImprovedSBMenu();
-
- @Expose
- @Category(
- name = "Custom Armour Hud",
- desc = "Custom Armour Hud"
- )
- public CustomArmour customArmour = new CustomArmour();
-
- @Expose
- @Category(
- name = "Calendar",
- desc = "Calendar"
- )
- public Calendar calendar = new Calendar();
-
- @Expose
- @Category(
- name = "Trade Menu",
- desc = "Trade Menu"
- )
- public TradeMenu tradeMenu = new TradeMenu();
-
- @Expose
- @Category(
- name = "Pet Overlay",
- desc = "Pet Overlay"
- )
- public PetOverlay petOverlay = new PetOverlay();
-
- @Expose
- @Category(
- name = "AH Tweaks",
- desc = "Tweaks for Hypixel's (Not NEU's) Auction House"
- )
- public AHTweaks ahTweaks = new AHTweaks();
-
- @Expose
- @Category(
- name = "AH/BZ Graph",
- desc = "Graph of auction and bazaar prices"
- )
- public AHGraph ahGraph = new AHGraph();
-
- @Expose
- @Category(
- name = "Accessory Bag Overlay",
- desc = "Accessory Bag Overlay"
- )
- public AccessoryBag accessoryBag = new AccessoryBag();
-
-
- @Expose
- @Category(
- name = "Api Key",
- desc = "Api Key"
- )
- public ApiKey apiKey = new ApiKey();
-
- @Expose
- public Hidden hidden = new Hidden();
-
- @Expose
- public DungeonMapConfig dungeonMap = new DungeonMapConfig();
-
- public static class Hidden {
- @Expose
- public HashMap<String, NEUConfig.HiddenProfileSpecific> profileSpecific = new HashMap<>();
- @Expose
- public HashMap<String, NEUConfig.HiddenLocationSpecific> locationSpecific = new HashMap<>();
- @Expose
- public List<NEUConfig.InventoryButton> inventoryButtons = createDefaultInventoryButtons();
-
- @Expose
- public boolean enableItemEditing = false;
- @Expose
- public boolean cacheRenderedItempane = true;
- @Expose
- public boolean autoupdate = true;
- @Expose
- public String overlaySearchBar = "";
- @Expose
- public String overlayQuickCommand = "";
- @Expose
- public boolean dev = false;
- @Expose
- public boolean loadedModBefore = false;
- @Expose
- public String selectedCape = null;
- @Expose
- public int compareMode = 0;
- @Expose
- public int sortMode = 0;
- @Expose
- public ArrayList<Boolean> compareAscending = Lists.newArrayList(true, true, true);
- @Expose
- public ArrayList<String> favourites = new ArrayList<>();
- @Expose
- public ArrayList<String> previousAuctionSearches = new ArrayList<>();
- @Expose
- public ArrayList<String> eventFavourites = new ArrayList<>();
- @Expose
- public ArrayList<String> quickCommands = createDefaultQuickCommands();
- @Expose
- public ArrayList<String> enchantColours = createDefaultEnchantColours();
- @Expose
- public String repoURL = "https://github.com/Moulberry/NotEnoughUpdates-REPO/archive/master.zip";
- @Expose
- public String repoCommitsURL = "https://api.github.com/repos/Moulberry/NotEnoughUpdates-REPO/commits/master";
-
- @Expose
- public boolean firstTimeSearchFocus = true;
-
- //These config options were added due to a graphical bug that caused the player to be unable to see the screen
- @Expose
- public boolean disableBrokenCapes = false;
-
- //Ery wanted to texture himself because its ery
- @Expose
- public boolean npcRetextureOnSelf = false;
-
- }
-
- public static ArrayList<String> createDefaultEnchantColours() {
- return Lists.newArrayList(
- "[a-zA-Z\\- ]+:\u003e:9:6:0",
- "[a-zA-Z\\- ]+:\u003e:6:c:0",
- "[a-zA-Z\\- ]+:\u003e:5:5:0",
- "Experience:\u003e:3:5:0",
- "Life Steal:\u003e:3:5:0",
- "Scavenger:\u003e:3:5:0",
- "Looting:\u003e:3:5:0");
- }
-
- private static ArrayList<String> createDefaultQuickCommands() {
- return new ArrayList<String>() {{
- add("/warp home:Warp Home:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0=");
- add("/warp hub:Warp Hub:eyJ0aW1lc3RhbXAiOjE1NTkyMTU0MTY5MDksInByb2ZpbGVJZCI6IjQxZDNhYmMyZDc0OTQwMGM5MDkwZDU0MzRkMDM4MzFiIiwicHJvZmlsZU5hbWUiOiJNZWdha2xvb24iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Q3Y2M2Njg3NDIzZDA1NzBkNTU2YWM1M2UwNjc2Y2I1NjNiYmRkOTcxN2NkODI2OWJkZWJlZDZmNmQ0ZTdiZjgifX19");
- add("/warp dungeon_hub:Dungeon Hub:eyJ0aW1lc3RhbXAiOjE1Nzg0MDk0MTMxNjksInByb2ZpbGVJZCI6IjQxZDNhYmMyZDc0OTQwMGM5MDkwZDU0MzRkMDM4MzFiIiwicHJvZmlsZU5hbWUiOiJNZWdha2xvb24iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliNTY4OTViOTY1OTg5NmFkNjQ3ZjU4NTk5MjM4YWY1MzJkNDZkYjljMWIwMzg5YjhiYmViNzA5OTlkYWIzM2QiLCJtZXRhZGF0YSI6eyJtb2RlbCI6InNsaW0ifX19fQ==");
- add("/craft:Crafting Table:CRAFTING_TABLE");
- add("/storage:Storage:CHEST");
- add("/wardrobe:Wardrobe:LEATHER_CHESTPLATE");
- add("/pets:Pets:BONE");
- add("neuah:NEU Auction House:GOLD_BLOCK");
- add("/bz:Bazaar:GOLD_BARDING");
- }};
- }
-
- public HiddenProfileSpecific getProfileSpecific() {
- if (SBInfo.getInstance().currentProfile == null) {
- return null;
- }
- return hidden.profileSpecific.computeIfAbsent(SBInfo.getInstance().currentProfile, k -> new HiddenProfileSpecific());
- }
-
- public static class HiddenProfileSpecific {
-
- @Expose
- public long godPotionDuration = 0L;
- @Expose
- public long puzzlerCompleted = 0L;
- @Expose
- public long firstCakeAte = 0L;
- @Expose
- public long fetchurCompleted = 0L;
- @Expose
- public long commissionsCompleted = 0L;
- @Expose
- public long experimentsCompleted = 0L;
- @Expose
- public long cookieBuffRemaining = 0L;
- @Expose
- public List<MiningOverlay.ForgeItem> forgeItems = new ArrayList<>();
-
- @Expose
- public int commissionMilestone = 0;
-
- @Expose
- public HashMap<String, Boolean> automatonParts = new HashMap<String, Boolean>() {{
- put("Electron Transmitter", false);
- put("FTX 3070", false);
- put("Robotron Reflector", false);
- put("Superlite Motor", false);
- put("Control Switch", false);
- put("Synthetic Heart", false);
- }};
-
- @Expose
- public HashMap<String, Boolean> divanMinesParts = new HashMap<String, Boolean>() {{
- put("Scavenged Lapis Sword", false);
- put("Scavenged Golden Hammer", false);
- put("Scavenged Diamond Axe", false);
- put("Scavenged Emerald Hammer", false);
- }};
-
- @Expose
- public HashMap<String, Integer> crystals = new HashMap<String, Integer>() {{
- put("Jade", 0);
- put("Amber", 0);
- put("Amethyst", 0);
- put("Sapphire", 0);
- put("Topaz", 0);
- }};
- @Expose
- public long dailyGemstonePowderCompleted = 0L;
- @Expose
- public long dailyMithrilPowerCompleted = 0L;
- }
-
- public HiddenLocationSpecific getLocationSpecific() {
- String location = SBInfo.getInstance().getLocation();
- if (location == null || location.isEmpty()) {
- return null;
- }
-
- return getLocationSpecific(location);
- }
-
- public HiddenLocationSpecific getLocationSpecific(String location) {
- return hidden.locationSpecific.computeIfAbsent(location, k -> new HiddenLocationSpecific());
- }
-
- public static class HiddenLocationSpecific {
- @Expose
- public Map<String, Integer> commissionMaxes = new HashMap<>();
- }
-
- public static List<InventoryButton> createDefaultInventoryButtons() {
- return new ArrayList<InventoryButton>() {{
- //Below crafting
- add(new InventoryButton(87, 63, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 21, 63, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 21 * 2, 63, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 21 * 3, 63, null, true, false, false, 0, ""));
-
- //Above crafting
- add(new InventoryButton(87, 5, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 21, 5, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 21 * 2, 5, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 21 * 3, 5, null, true, false, false, 0, ""));
-
- //Crafting square
- add(new InventoryButton(87, 25, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 18, 25, null, true, false, false, 0, ""));
- add(new InventoryButton(87, 25 + 18, null, true, false, false, 0, ""));
- add(new InventoryButton(87 + 18, 25 + 18, null, true, false, false, 0, ""));
-
- //Crafting result
- add(new InventoryButton(143, 35, null, true, false, false, 0, ""));
-
- //Player menu area
- add(new InventoryButton(60, 8, null, true, false, false, 0, ""));
- add(new InventoryButton(60, 60, null, true, false, false, 0, ""));
- add(new InventoryButton(26, 8, null, true, false, false, 0, ""));
- add(new InventoryButton(26, 60, null, true, false, false, 0, ""));
-
- //Right side
- for (int i = 0; i < 8; i++) {
- int y = 2 + 20 * i;
- if (y < 80) {
- add(new InventoryButton(2, 2 + 20 * i, null, false, true, false, 0, ""));
- } else {
- add(new InventoryButton(2, 2 + 20 * i - 166, null, false, true, true, 0, ""));
- }
- }
-
- //Top side
- for (int i = 0; i < 8; i++) {
- add(new InventoryButton(4 + 21 * i, -19, null, false, false, false, 0, ""));
- }
-
- //Left side
- for (int i = 0; i < 8; i++) {
- int y = 2 + 20 * i;
- if (y < 80) {
- add(new InventoryButton(-19, 2 + 20 * i, null, false, false, false, 0, ""));
- } else {
- add(new InventoryButton(-19, 2 + 20 * i - 166, null, false, false, true, 0, ""));
- }
- }
-
- //Bottom side
- for (int i = 0; i < 8; i++) {
- add(new InventoryButton(4 + 21 * i, 2, null, false, false, true, 0, ""));
- }
- }};
- }
-
- public static class InventoryButton {
- @Expose
- public int x;
- @Expose
- public int y;
- @Expose
- public boolean playerInvOnly;
-
- @Expose
- public boolean anchorRight;
- @Expose
- public boolean anchorBottom;
-
- @Expose
- public int backgroundIndex;
- @Expose
- public String command;
- @Expose
- public String icon;
-
- public boolean isActive() {
- return command.trim().length() > 0;
- }
-
- public InventoryButton(int x, int y, String icon, boolean playerInvOnly, boolean anchorRight, boolean anchorBottom, int backgroundIndex, String command) {
- this.x = x;
- this.y = y;
- this.icon = icon;
- this.playerInvOnly = playerInvOnly;
- this.anchorRight = anchorRight;
- this.anchorBottom = anchorBottom;
- this.backgroundIndex = backgroundIndex;
- this.command = command;
- }
- }
+ private void editOverlay(String activeConfig, TextOverlay overlay, Position position) {
+ Vector2f size = overlay.getDummySize();
+ int width = (int) size.x;
+ int height = (int) size.y;
+ Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(position, width, height, () -> {
+ overlay.renderDummy();
+ OverlayManager.dontRenderOverlay = overlay.getClass();
+ }, () -> {
+ }, () -> NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(NEUConfigEditor.editor)));
+ }
+
+ @Override
+ public void executeRunnable(int runnableId) {
+ String activeConfigCategory = null;
+ if (Minecraft.getMinecraft().currentScreen instanceof GuiScreenElementWrapper) {
+ GuiScreenElementWrapper wrapper = (GuiScreenElementWrapper) Minecraft.getMinecraft().currentScreen;
+ if (wrapper.element instanceof NEUConfigEditor) {
+ activeConfigCategory = ((NEUConfigEditor) wrapper.element).getSelectedCategoryName();
+ }
+ }
+
+ switch (runnableId) {
+ case 0:
+ ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/neumap");
+ return;
+ case 1:
+ editOverlay(activeConfigCategory, OverlayManager.miningOverlay, mining.overlayPosition);
+ return;
+ case 2:
+ Minecraft.getMinecraft().displayGuiScreen(new GuiPositionEditor(
+ NotEnoughUpdates.INSTANCE.config.mining.drillFuelBarPosition,
+ NotEnoughUpdates.INSTANCE.config.mining.drillFuelBarWidth, 12, () -> {
+ },
+ () -> {
+ }, () -> NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(NEUConfigEditor.editor)
+ ));
+ return;
+ case 3:
+ editOverlay(activeConfigCategory, OverlayManager.farmingOverlay, skillOverlays.farmingPosition);
+ return;
+ case 4:
+ editOverlay(activeConfigCategory, OverlayManager.petInfoOverlay, petOverlay.petInfoPosition);
+ return;
+ case 5:
+ editOverlay(activeConfigCategory, OverlayManager.timersOverlay, miscOverlays.todoPosition);
+ return;
+ case 6:
+ NotEnoughUpdates.INSTANCE.openGui = new NEUOverlayPlacements();
+ return;
+ case 7:
+ NotEnoughUpdates.INSTANCE.openGui = new GuiInvButtonEditor();
+ return;
+ case 8:
+ NotEnoughUpdates.INSTANCE.openGui = new GuiEnchantColour();
+ return;
+ case 9:
+ editOverlay(activeConfigCategory, OverlayManager.bonemerangOverlay, itemOverlays.bonemerangPosition);
+ return;
+ case 10:
+ editOverlay(activeConfigCategory, OverlayManager.crystalHollowOverlay, mining.crystalHollowOverlayPosition);
+ return;
+ case 11:
+ editOverlay(activeConfigCategory, OverlayManager.miningSkillOverlay, skillOverlays.miningPosition);
+ return;
+ case 12:
+ ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/dn");
+ return;
+ case 13:
+ ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/pv");
+ return;
+ case 14:
+ editOverlay(activeConfigCategory, OverlayManager.fishingSkillOverlay, skillOverlays.fishingPosition);
+ return;
+ case 16:
+ ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/neusouls clear");
+ return;
+ case 17:
+ ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/neusouls unclear");
+ return;
+ case 18:
+ editOverlay(activeConfigCategory, OverlayManager.slayerOverlay, slayerOverlay.slayerPosition);
+ return;
+ case 19:
+ editOverlay(activeConfigCategory, OverlayManager.combatSkillOverlay, skillOverlays.combatPosition);
+
+ }
+ }
+
+ @Expose
+ @Category(
+ name = "Misc",
+ desc = "Miscellaneous options which don't fit into any other category"
+ )
+ public Misc misc = new Misc();
+
+ @Expose
+ @Category(
+ name = "GUI Locations",
+ desc = "Edit the GUI locations of everything here"
+ )
+ public LocationEdit locationedit = new LocationEdit();
+
+ @Expose
+ @Category(
+ name = "Notifications",
+ desc = "Notifications"
+ )
+ public Notifications notifications = new Notifications();
+
+ @Expose
+ @Category(
+ name = "Item List",
+ desc = "Item List"
+ )
+ public Itemlist itemlist = new Itemlist();
+
+ @Expose
+ @Category(
+ name = "Toolbar",
+ desc = "Toolbar"
+ )
+ public Toolbar toolbar = new Toolbar();
+
+ @Expose
+ @Category(
+ name = "Inventory Buttons",
+ desc = "Inventory Buttons"
+ )
+ public InventoryButtons inventoryButtons = new InventoryButtons();
+
+ @Expose
+ @Category(
+ name = "Slot Locking",
+ desc = "Slot Locking"
+ )
+ public SlotLocking slotLocking = new SlotLocking();
+
+ @Expose
+ @Category(
+ name = "Tooltip Tweaks",
+ desc = "Tooltip Tweaks"
+ )
+ public TooltipTweaks tooltipTweaks = new TooltipTweaks();
+
+ @Expose
+ @Category(
+ name = "Item Overlays",
+ desc = "Item Overlays"
+ )
+ public ItemOverlays itemOverlays = new ItemOverlays();
+
+ @Expose
+ @Category(
+ name = "Skill Overlays",
+ desc = "Skill Overlays"
+ )
+ public SkillOverlays skillOverlays = new SkillOverlays();
+
+ @Expose
+ @Category(
+ name = "Todo Overlay",
+ desc = "Todo Overlay"
+ )
+ public MiscOverlays miscOverlays = new MiscOverlays();
+
+ @Expose
+ @Category(
+ name = "Slayer Overlay",
+ desc = "Slayer Overlay"
+ )
+ public SlayerOverlay slayerOverlay = new SlayerOverlay();
+
+ @Expose
+ @Category(
+ name = "Storage GUI",
+ desc = "Storage GUI"
+ )
+ public StorageGUI storageGUI = new StorageGUI();
+
+ @Expose
+ @Category(
+ name = "Dungeons",
+ desc = "Dungeons"
+ )
+ public Dungeons dungeons = new Dungeons();
+
+ @Expose
+ @Category(
+ name = "Enchanting GUI/Solvers",
+ desc = "Enchanting GUI/Solvers"
+ )
+ public Enchanting enchantingSolvers = new Enchanting();
+
+ @Expose
+ @Category(
+ name = "Mining",
+ desc = "Mining"
+ )
+ public Mining mining = new Mining();
+
+ @Expose
+ @Category(
+ name = "Fishing",
+ desc = "Fishing"
+ )
+ public Fishing fishing = new Fishing();
+
+ @Expose
+ @Category(
+ name = "NEU Auction House",
+ desc = "NEU Auction House"
+ )
+ public NeuAuctionHouse neuAuctionHouse = new NeuAuctionHouse();
+
+ @Expose
+ @Category(
+ name = "Improved SB Menus",
+ desc = "Improved SB Menus"
+ )
+ public ImprovedSBMenu improvedSBMenu = new ImprovedSBMenu();
+
+ @Expose
+ @Category(
+ name = "Custom Armour Hud",
+ desc = "Custom Armour Hud"
+ )
+ public CustomArmour customArmour = new CustomArmour();
+
+ @Expose
+ @Category(
+ name = "Calendar",
+ desc = "Calendar"
+ )
+ public Calendar calendar = new Calendar();
+
+ @Expose
+ @Category(
+ name = "Trade Menu",
+ desc = "Trade Menu"
+ )
+ public TradeMenu tradeMenu = new TradeMenu();
+
+ @Expose
+ @Category(
+ name = "Pet Overlay",
+ desc = "Pet Overlay"
+ )
+ public PetOverlay petOverlay = new PetOverlay();
+
+ @Expose
+ @Category(
+ name = "AH Tweaks",
+ desc = "Tweaks for Hypixel's (Not NEU's) Auction House"
+ )
+ public AHTweaks ahTweaks = new AHTweaks();
+
+ @Expose
+ @Category(
+ name = "AH/BZ Graph",
+ desc = "Graph of auction and bazaar prices"
+ )
+ public AHGraph ahGraph = new AHGraph();
+
+ @Expose
+ @Category(
+ name = "Accessory Bag Overlay",
+ desc = "Accessory Bag Overlay"
+ )
+ public AccessoryBag accessoryBag = new AccessoryBag();
+
+ @Expose
+ @Category(
+ name = "Api Key",
+ desc = "Api Key"
+ )
+ public ApiKey apiKey = new ApiKey();
+
+ @Expose
+ public Hidden hidden = new Hidden();
+
+ @Expose
+ public DungeonMapConfig dungeonMap = new DungeonMapConfig();
+
+ public static class Hidden {
+ @Expose
+ public HashMap<String, NEUConfig.HiddenProfileSpecific> profileSpecific = new HashMap<>();
+ @Expose
+ public HashMap<String, NEUConfig.HiddenLocationSpecific> locationSpecific = new HashMap<>();
+ @Expose
+ public List<NEUConfig.InventoryButton> inventoryButtons = createDefaultInventoryButtons();
+
+ @Expose
+ public boolean enableItemEditing = false;
+ @Expose
+ public boolean cacheRenderedItempane = true;
+ @Expose
+ public boolean autoupdate = true;
+ @Expose
+ public String overlaySearchBar = "";
+ @Expose
+ public String overlayQuickCommand = "";
+ @Expose
+ public boolean dev = false;
+ @Expose
+ public boolean loadedModBefore = false;
+ @Expose
+ public String selectedCape = null;
+ @Expose
+ public int compareMode = 0;
+ @Expose
+ public int sortMode = 0;
+ @Expose
+ public ArrayList<Boolean> compareAscending = Lists.newArrayList(true, true, true);
+ @Expose
+ public ArrayList<String> favourites = new ArrayList<>();
+ @Expose
+ public ArrayList<String> previousAuctionSearches = new ArrayList<>();
+ @Expose
+ public ArrayList<String> eventFavourites = new ArrayList<>();
+ @Expose
+ public ArrayList<String> quickCommands = createDefaultQuickCommands();
+ @Expose
+ public ArrayList<String> enchantColours = createDefaultEnchantColours();
+ @Expose
+ public String repoURL = "https://github.com/Moulberry/NotEnoughUpdates-REPO/archive/master.zip";
+ @Expose
+ public String repoCommitsURL = "https://api.github.com/repos/Moulberry/NotEnoughUpdates-REPO/commits/master";
+
+ @Expose
+ public boolean firstTimeSearchFocus = true;
+
+ //These config options were added due to a graphical bug that caused the player to be unable to see the screen
+ @Expose
+ public boolean disableBrokenCapes = false;
+
+ //Ery wanted to texture himself because its ery
+ @Expose
+ public boolean npcRetextureOnSelf = false;
+
+ }
+
+ public static ArrayList<String> createDefaultEnchantColours() {
+ return Lists.newArrayList(
+ "[a-zA-Z\\- ]+:\u003e:9:6:0",
+ "[a-zA-Z\\- ]+:\u003e:6:c:0",
+ "[a-zA-Z\\- ]+:\u003e:5:5:0",
+ "Experience:\u003e:3:5:0",
+ "Life Steal:\u003e:3:5:0",
+ "Scavenger:\u003e:3:5:0",
+ "Looting:\u003e:3:5:0"
+ );
+ }
+
+ private static ArrayList<String> createDefaultQuickCommands() {
+ return new ArrayList<String>() {{
+ add(
+ "/warp home:Warp Home:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0=");
+ add(
+ "/warp hub:Warp Hub:eyJ0aW1lc3RhbXAiOjE1NTkyMTU0MTY5MDksInByb2ZpbGVJZCI6IjQxZDNhYmMyZDc0OTQwMGM5MDkwZDU0MzRkMDM4MzFiIiwicHJvZmlsZU5hbWUiOiJNZWdha2xvb24iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Q3Y2M2Njg3NDIzZDA1NzBkNTU2YWM1M2UwNjc2Y2I1NjNiYmRkOTcxN2NkODI2OWJkZWJlZDZmNmQ0ZTdiZjgifX19");
+ add(
+ "/warp dungeon_hub:Dungeon Hub:eyJ0aW1lc3RhbXAiOjE1Nzg0MDk0MTMxNjksInByb2ZpbGVJZCI6IjQxZDNhYmMyZDc0OTQwMGM5MDkwZDU0MzRkMDM4MzFiIiwicHJvZmlsZU5hbWUiOiJNZWdha2xvb24iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliNTY4OTViOTY1OTg5NmFkNjQ3ZjU4NTk5MjM4YWY1MzJkNDZkYjljMWIwMzg5YjhiYmViNzA5OTlkYWIzM2QiLCJtZXRhZGF0YSI6eyJtb2RlbCI6InNsaW0ifX19fQ==");
+ add("/craft:Crafting Table:CRAFTING_TABLE");
+ add("/storage:Storage:CHEST");
+ add("/wardrobe:Wardrobe:LEATHER_CHESTPLATE");
+ add("/pets:Pets:BONE");
+ add("neuah:NEU Auction House:GOLD_BLOCK");
+ add("/bz:Bazaar:GOLD_BARDING");
+ }};
+ }
+
+ public HiddenProfileSpecific getProfileSpecific() {
+ if (SBInfo.getInstance().currentProfile == null) {
+ return null;
+ }
+ return hidden.profileSpecific.computeIfAbsent(
+ SBInfo.getInstance().currentProfile,
+ k -> new HiddenProfileSpecific()
+ );
+ }
+
+ public static class HiddenProfileSpecific {
+
+ @Expose
+ public long godPotionDuration = 0L;
+ @Expose
+ public long puzzlerCompleted = 0L;
+ @Expose
+ public long firstCakeAte = 0L;
+ @Expose
+ public long fetchurCompleted = 0L;
+ @Expose
+ public long commissionsCompleted = 0L;
+ @Expose
+ public long experimentsCompleted = 0L;
+ @Expose
+ public long cookieBuffRemaining = 0L;
+ @Expose
+ public List<MiningOverlay.ForgeItem> forgeItems = new ArrayList<>();
+
+ @Expose
+ public int commissionMilestone = 0;
+
+ @Expose
+ public HashMap<String, Boolean> automatonParts = new HashMap<String, Boolean>() {{
+ put("Electron Transmitter", false);
+ put("FTX 3070", false);
+ put("Robotron Reflector", false);
+ put("Superlite Motor", false);
+ put("Control Switch", false);
+ put("Synthetic Heart", false);
+ }};
+
+ @Expose
+ public HashMap<String, Boolean> divanMinesParts = new HashMap<String, Boolean>() {{
+ put("Scavenged Lapis Sword", false);
+ put("Scavenged Golden Hammer", false);
+ put("Scavenged Diamond Axe", false);
+ put("Scavenged Emerald Hammer", false);
+ }};
+
+ @Expose
+ public HashMap<String, Integer> crystals = new HashMap<String, Integer>() {{
+ put("Jade", 0);
+ put("Amber", 0);
+ put("Amethyst", 0);
+ put("Sapphire", 0);
+ put("Topaz", 0);
+ }};
+ @Expose
+ public long dailyGemstonePowderCompleted = 0L;
+ @Expose
+ public long dailyMithrilPowerCompleted = 0L;
+ }
+
+ public HiddenLocationSpecific getLocationSpecific() {
+ String location = SBInfo.getInstance().getLocation();
+ if (location == null || location.isEmpty()) {
+ return null;
+ }
+
+ return getLocationSpecific(location);
+ }
+
+ public HiddenLocationSpecific getLocationSpecific(String location) {
+ return hidden.locationSpecific.computeIfAbsent(location, k -> new HiddenLocationSpecific());
+ }
+
+ public static class HiddenLocationSpecific {
+ @Expose
+ public Map<String, Integer> commissionMaxes = new HashMap<>();
+ }
+
+ public static List<InventoryButton> createDefaultInventoryButtons() {
+ return new ArrayList<InventoryButton>() {{
+ //Below crafting
+ add(new InventoryButton(87, 63, null, true, false, false, 0, ""));
+ add(new InventoryButton(87 + 21, 63, null, true, false, false, 0, ""));
+ add(new InventoryButton(87 + 21 * 2, 63, null, true, false, false, 0, ""));
+ add(new Invento