package io.gitlab.jfronny.combit.mixin; import io.gitlab.jfronny.combit.Combit; import io.gitlab.jfronny.combit.config.AttackDelay; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.options.AttackIndicator; import net.minecraft.client.util.math.MatrixStack; 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; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(InGameHud.class) public class InGameHudMixin { @Shadow @Final private MinecraftClient client; private AttackIndicator combit_a; @Inject(at = @At("HEAD"), method = "renderCrosshair(Lnet/minecraft/client/util/math/MatrixStack;)V") private void renderCrosshair(MatrixStack matrices, CallbackInfo info) { AttackDelay attackDelay = Combit.getCfg().attackDelay; if (attackDelay.enable && attackDelay.cooldownProgressOverride >= 0) { combit_a = this.client.options.attackIndicator; this.client.options.attackIndicator = AttackIndicator.OFF; } } @Inject(at = @At("RETURN"), method = "renderCrosshair(Lnet/minecraft/client/util/math/MatrixStack;)V") private void renderCrosshairPost(MatrixStack matrices, CallbackInfo info) { AttackDelay attackDelay = Combit.getCfg().attackDelay; if (attackDelay.enable && attackDelay.cooldownProgressOverride >= 0) { this.client.options.attackIndicator = combit_a; } } }