From 970dfddaf9e80d6b206f411139227397f4d9e847 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Sun, 17 Nov 2024 17:29:15 +0100 Subject: feat: Add bazaar/ah search hotkey --- src/main/kotlin/features/FeatureManager.kt | 3 ++ src/main/kotlin/features/inventory/ItemHotkeys.kt | 39 +++++++++++++++++++++++ src/main/kotlin/features/mining/HotmPresets.kt | 3 -- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/main/kotlin/features/inventory/ItemHotkeys.kt (limited to 'src/main/kotlin/features') diff --git a/src/main/kotlin/features/FeatureManager.kt b/src/main/kotlin/features/FeatureManager.kt index 55f6328..2110d09 100644 --- a/src/main/kotlin/features/FeatureManager.kt +++ b/src/main/kotlin/features/FeatureManager.kt @@ -90,6 +90,9 @@ object FeatureManager : DataHolder(serializer(), "feature fun subscribeEvents() { SubscriptionList.allLists.forEach { it.provideSubscriptions { + it.owner.javaClass.classes.forEach { + runCatching { it.getDeclaredField("INSTANCE").get(null) } + } subscribeSingleEvent(it) } } diff --git a/src/main/kotlin/features/inventory/ItemHotkeys.kt b/src/main/kotlin/features/inventory/ItemHotkeys.kt new file mode 100644 index 0000000..4aa8202 --- /dev/null +++ b/src/main/kotlin/features/inventory/ItemHotkeys.kt @@ -0,0 +1,39 @@ +package moe.nea.firmament.features.inventory + +import moe.nea.firmament.annotations.Subscribe +import moe.nea.firmament.events.HandledScreenKeyPressedEvent +import moe.nea.firmament.gui.config.ManagedConfig +import moe.nea.firmament.repo.HypixelStaticData +import moe.nea.firmament.repo.ItemCache +import moe.nea.firmament.repo.ItemCache.asItemStack +import moe.nea.firmament.repo.ItemCache.isBroken +import moe.nea.firmament.repo.RepoManager +import moe.nea.firmament.util.MC +import moe.nea.firmament.util.focusedItemStack +import moe.nea.firmament.util.skyBlockId +import moe.nea.firmament.util.skyblock.SBItemUtil.getSearchName + +object ItemHotkeys { + object TConfig : ManagedConfig("item-hotkeys", Category.INVENTORY) { + val openGlobalTradeInterface by keyBindingWithDefaultUnbound("global-trade-interface") + } + + @Subscribe + fun onHandledInventoryPress(event: HandledScreenKeyPressedEvent) { + if (!event.matches(TConfig.openGlobalTradeInterface)) { + return + } + var item = event.screen.focusedItemStack ?: return + val skyblockId = item.skyBlockId ?: return + item = RepoManager.getNEUItem(skyblockId)?.asItemStack()?.takeIf { !it.isBroken } ?: item + if (HypixelStaticData.hasBazaarStock(skyblockId)) { + MC.sendCommand("bz ${item.getSearchName()}") + } else if (HypixelStaticData.hasAuctionHouseOffers(skyblockId)) { + MC.sendCommand("ahs ${item.getSearchName()}") + } else { + return + } + event.cancel() + } + +} diff --git a/src/main/kotlin/features/mining/HotmPresets.kt b/src/main/kotlin/features/mining/HotmPresets.kt index 533aa1e..2241fee 100644 --- a/src/main/kotlin/features/mining/HotmPresets.kt +++ b/src/main/kotlin/features/mining/HotmPresets.kt @@ -34,9 +34,6 @@ import moe.nea.firmament.util.unformattedString import moe.nea.firmament.util.useMatch object HotmPresets { - object Config : ManagedConfig("hotm-presets", Category.MINING) { - } - val SHARE_PREFIX = "FIRMHOTM/" @Serializable -- cgit