Skip to content

Commit daceeb0

Browse files
committed
skip sublist creation
1 parent fa329b4 commit daceeb0

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/chunklimits/CustomEntityLimit.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -174,23 +174,25 @@ private void enforceEntityLimit(Map<EntityType, List<Entity>> entitiesByTypes) {
174174
}
175175

176176
int entityLimit = entityLimits.get(entry.getKey());
177+
int entityCount = entry.getValue().size();
177178

178-
if (entry.getValue().size() <= entityLimit) {
179+
if (entityCount <= entityLimit) {
179180
continue;
180181
}
181182

182-
List<Entity> entitiesToRemove = entry.getValue().subList(entityLimit, entry.getValue().size() - 1);
183+
int toRemove = entityCount - entityLimit;
184+
int removed = 0;
183185

184-
for (int i = 1; i < entitiesToRemove.size(); i++) {
185-
Entity entity = entitiesToRemove.get(i);
186-
int index = i;
186+
for (int i = entityLimit; i < entityCount; i++) {
187+
int rem = removed++;
188+
Entity entity = entry.getValue().get(i);
189+
entity.remove();
187190
entity.getScheduler().execute(plugin, () -> {
188-
entity.remove();
189191
logger().info("Removed {} at {} ({}/{} limit={})",
190192
entity.getType(),
191193
LocationUtil.toString(entity.getLocation()),
192-
index,
193-
entitiesToRemove.size(),
194+
rem,
195+
toRemove,
194196
entityLimit);
195197
}, null, 1L);
196198
}

AnarchyExploitFixesLegacy/src/main/java/me/xginko/aef/modules/chunklimits/CustomEntityLimit.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,21 +162,24 @@ private void enforceEntityLimit(Map<EntityType, List<Entity>> entitiesByTypes) {
162162
}
163163

164164
int entityLimit = entityLimits.get(entry.getKey());
165+
int entityCount = entry.getValue().size();
165166

166-
if (entry.getValue().size() <= entityLimit) {
167+
if (entityCount <= entityLimit) {
167168
continue;
168169
}
169170

170-
List<Entity> entitiesToRemove = entry.getValue().subList(entityLimit, entry.getValue().size() - 1);
171+
int toRemove = entityCount - entityLimit;
172+
int removed = 0;
171173

172-
for (int i = 1; i < entitiesToRemove.size(); i++) {
173-
Entity entity = entitiesToRemove.get(i);
174+
for (int i = entityLimit; i < entityCount; i++) {
175+
int rem = removed++;
176+
Entity entity = entry.getValue().get(i);
174177
entity.remove();
175178
logger().info("Removed {} at {} ({}/{} limit={})",
176179
entity.getType(),
177180
LocationUtil.toString(entity.getLocation()),
178-
i,
179-
entitiesToRemove.size(),
181+
rem,
182+
toRemove,
180183
entityLimit);
181184
}
182185
}

0 commit comments

Comments
 (0)