From cd206b16e1d805daa5ec1a2b7284c4c204817a4a Mon Sep 17 00:00:00 2001 From: Brianna Date: Sun, 5 Apr 2020 11:16:38 -0400 Subject: [PATCH] Performance update. --- .../java/com/songoda/ultimatestacker/entity/Check.java | 9 +++++++++ .../com/songoda/ultimatestacker/utils/EntityUtils.java | 8 +++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/songoda/ultimatestacker/entity/Check.java b/src/main/java/com/songoda/ultimatestacker/entity/Check.java index 2c8e983..6e0a4f5 100644 --- a/src/main/java/com/songoda/ultimatestacker/entity/Check.java +++ b/src/main/java/com/songoda/ultimatestacker/entity/Check.java @@ -1,6 +1,8 @@ package com.songoda.ultimatestacker.entity; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public enum Check { @@ -52,6 +54,13 @@ public enum Check { this.isEnabledByDefault = isEnabledByDefault; } + public static List getChecks(List strChecks) { + List checks = new ArrayList<>(); + for (String checkStr : strChecks) + checks.add(getCheck(checkStr)); + return checks; + } + public boolean isEnabledByDefault() { return isEnabledByDefault; } diff --git a/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java b/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java index 598fdbe..57c2617 100644 --- a/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java +++ b/src/main/java/com/songoda/ultimatestacker/utils/EntityUtils.java @@ -19,7 +19,7 @@ public class EntityUtils { UltimateStacker plugin = UltimateStacker.getInstance(); - private final List checks = Settings.STACK_CHECKS.getStringList(); + private final List checks = Check.getChecks(Settings.STACK_CHECKS.getStringList()); private final boolean stackFlyingDown = Settings.ONLY_STACK_FLYING_DOWN.getBoolean(), keepFire = Settings.KEEP_FIRE.getBoolean(), keepPotion = Settings.KEEP_POTION.getBoolean(), @@ -100,8 +100,7 @@ public class EntityUtils { if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_12)) newEntity.setInvulnerable(false); - for (String checkStr : checks) { - Check check = Check.valueOf(checkStr); + for (Check check : checks) { switch (check) { case AGE: { if (!(toClone instanceof Ageable) || ((Ageable) toClone).isAdult()) break; @@ -262,8 +261,7 @@ public class EntityUtils { if (stackFlyingDown && Methods.canFly(initialEntity)) entityList.removeIf(entity -> entity.getLocation().getY() > initialEntity.getLocation().getY()); - for (String checkStr : checks) { - Check check = Check.getCheck(checkStr); + for (Check check : checks) { if (check == null) continue; switch (check) { case SPAWN_REASON: {