diff --git a/sources/src/main/java/net/minecraft/server/EntityTracker.java b/sources/src/main/java/net/minecraft/server/EntityTracker.java index 36f1aaf99..eb92f4155 100644 --- a/sources/src/main/java/net/minecraft/server/EntityTracker.java +++ b/sources/src/main/java/net/minecraft/server/EntityTracker.java @@ -14,8 +14,7 @@ import org.apache.logging.log4j.Logger; /** * Akarin Changes Note
*
- * 1) Make entries-set concurrent
- * 2) Add lock for entries-set operations
+ * 1) Add lock for entries-set operations
* @author cakoyo */ public class EntityTracker { @@ -23,7 +22,7 @@ public class EntityTracker { private static final Logger a = LogManager.getLogger(); private final WorldServer world; private final Set c = Sets.newHashSet(); - private final ReentrantLock entriesLock = new ReentrantLock(); // Akarin - add lock + public final ReentrantLock entriesLock = new ReentrantLock(); // Akarin - add lock public final IntHashMap trackedEntities = new IntHashMap(); private int e; diff --git a/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index d3938754a..6b7455acc 100644 --- a/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/sources/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1161,7 +1161,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId()); if (entry != null && !entry.trackedPlayers.contains(getHandle())) { + tracker.entriesLock.lock(); // Akarin entry.updatePlayer(getHandle()); + tracker.entriesLock.unlock(); // Akarin } } // Paper start