Skip to content

Commit 8b426d9

Browse files
committed
Even more mixins
1 parent a05bb88 commit 8b426d9

20 files changed

+171
-160
lines changed

src/main/java/com/lambda/mixin/MinecraftClientMixin.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import net.minecraft.util.hit.HitResult;
4747
import net.minecraft.util.thread.ThreadExecutor;
4848
import org.jetbrains.annotations.Nullable;
49+
import org.objectweb.asm.Opcodes;
4950
import org.spongepowered.asm.mixin.Mixin;
5051
import org.spongepowered.asm.mixin.Shadow;
5152
import org.spongepowered.asm.mixin.Unique;
@@ -106,18 +107,18 @@ void onInput(MinecraftClient instance, Operation<Void> original) {
106107
this.lambda$inputHandledThisTick = true;
107108
}
108109

109-
@WrapOperation(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;tick()V"))
110-
void onWorldRenderer(WorldRenderer instance, Operation<Void> original) {
111-
if (!this.lambda$inputHandledThisTick) {
112-
EventFlow.post(TickEvent.Input.Pre.INSTANCE);
113-
EventFlow.post(TickEvent.Input.Post.INSTANCE);
114-
this.lambda$inputHandledThisTick = true;
115-
}
116-
117-
EventFlow.post(TickEvent.WorldRender.Pre.INSTANCE);
118-
original.call(instance);
119-
EventFlow.post(TickEvent.WorldRender.Post.INSTANCE);
120-
}
110+
// @WrapOperation(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;tick()V"))
111+
// void onWorldRenderer(WorldRenderer instance, Operation<Void> original) {
112+
// if (!this.lambda$inputHandledThisTick) {
113+
// EventFlow.post(TickEvent.Input.Pre.INSTANCE);
114+
// EventFlow.post(TickEvent.Input.Post.INSTANCE);
115+
// this.lambda$inputHandledThisTick = true;
116+
// }
117+
//
118+
// EventFlow.post(TickEvent.WorldRender.Pre.INSTANCE);
119+
// original.call(instance);
120+
// EventFlow.post(TickEvent.WorldRender.Post.INSTANCE);
121+
// }
121122

122123
@WrapOperation(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/sound/SoundManager;tick(Z)V"))
123124
void onSound(SoundManager instance, boolean paused, Operation<Void> original) {
@@ -134,7 +135,7 @@ private void onShutdown(CallbackInfo ci) {
134135
/**
135136
* Inject after the thread field is set so that {@link ThreadExecutor#getThread} is available
136137
*/
137-
@Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;thread:Ljava/lang/Thread;", shift = At.Shift.AFTER, ordinal = 0), method = "run")
138+
@Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;thread:Ljava/lang/Thread;", shift = At.Shift.AFTER, ordinal = 0, opcode = Opcodes.PUTFIELD), method = "run")
138139
private void onStartup(CallbackInfo ci) {
139140
EventFlow.post(new ClientEvent.Startup());
140141
}

src/main/java/com/lambda/mixin/render/ArmorFeatureRendererMixin.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@
1919

2020
import com.lambda.module.modules.render.NoRender;
2121
import net.minecraft.client.render.VertexConsumerProvider;
22+
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
2223
import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer;
2324
import net.minecraft.client.render.entity.state.BipedEntityRenderState;
25+
import net.minecraft.client.render.entity.state.EntityRenderState;
2426
import net.minecraft.client.util.math.MatrixStack;
2527
import org.spongepowered.asm.mixin.Mixin;
2628
import org.spongepowered.asm.mixin.injection.At;
@@ -29,8 +31,8 @@
2931

3032
@Mixin(ArmorFeatureRenderer.class)
3133
public class ArmorFeatureRendererMixin {
32-
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true)
33-
private void injectRender(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, BipedEntityRenderState bipedEntityRenderState, float f, float g, CallbackInfo ci) {
34+
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/EntityRenderState;FF)V", at = @At("HEAD"), cancellable = true)
35+
private void injectRender(MatrixStack matrices, OrderedRenderCommandQueue queue, int light, EntityRenderState state, float limbAngle, float limbDistance, CallbackInfo ci) {
3436
if (NoRender.INSTANCE.isEnabled() && NoRender.getNoArmor()) ci.cancel();
3537
}
3638
}

src/main/java/com/lambda/mixin/render/BackgroundRendererMixin.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import net.minecraft.client.render.fog.DarknessEffectFogModifier;
2323
import net.minecraft.block.enums.CameraSubmersionType;
2424
import net.minecraft.entity.Entity;
25+
import net.minecraft.entity.LivingEntity;
2526
import org.spongepowered.asm.mixin.Mixin;
2627
import org.spongepowered.asm.mixin.injection.At;
2728
import org.spongepowered.asm.mixin.injection.Inject;
@@ -36,10 +37,10 @@
3637
@Mixin(BlindnessEffectFogModifier.class)
3738
public class BackgroundRendererMixin {
3839

39-
@Inject(method = "shouldApply", at = @At("HEAD"), cancellable = true)
40-
private void injectShouldApplyBlindness(CameraSubmersionType submersionType, Entity cameraEntity, CallbackInfoReturnable<Boolean> cir) {
41-
if (NoRender.INSTANCE.getNoBlindness() && NoRender.INSTANCE.isEnabled()) {
42-
cir.setReturnValue(false);
40+
@Inject(method = "applyDarknessModifier", at = @At("HEAD"), cancellable = true)
41+
private void injectShouldApplyBlindness(LivingEntity cameraEntity, float darkness, float tickProgress, CallbackInfoReturnable<Float> cir) {
42+
if (NoRender.getNoBlindness() && NoRender.INSTANCE.isEnabled()) {
43+
cir.setReturnValue(0.0f);
4344
}
4445
}
4546
}

src/main/java/com/lambda/mixin/render/ChatInputSuggestorMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ private boolean refreshModify(boolean showCompletions) {
6565
@SuppressWarnings("unchecked")
6666
@WrapOperation(method = "refresh", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;getCommandDispatcher()Lcom/mojang/brigadier/CommandDispatcher;"))
6767
private CommandDispatcher<CommandSource> wrapRefresh(ClientPlayNetworkHandler instance, Operation<CommandDispatcher<CommandSource>> original) {
68-
return (CommandDispatcher<CommandSource>) (Object) CommandManager.INSTANCE.currentDispatcher(textField.getText());
68+
return (CommandDispatcher<CommandSource>) CommandManager.INSTANCE.currentDispatcher(textField.getText());
6969
}
7070

7171
@Inject(method = "refresh", at = @At("TAIL"))

src/main/java/com/lambda/mixin/render/DarknessEffectFogMixin.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import net.minecraft.client.render.fog.DarknessEffectFogModifier;
2222
import net.minecraft.block.enums.CameraSubmersionType;
2323
import net.minecraft.entity.Entity;
24+
import net.minecraft.entity.LivingEntity;
2425
import org.spongepowered.asm.mixin.Mixin;
2526
import org.spongepowered.asm.mixin.injection.At;
2627
import org.spongepowered.asm.mixin.injection.Inject;
@@ -32,10 +33,10 @@
3233
@Mixin(DarknessEffectFogModifier.class)
3334
public class DarknessEffectFogMixin {
3435

35-
@Inject(method = "shouldApply", at = @At("HEAD"), cancellable = true)
36-
private void injectShouldApplyDarkness(CameraSubmersionType submersionType, Entity cameraEntity, CallbackInfoReturnable<Boolean> cir) {
37-
if (NoRender.INSTANCE.getNoDarkness() && NoRender.INSTANCE.isEnabled()) {
38-
cir.setReturnValue(false);
36+
@Inject(method = "applyDarknessModifier", at = @At("HEAD"), cancellable = true)
37+
private void injectShouldApplyDarkness(LivingEntity cameraEntity, float darkness, float tickProgress, CallbackInfoReturnable<Float> cir) {
38+
if (NoRender.getNoDarkness() && NoRender.INSTANCE.isEnabled()) {
39+
cir.setReturnValue(0.0f);
3940
}
4041
}
4142
}

src/main/java/com/lambda/mixin/render/DebugHudMixin.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828

2929
@Mixin(DebugHud.class)
3030
public class DebugHudMixin {
31-
@Inject(method = "getRightText", at = @At("TAIL"))
32-
private void onGetRightText(CallbackInfoReturnable<List<String>> cir) {
33-
DebugInfoHud.addDebugInfo(cir.getReturnValue());
34-
}
31+
// @Inject(method = "getRightText", at = @At("TAIL"))
32+
// private void onGetRightText(CallbackInfoReturnable<List<String>> cir) {
33+
// DebugInfoHud.addDebugInfo(cir.getReturnValue());
34+
// }
3535
}

src/main/java/com/lambda/mixin/render/HeadFeatureRendererMixin.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919

2020
import com.lambda.module.modules.render.NoRender;
2121
import net.minecraft.client.render.VertexConsumerProvider;
22+
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
2223
import net.minecraft.client.render.entity.feature.HeadFeatureRenderer;
24+
import net.minecraft.client.render.entity.state.EntityRenderState;
2325
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
2426
import net.minecraft.client.util.math.MatrixStack;
2527
import org.spongepowered.asm.mixin.Mixin;
@@ -29,8 +31,8 @@
2931

3032
@Mixin(HeadFeatureRenderer.class)
3133
public class HeadFeatureRendererMixin {
32-
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true)
33-
private void injectRender(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, LivingEntityRenderState livingEntityRenderState, float f, float g, CallbackInfo ci) {
34+
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/EntityRenderState;FF)V", at = @At("HEAD"), cancellable = true)
35+
private void injectRender(MatrixStack matrices, OrderedRenderCommandQueue queue, int light, EntityRenderState state, float limbAngle, float limbDistance, CallbackInfo ci) {
3436
if (NoRender.INSTANCE.isEnabled() && NoRender.getNoArmor() && NoRender.getIncludeNoOtherHeadItems()) ci.cancel();
3537
}
3638
}

src/main/java/com/lambda/mixin/render/HeldItemRendererMixin.java

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -43,63 +43,63 @@ public class HeldItemRendererMixin {
4343
@Shadow private ItemStack offHand;
4444
@Shadow private float equipProgressMainHand;
4545
@Shadow private float equipProgressOffHand;
46-
47-
@Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IFFLnet/minecraft/util/Arm;)V"))
48-
private void onRenderArmHoldingItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack itemStack, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
49-
if (!ViewModel.INSTANCE.isEnabled()) return;
50-
51-
ViewModel.INSTANCE.transform(itemStack, hand, matrices);
52-
}
53-
54-
@Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", ordinal = 1))
55-
private void onRenderFirstPersonItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack itemStack, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
56-
if (!ViewModel.INSTANCE.isEnabled()) return;
57-
58-
ViewModel.INSTANCE.transform(itemStack, hand, matrices);
59-
}
60-
61-
@ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 2), index = 0)
62-
private float modifyEquipProgressMainHand(float value) {
63-
if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
64-
65-
ViewModel config = ViewModel.INSTANCE;
66-
ItemStack currentStack = client.player.getMainHandStack();
67-
if (config.getOldAnimations() && !config.getSwapAnimation()) {
68-
mainHand = currentStack;
69-
}
70-
71-
float progress = config.getOldAnimations() ? 1 : (float) Math.pow(client.player.getAttackCooldownProgress(1), 3);
72-
73-
return (ItemStack.areEqual(mainHand, currentStack) ? progress : 0) - equipProgressMainHand;
74-
}
75-
76-
@ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 3), index = 0)
77-
private float modifyEquipProgressOffHand(float value) {
78-
if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
79-
80-
ViewModel config = ViewModel.INSTANCE;
81-
82-
ItemStack currentStack = client.player.getOffHandStack();
83-
if (config.getOldAnimations() && !config.getSwapAnimation()) {
84-
offHand = currentStack;
85-
}
86-
87-
return (ItemStack.areEqual(offHand, currentStack) ? 1 : 0) - equipProgressOffHand;
88-
}
89-
90-
@ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6)
91-
private float modifySwing(float swingProgress) {
92-
ViewModel config = ViewModel.INSTANCE;
93-
MinecraftClient mc = Lambda.getMc();
94-
if (config.isDisabled() || mc.player == null) return swingProgress;
95-
Hand hand = MoreObjects.firstNonNull(mc.player.preferredHand, Hand.MAIN_HAND);
96-
97-
if (hand == Hand.MAIN_HAND) {
98-
return swingProgress + config.getMainSwingProgress();
99-
} else if (hand == Hand.OFF_HAND) {
100-
return swingProgress + config.getOffhandSwingProgress();
101-
}
102-
103-
return swingProgress;
104-
}
46+
//
47+
// @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IFFLnet/minecraft/util/Arm;)V"))
48+
// private void onRenderArmHoldingItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack itemStack, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
49+
// if (!ViewModel.INSTANCE.isEnabled()) return;
50+
//
51+
// ViewModel.INSTANCE.transform(itemStack, hand, matrices);
52+
// }
53+
//
54+
// @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", ordinal = 1))
55+
// private void onRenderFirstPersonItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack itemStack, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
56+
// if (!ViewModel.INSTANCE.isEnabled()) return;
57+
//
58+
// ViewModel.INSTANCE.transform(itemStack, hand, matrices);
59+
// }
60+
//
61+
// @ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 2), index = 0)
62+
// private float modifyEquipProgressMainHand(float value) {
63+
// if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
64+
//
65+
// ViewModel config = ViewModel.INSTANCE;
66+
// ItemStack currentStack = client.player.getMainHandStack();
67+
// if (config.getOldAnimations() && !config.getSwapAnimation()) {
68+
// mainHand = currentStack;
69+
// }
70+
//
71+
// float progress = config.getOldAnimations() ? 1 : (float) Math.pow(client.player.getAttackCooldownProgress(1), 3);
72+
//
73+
// return (ItemStack.areEqual(mainHand, currentStack) ? progress : 0) - equipProgressMainHand;
74+
// }
75+
//
76+
// @ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 3), index = 0)
77+
// private float modifyEquipProgressOffHand(float value) {
78+
// if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
79+
//
80+
// ViewModel config = ViewModel.INSTANCE;
81+
//
82+
// ItemStack currentStack = client.player.getOffHandStack();
83+
// if (config.getOldAnimations() && !config.getSwapAnimation()) {
84+
// offHand = currentStack;
85+
// }
86+
//
87+
// return (ItemStack.areEqual(offHand, currentStack) ? 1 : 0) - equipProgressOffHand;
88+
// }
89+
//
90+
// @ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6)
91+
// private float modifySwing(float swingProgress) {
92+
// ViewModel config = ViewModel.INSTANCE;
93+
// MinecraftClient mc = Lambda.getMc();
94+
// if (config.isDisabled() || mc.player == null) return swingProgress;
95+
// Hand hand = MoreObjects.firstNonNull(mc.player.preferredHand, Hand.MAIN_HAND);
96+
//
97+
// if (hand == Hand.MAIN_HAND) {
98+
// return swingProgress + config.getMainSwingProgress();
99+
// } else if (hand == Hand.OFF_HAND) {
100+
// return swingProgress + config.getOffhandSwingProgress();
101+
// }
102+
//
103+
// return swingProgress;
104+
// }
105105
}

