package com.legacy.aether.client; import com.legacy.aether.entities.passive.mountable.EntitySwet; import com.legacy.aether.entities.util.EntityMountable; import com.legacy.aether.entities.util.EntitySaddleMount; import com.legacy.aether.network.AetherNetwork; import com.legacy.aether.network.packets.PacketSendSneaking; import net.minecraft.client.Minecraft; import net.minecraft.client.settings.GameSettings; import net.minecraft.util.MovementInputFromOptions; public class AetherMovementInput extends MovementInputFromOptions { private Minecraft mc; private GameSettings gameSettings; private boolean currentSneak; private boolean previousSneak; public AetherMovementInput(Minecraft mc, GameSettings gameSettings) { super(gameSettings); this.mc = mc; this.gameSettings = gameSettings; } @Override public void updatePlayerMoveState() { super.updatePlayerMoveState(); this.jump = this.gameSettings.keyBindJump.getIsKeyPressed(); boolean isSneaking = this.gameSettings.keyBindSneak.getIsKeyPressed(); this.sneak = isSneaking; if (this.mc.thePlayer == null) { return; } if (this.mc.thePlayer.ridingEntity instanceof EntitySaddleMount) { if (this.mc.thePlayer.ridingEntity instanceof EntitySaddleMount) { this.sneak = false; this.currentSneak = isSneaking; if (this.previousSneak != this.currentSneak) { AetherNetwork.sendToServer(new PacketSendSneaking(this.mc.thePlayer.getEntityId(), this.currentSneak)); this.previousSneak = this.currentSneak; } if (((EntityMountable) this.mc.thePlayer.ridingEntity).isOnGround()) { this.sneak = isSneaking; } } } else if (this.mc.thePlayer.ridingEntity instanceof EntitySwet && !((EntitySwet) this.mc.thePlayer.ridingEntity).isFriendly()) { this.sneak = false; } } }