public boolean isRidingHorse() { Entity entity = this.getRidingEntity(); return this.isRiding() && entity instanceof IJumpingMount && ((IJumpingMount)entity).canJump(); }
/** * Processes a range of action-types: sneaking, sprinting, waking from sleep, opening the inventory or setting jump * height of the horse the player is riding */ public void processEntityAction(CPacketEntityAction packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); this.playerEntity.markPlayerActive(); switch (packetIn.getAction()) { case START_SNEAKING: this.playerEntity.setSneaking(true); break; case STOP_SNEAKING: this.playerEntity.setSneaking(false); break; case START_SPRINTING: this.playerEntity.setSprinting(true); break; case STOP_SPRINTING: this.playerEntity.setSprinting(false); break; case STOP_SLEEPING: this.playerEntity.wakeUpPlayer(false, true, true); this.targetPos = new Vec3d(this.playerEntity.posX, this.playerEntity.posY, this.playerEntity.posZ); break; case START_RIDING_JUMP: if (this.playerEntity.getRidingEntity() instanceof IJumpingMount) { IJumpingMount ijumpingmount1 = (IJumpingMount)this.playerEntity.getRidingEntity(); int i = packetIn.getAuxData(); if (ijumpingmount1.canJump() && i > 0) { ijumpingmount1.handleStartJump(i); } } break; case STOP_RIDING_JUMP: if (this.playerEntity.getRidingEntity() instanceof IJumpingMount) { IJumpingMount ijumpingmount = (IJumpingMount)this.playerEntity.getRidingEntity(); ijumpingmount.handleStopJump(); } break; case OPEN_INVENTORY: if (this.playerEntity.getRidingEntity() instanceof EntityHorse) { ((EntityHorse)this.playerEntity.getRidingEntity()).openGUI(this.playerEntity); } break; case START_FALL_FLYING: if (!this.playerEntity.onGround && this.playerEntity.motionY < 0.0D && !this.playerEntity.isElytraFlying() && !this.playerEntity.isInWater()) { ItemStack itemstack = this.playerEntity.getItemStackFromSlot(EntityEquipmentSlot.CHEST); if (itemstack != null && itemstack.getItem() == Items.ELYTRA && ItemElytra.isBroken(itemstack)) { this.playerEntity.setElytraFlying(); } } else { this.playerEntity.clearElytraFlying(); } break; default: throw new IllegalArgumentException("Invalid client command!"); } }