From 71c3ca93f4e04de5d493fd46cd9558e013703078 Mon Sep 17 00:00:00 2001 From: Callum Johnson <74352969+CallumJohnson@users.noreply.github.com> Date: Tue, 7 May 2024 23:42:14 +0100 Subject: [PATCH] Added optional 'amount' (minimum entities matched) argument to near_entity condition. --- .../libreforge/conditions/impl/ConditionNearEntity.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/kotlin/com/willfp/libreforge/conditions/impl/ConditionNearEntity.kt b/core/src/main/kotlin/com/willfp/libreforge/conditions/impl/ConditionNearEntity.kt index 4311fcd74..b07865b40 100644 --- a/core/src/main/kotlin/com/willfp/libreforge/conditions/impl/ConditionNearEntity.kt +++ b/core/src/main/kotlin/com/willfp/libreforge/conditions/impl/ConditionNearEntity.kt @@ -26,9 +26,13 @@ object ConditionNearEntity : Condition>("near_entity" val location = dispatcher.location ?: return false val radius = config.getDoubleFromExpression("radius", dispatcher.get()) - return location.world.getNearbyEntities(location, radius, radius, radius).any { + // Default to require there to be at least 1 entity if no minimum is defined by the user. + val nearbyEntityMinimumRequirement = config.getIntOrNull("amount") ?: 1 + val nearbyEntitiesWhichMatchCriteria = location.world.getNearbyEntities(location, radius, radius, radius).count { compileData.any { test -> test.matches(it) } } + + return nearbyEntitiesWhichMatchCriteria >= nearbyEntityMinimumRequirement } override fun makeCompileData(config: Config, context: ViolationContext): Collection {