diff --git a/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptFileInfo.java b/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptFileInfo.java index 0c068d422..226e0c581 100644 --- a/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptFileInfo.java +++ b/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptFileInfo.java @@ -96,23 +96,23 @@ public int getPriority() { return priority; } - public boolean skipLoading() { + public String skipLoading() { if (ignored) { - return true; + return "Ignored"; } if (!packMode.isEmpty() && !packMode.equals(CommonProperties.get().packMode)) { - return true; + return "Pack mode mismatch"; } if (!requiredMods.isEmpty()) { for (String mod : requiredMods) { if (!Platform.isModLoaded(mod)) { - return true; + return "Mod " + mod + " is not loaded"; } } } - return false; + return ""; } } diff --git a/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptManager.java b/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptManager.java index dfdf34fd2..d6041d77a 100644 --- a/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptManager.java +++ b/common/src/main/java/dev/latvian/mods/kubejs/script/ScriptManager.java @@ -78,8 +78,23 @@ public void reload(@Nullable ResourceManager resourceManager) { load(); } + private void loadFile(ScriptPack pack, ScriptFileInfo fileInfo, ScriptSource source) { + try { + fileInfo.preload(source); + var skip = fileInfo.skipLoading(); + + if (skip.isEmpty()) { + pack.scripts.add(new ScriptFile(pack, fileInfo, source)); + } else { + scriptType.console.info("Skipped " + fileInfo.location + ": " + skip); + } + } catch (Throwable error) { + scriptType.console.error("Failed to pre-load script file " + fileInfo.location + ": " + error); + } + } + private void loadFromResources(ResourceManager resourceManager) { - var packMap = new HashMap>(); + Map> packMap = new HashMap<>(); for (var resource : resourceManager.listResources("kubejs", s -> s.getPath().endsWith(".js") || s.getPath().endsWith(".ts") && !s.getPath().endsWith(".d.ts")).keySet()) { packMap.computeIfAbsent(resource.getNamespace(), s -> new ArrayList<>()).add(resource); @@ -94,17 +109,7 @@ private void loadFromResources(ResourceManager resourceManager) { for (var fileInfo : pack.info.scripts) { var scriptSource = (ScriptSource.FromResource) info -> resourceManager.getResourceOrThrow(info.id); - var error = fileInfo.preload(scriptSource); - - if (fileInfo.skipLoading()) { - continue; - } - - if (error == null) { - pack.scripts.add(new ScriptFile(pack, fileInfo, scriptSource)); - } else { - scriptType.console.error("Failed to pre-load script file " + fileInfo.location + ": " + error); - } + loadFile(pack, fileInfo, scriptSource); } pack.scripts.sort(null); @@ -137,18 +142,7 @@ public void loadFromDirectory() { for (var fileInfo : pack.info.scripts) { var scriptSource = (ScriptSource.FromPath) info -> directory.resolve(info.file); - - var error = fileInfo.preload(scriptSource); - - if (fileInfo.skipLoading()) { - continue; - } - - if (error == null) { - pack.scripts.add(new ScriptFile(pack, fileInfo, scriptSource)); - } else { - KubeJS.LOGGER.error("Failed to pre-load script file " + fileInfo.location + ": " + error); - } + loadFile(pack, fileInfo, scriptSource); } pack.scripts.sort(null);