public void handleFlying(Packet10Flying var1) {
    EntityPlayerSP var2 = this.mc.thePlayer;
    double var3 = var2.posX;
    double var5 = var2.posY;
    double var7 = var2.posZ;
    float var9 = var2.rotationYaw;
    float var10 = var2.rotationPitch;
    if (var1.moving) {
      var3 = var1.xPosition;
      var5 = var1.yPosition;
      var7 = var1.zPosition;
    }

    if (var1.rotating) {
      var9 = var1.yaw;
      var10 = var1.pitch;
    }

    var2.ySize = 0.0F;
    var2.motionX = var2.motionY = var2.motionZ = 0.0D;
    var2.setPositionAndRotation(var3, var5, var7, var9, var10);
    var1.xPosition = var2.posX;
    var1.yPosition = var2.boundingBox.minY;
    var1.zPosition = var2.posZ;
    var1.stance = var2.posY;

    this.netManager.addToSendQueue(var1);
    if (!this.field_1210_g) {
      this.mc.thePlayer.prevPosX = this.mc.thePlayer.posX;
      this.mc.thePlayer.prevPosY = this.mc.thePlayer.posY;
      this.mc.thePlayer.prevPosZ = this.mc.thePlayer.posZ;
      this.field_1210_g = true;

      // Spout Start
      if (SpoutClient.getInstance().isSpoutEnabled()) {
        if (FileDownloadThread.preCacheCompleted.get() == 0L) {
          return;
        }
      }
      // Spout End
      this.mc.displayGuiScreen((GuiScreen) null);
    }
  }