public static void registerModInJar(String modid, File jar) {
    try {
      ZipFile zipfile = new ZipFile(jar);
      Enumeration enumeration = zipfile.entries();
      while (enumeration.hasMoreElements()) {
        ZipEntry zipentry = (ZipEntry) enumeration.nextElement();
        String fileName = zipentry.getName();
        Path path1 = Paths.get(fileName);
        Path path2 = Paths.get("assets", modid, "books");

        if (path1.startsWith(path2)) {
          try {
            String json = IOUtils.toString(zipfile.getInputStream(zipentry));
            BookData data =
                BookRegistry.register(GsonClientHelper.getGson().fromJson(json, BookData.class));
            ELogger.log(
                Level.INFO,
                "Successfully loaded in the book with the unique identifier: "
                    + data.uniqueName
                    + " for the language: "
                    + data.language);
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      }

      zipfile.close();
    } catch (Exception e) {
    }
  }
  // Loads in all the books from the config directory
  public static void init() {
    File directory = new File(Enchiridion.root, "books");
    if (!directory.exists() && !directory.mkdirs()) {
      throw new IllegalStateException("Couldn't create dir: " + directory);
    }

    Collection<File> files = FileUtils.listFiles(directory, new String[] {"json"}, true);
    for (File file : files) {
      // Read all the json books from this directory
      try {
        BookRegistry.register(
            GsonClientHelper.getGson().fromJson(FileUtils.readFileToString(file), BookData.class));
      } catch (Exception e) {
        BookRegistry.register(new BookData(file.getName().replace(".json", "")));
      }
    }
  }
  public static void registerModInDev(String modid, File source) {
    File path = FileHelper.getDevAssetsForModPath(source.getParentFile(), modid, "books");
    if (!path.exists()) {
      path.mkdir();
    }

    Collection<File> files = FileUtils.listFiles(path, new String[] {"json"}, true);
    for (File file : files) {
      try {
        String json = FileUtils.readFileToString(file);
        BookData data =
            BookRegistry.register(GsonClientHelper.getGson().fromJson(json, BookData.class));
        ELogger.log(
            Level.INFO,
            "Successfully loaded in the book with the unique identifier: "
                + data.uniqueName
                + " for the language: "
                + data.language);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }