aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/inventory
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/features/inventory')
-rw-r--r--src/main/kotlin/features/inventory/ItemHotkeys.kt39
1 files changed, 39 insertions, 0 deletions
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()
+ }
+
+}