diff --git a/modules/SilkSpawners/pom.xml b/modules/SilkSpawners/pom.xml
index 598e3dd7..a2d6dfde 100644
--- a/modules/SilkSpawners/pom.xml
+++ b/modules/SilkSpawners/pom.xml
@@ -103,6 +103,12 @@
+
+ ru.endlesscode.mimic
+ mimic-bukkit-api
+ 0.8.0
+ provided
+
org.bstats
bstats-bukkit
diff --git a/modules/SilkSpawners/src/main/java/de/dustplanet/util/SilkUtil.java b/modules/SilkSpawners/src/main/java/de/dustplanet/util/SilkUtil.java
index 84c1f156..d816ea15 100644
--- a/modules/SilkSpawners/src/main/java/de/dustplanet/util/SilkUtil.java
+++ b/modules/SilkSpawners/src/main/java/de/dustplanet/util/SilkUtil.java
@@ -50,6 +50,7 @@
import lombok.Getter;
import lombok.Setter;
import me.confuser.barapi.BarAPI;
+import ru.endlesscode.mimic.Mimic;
/**
* This is the util class where all the magic happens.
@@ -93,6 +94,11 @@ public class SilkUtil {
*/
private WorldGuardPlugin wg;
+ /**
+ * Mimic instance, may be null
+ */
+ private Mimic mimic;
+
/**
* BarAPI usage toggle.
*/
@@ -130,6 +136,7 @@ public SilkUtil(final SilkSpawners instance) {
}
getWorldGuard();
+ getMimic();
final boolean nmsProviderFound = setupNMSProvider();
if (nmsProviderFound) {
@@ -837,6 +844,10 @@ public boolean isValidItemAndHasSilkTouch(final ItemStack tool) {
toolAllowed = true;
break;
}
+ if (mimic != null && mimic.getItemsRegistry().isSameItem(tool, allowedTool)) {
+ toolAllowed = true;
+ break;
+ }
}
if (!toolAllowed) {
plugin.getLogger().log(Level.FINE, "Tool not allowed: {0}", tool.getType());
@@ -910,6 +921,20 @@ private void getWorldGuard() {
wg = (WorldGuardPlugin) worldGuard;
}
+ private void getMimic() {
+ if (!plugin.getConfig().getBoolean("useMimic", true)) {
+ plugin.getLogger().info("Mimic support is disabled due to config setting");
+ return;
+ }
+ final Plugin mimicPlugin = plugin.getServer().getPluginManager().getPlugin("Mimic");
+ if (mimicPlugin == null) {
+ plugin.getLogger().info("Mimic was not found and support is disabled");
+ return;
+ }
+ mimic = Mimic.getInstance();
+ plugin.getLogger().info("Mimic was found and support is enabled");
+ }
+
/**
* Checks if a player can build here (WorldGuard).
*
diff --git a/modules/SilkSpawners/src/main/resources/config.yml b/modules/SilkSpawners/src/main/resources/config.yml
index add568f1..70ad0f6c 100644
--- a/modules/SilkSpawners/src/main/resources/config.yml
+++ b/modules/SilkSpawners/src/main/resources/config.yml
@@ -9,6 +9,9 @@ permissionExplode: false
# Should be checked for WorldGuard build ability to change spawners
useWorldGuard: true
+useMimic: true
+# Allows you to use Mimic item IDs in allowedTools
+
# Percentage of dropping a spawner block when TNT or creepers explode
explosionDropChance: 30
diff --git a/modules/SilkSpawners/src/main/resources/plugin.yml b/modules/SilkSpawners/src/main/resources/plugin.yml
index 34a26cf1..ebef6ecc 100644
--- a/modules/SilkSpawners/src/main/resources/plugin.yml
+++ b/modules/SilkSpawners/src/main/resources/plugin.yml
@@ -50,5 +50,5 @@ permissions:
silkspawners.help:
description: Allows you to see the help menu
default: true
-softdepend: [WorldGuard, BarAPI, Factions]
+softdepend: [WorldGuard, BarAPI, Factions, Mimic]
loadbefore: [MergedSpawner, ShopGUIPlus]