From bcaa025af2ad1f4187e5f4a6114837c578c2a5ee Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Tue, 12 Jul 2022 19:15:13 +0000 Subject: [PATCH] External plugin loading setup Co-authored-by: sigonasr2 --- bin/TestPlugin.jar | Bin 0 -> 8422 bytes manifest | 1 + plugins/TestPlugin.jar | Bin 0 -> 8422 bytes plugins/TestPlugin.java | 4 +++- src/sig/PluginLoader.java | 19 ++++++++++++++++++- 5 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 bin/TestPlugin.jar create mode 100644 manifest create mode 100644 plugins/TestPlugin.jar diff --git a/bin/TestPlugin.jar b/bin/TestPlugin.jar new file mode 100644 index 0000000000000000000000000000000000000000..4d3199fc985e8ec0aa2624688980a8d142a4516c GIT binary patch literal 8422 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.isRegularFile(f)).forEach((f)->{System.out.println("Found "+f);}); + Files.walk(p).filter((f)->Files.isRegularFile(f)&&f.getFileName().toString().contains(".jar")).forEach((f)->{ + LoadPlugin(f); + }); } catch (IOException e) { e.printStackTrace(); } } + + private static void LoadPlugin(Path f) { + try { + System.out.println("Loading "+f); + URL l = f.toUri().toURL(); + URLClassLoader loader = new URLClassLoader(new URL[]{l}); + Object newPlugin = Class.forName(f.getFileName().toString().replace(".jar",""),true,loader).getDeclaredConstructor().newInstance(); + } catch (MalformedURLException | InstantiationException | IllegalAccessException | ClassNotFoundException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) { + e.printStackTrace(); + } + } }