|
20 | 20 | import com.lambda.Lambda; |
21 | 21 | import com.lambda.event.EventFlow; |
22 | 22 | import com.lambda.event.events.MovementEvent; |
23 | | -import com.lambda.interaction.BaritoneHandler; |
| 23 | +import com.lambda.interaction.handlers.BaritoneHandler; |
| 24 | +import com.lambda.interaction.handlers.GlideHandler; |
24 | 25 | import com.lambda.interaction.managers.rotating.RotationManager; |
25 | | -import com.lambda.module.modules.movement.elytrafly.ElytraFly; |
26 | 26 | import com.lambda.module.modules.player.Reach; |
27 | 27 | import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod; |
28 | 28 | import com.llamalad7.mixinextras.injector.wrapoperation.Operation; |
29 | 29 | import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; |
30 | | -import kotlin.Unit; |
31 | 30 | import net.minecraft.entity.player.PlayerEntity; |
32 | 31 | import org.spongepowered.asm.mixin.Mixin; |
33 | 32 | import org.spongepowered.asm.mixin.injection.At; |
34 | 33 | import org.spongepowered.asm.mixin.injection.Inject; |
35 | 34 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; |
36 | 35 |
|
37 | | -import static com.lambda.threading.ThreadingKt.runSafe; |
38 | | - |
39 | 36 | @Mixin(PlayerEntity.class) |
40 | | -public class PlayerEntityMixin { |
| 37 | +public abstract class PlayerEntityMixin { |
41 | 38 | @Inject(method = "clipAtLedge", at = @At(value = "HEAD"), cancellable = true) |
42 | 39 | private void injectSafeWalk(CallbackInfoReturnable<Boolean> cir) { |
43 | 40 | MovementEvent.ClipAtLedge event = new MovementEvent.ClipAtLedge(((PlayerEntity) (Object) this).isSneaking()); |
@@ -70,16 +67,9 @@ private double wrapGetEntityInteractionRange(Operation<Double> original) { |
70 | 67 | return original.call(); |
71 | 68 | } |
72 | 69 |
|
73 | | - @WrapOperation(method = "checkGliding", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;startGliding()V")) |
74 | | - private void injectCheckGliding(PlayerEntity instance, Operation<Void> original) { |
75 | | - final var elytraFly = ElytraFly.getMode().getElytraFly(); |
76 | | - if (!elytraFly.isEnabled() || !ElytraFly.INSTANCE.getFakeFly()) { |
77 | | - original.call(instance); |
78 | | - return; |
79 | | - } |
80 | | - runSafe(safeContext -> { |
81 | | - elytraFly.flyOrFakeFly(safeContext, null); |
82 | | - return Unit.INSTANCE; |
83 | | - }); |
| 70 | + @Inject(method = "checkGliding", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;startGliding()V"), cancellable = true) |
| 71 | + private void injectCheckGliding(CallbackInfoReturnable<Boolean> cir) { |
| 72 | + if ((Object) this != Lambda.getMc().player) return; |
| 73 | + if (GlideHandler.getOverridingGlide()) cir.setReturnValue(false); |
84 | 74 | } |
85 | 75 | } |
0 commit comments