aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOwen <64725743+Ownwn@users.noreply.github.com>2025-06-04 19:43:53 +1200
committerGitHub <noreply@github.com>2025-06-04 15:43:53 +0800
commit5c19255d82bf1b965610ed315558ba8da8557776 (patch)
tree7486307676f6c27cc422d596b0150df22eaebe1d /src
parent5638f2601d59791bbe802824ee14e1ecd7a547d3 (diff)
downloadSkyblocker-5c19255d82bf1b965610ed315558ba8da8557776.tar.gz
Skyblocker-5c19255d82bf1b965610ed315558ba8da8557776.tar.bz2
Skyblocker-5c19255d82bf1b965610ed315558ba8da8557776.zip
Refresh inventory search highlight when slot changes (#1259)
* Refresh highlight when inventory slot changes. Good for auction house where items constantly change * Change injection point to ScreenHandler --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ScreenHandlerMixin.java19
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java4
-rw-r--r--src/main/resources/skyblocker.mixins.json1
4 files changed, 26 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java
index 97d289d5..6372bd4d 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java
@@ -10,8 +10,6 @@ import de.hysky.skyblocker.config.configs.SlayersConfig;
import de.hysky.skyblocker.config.configs.UIAndVisualsConfig;
import de.hysky.skyblocker.skyblock.CompactDamage;
import de.hysky.skyblocker.skyblock.HealthBars;
-import de.hysky.skyblocker.skyblock.fishing.FishingHelper;
-import de.hysky.skyblocker.skyblock.fishing.FishingHookDisplayHelper;
import de.hysky.skyblocker.skyblock.SmoothAOTE;
import de.hysky.skyblocker.skyblock.chocolatefactory.EggFinder;
import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager;
@@ -23,6 +21,8 @@ import de.hysky.skyblocker.skyblock.dwarven.CrystalsChestHighlighter;
import de.hysky.skyblocker.skyblock.dwarven.WishingCompassSolver;
import de.hysky.skyblocker.skyblock.end.EnderNodes;
import de.hysky.skyblocker.skyblock.end.TheEnd;
+import de.hysky.skyblocker.skyblock.fishing.FishingHelper;
+import de.hysky.skyblocker.skyblock.fishing.FishingHookDisplayHelper;
import de.hysky.skyblocker.skyblock.fishing.SeaCreatureTracker;
import de.hysky.skyblocker.skyblock.slayers.SlayerManager;
import de.hysky.skyblocker.skyblock.slayers.boss.demonlord.FirePillarAnnouncer;
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ScreenHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ScreenHandlerMixin.java
new file mode 100644
index 00000000..a6eccb91
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/mixins/ScreenHandlerMixin.java
@@ -0,0 +1,19 @@
+package de.hysky.skyblocker.mixins;
+
+import de.hysky.skyblocker.skyblock.InventorySearch;
+import net.minecraft.item.ItemStack;
+import net.minecraft.screen.ScreenHandler;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(ScreenHandler.class)
+public class ScreenHandlerMixin {
+ @Inject(method = "setStackInSlot", at = @At("RETURN"))
+ private void onSetStackInSlot(int slot, int revision, ItemStack stack, CallbackInfo ci) {
+ if (InventorySearch.isSearching()) {
+ InventorySearch.refreshSlot(slot);
+ }
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java b/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java
index d1e147ce..fc6daaa4 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/InventorySearch.java
@@ -85,6 +85,10 @@ public class InventorySearch {
}
+ public static void refreshSlot(int slotId) {
+ slotToMatch.remove(slotId);
+ }
+
/**
* Button to open the search bar, for accessibility reasons (pojav and general preferences)
*/
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index 5735a48b..d0ae49b0 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -45,6 +45,7 @@
"RenderFishMixin",
"RenderPipelineMixin",
"ScoreboardMixin",
+ "ScreenHandlerMixin",
"ScreenMixin",
"SignEditScreenMixin",
"SocialInteractionsPlayerListWidgetMixin",