From 6b0cc0862f1ed4c55c7a69e457fecd30c514fd13 Mon Sep 17 00:00:00 2001 From: Reider745 Date: Fri, 21 Mar 2025 06:13:53 +0300 Subject: [PATCH] Fixed: nullable patches --- .../com/reider745/patch/PatchPreLoader.java | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/reider745/patch/PatchPreLoader.java b/src/main/java/com/reider745/patch/PatchPreLoader.java index e81538a8..6fca84b4 100644 --- a/src/main/java/com/reider745/patch/PatchPreLoader.java +++ b/src/main/java/com/reider745/patch/PatchPreLoader.java @@ -37,26 +37,33 @@ public class PatchPreLoader { } public void init() { - for(File patch : Objects.requireNonNull(patches.listFiles((dir, name) -> name.endsWith(".jar")))) { - try { - final URLClassLoader mainLoader = new URLClassLoader(new URL[]{patch.toURL()}); - final JSONObject description = new JSONObject(new String(mainLoader.getResourceAsStream("patch.json").readAllBytes())); + if(!patches.exists() && !patches.mkdir()) { + return; + } - final JSONArray list = description.optJSONArray("hooks", null); - if(list != null) - for(int i = 0;i < list.length();i++) - Main.INSTANCE.add(list.optString(i)); + final File[] files = patches.listFiles((dir, name) -> name.endsWith(".jar")); + if(files != null) { + for (File patch : files) { + try { + final URLClassLoader mainLoader = new URLClassLoader(new URL[]{patch.toURL()}); + final JSONObject description = new JSONObject(new String(mainLoader.getResourceAsStream("patch.json").readAllBytes())); - final String main = description.optString("main", null); - if(main != null) { - Class clazz = mainLoader.loadClass(main); - clazz.getMethod("onPreLoader").invoke(clazz.getConstructor().newInstance()); + final JSONArray list = description.optJSONArray("hooks", null); + if (list != null) + for (int i = 0; i < list.length(); i++) + Main.INSTANCE.add(list.optString(i)); - clazz = Main.INSTANCE.loader.getClassLoader().loadClass(main); - clazz.getMethod("onMainLoader").invoke(clazz.getConstructor().newInstance()); + final String main = description.optString("main", null); + if (main != null) { + Class clazz = mainLoader.loadClass(main); + clazz.getMethod("onPreLoader").invoke(clazz.getConstructor().newInstance()); + + clazz = Main.INSTANCE.loader.getClassLoader().loadClass(main); + clazz.getMethod("onMainLoader").invoke(clazz.getConstructor().newInstance()); + } + } catch (Exception e) { + e.printStackTrace(); } - } catch (Exception e) { - e.printStackTrace(); } } }