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 00cf68f..b57726f 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 @@ -124,7 +124,12 @@ public class BungeePluginManager extends AbstractPluginManager checkPluginStates(List plugins, boolean enabled) { + return Optional.empty(); // Bungee can't differentiate between "loaded" and "enabled" } @Override diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/managers/AbstractPluginManager.java b/Common/src/main/java/net/frankheijden/serverutils/common/managers/AbstractPluginManager.java index c5ef500..bbdd06a 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/managers/AbstractPluginManager.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/managers/AbstractPluginManager.java @@ -97,11 +97,9 @@ public abstract class AbstractPluginManager enablePlugins(List

plugins) { - for (P plugin : plugins) { - String pluginId = getPluginId(plugin); - if (isPluginEnabled(pluginId)) { - return new PluginResults

().addResult(pluginId, Result.ALREADY_ENABLED); - } + Optional

pluginOptional = checkPluginStates(plugins, false); + if (pluginOptional.isPresent()) { + return new PluginResults

().addResult(getPluginId(pluginOptional.get()), Result.ALREADY_ENABLED); } return enableOrderedPlugins(determineLoadOrder(plugins)); @@ -115,6 +113,19 @@ public abstract class AbstractPluginManager checkPluginStates(List

plugins, boolean enabled) { + for (P plugin : plugins) { + if (isPluginEnabled(plugin) != enabled) { + return Optional.of(plugin); + } + } + return Optional.empty(); + } + /** * Disables the given plugin by name. */ @@ -132,10 +143,9 @@ public abstract class AbstractPluginManager disablePlugins(List

plugins) { - for (P plugin : plugins) { - if (!isPluginEnabled(plugin)) { - return new PluginResults

().addResult(getPluginId(plugin), Result.ALREADY_DISABLED); - } + Optional

pluginOptional = checkPluginStates(plugins, true); + if (pluginOptional.isPresent()) { + return new PluginResults

().addResult(getPluginId(pluginOptional.get()), Result.ALREADY_DISABLED); } List

orderedPlugins;