diff --git a/Bungee/src/main/java/net/frankheijden/serverutils/bungee/managers/BungeePluginManager.java b/Bungee/src/main/java/net/frankheijden/serverutils/bungee/managers/BungeePluginManager.java index 609deb5..0684123 100644 --- a/Bungee/src/main/java/net/frankheijden/serverutils/bungee/managers/BungeePluginManager.java +++ b/Bungee/src/main/java/net/frankheijden/serverutils/bungee/managers/BungeePluginManager.java @@ -149,15 +149,22 @@ public class BungeePluginManager extends AbstractPluginManager { proxy.getPluginManager().unregisterCommands(plugin); proxy.getPluginManager().unregisterListeners(plugin); proxy.getScheduler().cancel(plugin); - Closeable closeable; + List closeables = new ArrayList<>(); try { RPluginManager.clearPlugin(proxy.getPluginManager(), plugin); - closeable = (Closeable) RPluginClassLoader.getPluginClassLoader(plugin); + addIfInstance(closeables, RPluginClassLoader.getPluginClassLoader(plugin)); + addIfInstance(closeables, plugin.getClass().getClassLoader()); } catch (Exception ex) { ex.printStackTrace(); return new CloseableResult(Result.ERROR); } - return new CloseableResult(closeable); + return new CloseableResult(closeables); + } + + private static void addIfInstance(List list, Object obj) { + if (obj instanceof Closeable) { + list.add((Closeable) obj); + } } public static File getPluginFileExact(String fileName) {