From b3148c6eda28845cca93873cb71fe86032c7aea1 Mon Sep 17 00:00:00 2001 From: MicrocontrollersDev Date: Fri, 18 Jul 2025 14:35:24 -0700 Subject: [PATCH] fix MC-268420 --- PATCHED.md | 1 + .../mixins/basic/mc268420/GuiMixin.java | 28 +++++++++++++++++++ .../resources/debugify.client.mixins.json | 1 + 3 files changed, 30 insertions(+) create mode 100644 src/client/java/dev/isxander/debugify/client/mixins/basic/mc268420/GuiMixin.java diff --git a/PATCHED.md b/PATCHED.md index 0933aac5..5729a306 100644 --- a/PATCHED.md +++ b/PATCHED.md @@ -28,6 +28,7 @@ | Basic | [MC-217716](https://bugs.mojang.com/browse/MC-217716) | The green nausea overlay isn't removed when switching into spectator mode | | Basic | [MC-231097](https://bugs.mojang.com/browse/MC-231097) | Holding the "Use" button continues to slow down the player even after the used item has been dropped | | Basic | [MC-237493](https://bugs.mojang.com/browse/MC-237493) | Telemetry cannot be disabled | +| Basic | [MC-268420](https://bugs.mojang.com/browse/MC-268420) | Cooldown indicator flashes when switching items with high attack speed attribute | ### Server Side (Both) | Type | Bug ID | Name | diff --git a/src/client/java/dev/isxander/debugify/client/mixins/basic/mc268420/GuiMixin.java b/src/client/java/dev/isxander/debugify/client/mixins/basic/mc268420/GuiMixin.java new file mode 100644 index 00000000..75301fde --- /dev/null +++ b/src/client/java/dev/isxander/debugify/client/mixins/basic/mc268420/GuiMixin.java @@ -0,0 +1,28 @@ +package dev.isxander.debugify.client.mixins.basic.mc268420; + +import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; +import com.mojang.blaze3d.pipeline.RenderPipeline; +import dev.isxander.debugify.fixes.BugFix; +import dev.isxander.debugify.fixes.FixCategory; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.resources.ResourceLocation; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@BugFix(id = "MC-268420", category = FixCategory.BASIC, env = BugFix.Env.CLIENT, description = "Cooldown indicator flashes when switching items with high attack speed attribute") +@Mixin(Gui.class) +public class GuiMixin { + @Shadow + @Final + private Minecraft minecraft; + + // the FULL sprite never shows anyway so no need to wrap it + @WrapWithCondition(method = "renderCrosshair", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiGraphics;blitSprite(Lcom/mojang/blaze3d/pipeline/RenderPipeline;Lnet/minecraft/resources/ResourceLocation;IIII)V", ordinal = 2)) + private boolean fixAttackIndicatorFlashing(GuiGraphics instance, RenderPipeline renderPipeline, ResourceLocation resourceLocation, int i, int j, int k, int l) { + return this.minecraft.player.getAttackStrengthScale(0.0F) * 17F > 0; + } +} diff --git a/src/client/resources/debugify.client.mixins.json b/src/client/resources/debugify.client.mixins.json index 0830f791..c1222403 100644 --- a/src/client/resources/debugify.client.mixins.json +++ b/src/client/resources/debugify.client.mixins.json @@ -30,6 +30,7 @@ "basic.mc237493.TelemetryEventWidgetMixin", "basic.mc237493.TelemetryInfoScreenMixin", "basic.mc263865.KeyboardHandlerMixin", + "basic.mc268420.GuiMixin", "basic.mc4490.FishingHookRendererMixin", "basic.mc46503.ClientPacketListenerMixin", "basic.mc46766.MinecraftMixin",