diff --git a/src/main/java/xyz/bluspring/kilt/forgeinjects/client/gui/GuiGraphicsInject.java b/src/main/java/xyz/bluspring/kilt/forgeinjects/client/gui/GuiGraphicsInject.java index 8b1b94b9b..33ef55d40 100644 --- a/src/main/java/xyz/bluspring/kilt/forgeinjects/client/gui/GuiGraphicsInject.java +++ b/src/main/java/xyz/bluspring/kilt/forgeinjects/client/gui/GuiGraphicsInject.java @@ -38,6 +38,7 @@ import org.spongepowered.asm.mixin.injection.ModifyArgs; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.invoke.arg.Args; +import net.fabricmc.loader.api.FabricLoader; import xyz.bluspring.kilt.injections.client.gui.GuiGraphicsInjection; import xyz.bluspring.kilt.injections.client.gui.screens.inventory.tooltip.TooltipRenderUtilInjection; import xyz.bluspring.kilt.mixin.ClientTextTooltipAccessor; @@ -48,6 +49,10 @@ @Mixin(GuiGraphics.class) public abstract class GuiGraphicsInject implements GuiGraphicsInjection, IForgeGuiGraphics { + + @Unique + private static final boolean kilt$isIcebergLoaded = FabricLoader.getInstance().isModLoaded("iceberg"); + @Shadow @Deprecated protected abstract void flushIfUnmanaged(); @Shadow @Final private PoseStack pose; @@ -140,6 +145,12 @@ public void renderTooltip(Font font, List textComponents, Optional kilt$gatherForgeTooltips(List original, @Local(argsOnly = true) List lines, @Local(argsOnly = true) Optional visualTooltipComponent, @Local(argsOnly = true, ordinal = 0) int mouseX, @Local(argsOnly = true) Font font) { + // Iceberg handles tooltip gathering and wrapping itself, so we should not interfere with it. + // Otherwise, we get duplicate tooltips when text wrapping is applied. + if (kilt$isIcebergLoaded) { + return original; + } + var forgeTooltips = new ArrayList<>(ForgeHooksClient.gatherTooltipComponents(this.tooltipStack, lines, visualTooltipComponent, mouseX, guiWidth(), guiHeight(), font)); // Make a copy of the original list for modification, as we also want to be able to support other mods that may be injecting into here.