src/main/java/com/lambda/mixin/render/InGameOverlayRendererMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
@Mixin(InGameOverlayRenderer.class)
3333
public class InGameOverlayRendererMixin {
3434
@WrapMethod(method = "renderFireOverlay")
35-
private static void wrapRenderFireOverlay(MatrixStack matrices, VertexConsumerProvider vertexConsumers, Operation<Void> original) {
35+
private static void wrapRenderFireOverlay(MatrixStack matrices, VertexConsumerProvider vertexConsumers, Sprite sprite, Operation<Void> original) {
3636
if (!(NoRender.INSTANCE.isEnabled() && NoRender.getNoFireOverlay())) {
37-
original.call(matrices, vertexConsumers);
37+
original.call(matrices, vertexConsumers, sprite);
3838
}
3939
}
4040

src/main/java/com/lambda/mixin/render/LightmapTextureManagerMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private void injectUpdate(float tickProgress, CallbackInfo ci) {
5454

5555
@ModifyReturnValue(method = "getDarkness", at = @At("RETURN"))
5656
private float modifyGetDarkness(float original, LivingEntity entity, float factor, float tickProgress) {
57-
if (NoRender.INSTANCE.getNoDarkness() && NoRender.INSTANCE.isEnabled()) return 0.0f;
57+
if (NoRender.getNoDarkness() && NoRender.INSTANCE.isEnabled()) return 0.0f;
5858
return original;
5959
}
6060
}

0 commit comments

Comments
 (0)