From d6b75e5c0250d4ed1bc75271343bb764aada5645 Mon Sep 17 00:00:00 2001 From: Frank van der Heijden Date: Mon, 20 Jul 2020 14:39:14 +0200 Subject: [PATCH] Close plugin class as well (BungeeCord) --- .../bungee/managers/BungeePluginManager.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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) {