diff options
author | jani270 <69345714+jani270@users.noreply.github.com> | 2024-02-26 20:01:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-26 20:01:25 +0100 |
commit | 8f32281cc06aa933507965db2d07605b9f245a27 (patch) | |
tree | 58fc38a49777667158a668e2aac244dc94392d79 | |
parent | ce557a70d776926ceee3d43f0ccf7b34bc97fe31 (diff) | |
download | NotEnoughUpdates-8f32281cc06aa933507965db2d07605b9f245a27.tar.gz NotEnoughUpdates-8f32281cc06aa933507965db2d07605b9f245a27.tar.bz2 NotEnoughUpdates-8f32281cc06aa933507965db2d07605b9f245a27.zip |
Added option to open the skyblock recipe menu with a keybind (#1029)
* Added option to open the skyblock recipe menu with a keybind
* Use streams to find crafting recipe
---------
Co-authored-by: Linnea Gräf <nea@nea.moe>
3 files changed, 54 insertions, 2 deletions
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 @@ -348,6 +348,14 @@ public class Misc { @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", desc = "Shows a(n estimated) timestamp for when a countdown in an item's tooltip will end, relative to your timezone. Also applies to §e/neucalendar§r." ) 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 <https://www.gnu.org/licenses/>. + */ + +package io.github.moulberry.notenoughupdates.util; + +import java.util.stream.Stream; + +public class StreamExtL { + public static <T, U> Stream<U> filterIsInstance(Stream<T> self, Class<U> uClass) { + return self.filter(uClass::isInstance).map(uClass::cast); + } +} |