load all classes from plugin

This commit is contained in:
muhammadeko 2022-04-26 19:45:23 +07:00
parent adb1831155
commit 2bd470c574
No known key found for this signature in database
GPG Key ID: 51366716C10E98B1

View File

@ -13,6 +13,8 @@ import java.lang.reflect.Method;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.*; import java.util.*;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
/** /**
* Manages the server's plugins & the event system. * Manages the server's plugins & the event system.
@ -60,6 +62,15 @@ public final class PluginManager {
return; return;
} }
JarFile jarFile = new JarFile(plugin);
Enumeration<JarEntry> entries = jarFile.entries();
while(entries.hasMoreElements()) {
JarEntry entry = entries.nextElement();
if(entry.isDirectory() || !entry.getName().endsWith(".class")) continue;
String className = entry.getName().replace(".class", "").replace("/", ".");
Class<?> clazz = loader.loadClass(className);
}
Class<?> pluginClass = loader.loadClass(pluginConfig.mainClass); Class<?> pluginClass = loader.loadClass(pluginConfig.mainClass);
Plugin pluginInstance = (Plugin) pluginClass.getDeclaredConstructor().newInstance(); Plugin pluginInstance = (Plugin) pluginClass.getDeclaredConstructor().newInstance();
this.loadPlugin(pluginInstance, PluginIdentifier.fromPluginConfig(pluginConfig)); this.loadPlugin(pluginInstance, PluginIdentifier.fromPluginConfig(pluginConfig));