From 4cb061d594dd4ea768626c2fafac79fd22377c05 Mon Sep 17 00:00:00 2001 From: tastybento Date: Wed, 25 Mar 2020 21:00:37 -0700 Subject: [PATCH] Avoids counting entities if the type spawned is not limited. https://github.com/BentoBoxWorld/Limits/issues/74 --- pom.xml | 2 +- .../bentobox/limits/listeners/EntityLimitListener.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 4b3d81a..da466ce 100644 --- a/pom.xml +++ b/pom.xml @@ -64,7 +64,7 @@ -LOCAL - 1.9.2 + 1.9.3 diff --git a/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java b/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java index cc6baf2..e387eea 100644 --- a/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java +++ b/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java @@ -164,9 +164,6 @@ public class EntityLimitListener implements Listener { * @return true if at the limit, false if not */ private boolean atLimit(Island island, Entity ent) { - long count = ent.getWorld().getEntities().stream() - .filter(e -> e.getType().equals(ent.getType())) - .filter(e -> island.inIslandSpace(e.getLocation())).count(); // Check island settings first int limitAmount = -1; if (addon.getBlockLimitListener().getIsland(island.getUniqueId()) != null) { @@ -176,8 +173,11 @@ public class EntityLimitListener implements Listener { if (limitAmount < 0 && addon.getSettings().getLimits().containsKey(ent.getType())) { limitAmount = addon.getSettings().getLimits().get(ent.getType()); } - if (limitAmount == -1) return false; - return count >= limitAmount; + if (limitAmount < 0) return false; + // We have to count the entities + return ent.getWorld().getEntities().stream() + .filter(e -> e.getType().equals(ent.getType())) + .filter(e -> island.inIslandSpace(e.getLocation())).count() >= limitAmount; } }