Paper/nms-patches/PathfinderGoalSelector.patch

31 lines
1.9 KiB
Diff
Raw Normal View History

2015-05-25 12:37:24 +02:00
--- a/net/minecraft/server/PathfinderGoalSelector.java
+++ b/net/minecraft/server/PathfinderGoalSelector.java
2015-02-26 23:41:06 +01:00
@@ -6,11 +6,13 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.bukkit.craftbukkit.util.UnsafeList; // CraftBukkit
+
public class PathfinderGoalSelector {
private static final Logger a = LogManager.getLogger();
2015-02-26 23:41:06 +01:00
- private List<PathfinderGoalSelector.PathfinderGoalSelectorItem> b = Lists.newArrayList();
- private List<PathfinderGoalSelector.PathfinderGoalSelectorItem> c = Lists.newArrayList();
+ private List<PathfinderGoalSelector.PathfinderGoalSelectorItem> b = new UnsafeList<PathfinderGoalSelector.PathfinderGoalSelectorItem>();
+ private List<PathfinderGoalSelector.PathfinderGoalSelectorItem> c = new UnsafeList<PathfinderGoalSelector.PathfinderGoalSelectorItem>();
private final MethodProfiler d;
private int e;
private int f = 3;
2015-02-26 23:41:06 +01:00
@@ -107,9 +109,11 @@
if (pathfindergoalselector_pathfindergoalselectoritem1 != pathfindergoalselector_pathfindergoalselectoritem) {
if (pathfindergoalselector_pathfindergoalselectoritem.b >= pathfindergoalselector_pathfindergoalselectoritem1.b) {
if (!this.a(pathfindergoalselector_pathfindergoalselectoritem, pathfindergoalselector_pathfindergoalselectoritem1) && this.c.contains(pathfindergoalselector_pathfindergoalselectoritem1)) {
+ ((UnsafeList.Itr) iterator).valid = false; // CraftBukkit - mark iterator for reuse
return false;
}
2015-02-26 23:41:06 +01:00
} else if (!pathfindergoalselector_pathfindergoalselectoritem1.a.i() && this.c.contains(pathfindergoalselector_pathfindergoalselectoritem1)) {
+ ((UnsafeList.Itr) iterator).valid = false; // CraftBukkit - mark iterator for reuse
return false;
}
}