diff --git a/README.md b/README.md index d958f874..02f0e362 100644 --- a/README.md +++ b/README.md @@ -230,6 +230,7 @@ See the patches list below. [FalchusSpigot-????] Fix MC-87 map scaling/cloning issues [FalchusSpigot-????] Fix view distance lookup [FalchusSpigot-????] Only send Dragon/Wither Death sounds to same world +[FalchusSpigot-????] sendQueuedPackets per-world [FalchusSpigot-????] Improve NetworkManager [DashSpigot-0033] Fix SPIGOT-1746: Tile entities may not always tick diff --git a/WindSpigot-Server/src/main/java/com/windpvp/windspigot/async/entitytracker/AsyncEntityTracker.java b/WindSpigot-Server/src/main/java/com/windpvp/windspigot/async/entitytracker/AsyncEntityTracker.java index 7ae5a292..7601a5a6 100644 --- a/WindSpigot-Server/src/main/java/com/windpvp/windspigot/async/entitytracker/AsyncEntityTracker.java +++ b/WindSpigot-Server/src/main/java/com/windpvp/windspigot/async/entitytracker/AsyncEntityTracker.java @@ -42,8 +42,8 @@ public void updatePlayers() { e.printStackTrace(); } worldServer.ticker.getLatch().reset(); - for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players) { - player.playerConnection.sendQueuedPackets(); + for (EntityHuman human : worldServer.players) { // FalchusSpigot - per-world + ((EntityPlayer) human).playerConnection.sendQueuedPackets(); } } diff --git a/WindSpigot-Server/src/main/java/com/windpvp/windspigot/world/WorldTicker.java b/WindSpigot-Server/src/main/java/com/windpvp/windspigot/world/WorldTicker.java index dc3860dc..cec449ec 100644 --- a/WindSpigot-Server/src/main/java/com/windpvp/windspigot/world/WorldTicker.java +++ b/WindSpigot-Server/src/main/java/com/windpvp/windspigot/world/WorldTicker.java @@ -6,13 +6,7 @@ import com.windpvp.windspigot.async.entitytracker.AsyncEntityTracker; import com.windpvp.windspigot.config.WindSpigotConfig; -import net.minecraft.server.CrashReport; -import net.minecraft.server.EntityPlayer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.NetworkManager; -import net.minecraft.server.PlayerConnection; -import net.minecraft.server.ReportedException; -import net.minecraft.server.WorldServer; +import net.minecraft.server.*; public class WorldTicker implements Runnable { @@ -71,12 +65,14 @@ public void run() { worldserver.timings.tracker.startTiming(); // Spigot // this.methodProfiler.b(); // this.methodProfiler.a("tracker"); - if (MinecraftServer.getServer().getPlayerList().getPlayerCount() != 0) // Tuinity + if (worldserver.players.size() != 0) // Tuinity // FalchusSpigot - per-world { // Tuinity start - controlled flush for entity tracker packets - List disabledFlushes = new java.util.ArrayList<>( - MinecraftServer.getServer().getPlayerList().getPlayerCount()); - for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players) { + // FalchusSpigot start - per-world + List disabledFlushes = new java.util.ArrayList<>(worldserver.players.size()); + for (EntityHuman human : worldserver.players) { + EntityPlayer player = (EntityPlayer) human; + // FalchusSpigot end PlayerConnection connection = player.playerConnection; if (connection != null) { connection.networkManager.disableAutomaticFlush(); @@ -103,4 +99,4 @@ public ResettableLatch getLatch() { return latch; } -} \ No newline at end of file +} diff --git a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityTracker.java b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityTracker.java index 3cda5736..d543aafa 100644 --- a/WindSpigot-Server/src/main/java/net/minecraft/server/EntityTracker.java +++ b/WindSpigot-Server/src/main/java/net/minecraft/server/EntityTracker.java @@ -151,8 +151,8 @@ public void updatePlayers() { entry.update(); } // WindSpigot start - for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players) { - player.playerConnection.sendQueuedPackets(); + for (EntityHuman human : world.players) { // FalchusSpigot - per-world + ((EntityPlayer) human).playerConnection.sendQueuedPackets(); } // WindSpigot end }