diff options
| author | Owen <64725743+Ownwn@users.noreply.github.com> | 2025-06-04 19:43:53 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-04 15:43:53 +0800 |
| commit | 5c19255d82bf1b965610ed315558ba8da8557776 (patch) | |
| tree | 7486307676f6c27cc422d596b0150df22eaebe1d /src/main | |
| parent | 5638f2601d59791bbe802824ee14e1ecd7a547d3 (diff) | |
| download | Skyblocker-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/main')
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", |
