public void unzip(String zipFile, String id) throws Exception {
      
        downloadPack.passwordLbl.setText("Extracting Files");
        Console.log("Extracting " + id.replace("_", " ") );
        downloadPack.progress.setValue(0);
      
        int BUFFER = 2048;
        File file = new File(zipFile);

        ZipFile zip = new ZipFile(file);
        String newPath = zipFile.substring(0, zipFile.length() - 4);

        Enumeration zipFileEntries = zip.entries();

        while (zipFileEntries.hasMoreElements())
        {
          ZipEntry entry = (ZipEntry)zipFileEntries.nextElement();
          String currentEntry = entry.getName();
          File destFile = new File(file.getParentFile(), currentEntry);

          File destinationParent = destFile.getParentFile();
          int fileSize = zip.size();

          destinationParent.mkdirs();

          if (!entry.isDirectory())
          {
            BufferedInputStream is = new BufferedInputStream(zip.getInputStream(entry)); Throwable localThrowable3 = null;
            try
            {
              byte[] data = new byte[BUFFER];

              FileOutputStream fos = new FileOutputStream(destFile);
              BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER); Throwable localThrowable4 = null;
              try
              {
                int currentByte;
                while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
                  downloadPack.progress.setValue( (int)(currentByte * 100L / fileSize) );
                  dest.write(data, 0, currentByte);
                }
                dest.flush();
              }
              catch (Throwable localThrowable1)
              {
                localThrowable4 = localThrowable1; throw localThrowable1;
              }
              finally
              {
                  is.close();
                  dest.close();
                  fos.close();
              }
            }
            catch (Throwable localThrowable2)
            {
              localThrowable3 = localThrowable2; throw localThrowable2;
            }
          }
        }
        zip.close();
        file.delete();

        downloadPack.passwordLbl.setText("Finnished!");

        downloadMC();
    }