예제 #1
0
파일: ModInfo.java 프로젝트: saki-saki/HMCL
 private static ModInfo getLiteLoaderModInfo(File f, ZipFile jar, ZipEntry entry)
     throws IOException {
   ModInfo m = C.gson.fromJson(new InputStreamReader(jar.getInputStream(entry)), ModInfo.class);
   if (m == null) m = new ModInfo();
   m.location = f;
   return m;
 }
예제 #2
0
파일: ModInfo.java 프로젝트: saki-saki/HMCL
 private static ModInfo getForgeModInfo(File f, ZipFile jar, ZipEntry entry) throws IOException {
   ModInfo i = new ModInfo();
   i.location = f;
   List<ModInfo> m =
       C.gson.fromJson(
           new InputStreamReader(jar.getInputStream(entry)),
           new TypeToken<List<ModInfo>>() {}.getType());
   if (m != null && m.size() > 0) {
     i = m.get(0);
     i.location = f;
   }
   return i;
 }
예제 #3
0
파일: ModInfo.java 프로젝트: saki-saki/HMCL
 public static ModInfo readModInfo(File f) {
   ModInfo i = new ModInfo();
   i.location = f;
   try {
     try (ZipFile jar = new ZipFile(f)) {
       ZipEntry entry = jar.getEntry("mcmod.info");
       if (entry != null) return getForgeModInfo(f, jar, entry);
       entry = jar.getEntry("litemod.json");
       if (entry != null) return getLiteLoaderModInfo(f, jar, entry);
       return i;
     }
   } catch (IOException ex) {
     HMCLog.warn("File " + f + " is not a jar.", ex);
   } catch (JsonSyntaxException ignore) {
   }
   return i;
 }
예제 #4
0
파일: ModInfo.java 프로젝트: saki-saki/HMCL
 @Override
 public int compareTo(ModInfo o) {
   return getFileName().toLowerCase().compareTo(o.getFileName().toLowerCase());
 }