aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/io
diff options
context:
space:
mode:
authorNopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>2024-05-03 19:20:13 +1000
committerGitHub <noreply@github.com>2024-05-03 11:20:13 +0200
commitc18aa60c33a8d70938c023ccef79bd4666b1921b (patch)
treee7162b4ca8b68827eade56b9061960037f4c1a08 /src/main/kotlin/io
parent597a248aea35b9d85b4d886434dd673321424007 (diff)
downloadNotEnoughUpdates-c18aa60c33a8d70938c023ccef79bd4666b1921b.tar.gz
NotEnoughUpdates-c18aa60c33a8d70938c023ccef79bd4666b1921b.tar.bz2
NotEnoughUpdates-c18aa60c33a8d70938c023ccef79bd4666b1921b.zip
Add CTRL+F to open ah/bz search menus (#1141)
Diffstat (limited to 'src/main/kotlin/io')
-rw-r--r--src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/BazaarAHCtrlF.kt75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/BazaarAHCtrlF.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/BazaarAHCtrlF.kt
new file mode 100644
index 00000000..e843a7e3
--- /dev/null
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/miscfeatures/BazaarAHCtrlF.kt
@@ -0,0 +1,75 @@
+/*
+ * 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.miscfeatures
+
+import io.github.moulberry.notenoughupdates.NotEnoughUpdates
+import io.github.moulberry.notenoughupdates.autosubscribe.NEUAutoSubscribe
+import io.github.moulberry.notenoughupdates.options.NEUConfig
+import io.github.moulberry.notenoughupdates.util.Utils
+import net.minecraft.client.Minecraft
+import net.minecraft.client.gui.inventory.GuiChest
+import net.minecraft.init.Items
+import net.minecraftforge.client.event.GuiScreenEvent
+import net.minecraftforge.fml.common.eventhandler.EventPriority
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import org.lwjgl.input.Keyboard
+
+@NEUAutoSubscribe
+class BazaarAHCtrlF {
+
+ val config: NEUConfig = NotEnoughUpdates.INSTANCE.config
+
+
+ @SubscribeEvent(priority = EventPriority.HIGH)
+ fun onGuiScreenKeyboard(event: GuiScreenEvent.KeyboardInputEvent.Pre) {
+ if (event.gui !is GuiChest) return
+ val chestName = Utils.getOpenChestName()
+ val inBZ = inBZ(chestName)
+ val inAH = inAH(chestName)
+ if (!inBZ && !inAH) return
+ val openSlots = Minecraft.getMinecraft().thePlayer?.openContainer?.inventorySlots ?: return
+
+ var slotId = 0;
+ if (inBZ) {
+ slotId = 45
+ } else if (inAH) {
+ slotId = 48
+ }
+
+ val gui = event.gui as GuiChest
+ val signStack = openSlots[slotId]?.stack ?: return
+ if (signStack.item == Items.sign && signStack.displayName == "§aSearch") {
+ if (Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) && Keyboard.isKeyDown(Keyboard.KEY_F)) {
+ Utils.sendMiddleMouseClick(gui.inventorySlots.windowId, slotId)
+ event.isCanceled = true
+ }
+ }
+ }
+
+ private fun inAH(chestName: String): Boolean {
+ if (!config.ahTweaks.ctrlFSearch) return false
+ return (chestName.startsWith("Auctions"))
+ }
+
+ private fun inBZ(chestName: String): Boolean {
+ if (!config.bazaarTweaks.ctrlFSearch) return false
+ return (chestName.startsWith("Bazaar"))
+ }
+}