From 3a6e5541fb79270a4e8421dbd298281444ecc91c Mon Sep 17 00:00:00 2001 From: Brady Date: Sun, 30 Jul 2023 17:48:40 -0500 Subject: [PATCH] Don't deploy elytra while PathingBehavior is active --- .../launch/mixins/MixinEntityPlayerSP.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/launch/java/baritone/launch/mixins/MixinEntityPlayerSP.java b/src/launch/java/baritone/launch/mixins/MixinEntityPlayerSP.java index 281ff96f5..efc56ca65 100644 --- a/src/launch/java/baritone/launch/mixins/MixinEntityPlayerSP.java +++ b/src/launch/java/baritone/launch/mixins/MixinEntityPlayerSP.java @@ -27,6 +27,8 @@ import baritone.behavior.LookBehavior; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.player.PlayerCapabilities; +import net.minecraft.item.ItemElytra; +import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -123,4 +125,19 @@ public class MixinEntityPlayerSP { ((LookBehavior) baritone.getLookBehavior()).pig(); } } + + @Redirect( + method = "onLivingUpdate", + at = @At( + value = "INVOKE", + target = "net/minecraft/item/ItemElytra.isUsable(Lnet/minecraft/item/ItemStack;)Z" + ) + ) + private boolean isElytraUsable(ItemStack stack) { + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((EntityPlayerSP) (Object) this); + if (baritone != null && baritone.getPathingBehavior().isPathing()) { + return false; + } + return ItemElytra.isUsable(stack); + } }