|
6 | 6 | package meteordevelopment.meteorclient.mixin; |
7 | 7 |
|
8 | 8 | import com.llamalad7.mixinextras.injector.ModifyExpressionValue; |
| 9 | +import com.llamalad7.mixinextras.injector.ModifyReturnValue; |
9 | 10 | import com.llamalad7.mixinextras.sugar.Local; |
10 | 11 | import com.mojang.blaze3d.systems.RenderSystem; |
11 | 12 | import meteordevelopment.meteorclient.MeteorClient; |
|
32 | 33 | import net.minecraft.entity.Entity; |
33 | 34 | import net.minecraft.item.ItemStack; |
34 | 35 | import net.minecraft.item.Items; |
| 36 | +import net.minecraft.util.hit.EntityHitResult; |
35 | 37 | import net.minecraft.util.hit.HitResult; |
36 | 38 | import org.joml.Matrix4f; |
37 | 39 | import org.spongepowered.asm.mixin.Final; |
|
42 | 44 | import org.spongepowered.asm.mixin.injection.Inject; |
43 | 45 | import org.spongepowered.asm.mixin.injection.Redirect; |
44 | 46 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
45 | | -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; |
46 | 47 | import org.spongepowered.asm.mixin.injection.callback.LocalCapture; |
47 | 48 |
|
48 | 49 | @Mixin(GameRenderer.class) |
@@ -122,11 +123,12 @@ private void onRenderWorldTail(CallbackInfo info) { |
122 | 123 | MeteorClient.EVENT_BUS.post(RenderAfterWorldEvent.get()); |
123 | 124 | } |
124 | 125 |
|
125 | | - @Inject(method = "findCrosshairTarget", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/projectile/ProjectileUtil;raycast(Lnet/minecraft/entity/Entity;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Box;Ljava/util/function/Predicate;D)Lnet/minecraft/util/hit/EntityHitResult;"), cancellable = true) |
126 | | - private void onUpdateTargetedEntity(Entity camera, double blockInteractionRange, double entityInteractionRange, float tickDelta, CallbackInfoReturnable<HitResult> cir, @Local HitResult hitResult) { |
127 | | - if (Modules.get().get(NoMiningTrace.class).canWork() && hitResult.getType() == HitResult.Type.BLOCK) { |
128 | | - cir.setReturnValue(hitResult); |
| 126 | + @ModifyReturnValue(method = "findCrosshairTarget", at = @At("RETURN")) |
| 127 | + private HitResult onUpdateTargetedEntity(HitResult original, @Local HitResult hitResult) { |
| 128 | + if (Modules.get().get(NoMiningTrace.class).canWork(original instanceof EntityHitResult ehr ? ehr.getEntity() : null) && hitResult.getType() == HitResult.Type.BLOCK) { |
| 129 | + return hitResult; |
129 | 130 | } |
| 131 | + return original; |
130 | 132 | } |
131 | 133 |
|
132 | 134 | @Redirect(method = "findCrosshairTarget", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;raycast(DFZ)Lnet/minecraft/util/hit/HitResult;")) |
|
0 commit comments