diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/integrations/antigrief/AntigriefWorldGuard.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/integrations/antigrief/AntigriefWorldGuard.kt index ca9c74ff..9ad83c78 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/integrations/antigrief/AntigriefWorldGuard.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/spigot/integrations/antigrief/AntigriefWorldGuard.kt @@ -11,7 +11,10 @@ import com.willfp.eco.core.integrations.antigrief.AntigriefWrapper import org.apache.commons.lang.Validate import org.bukkit.Location import org.bukkit.block.Block -import org.bukkit.entity.* +import org.bukkit.entity.Animals +import org.bukkit.entity.LivingEntity +import org.bukkit.entity.Monster +import org.bukkit.entity.Player class AntigriefWorldGuard : AntigriefWrapper { override fun canBreakBlock( @@ -78,29 +81,21 @@ class AntigriefWorldGuard : AntigriefWrapper { val localPlayer: LocalPlayer = WorldGuardPlugin.inst().wrapPlayer(player) val container: RegionContainer = WorldGuard.getInstance().platform.regionContainer val query: RegionQuery = container.createQuery() - if (victim is Player) { - if (!query.testBuild(BukkitAdapter.adapt(victim.getLocation()), localPlayer, Flags.PVP)) { - return WorldGuard.getInstance().platform.sessionManager.hasBypass( - localPlayer, - BukkitAdapter.adapt(player.world) - ) - } - } else if (victim is Animals) { - if (!query.testBuild(BukkitAdapter.adapt(victim.location), localPlayer, Flags.DAMAGE_ANIMALS)) { - return WorldGuard.getInstance().platform.sessionManager.hasBypass( - localPlayer, - BukkitAdapter.adapt(player.world) - ) - } - } else if (victim is Monster) { - if (!query.testBuild(BukkitAdapter.adapt(victim.location), localPlayer, Flags.MOB_DAMAGE)) { - return WorldGuard.getInstance().platform.sessionManager.hasBypass( - localPlayer, - BukkitAdapter.adapt(player.world) - ) - } + val flag = when(victim) { + is Player -> Flags.PVP + is Monster -> Flags.MOB_DAMAGE + is Animals -> Flags.DAMAGE_ANIMALS + else -> return true + } + + return if (!query.testBuild(BukkitAdapter.adapt(victim.getLocation()), localPlayer, flag)) { + WorldGuard.getInstance().platform.sessionManager.hasBypass( + localPlayer, + BukkitAdapter.adapt(player.world) + ) + } else { + true } - return true } override fun getPluginName(): String {