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]