diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixin')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java | 12 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/PlayerInventoryMixin.java | 21 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java index c8f6f272..88be60cd 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java @@ -19,9 +19,11 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import java.util.function.Supplier; +import java.util.regex.Pattern; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -37,6 +39,9 @@ public abstract class InGameHudMixin { @Unique private static final Supplier<Identifier> SLOT_LOCK_ICON = () -> SkyblockerConfigManager.get().general.itemProtection.slotLockStyle.tex; @Unique + private static final Pattern DICER_TITLE_BLACKLIST = Pattern.compile(".+? DROP!"); + + @Unique private final FancyStatusBars statusBars = new FancyStatusBars(); @Shadow @@ -101,4 +106,11 @@ public abstract class InGameHudMixin { return cooldownProgress; } + + @Inject(method = "setTitle", at = @At("HEAD"), cancellable = true) + private void skyblocker$dicerTitlePrevent(Text title, CallbackInfo ci) { + if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().locations.garden.dicerTitlePrevent && title != null && DICER_TITLE_BLACKLIST.matcher(title.getString()).matches()) { + ci.cancel(); + } + } } diff --git a/src/main/java/de/hysky/skyblocker/mixin/PlayerInventoryMixin.java b/src/main/java/de/hysky/skyblocker/mixin/PlayerInventoryMixin.java new file mode 100644 index 00000000..4795a28b --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixin/PlayerInventoryMixin.java @@ -0,0 +1,21 @@ +package de.hysky.skyblocker.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import de.hysky.skyblocker.skyblock.crimson.kuudra.ArrowPoisonWarning; +import net.minecraft.entity.player.PlayerInventory; + +@Mixin(PlayerInventory.class) +public class PlayerInventoryMixin { + @Shadow + public int selectedSlot; + + @Inject(method = "scrollInHotbar", at = @At("TAIL")) + private void skyblocker$onHotbarScroll(CallbackInfo ci) { + ArrowPoisonWarning.tryWarn(selectedSlot); + } +} |
