From e8200281431c6a4d5d1c64c4ec61ec23472329f0 Mon Sep 17 00:00:00 2001 From: Roman Zhuravlev Date: Sat, 20 Sep 2025 01:33:23 +0500 Subject: [PATCH 1/3] Use Collection instead of List --- .../common/managers/AbstractPluginManager.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 bbdd06a..8bb374a 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 @@ -39,7 +39,7 @@ public abstract class AbstractPluginManager loadPlugins(List files) { - List descriptions = new ArrayList<>(files.size()); + Set descriptions = new HashSet<>(files.size()); for (File file : files) { D description; @@ -117,7 +117,7 @@ public abstract class AbstractPluginManager checkPluginStates(List

plugins, boolean enabled) { + protected Optional

checkPluginStates(Collection

plugins, boolean enabled) { for (P plugin : plugins) { if (isPluginEnabled(plugin) != enabled) { return Optional.of(plugin); @@ -142,7 +142,7 @@ public abstract class AbstractPluginManager disablePlugins(List

plugins) { + public PluginResults

disablePlugins(Collection

plugins) { Optional

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

().addResult(getPluginId(pluginOptional.get()), Result.ALREADY_DISABLED); @@ -235,7 +235,7 @@ public abstract class AbstractPluginManager unloadPlugins(List

plugins) { + public CloseablePluginResults

unloadPlugins(Collection

plugins) { List

orderedPlugins; try { orderedPlugins = determineLoadOrder(plugins); @@ -259,7 +259,7 @@ public abstract class AbstractPluginManager determineLoadOrder(List

plugins) throws IllegalStateException { + public List

determineLoadOrder(Collection

plugins) throws IllegalStateException { Map descriptionMap = new HashMap<>(plugins.size()); for (P plugin : plugins) { descriptionMap.put(getLoadedPluginDescription(plugin), plugin); @@ -276,7 +276,7 @@ public abstract class AbstractPluginManager determineLoadOrder(Collection descriptions) throws IllegalStateException { + public List determineLoadOrder(Set descriptions) throws IllegalStateException { Map pluginIdToDescriptionMap = new HashMap<>(); for (D description : descriptions) { pluginIdToDescriptionMap.put(description.getId(), description); From 88f8f2bd92190e01ed0ce4a328953b23368dd60c Mon Sep 17 00:00:00 2001 From: Roman Zhuravlev Date: Sat, 20 Sep 2025 01:33:35 +0500 Subject: [PATCH 2/3] Use Collection instead of List --- .../serverutils/bungee/managers/BungeePluginManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ac9095c..d356b15 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 @@ -145,7 +145,7 @@ public class BungeePluginManager extends AbstractPluginManager checkPluginStates(List plugins, boolean enabled) { + protected Optional checkPluginStates(Collection plugins, boolean enabled) { return Optional.empty(); // Bungee can't differentiate between "loaded" and "enabled" } From 0d10233ab2aed6f7adaadf1dd57ac7f9cdc468ae Mon Sep 17 00:00:00 2001 From: Roman Zhuravlev Date: Sat, 20 Sep 2025 01:35:08 +0500 Subject: [PATCH 3/3] Use Collection instead of List; Fix plugin duplication in `getDependingPlugins` results --- .../common/commands/CommandServerUtils.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) 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) {