summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/PlayerManager.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/PlayerManager.java b/src/main/java/net/minecraft/server/PlayerManager.java
index a03d4dca..aaadfefb 100644
--- a/src/main/java/net/minecraft/server/PlayerManager.java
+++ b/src/main/java/net/minecraft/server/PlayerManager.java
@@ -12,6 +12,7 @@ public class PlayerManager {
private int e;
private int f;
private final int[][] g = new int[][] { { 1, 0}, { 0, 1}, { -1, 0}, { 0, -1}};
+ private boolean wasNotEmpty; // CraftBukkit
public PlayerManager(MinecraftServer minecraftserver, int i, int j) {
if (j > 15) {
@@ -36,13 +37,19 @@ public class PlayerManager {
this.c.clear();
if (this.managedPlayers.isEmpty()) {
+ if (!wasNotEmpty) return; // CraftBukkit - only do unload when we go from non-empty to empty
WorldServer worldserver = this.server.getWorldServer(this.e);
WorldProvider worldprovider = worldserver.worldProvider;
if (!worldprovider.c()) {
worldserver.chunkProviderServer.c();
}
+ // CraftBukkit start
+ wasNotEmpty = false;
+ } else {
+ wasNotEmpty = true;
}
+ // CraftBukkit end
}
private PlayerInstance a(int i, int j, boolean flag) {