diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/filters/Filters.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/filters/Filters.kt index b2f967d80..4ce027f2e 100644 --- a/eco-api/src/main/kotlin/com/willfp/libreforge/filters/Filters.kt +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/filters/Filters.kt @@ -16,6 +16,7 @@ import com.willfp.libreforge.filters.filters.FilterOnlyBosses import com.willfp.libreforge.filters.filters.FilterOnlyNonBosses import com.willfp.libreforge.filters.filters.FilterPlayerName import com.willfp.libreforge.filters.filters.FilterPlayerPlaced +import com.willfp.libreforge.filters.filters.FilterSelfPlaced import com.willfp.libreforge.filters.filters.FilterPotionEffect import com.willfp.libreforge.filters.filters.FilterProjectiles import com.willfp.libreforge.filters.filters.FilterText @@ -39,6 +40,7 @@ object Filters { val ABOVE_HEALTH_PERCENT: Filter = FilterAboveHealthPercent val FULLY_GROWN: Filter = FilterFullyGrown val PLAYER_PLACED: Filter = FilterPlayerPlaced + val SELF_PLACED: Filter = FilterSelfPlaced val TEXT: Filter = FilterText val TEXT_CONTAINS: Filter = FilterTextContains val IS_BEHIND_VICTIM: Filter = FilterIsBehindVictim diff --git a/eco-api/src/main/kotlin/com/willfp/libreforge/filters/filters/FilterSelfPlaced.kt b/eco-api/src/main/kotlin/com/willfp/libreforge/filters/filters/FilterSelfPlaced.kt new file mode 100644 index 000000000..816128310 --- /dev/null +++ b/eco-api/src/main/kotlin/com/willfp/libreforge/filters/filters/FilterSelfPlaced.kt @@ -0,0 +1,17 @@ +package com.willfp.libreforge.filters.filters + +import com.willfp.eco.core.config.interfaces.Config +import com.willfp.eco.util.isPlacedBy +import com.willfp.libreforge.filters.Filter +import com.willfp.libreforge.triggers.TriggerData + +object FilterSelfPlaced : Filter() { + override fun passes(data: TriggerData, config: Config): Boolean { + val block = data.block ?: return true + val player = data.player ?: return true + + return config.withInverse("self_placed", Config::getBool) { + block.isPlacedBy(player) == it + } + } +}