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: