From 8f32281cc06aa933507965db2d07605b9f245a27 Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Mon, 26 Feb 2024 20:01:25 +0100 Subject: Added option to open the skyblock recipe menu with a keybind (#1029) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added option to open the skyblock recipe menu with a keybind * Use streams to find crafting recipe --------- Co-authored-by: Linnea Gräf --- .../moulberry/notenoughupdates/NEUOverlay.java | 20 ++++++++++++++-- .../options/separatesections/Misc.java | 8 +++++++ .../notenoughupdates/util/StreamExtL.java | 28 ++++++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/StreamExtL.java (limited to 'src') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 87b08ef7..797260c4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -38,12 +38,14 @@ import io.github.moulberry.notenoughupdates.miscfeatures.EnchantingSolvers; import io.github.moulberry.notenoughupdates.miscfeatures.SunTzu; import io.github.moulberry.notenoughupdates.miscgui.NeuSearchCalculator; import io.github.moulberry.notenoughupdates.miscgui.pricegraph.GuiPriceGraph; +import io.github.moulberry.notenoughupdates.recipes.CraftingRecipe; import io.github.moulberry.notenoughupdates.util.Calculator; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.GuiTextures; import io.github.moulberry.notenoughupdates.util.LerpingFloat; import io.github.moulberry.notenoughupdates.util.NotificationHandler; import io.github.moulberry.notenoughupdates.util.SpecialColour; +import io.github.moulberry.notenoughupdates.util.StreamExtL; import io.github.moulberry.notenoughupdates.util.Utils; import lombok.var; import net.minecraft.client.Minecraft; @@ -742,8 +744,7 @@ public class NEUOverlay extends Gui { if (NotEnoughUpdates.INSTANCE.config.itemlist.wikiInBrowser) { Utils.openUrl(infoText); Utils.addChatMessage("§e[NEU] Opening webpage in browser."); - } - else { + } else { displayInformationPane(new TextInfoPane( this, manager, @@ -1232,6 +1233,21 @@ public class NEUOverlay extends Gui { } else { NotEnoughUpdates.INSTANCE.trySendCommand("/bz " + cleanName); } + } else if (keyPressed == NotEnoughUpdates.INSTANCE.config.misc.openSkyBlockRecipeKeybind + && !item.has("vanilla") + && StreamExtL.filterIsInstance( + manager.getAvailableRecipesFor(internalname.get()).stream(), + CraftingRecipe.class + ) + .findAny() + .isPresent() + ) { + String displayName = Utils.cleanColour(item + .get("displayname") + .getAsString() + .replace("[Lvl {LVL}]", "") + .trim()); + NotEnoughUpdates.INSTANCE.trySendCommand("/recipe " + displayName); } } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Misc.java b/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Misc.java index 52df50f7..cd5bd3d6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Misc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/separatesections/Misc.java @@ -346,6 +346,14 @@ public class Misc { @ConfigEditorKeybind(defaultKey = Keyboard.KEY_M) public int openAHKeybind = Keyboard.KEY_M; + @Expose + @ConfigOption( + name = "Open /recipe for current item", + desc = "Opens the SkyBlock recipe for the item you are hovering over. Intended for super crafting" + ) + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_NONE) + public int openSkyBlockRecipeKeybind = Keyboard.KEY_NONE; + @Expose @ConfigOption( name = "Countdown Calculations", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/StreamExtL.java b/src/main/java/io/github/moulberry/notenoughupdates/util/StreamExtL.java new file mode 100644 index 00000000..2fbdbf7d --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/StreamExtL.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2024 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import java.util.stream.Stream; + +public class StreamExtL { + public static Stream filterIsInstance(Stream self, Class uClass) { + return self.filter(uClass::isInstance).map(uClass::cast); + } +} -- cgit