From 43131ed8f62da86e3152bd372cfab00f78e321a8 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Tue, 2 Sep 2025 12:27:26 +0200 Subject: [PATCH] make jar scanner also load child classes --- core/src/main/java/com/volmit/iris/Iris.java | 2 +- .../com/volmit/iris/util/io/JarScanner.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/volmit/iris/Iris.java b/core/src/main/java/com/volmit/iris/Iris.java index d1ae2f560..69afb8353 100644 --- a/core/src/main/java/com/volmit/iris/Iris.java +++ b/core/src/main/java/com/volmit/iris/Iris.java @@ -567,7 +567,7 @@ public class Iris extends VolmitPlugin implements Listener { postShutdown.forEach(Runnable::run); super.onDisable(); - J.attempt(new JarScanner(instance.getJarFile(), "", false)::scan); + J.attempt(new JarScanner(instance.getJarFile(), "", false)::scanAll); } private void setupPapi() { diff --git a/core/src/main/java/com/volmit/iris/util/io/JarScanner.java b/core/src/main/java/com/volmit/iris/util/io/JarScanner.java index d7dcd31e7..cf8aa3271 100644 --- a/core/src/main/java/com/volmit/iris/util/io/JarScanner.java +++ b/core/src/main/java/com/volmit/iris/util/io/JarScanner.java @@ -83,6 +83,28 @@ public class JarScanner { zip.close(); } + public void scanAll() throws IOException { + classes.clear(); + FileInputStream fin = new FileInputStream(jar); + ZipInputStream zip = new ZipInputStream(fin); + for (ZipEntry entry = zip.getNextEntry(); entry != null; entry = zip.getNextEntry()) { + if (!entry.isDirectory() && entry.getName().endsWith(".class")) { + String c = entry.getName().replaceAll("/", ".").replace(".class", ""); + + if (c.startsWith(superPackage)) { + try { + Class clazz = Class.forName(c); + classes.add(clazz); + } catch (Throwable e) { + if (!report) continue; + Iris.reportError(e); + e.printStackTrace(); + } + } + } + } + } + /** * Get the scanned clases *