From f3bdaaac8e0e61addb2ab6356532bda56e6c64cf Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 24 Aug 2021 16:59:59 +0200 Subject: [PATCH] Make sure we do not close the jar filesystem when cheking for mods (otherwise resources might fail) --- src/main/java/ru/bclib/util/ModUtil.java | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/bclib/util/ModUtil.java b/src/main/java/ru/bclib/util/ModUtil.java index 4785c917..db873bc5 100644 --- a/src/main/java/ru/bclib/util/ModUtil.java +++ b/src/main/java/ru/bclib/util/ModUtil.java @@ -51,16 +51,17 @@ public class ModUtil { PathUtil.fileWalker(PathUtil.MOD_FOLDER.toFile(), false, (file -> { try { URI uri = URI.create("jar:" + file.toUri()); - - try (FileSystem fs = FileSystems.getFileSystem(uri)) { - final JarFile jarFile = new JarFile(file.toString()); - Path modMetaFile = fs.getPath("fabric.mod.json"); - - ModMetadata mc = ModMetadataParser.parseMetadata(logger, modMetaFile); - mods.put(mc.getId(), new ModInfo(mc, file)); - } - catch (ParseMetadataException e) { - BCLib.LOGGER.error(e.getMessage()); + FileSystem fs = FileSystems.getFileSystem(uri); + if (fs!=null) { + try { + Path modMetaFile = fs.getPath("fabric.mod.json"); + if (modMetaFile != null) { + ModMetadata mc = ModMetadataParser.parseMetadata(logger, modMetaFile); + mods.put(mc.getId(), new ModInfo(mc, file)); + } + } catch (ParseMetadataException e) { + BCLib.LOGGER.error(e.getMessage()); + } } } catch (IOException e) {