diff --git a/pom.xml b/pom.xml
index 5dab9e6..d511296 100644
--- a/pom.xml
+++ b/pom.xml
@@ -237,7 +237,7 @@
com.songoda
UltimateStacker
- 2.3.3
+ 2.4.0
provided
diff --git a/src/main/java/world/bentobox/level/Level.java b/src/main/java/world/bentobox/level/Level.java
index 0d02802..1639b05 100644
--- a/src/main/java/world/bentobox/level/Level.java
+++ b/src/main/java/world/bentobox/level/Level.java
@@ -126,32 +126,42 @@ public class Level extends Addon {
// Check if WildStackers is enabled on the server
// I only added support for counting blocks into the island level
// Someone else can PR if they want spawners added to the Leveling system :)
- stackersEnabled = Bukkit.getPluginManager().isPluginEnabled("WildStacker");
- if (stackersEnabled) {
- log("Hooked into WildStackers.");
- }
- // Check if AdvancedChests is enabled on the server
- Plugin advChest = Bukkit.getPluginManager().getPlugin("AdvancedChests");
- advChestEnabled = advChest != null;
- if (advChestEnabled) {
- // Check version
- if (compareVersions(advChest.getDescription().getVersion(), "23.0") > 0) {
- log("Hooked into AdvancedChests.");
- } else {
- logError("Could not hook into AdvancedChests " + advChest.getDescription().getVersion() + " - requires version 23.0 or later");
- advChestEnabled = false;
+ if ( !settings.getDisabledPluginHooks().contains("WildStacker") ) {
+ stackersEnabled = Bukkit.getPluginManager().isPluginEnabled("WildStacker");
+ if (stackersEnabled) {
+ log("Hooked into WildStackers.");
}
}
+
+ // Check if AdvancedChests is enabled on the server
+ if ( !settings.getDisabledPluginHooks().contains("AdvancedChests") ) {
+ Plugin advChest = Bukkit.getPluginManager().getPlugin("AdvancedChests");
+ advChestEnabled = advChest != null;
+ if (advChestEnabled) {
+ // Check version
+ if (compareVersions(advChest.getDescription().getVersion(), "23.0") > 0) {
+ log("Hooked into AdvancedChests.");
+ } else {
+ logError("Could not hook into AdvancedChests " + advChest.getDescription().getVersion() + " - requires version 23.0 or later");
+ advChestEnabled = false;
+ }
+ }
+ }
+
// Check if RoseStackers is enabled
- roseStackersEnabled = Bukkit.getPluginManager().isPluginEnabled("RoseStacker");
- if (roseStackersEnabled) {
- log("Hooked into RoseStackers.");
+ if ( !settings.getDisabledPluginHooks().contains("RoseStacker") ) {
+ roseStackersEnabled = Bukkit.getPluginManager().isPluginEnabled("RoseStacker");
+ if (roseStackersEnabled) {
+ log("Hooked into RoseStackers.");
+ }
}
// Check if UltimateStacker is enabled
- ultimateStackerEnabled = Bukkit.getPluginManager().isPluginEnabled("UltimateStacker");
- if (ultimateStackerEnabled) {
- log("Hooked into UltimateStacker.");
+ if ( !settings.getDisabledPluginHooks().contains("UltimateStacker") ) {
+ ultimateStackerEnabled = Bukkit.getPluginManager().isPluginEnabled("UltimateStacker");
+ if (ultimateStackerEnabled) {
+ log("Hooked into UltimateStacker.");
+ }
}
}
diff --git a/src/main/java/world/bentobox/level/config/ConfigSettings.java b/src/main/java/world/bentobox/level/config/ConfigSettings.java
index 7be3364..c287d2a 100644
--- a/src/main/java/world/bentobox/level/config/ConfigSettings.java
+++ b/src/main/java/world/bentobox/level/config/ConfigSettings.java
@@ -1,5 +1,6 @@
package world.bentobox.level.config;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -126,6 +127,12 @@ public class ConfigSettings implements ConfigObject {
@ConfigEntry(path = "include-shulkers-in-chest")
private boolean includeShulkersInChest = false;
+ @ConfigComment("")
+ @ConfigComment("Disables hooking with other plugins.")
+ @ConfigComment("Example: disabled-plugin-hooks: [UltimateStacker, RoseStacker]")
+ @ConfigEntry(path = "disabled-plugin-hooks")
+ private List disabledPluginHooks = new ArrayList<>();
+
/**
* @return the gameModes
@@ -404,4 +411,12 @@ public class ConfigSettings implements ConfigObject {
public void setIncludeShulkersInChest(boolean includeShulkersInChest) {
this.includeShulkersInChest = includeShulkersInChest;
}
+
+ public List getDisabledPluginHooks() {
+ return disabledPluginHooks;
+ }
+
+ public void setDisabledPluginHooks(List disabledPluginHooks) {
+ this.disabledPluginHooks = disabledPluginHooks;
+ }
}