diff --git a/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java b/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java index e0723bc..524feb7 100644 --- a/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java +++ b/Common/src/main/java/net/frankheijden/serverutils/common/commands/CommandServerUtils.java @@ -7,9 +7,12 @@ import cloud.commandframework.context.CommandContext; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.function.Consumer; import java.util.function.Function; @@ -202,7 +205,7 @@ public abstract class CommandServerUtils context) { C sender = context.getSender(); - List

plugins = Arrays.asList(context.get("plugins")); + List

plugins = new ArrayList<>(Arrays.asList(context.get("plugins"))); if (checkProtectedPlugins(sender, plugins)) { return; @@ -210,7 +213,7 @@ public abstract class CommandServerUtils dependingPlugins = getDependingPlugins(context, sender, plugins, "unloadplugin"); + Collection

dependingPlugins = getDependingPlugins(context, sender, plugins, "unloadplugin"); if (!recursive) { if (!dependingPlugins.isEmpty()) return; } else { @@ -240,7 +243,7 @@ public abstract class CommandServerUtils dependingPlugins = getDependingPlugins(context, sender, plugins, "reloadplugin"); + Collection

dependingPlugins = getDependingPlugins(context, sender, plugins, "reloadplugin"); if (!recursive && !dependingPlugins.isEmpty()) { return; } @@ -297,15 +300,16 @@ public abstract class CommandServerUtils getDependingPlugins(CommandContext context, C sender, List

plugins, String subcommand) { - if (context.flags().contains("force")) return Collections.emptyList(); + protected Collection

getDependingPlugins(CommandContext context, C sender, List

plugins, + String subcommand) { + if (context.flags().contains("force")) return Collections.emptySet(); boolean recursive = context.flags().contains("recursive"); AbstractPluginManager pluginManager = plugin.getPluginManager(); MessagesResource messages = plugin.getMessagesResource(); - List

dependingPluginsAll = new ArrayList<>(); + Map dependingPluginsAll = new HashMap<>(); boolean hasDependingPlugins = false; for (P plugin : plugins) { String pluginId = pluginManager.getPluginId(plugin); @@ -328,7 +332,9 @@ public abstract class CommandServerUtils context, C sender, List

plugins) {