diff --git a/pom.xml b/pom.xml
index 6493e0c..d278bd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,10 @@
FactionsUUID repo
https://ci.ender.zone/plugin/repository/everything/
+
+ jeff-media-public
+ https://repo.jeff-media.com/public/
+
@@ -101,6 +105,18 @@
0.100.1.0
provided
+
+ com.cjcrafter
+ weaponmechanics
+ 4.1.0
+ provided
+
+
+ com.cjcrafter
+ mechanicscore
+ 4.1.0
+ provided
+
diff --git a/src/main/kotlin/net/pdevita/creeperheal2/compatibility/WeaponMechanics.kt b/src/main/kotlin/net/pdevita/creeperheal2/compatibility/WeaponMechanics.kt
new file mode 100644
index 0000000..db4441b
--- /dev/null
+++ b/src/main/kotlin/net/pdevita/creeperheal2/compatibility/WeaponMechanics.kt
@@ -0,0 +1,48 @@
+package net.pdevita.creeperheal2.compatibility
+
+import com.google.auto.service.AutoService
+import net.pdevita.creeperheal2.CreeperHeal2
+import org.bukkit.Bukkit
+import org.bukkit.Location
+import org.bukkit.Material
+import org.bukkit.block.data.BlockData
+import org.bukkit.event.EventHandler
+import org.bukkit.event.EventPriority
+import org.bukkit.event.block.BlockBreakEvent
+
+
+@AutoService(BaseCompatibility::class)
+class WeaponMechanics : BaseCompatibility {
+ override val pluginName = "WeaponMechanics"
+ override val pluginPackage = "me.deecaad.weaponmechanics.WeaponMechanicsLoader"
+ private lateinit var creeperHeal2: CreeperHeal2
+
+ override fun setCreeperHealReference(creeperHeal2: CreeperHeal2) {
+ this.creeperHeal2 = creeperHeal2
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ fun onWeaponMechanicsBreakBlockEvent(event: BlockBreakEvent) {
+ if (event.eventName == "WeaponMechanicsBlockDamage") {
+ val loc = event.block.location.clone()
+ val originalMaterial = event.block.type
+ val originalData = event.block.blockData.clone()
+
+ Bukkit.getScheduler().runTaskLater(creeperHeal2, Runnable {
+ checkLocAndExplode(loc, originalMaterial, originalData)
+ }, 1)
+ }
+ }
+
+ fun checkLocAndExplode(loc: Location, originalMaterial: Material, originalData: BlockData) {
+ val block = loc.block
+ if (block.type == Material.AIR) {
+ if (loc.world?.let { creeperHeal2.settings.worldList.allowWorld(it.name) } == true) {
+ block.type = originalMaterial
+ block.blockData = originalData
+
+ creeperHeal2.createNewExplosion(listOf(block))
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 9cc2df7..5de488c 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -7,6 +7,7 @@ softdepend:
- Movecraft
- Factions
- Towny
+ - WeaponMechanics
commands:
creeperheal: