From dae519494e444462d9ba8b399553aa03a596992d Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Sat, 11 Dec 2021 22:16:23 -0500 Subject: [PATCH] Fix stack overflow when disabling commands from other addons (#4680) --- .../src/main/java/com/earth2me/essentials/Essentials.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java index c85a58fb5..a17f10239 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java @@ -749,7 +749,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { if (getSettings().isCommandDisabled(commandLabel)) { if (getKnownCommandsProvider().getKnownCommands().containsKey(commandLabel)) { final Command newCmd = getKnownCommandsProvider().getKnownCommands().get(commandLabel); - if (!(newCmd instanceof PluginIdentifiableCommand) || ((PluginIdentifiableCommand) newCmd).getPlugin() != this) { + if (!(newCmd instanceof PluginIdentifiableCommand) || !isEssentialsPlugin(((PluginIdentifiableCommand) newCmd).getPlugin())) { return newCmd.execute(cSender, commandLabel, args); } } @@ -824,6 +824,10 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials { } } + private boolean isEssentialsPlugin(Plugin plugin) { + return plugin.getDescription().getMain().contains("com.earth2me.essentials") || plugin.getDescription().getMain().contains("net.essentialsx"); + } + public void cleanupOpenInventories() { for (final User user : getOnlineUsers()) { if (user.isRecipeSee()) {