From 515f7fcf6f284030538ca57142a39c32e045d95e Mon Sep 17 00:00:00 2001 From: msg-programs Date: Sat, 15 Apr 2023 17:05:05 +0200 Subject: Add option to hide empty tooltips in inventories. Hypixel's inventory menus sometimes use items with empty names. When the game draws the tooltip for such an item, a small dark rectangle is seen. Mixin into the function that draws tooltips and disable it when that is the case. --- .../skyblocker/config/SkyblockerConfig.java | 1 + .../me/xmrvizzy/skyblocker/mixin/ScreenMixin.java | 26 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index a13f86b3..05ffc2e9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -124,6 +124,7 @@ public class SkyblockerConfig implements ConfigData { public static class General { public boolean enableUpdateNotification = true; public boolean backpackPreviewWithoutShift = false; + public boolean hideEmptyTooltips = true; @ConfigEntry.Gui.Excluded public String apiKey; diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java new file mode 100644 index 00000000..01f0f2a9 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java @@ -0,0 +1,26 @@ +package me.xmrvizzy.skyblocker.mixin; + +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; + +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; + +@Mixin(Screen.class) +public abstract class ScreenMixin { + + @Inject(at = @At("HEAD"), method = "renderTooltip(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/item/ItemStack;II)V", cancellable = true) + public void skyblocker$renderTooltip(MatrixStack matrices, ItemStack itemStack, int x, int y, CallbackInfo ci) { + Text stackName = itemStack.getName(); + String strName = stackName.getString(); + if (SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) { + ci.cancel(); + } + } + +} -- cgit From 2938e28e06e33c29e79197b4f473760e3f9e32b7 Mon Sep 17 00:00:00 2001 From: msg-programs Date: Sun, 16 Apr 2023 10:21:02 +0200 Subject: Add missing check for if the player is on skyblock --- src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/main/java/me/xmrvizzy') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java index 01f0f2a9..14aa8868 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScreenMixin.java @@ -6,6 +6,8 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.utils.Utils; + import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; @@ -18,7 +20,7 @@ public abstract class ScreenMixin { public void skyblocker$renderTooltip(MatrixStack matrices, ItemStack itemStack, int x, int y, CallbackInfo ci) { Text stackName = itemStack.getName(); String strName = stackName.getString(); - if (SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) { + if (Utils.isOnSkyblock && SkyblockerConfig.get().general.hideEmptyTooltips && strName.equals(" ")) { ci.cancel(); } } -- cgit