From 1e1541a2e92807749cdb6ff98660d5290bf1ab12 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 30 Jan 2017 22:33:54 -0600 Subject: [PATCH] Update upstream S --- .../0010-Add-player-view-distance-API.patch | 6 +- Spigot-Server-Patches/0005-Timings-v2.patch | 103 +++++++++--------- ...ient-crashes-server-lists-and-Mojang.patch | 14 +-- ...020-Further-improve-server-tick-loop.patch | 31 +++--- .../0028-Lighting-Queue.patch | 20 ++-- .../0032-Optimize-explosions.patch | 14 +-- .../0036-Add-player-view-distance-API.patch | 24 ++-- ...atch-Async-PlayerChunkMap-operations.patch | 8 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 16 +-- .../0114-Configurable-Player-Collision.patch | 16 +-- ...-possibility-for-getServer-singleton.patch | 14 +-- .../0133-Fix-Chunk-Unload-Queue-Issues.patch | 10 +- .../0136-Optimize-UserCache-Thread-Safe.patch | 10 +- ...unk-Unloads-based-on-Player-Movement.patch | 24 ++-- .../0158-Auto-Save-Improvements.patch | 18 +-- .../0171-Optimize-Network-Queue.patch | 8 +- work/Spigot | 2 +- 17 files changed, 168 insertions(+), 170 deletions(-) diff --git a/Spigot-API-Patches/0010-Add-player-view-distance-API.patch b/Spigot-API-Patches/0010-Add-player-view-distance-API.patch index 064d28eb00..4d8ac9cba7 100644 --- a/Spigot-API-Patches/0010-Add-player-view-distance-API.patch +++ b/Spigot-API-Patches/0010-Add-player-view-distance-API.patch @@ -1,11 +1,11 @@ -From 22ab319e4192a07fd7b35c388d702ab194ff9d78 Mon Sep 17 00:00:00 2001 +From 87d8e5e8a31d66af1e7ff8eaa2655fbeed5e0f47 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Mon, 29 Feb 2016 18:05:37 -0600 Subject: [PATCH] Add player view distance API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 366d1ae..6f9836c 100644 +index 366d1ae8..6f9836cd 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1346,6 +1346,20 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline @@ -30,5 +30,5 @@ index 366d1ae..6f9836c 100644 public class Spigot extends Entity.Spigot { -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0005-Timings-v2.patch b/Spigot-Server-Patches/0005-Timings-v2.patch index 9a04dd0518..d9368884e0 100644 --- a/Spigot-Server-Patches/0005-Timings-v2.patch +++ b/Spigot-Server-Patches/0005-Timings-v2.patch @@ -1,11 +1,11 @@ -From 389912ff339c2edd5542e66afc749c588f15fe04 Mon Sep 17 00:00:00 2001 +From fab6746b634e849bb0effc92deb503dc84e72eac Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 diff --git a/pom.xml b/pom.xml -index 0e88ae2..31b8401 100644 +index 0e88ae2a7..31b8401aa 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,12 @@ @@ -23,7 +23,7 @@ index 0e88ae2..31b8401 100644 3.0.3 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java new file mode 100644 -index 0000000..29838de +index 000000000..29838de47 --- /dev/null +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -0,0 +1,114 @@ @@ -143,7 +143,7 @@ index 0000000..29838de +} diff --git a/src/main/java/co/aikar/timings/TimedChunkGenerator.java b/src/main/java/co/aikar/timings/TimedChunkGenerator.java new file mode 100644 -index 0000000..b79f1be +index 000000000..b79f1be7a --- /dev/null +++ b/src/main/java/co/aikar/timings/TimedChunkGenerator.java @@ -0,0 +1,126 @@ @@ -275,7 +275,7 @@ index 0000000..b79f1be +} diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java new file mode 100644 -index 0000000..e778911 +index 000000000..e7789117b --- /dev/null +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java @@ -0,0 +1,101 @@ @@ -381,7 +381,7 @@ index 0000000..e778911 + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index c009c5f..e679890 100644 +index c009c5f12..e67989083 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -14,11 +14,14 @@ import java.util.concurrent.TimeUnit; @@ -425,7 +425,7 @@ index c009c5f..e679890 100644 + } } diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index e8511ac..d3f1a4a 100644 +index e8511ac9a..d3f1a4ac0 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -35,6 +35,15 @@ public class Block { @@ -445,7 +445,7 @@ index e8511ac..d3f1a4a 100644 public static int getId(Block block) { return Block.REGISTRY.a(block); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 81fc04e..bd3b160 100644 +index 81fc04ed3..bd3b16025 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -900,7 +900,7 @@ public class Chunk { @@ -493,7 +493,7 @@ index 81fc04e..bd3b160 100644 private void z() { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index b39937f..17d39bb 100644 +index 87c07f2be..e18fb875f 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -195,7 +195,7 @@ public class ChunkProviderServer implements IChunkProvider { @@ -515,7 +515,7 @@ index b39937f..17d39bb 100644 this.chunkLoader.a(this.world, chunk); } catch (IOException ioexception) { diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index a97e7d3..4890023 100644 +index a97e7d3c2..4890023d7 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -402,7 +402,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { @@ -555,7 +555,7 @@ index a97e7d3..4890023 100644 // return chunk; // CraftBukkit } diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index cb83e4f..4dab9e9 100644 +index cb83e4f56..4dab9e962 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -23,7 +23,7 @@ import java.io.PrintStream; @@ -586,7 +586,7 @@ index cb83e4f..4dab9e9 100644 public boolean aa() { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index e7b1ebb..05312c6 100644 +index e7b1ebbe3..05312c6ac 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -25,7 +25,8 @@ import org.bukkit.block.BlockFace; @@ -625,7 +625,7 @@ index e7b1ebb..05312c6 100644 public void recalcPosition() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 318d57e..955e1f7 100644 +index 318d57e57..955e1f7a7 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -31,7 +31,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -696,7 +696,7 @@ index 318d57e..955e1f7 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java -index 347a2b6..aceb08c 100644 +index 347a2b671..aceb08ce1 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -175,7 +175,7 @@ public class EntityTracker { @@ -727,19 +727,20 @@ index 347a2b6..aceb08c 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 90b6678..9e3a8d1 100644 +index d1b488e8f..8f7b148a1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -47,7 +47,7 @@ import org.bukkit.Bukkit; +@@ -47,8 +47,8 @@ import org.bukkit.Bukkit; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.Main; // CraftBukkit end -import org.bukkit.craftbukkit.SpigotTimings; // Spigot + import org.spigotmc.SlackActivityAccountant; // Spigot +import co.aikar.timings.MinecraftTimings; // Paper public abstract class MinecraftServer implements Runnable, ICommandListener, IAsyncTaskHandler, IMojangStatistics { -@@ -457,6 +457,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -459,6 +459,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } // CraftBukkit end MinecraftServer.LOGGER.info("Stopping server"); @@ -747,16 +748,16 @@ index 90b6678..9e3a8d1 100644 // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); -@@ -661,7 +662,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -663,7 +664,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs public void B() {} protected void C() throws ExceptionWorldConflict { // CraftBukkit - added throws - SpigotTimings.serverTickTimer.startTiming(); // Spigot + co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper + this.slackActivityAccountant.tickStarted(); // Spigot long i = System.nanoTime(); - ++this.ticks; -@@ -688,7 +689,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -691,7 +692,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit @@ -764,7 +765,7 @@ index 90b6678..9e3a8d1 100644 this.methodProfiler.a("save"); this.v.savePlayers(); // Spigot Start -@@ -703,7 +703,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -706,7 +706,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // this.saveChunks(true); // Spigot End this.methodProfiler.b(); @@ -772,12 +773,10 @@ index 90b6678..9e3a8d1 100644 } this.methodProfiler.a("tallying"); -@@ -720,15 +719,16 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -729,14 +728,14 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - this.methodProfiler.b(); - this.methodProfiler.b(); -+ org.spigotmc.WatchdogThread.tick(); // Spigot + this.slackActivityAccountant.tickEnded(tickNanos); // Spigot - SpigotTimings.serverTickTimer.stopTiming(); // Spigot - org.spigotmc.CustomTimingsHandler.tick(); // Spigot + co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper @@ -793,7 +792,7 @@ index 90b6678..9e3a8d1 100644 this.methodProfiler.a("jobs"); Queue queue = this.j; -@@ -739,22 +739,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -747,22 +746,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs SystemUtils.a(entry, MinecraftServer.LOGGER); } // Spigot end @@ -822,7 +821,7 @@ index 90b6678..9e3a8d1 100644 // Send time updates to everyone, it will get the right time from the world the player is in. if (this.ticks % 20 == 0) { for (int i = 0; i < this.getPlayerList().players.size(); ++i) { -@@ -762,7 +763,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -770,7 +770,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs entityplayer.playerConnection.sendPacket(new PacketPlayOutUpdateTime(entityplayer.world.getTime(), entityplayer.getPlayerTime(), entityplayer.world.getGameRules().getBoolean("doDaylightCycle"))); // Add support for per player time } } @@ -831,7 +830,7 @@ index 90b6678..9e3a8d1 100644 int i; -@@ -819,9 +820,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -827,9 +827,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); this.methodProfiler.a("tracker"); @@ -841,7 +840,7 @@ index 90b6678..9e3a8d1 100644 this.methodProfiler.b(); this.methodProfiler.b(); // } // CraftBukkit -@@ -830,20 +829,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -838,20 +836,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } this.methodProfiler.c("connection"); @@ -869,7 +868,7 @@ index 90b6678..9e3a8d1 100644 this.methodProfiler.b(); } diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index a5a096b..c546139 100644 +index 703d5813d..021dfba14 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -1,5 +1,6 @@ @@ -934,13 +933,13 @@ index a5a096b..c546139 100644 if (!this.h.isEmpty()) { + try (Timing ignored = world.timings.doChunkMapPlayersNeedingChunks.startTiming()) { // Paper - long k = System.nanoTime() + 50000000L; - int l = 49; - Iterator iterator1 = this.h.iterator(); -@@ -180,10 +190,12 @@ public class PlayerChunkMap { - } - // CraftBukkit end + // Spigot start + org.spigotmc.SlackActivityAccountant activityAccountant = this.world.getMinecraftServer().slackActivityAccountant; + activityAccountant.startActivity(0.5); +@@ -184,10 +194,12 @@ public class PlayerChunkMap { } + + activityAccountant.endActivity(); // Spigot + } // Paper timing } @@ -950,7 +949,7 @@ index a5a096b..c546139 100644 Iterator iterator2 = this.g.iterator(); while (iterator2.hasNext()) { -@@ -197,14 +209,17 @@ public class PlayerChunkMap { +@@ -201,14 +213,17 @@ public class PlayerChunkMap { } } } @@ -969,7 +968,7 @@ index a5a096b..c546139 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index dc630c5..1248613 100644 +index dc630c536..12486135d 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -56,6 +56,7 @@ import org.bukkit.inventory.CraftingInventory; @@ -1017,7 +1016,7 @@ index dc630c5..1248613 100644 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index c0af82b..676cc3f 100644 +index c0af82b48..676cc3f3e 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -1,5 +1,6 @@ @@ -1041,7 +1040,7 @@ index c0af82b..676cc3f 100644 public void addWhitelist(GameProfile gameprofile) { diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java -index f1f2065..fb350c4 100644 +index f1f206501..fb350c408 100644 --- a/src/main/java/net/minecraft/server/StructureGenerator.java +++ b/src/main/java/net/minecraft/server/StructureGenerator.java @@ -1,5 +1,7 @@ @@ -1083,7 +1082,7 @@ index f1f2065..fb350c4 100644 return flag; } diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 6958a2e..b3d3df4 100644 +index 6958a2e0f..b3d3df4cf 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java @@ -4,12 +4,13 @@ import javax.annotation.Nullable; @@ -1103,7 +1102,7 @@ index 6958a2e..b3d3df4 100644 private static final RegistryMaterials> f = new RegistryMaterials(); protected World world; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index b29375a..c2326cd 100644 +index b29375a0c..c2326cd8e 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -18,11 +18,11 @@ import com.google.common.collect.Maps; @@ -1209,7 +1208,7 @@ index b29375a..c2326cd 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 391a09c..9669389 100644 +index 391a09c52..966938997 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -247,13 +247,13 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -1342,7 +1341,7 @@ index 391a09c..9669389 100644 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 791383f..38ce058 100644 +index 791383fb3..38ce05828 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1737,6 +1737,7 @@ public final class CraftServer implements Server { @@ -1380,7 +1379,7 @@ index 791383f..38ce058 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java deleted file mode 100644 -index 41d2d87..0000000 +index 41d2d87ee..000000000 --- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java +++ /dev/null @@ -1,173 +0,0 @@ @@ -1558,7 +1557,7 @@ index 41d2d87..0000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java -index 3a95b44..b5efb9c 100644 +index 3a95b4465..b5efb9c3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java +++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOProvider.java @@ -1,6 +1,8 @@ @@ -1602,7 +1601,7 @@ index 3a95b44..b5efb9c 100644 public void callStage3(QueuedChunk queuedChunk, Chunk chunk, Runnable runnable) throws RuntimeException { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d057cce..877a0c8 100644 +index d057cce36..877a0c88d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -37,15 +37,9 @@ import org.bukkit.configuration.serialization.DelegateDeserialization; @@ -1636,7 +1635,7 @@ index d057cce..877a0c8 100644 public Player.Spigot spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index 92d217b..198c37c 100644 +index 92d217bce..198c37c3c 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -189,7 +189,7 @@ public class CraftScheduler implements BukkitScheduler { @@ -1677,7 +1676,7 @@ index 92d217b..198c37c 100644 task.getOwner().getLogger().log( Level.WARNING, diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index 220e39a..afc6c17 100644 +index 220e39abe..afc6c17e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -1,8 +1,8 @@ @@ -1759,7 +1758,7 @@ index 220e39a..afc6c17 100644 - // Spigot end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java -index e52ef47..3d90b34 100644 +index e52ef47b7..3d90b3426 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java @@ -5,6 +5,7 @@ import org.bukkit.util.CachedServerIcon; @@ -1771,7 +1770,7 @@ index e52ef47..3d90b34 100644 this.value = value; } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index c32d44d..5c2fb00 100644 +index c32d44df0..5c2fb0058 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -29,7 +29,7 @@ import net.minecraft.server.EntityWither; @@ -1833,5 +1832,5 @@ index c32d44d..5c2fb00 100644 } } -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0015-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/Spigot-Server-Patches/0015-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index 10bffc996f..ab3c145d96 100644 --- a/Spigot-Server-Patches/0015-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/Spigot-Server-Patches/0015-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -1,4 +1,4 @@ -From fa342a9517f7e5c9ca34b6bc5b8c03f20524e4d6 Mon Sep 17 00:00:00 2001 +From 097fe2c890f1fcff2a79ab78b18f7924db2edca9 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 14:32:43 -0600 Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang @@ -6,7 +6,7 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang diff --git a/src/main/java/net/minecraft/server/EULA.java b/src/main/java/net/minecraft/server/EULA.java -index a8b5079..ebbc1fc 100644 +index a8b507961..ebbc1fcaf 100644 --- a/src/main/java/net/minecraft/server/EULA.java +++ b/src/main/java/net/minecraft/server/EULA.java @@ -51,7 +51,8 @@ public class EULA { @@ -20,10 +20,10 @@ index a8b5079..ebbc1fc 100644 EULA.a.warn("Failed to save {}", new Object[] { this.b, exception}); } finally { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9e3a8d1..2638f03 100644 +index 8f7b148a1..7539bb215 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1035,7 +1035,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1042,7 +1042,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } public String getServerModName() { @@ -33,7 +33,7 @@ index 9e3a8d1..2638f03 100644 public CrashReport b(CrashReport crashreport) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 38ce058..24fd62b 100644 +index 38ce05828..24fd62b53 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -135,7 +135,7 @@ import net.md_5.bungee.api.chat.BaseComponent; @@ -46,7 +46,7 @@ index 38ce058..24fd62b 100644 private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 94a3d42..3ed983c 100644 +index 94a3d4237..3ed983cc0 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -19,7 +19,7 @@ public class WatchdogThread extends Thread @@ -80,5 +80,5 @@ index 94a3d42..3ed983c 100644 log.log( Level.SEVERE, "------------------------------" ); // -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0020-Further-improve-server-tick-loop.patch b/Spigot-Server-Patches/0020-Further-improve-server-tick-loop.patch index 5103ec9295..3837d52a7b 100644 --- a/Spigot-Server-Patches/0020-Further-improve-server-tick-loop.patch +++ b/Spigot-Server-Patches/0020-Further-improve-server-tick-loop.patch @@ -1,4 +1,4 @@ -From 4c820d01b5348a632a806b270fc93f2d5ae2b02b Mon Sep 17 00:00:00 2001 +From bfa96ef58792ce8ee38410f4338d7860aa503a4b Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 Mar 2016 23:09:29 -0600 Subject: [PATCH] Further improve server tick loop @@ -12,10 +12,10 @@ Previous implementation did not calculate TPS correctly. Switch to a realistic rolling average and factor in std deviation as an extra reporting variable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2638f03..6a1c7b7 100644 +index 7539bb215..91fb12128 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -112,17 +112,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -113,16 +113,12 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; public ConsoleReader reader; @@ -25,16 +25,15 @@ index 2638f03..6a1c7b7 100644 public java.util.Queue processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; // CraftBukkit end -- // Spigot start -- private static final int TPS = 20; -- private static final int TICK_TIME = 1000000000 / TPS; + // Spigot start +- public static final int TPS = 20; +- public static final int TICK_TIME = 1000000000 / TPS; - private static final int SAMPLE_INTERVAL = 100; - public final double[] recentTps = new double[ 3 ]; -- // Spigot end + public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); + // Spigot end - public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { - io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable -@@ -531,12 +525,54 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -533,12 +529,54 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.isRunning = false; } @@ -45,7 +44,7 @@ index 2638f03..6a1c7b7 100644 + // Paper start - Further improve server tick loop + private static final int TPS = 20; + private static final long SEC_IN_NANO = 1000000000; -+ private static final long TICK_TIME = SEC_IN_NANO / TPS; ++ public static final long TICK_TIME = SEC_IN_NANO / TPS; + private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L; + private static final int SAMPLE_INTERVAL = 20; + public final RollingAverage tps1 = new RollingAverage(60); @@ -91,10 +90,10 @@ index 2638f03..6a1c7b7 100644 } - // Spigot End + // Paper End - + public void run() { try { -@@ -550,24 +586,41 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -552,24 +590,41 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // Spigot start Arrays.fill( recentTps, 20 ); @@ -148,7 +147,7 @@ index 2638f03..6a1c7b7 100644 } lastTick = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 24fd62b..30ed3ad 100644 +index 24fd62b53..30ed3ad58 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1734,6 +1734,17 @@ public final class CraftServer implements Server { @@ -170,7 +169,7 @@ index 24fd62b..30ed3ad 100644 { diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java -index be2e31d..6d21c32 100644 +index be2e31dea..6d21c3269 100644 --- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java +++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java @@ -1,8 +1,5 @@ @@ -211,5 +210,5 @@ index be2e31d..6d21c32 100644 return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString() + ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0028-Lighting-Queue.patch b/Spigot-Server-Patches/0028-Lighting-Queue.patch index 1bb98e4439..7adbcc18db 100644 --- a/Spigot-Server-Patches/0028-Lighting-Queue.patch +++ b/Spigot-Server-Patches/0028-Lighting-Queue.patch @@ -1,4 +1,4 @@ -From 77660fb147000a0103f9794ef134092519efb742 Mon Sep 17 00:00:00 2001 +From e3ec2eda60b7343add29c6546bc8e818239e6a18 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 00:52:31 -0600 Subject: [PATCH] Lighting Queue @@ -85,10 +85,10 @@ index 1c0108ef1..b80f95159 100644 TileEntity tileentity; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 17d39bb0f..df3ce72e2 100644 +index e18fb875f..8c015c095 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -280,6 +280,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -292,6 +292,7 @@ public class ChunkProviderServer implements IChunkProvider { return false; } save = event.isSaveChunk(); @@ -97,26 +97,26 @@ index 17d39bb0f..df3ce72e2 100644 // Update neighbor counts for (int x = -2; x < 3; x++) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6a1c7b7f0..538745e7d 100644 +index 91fb12128..1d9ba0d0f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -716,7 +716,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - +@@ -721,7 +721,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs protected void C() throws ExceptionWorldConflict { // CraftBukkit - added throws co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper + this.slackActivityAccountant.tickStarted(); // Spigot - long i = System.nanoTime(); + long i = System.nanoTime(); long startTime = i; // Paper ++this.ticks; if (this.T) { -@@ -774,6 +774,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -782,6 +782,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); org.spigotmc.WatchdogThread.tick(); // Spigot + PaperLightingQueue.processQueue(startTime); // Paper + this.slackActivityAccountant.tickEnded(tickNanos); // Spigot co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper } - diff --git a/src/main/java/net/minecraft/server/PaperLightingQueue.java b/src/main/java/net/minecraft/server/PaperLightingQueue.java new file mode 100644 index 000000000..d8d3e1efd @@ -225,7 +225,7 @@ index 000000000..d8d3e1efd + } +} diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 1143b3e01..63a6a9855 100644 +index 4a35d06e4..b38228707 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -387,7 +387,7 @@ public abstract class World implements IBlockAccess { @@ -238,5 +238,5 @@ index 1143b3e01..63a6a9855 100644 } -- -2.11.0 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0032-Optimize-explosions.patch b/Spigot-Server-Patches/0032-Optimize-explosions.patch index f1c7389106..8873e4894d 100644 --- a/Spigot-Server-Patches/0032-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0032-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From 8ac419a52c439df5879646d8ff7019006015ffba Mon Sep 17 00:00:00 2001 +From 0a9dcecb7411da79274afd6894d356d7b23800ec Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 11:59:48 -0600 Subject: [PATCH] Optimize explosions @@ -10,7 +10,7 @@ This patch adds a per-tick cache that is used for storing and retrieving an entity's exposure during an explosion. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index bc50289..356265e 100644 +index bc5028965..356265e91 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -185,4 +185,10 @@ public class PaperWorldConfig { @@ -25,7 +25,7 @@ index bc50289..356265e 100644 + } } diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index 4e05bcd..49fc95e 100644 +index 4e05bcdfa..49fc95e35 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -130,7 +130,7 @@ public class Explosion { @@ -124,10 +124,10 @@ index 4e05bcd..49fc95e 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2e72b8c..a872e76 100644 +index 1d9ba0d0f..b3454eae6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -877,6 +877,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -886,6 +886,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs worldserver.getTracker().updatePlayers(); this.methodProfiler.b(); this.methodProfiler.b(); @@ -136,7 +136,7 @@ index 2e72b8c..a872e76 100644 // this.i[i][this.ticks % 100] = System.nanoTime() - j; // CraftBukkit diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 8cb3a98..b80282b 100644 +index b38228707..ea6f02a68 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -15,6 +15,7 @@ import javax.annotation.Nullable; @@ -156,5 +156,5 @@ index 8cb3a98..b80282b 100644 public CraftWorld getWorld() { return this.world; -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0036-Add-player-view-distance-API.patch b/Spigot-Server-Patches/0036-Add-player-view-distance-API.patch index b053576cac..3de799d8a6 100644 --- a/Spigot-Server-Patches/0036-Add-player-view-distance-API.patch +++ b/Spigot-Server-Patches/0036-Add-player-view-distance-API.patch @@ -1,11 +1,11 @@ -From 09f331d1c102fe49bec0005f28574e4a22b5d068 Mon Sep 17 00:00:00 2001 +From a836b78f0e2b4d5e81479f6a776c06ab7fd40e91 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 14:35:27 -0600 Subject: [PATCH] Add player view distance API diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index a11d882..5717de3 100644 +index 6a26569b9..1b8be825d 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -57,6 +57,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -25,7 +25,7 @@ index a11d882..5717de3 100644 // CraftBukkit start public String displayName; diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index c546139..ef8744b 100644 +index 021dfba14..9012a63a0 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -47,7 +47,7 @@ public class PlayerChunkMap { @@ -37,7 +37,7 @@ index c546139..ef8744b 100644 private long k; private boolean l = true; private boolean m = true; -@@ -287,8 +287,11 @@ public class PlayerChunkMap { +@@ -291,8 +291,11 @@ public class PlayerChunkMap { // CraftBukkit start - Load nearby chunks first List chunkList = new LinkedList(); @@ -51,7 +51,7 @@ index c546139..ef8744b 100644 chunkList.add(new ChunkCoordIntPair(k, l)); } } -@@ -307,8 +310,11 @@ public class PlayerChunkMap { +@@ -311,8 +314,11 @@ public class PlayerChunkMap { int i = (int) entityplayer.d >> 4; int j = (int) entityplayer.e >> 4; @@ -65,7 +65,7 @@ index c546139..ef8744b 100644 PlayerChunk playerchunk = this.getChunk(k, l); if (playerchunk != null) { -@@ -338,7 +344,9 @@ public class PlayerChunkMap { +@@ -342,7 +348,9 @@ public class PlayerChunkMap { if (d2 >= 64.0D) { int k = (int) entityplayer.d >> 4; int l = (int) entityplayer.e >> 4; @@ -76,7 +76,7 @@ index c546139..ef8744b 100644 int j1 = i - k; int k1 = j - l; -@@ -347,7 +355,7 @@ public class PlayerChunkMap { +@@ -351,7 +359,7 @@ public class PlayerChunkMap { if (j1 != 0 || k1 != 0) { for (int l1 = i - i1; l1 <= i + i1; ++l1) { for (int i2 = j - i1; i2 <= j + i1; ++i2) { @@ -85,7 +85,7 @@ index c546139..ef8744b 100644 // this.c(l1, i2).a(entityplayer); chunksToLoad.add(new ChunkCoordIntPair(l1, i2)); // CraftBukkit } -@@ -382,6 +390,8 @@ public class PlayerChunkMap { +@@ -386,6 +394,8 @@ public class PlayerChunkMap { return playerchunk != null && playerchunk.d(entityplayer) && playerchunk.e(); } @@ -94,7 +94,7 @@ index c546139..ef8744b 100644 public void a(int i) { i = MathHelper.clamp(i, 3, 32); if (i != this.j) { -@@ -391,36 +401,55 @@ public class PlayerChunkMap { +@@ -395,36 +405,55 @@ public class PlayerChunkMap { while (iterator.hasNext()) { EntityPlayer entityplayer = (EntityPlayer) iterator.next(); @@ -172,7 +172,7 @@ index c546139..ef8744b 100644 private void e() { this.l = true; -@@ -499,4 +528,20 @@ public class PlayerChunkMap { +@@ -503,4 +532,20 @@ public class PlayerChunkMap { } } // CraftBukkit end @@ -194,7 +194,7 @@ index c546139..ef8744b 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3e4e080..318b460 100644 +index 3e4e0801c..318b4608e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1468,6 +1468,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -215,5 +215,5 @@ index 3e4e080..318b460 100644 private final Player.Spigot spigot = new Player.Spigot() { -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0082-Catch-Async-PlayerChunkMap-operations.patch b/Spigot-Server-Patches/0082-Catch-Async-PlayerChunkMap-operations.patch index 92a7f46938..4dab2ca328 100644 --- a/Spigot-Server-Patches/0082-Catch-Async-PlayerChunkMap-operations.patch +++ b/Spigot-Server-Patches/0082-Catch-Async-PlayerChunkMap-operations.patch @@ -1,14 +1,14 @@ -From 1900cc9dee6a460ba8d87fd73ee25b43e73af49c Mon Sep 17 00:00:00 2001 +From 62f5ab3a1a75ae8550464511ccc3ed520443c92b Mon Sep 17 00:00:00 2001 From: Daniel Ennis Date: Sun, 20 Mar 2016 15:22:42 -0400 Subject: [PATCH] Catch Async PlayerChunkMap operations diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index ef8744b..d970e2f 100644 +index 9012a63a0..5b27bd1c5 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java -@@ -465,10 +465,12 @@ public class PlayerChunkMap { +@@ -469,10 +469,12 @@ public class PlayerChunkMap { } public void a(PlayerChunk playerchunk) { @@ -22,5 +22,5 @@ index ef8744b..d970e2f 100644 long i = d(chunkcoordintpair.x, chunkcoordintpair.z); -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0106-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0106-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 820109fd5c..a3b26f6962 100644 --- a/Spigot-Server-Patches/0106-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0106-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From a2fb44cbf12b30553ae1b7f1c3bfd9402d282e7a Mon Sep 17 00:00:00 2001 +From 538948b090d2c70051bb9d5713c5d175dd24afb5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 13 Sep 2014 23:14:43 -0400 Subject: [PATCH] Configurable Keep Spawn Loaded range per world @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 615a6af..6517c32 100644 +index 615a6af99..6517c3223 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -290,4 +290,10 @@ public class PaperWorldConfig { @@ -21,10 +21,10 @@ index 615a6af..6517c32 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6011955..4dc8794 100644 +index b3454eae6..abffaedbe 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -352,8 +352,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -356,8 +356,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs long j = aw(); i = 0; @@ -39,7 +39,7 @@ index 6011955..4dc8794 100644 if (i1 - j > 1000L) { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 2d5f3d2..9c36471 100644 +index a48fafdd4..5028663d0 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -3191,8 +3191,9 @@ public abstract class World implements IBlockAccess { @@ -54,7 +54,7 @@ index 2d5f3d2..9c36471 100644 public void a(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 540d578..8cb8cbe 100644 +index 540d57855..8cb8cbe2d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -952,7 +952,7 @@ public final class CraftServer implements Server { @@ -67,7 +67,7 @@ index 540d578..8cb8cbe 100644 for (int j = -short1; j <= short1; j += 16) { for (int k = -short1; k <= short1; k += 16) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 53fbd38..73aee9b 100644 +index 53fbd38d6..73aee9b0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1264,8 +1264,9 @@ public class CraftWorld implements World { @@ -83,5 +83,5 @@ index 53fbd38..73aee9b 100644 loadChunk(chunkCoordX + x, chunkCoordZ + z); } else { -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0114-Configurable-Player-Collision.patch b/Spigot-Server-Patches/0114-Configurable-Player-Collision.patch index 7e22863317..ec50d21593 100644 --- a/Spigot-Server-Patches/0114-Configurable-Player-Collision.patch +++ b/Spigot-Server-Patches/0114-Configurable-Player-Collision.patch @@ -1,11 +1,11 @@ -From 2fbcdc55c3f7c1f5de20f71ea62a51e90105ddde Mon Sep 17 00:00:00 2001 +From 0e395e58dade2e2186bb39d49d6188644684bdb1 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 02:10:49 -0400 Subject: [PATCH] Configurable Player Collision diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 70f7c87..6d0ea19 100644 +index 70f7c876d..6d0ea1939 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -210,4 +210,9 @@ public class PaperConfig { @@ -19,7 +19,7 @@ index 70f7c87..6d0ea19 100644 + } } diff --git a/src/main/java/net/minecraft/server/CommandScoreboard.java b/src/main/java/net/minecraft/server/CommandScoreboard.java -index ab9aa13..f9f59e5 100644 +index ab9aa132a..f9f59e559 100644 --- a/src/main/java/net/minecraft/server/CommandScoreboard.java +++ b/src/main/java/net/minecraft/server/CommandScoreboard.java @@ -183,6 +183,13 @@ public class CommandScoreboard extends CommandAbstract { @@ -37,10 +37,10 @@ index ab9aa13..f9f59e5 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4dc8794..8eef9c4 100644 +index abffaedbe..b9d4d65a6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -327,6 +327,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -331,6 +331,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.v.setPlayerFileData(this.worldServer); this.a(this.getDifficulty()); this.l(); @@ -62,7 +62,7 @@ index 4dc8794..8eef9c4 100644 protected void l() { diff --git a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java -index d8ec504..eb45d3c 100644 +index d8ec50455..eb45d3cf2 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java @@ -96,7 +96,7 @@ public class PacketPlayOutScoreboardTeam implements Packet Date: Thu, 28 Apr 2016 00:57:27 -0400 Subject: [PATCH] remove null possibility for getServer singleton @@ -6,10 +6,10 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8eef9c4..631a87f 100644 +index b9d4d65a6..15e543368 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -51,6 +51,7 @@ import co.aikar.timings.MinecraftTimings; // Paper +@@ -52,6 +52,7 @@ import co.aikar.timings.MinecraftTimings; // Paper public abstract class MinecraftServer implements Runnable, ICommandListener, IAsyncTaskHandler, IMojangStatistics { @@ -17,15 +17,15 @@ index 8eef9c4..631a87f 100644 public static final Logger LOGGER = LogManager.getLogger(); public static final File a = new File("usercache.json"); public Convertable convertable; -@@ -119,6 +120,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - // CraftBukkit end +@@ -123,6 +124,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + // Spigot end public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { + SERVER = this; // Paper - better singleton io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable this.e = proxy; this.V = yggdrasilauthenticationservice; -@@ -1625,7 +1627,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1634,7 +1636,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // CraftBukkit start @Deprecated public static MinecraftServer getServer() { @@ -35,5 +35,5 @@ index 8eef9c4..631a87f 100644 // CraftBukkit end } -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0133-Fix-Chunk-Unload-Queue-Issues.patch b/Spigot-Server-Patches/0133-Fix-Chunk-Unload-Queue-Issues.patch index 3f0029b98c..5d6dce0fc8 100644 --- a/Spigot-Server-Patches/0133-Fix-Chunk-Unload-Queue-Issues.patch +++ b/Spigot-Server-Patches/0133-Fix-Chunk-Unload-Queue-Issues.patch @@ -1,4 +1,4 @@ -From 88f9bcff3f3916cfba9333816ff90e3c8050637d Mon Sep 17 00:00:00 2001 +From 9a2443eb072a8c68194404566dc006841f2ceb32 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 12 May 2016 02:03:56 -0400 Subject: [PATCH] Fix Chunk Unload Queue Issues @@ -9,7 +9,7 @@ has not resolved all the bugs with the changes. This patch fixes known issues and really should be applied by Spigot team. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 3db2916..98f2cff 100644 +index 3db29161d..98f2cff15 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -46,7 +46,7 @@ public class Chunk { @@ -22,10 +22,10 @@ index 3db2916..98f2cff 100644 // Paper start diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index a57bcaf..bd44764 100644 +index a6f044461..279ef5de5 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -290,6 +290,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -296,6 +296,7 @@ public class ChunkProviderServer implements IChunkProvider { if (chunk != null && chunk.d) { // CraftBukkit start - move unload logic to own method @@ -34,5 +34,5 @@ index a57bcaf..bd44764 100644 continue; } -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0136-Optimize-UserCache-Thread-Safe.patch b/Spigot-Server-Patches/0136-Optimize-UserCache-Thread-Safe.patch index 8cae88bbc6..e2e75e5342 100644 --- a/Spigot-Server-Patches/0136-Optimize-UserCache-Thread-Safe.patch +++ b/Spigot-Server-Patches/0136-Optimize-UserCache-Thread-Safe.patch @@ -1,4 +1,4 @@ -From 96eb4bf4c891c95001f255a538ae3156e1996ca8 Mon Sep 17 00:00:00 2001 +From bd719bf59cf2a9071c52afa26605638b1d97100a Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 16 May 2016 20:47:41 -0400 Subject: [PATCH] Optimize UserCache / Thread Safe @@ -10,10 +10,10 @@ Additionally, move Saving of the User cache to be done async, incase the user never changed the default setting for Spigot's save on stop only. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 631a87f..b3e0ef7 100644 +index 15e543368..4078824f7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -523,7 +523,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -527,7 +527,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // Spigot start if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) { LOGGER.info("Saving usercache.json"); @@ -23,7 +23,7 @@ index 631a87f..b3e0ef7 100644 // Spigot end } diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java -index ccfc755..989758c 100644 +index ccfc755d2..989758cdf 100644 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -108,7 +108,7 @@ public class UserCache { @@ -96,5 +96,5 @@ index ccfc755..989758c 100644 } -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0145-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/Spigot-Server-Patches/0145-Delay-Chunk-Unloads-based-on-Player-Movement.patch index 5735d4ba6a..378713b5a0 100644 --- a/Spigot-Server-Patches/0145-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/Spigot-Server-Patches/0145-Delay-Chunk-Unloads-based-on-Player-Movement.patch @@ -1,4 +1,4 @@ -From 805d931e0371a7a349240c4430923f5f77fb4cca Mon Sep 17 00:00:00 2001 +From 8d76310982f39f70536a847c399e66923667d6f5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 18 Jun 2016 23:22:12 -0400 Subject: [PATCH] Delay Chunk Unloads based on Player Movement @@ -17,7 +17,7 @@ This allows servers with smaller worlds who do less long distance exploring to s wasting cpu cycles on saving/unloading/reloading chunks repeatedly. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index b9b0f74..cda516f 100644 +index b9b0f7479..cda516f6a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -351,4 +351,13 @@ public class PaperWorldConfig { @@ -35,7 +35,7 @@ index b9b0f74..cda516f 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 98f2cff..88437d7 100644 +index 98f2cff15..88437d77a 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -30,6 +30,7 @@ public class Chunk { @@ -47,12 +47,12 @@ index 98f2cff..88437d7 100644 public final int locZ; private boolean m; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index bd44764..7a56a64 100644 +index 279ef5de5..25deecc4d 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -300,6 +300,19 @@ public class ChunkProviderServer implements IChunkProvider { - } - } +@@ -312,6 +312,19 @@ public class ChunkProviderServer implements IChunkProvider { + + activityAccountant.endActivity(); // Spigot } + // Paper start - delayed chunk unloads + long now = System.currentTimeMillis(); @@ -71,7 +71,7 @@ index bd44764..7a56a64 100644 this.chunkLoader.a(); } diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index dd40e98..f109e98 100644 +index dd40e98c8..f109e986d 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java @@ -32,8 +32,16 @@ public class PlayerChunk { @@ -108,10 +108,10 @@ index dd40e98..f109e98 100644 // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index d970e2f..d3c454c 100644 +index 5b27bd1c5..b163346be 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java -@@ -483,7 +483,13 @@ public class PlayerChunkMap { +@@ -487,7 +487,13 @@ public class PlayerChunkMap { Chunk chunk = playerchunk.f(); if (chunk != null) { @@ -127,7 +127,7 @@ index d970e2f..d3c454c 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 73aee9b..5a44a9f 100644 +index 73aee9b0d..5a44a9f38 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1557,7 +1557,7 @@ public class CraftWorld implements World { @@ -140,5 +140,5 @@ index 73aee9b..5a44a9f 100644 } -- -2.9.3 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0158-Auto-Save-Improvements.patch b/Spigot-Server-Patches/0158-Auto-Save-Improvements.patch index 0b208d2efd..ec06d7271f 100644 --- a/Spigot-Server-Patches/0158-Auto-Save-Improvements.patch +++ b/Spigot-Server-Patches/0158-Auto-Save-Improvements.patch @@ -1,4 +1,4 @@ -From 53871d032337b751a60b9980c4df8c161df75b29 Mon Sep 17 00:00:00 2001 +From 6e591544d4f86d070b9fe8ff07949aac9e38d6da Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 19 Sep 2016 23:16:39 -0400 Subject: [PATCH] Auto Save Improvements @@ -76,7 +76,7 @@ index 88437d77a..9f7f32dc2 100644 public Random a(long i) { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 7a56a6416..5c5a56c51 100644 +index 25deecc4d..770abb51d 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -1,5 +1,6 @@ @@ -108,18 +108,18 @@ index b5e386501..d67493666 100644 public final MinecraftServer server; public final PlayerInteractManager playerInteractManager; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b3e0ef7fb..9cdcdc45a 100644 +index 4078824f7..e04bade5b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -117,6 +117,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -118,6 +118,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs public final Thread primaryThread; public java.util.Queue processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; + public boolean serverAutoSave = false; // Paper // CraftBukkit end - - public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { -@@ -760,22 +761,30 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs + // Spigot start + public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); +@@ -765,22 +766,30 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.q.b().a(agameprofile); } @@ -153,7 +153,7 @@ index b3e0ef7fb..9cdcdc45a 100644 + //} // Paper - Incremental Auto Saving this.methodProfiler.a("tallying"); - this.h[this.ticks % 100] = System.nanoTime() - i; + // Spigot start diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java index be67df061..f675a7013 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java @@ -215,5 +215,5 @@ index f969d2a72..cc0e8d2c8 100644 timings.worldSaveChunks.startTiming(); // Paper chunkproviderserver.a(flag); -- -2.11.0 +2.11.0.windows.3 diff --git a/Spigot-Server-Patches/0171-Optimize-Network-Queue.patch b/Spigot-Server-Patches/0171-Optimize-Network-Queue.patch index 9236a74489..cfa76ffac9 100644 --- a/Spigot-Server-Patches/0171-Optimize-Network-Queue.patch +++ b/Spigot-Server-Patches/0171-Optimize-Network-Queue.patch @@ -1,14 +1,14 @@ -From 4d091fa158b4578c63484d21b6c3d99863f44bba Mon Sep 17 00:00:00 2001 +From be295f0f521ab777676a30a6873b199bd8fdba99 Mon Sep 17 00:00:00 2001 From: vemacs Date: Wed, 23 Nov 2016 12:54:56 -0500 Subject: [PATCH] Optimize Network Queue diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9cdcdc45a..f96da8945 100644 +index e04bade5b..fc5be09ad 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -102,7 +102,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -103,7 +103,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs private final GameProfileRepository X; private final UserCache Y; private long Z; @@ -18,5 +18,5 @@ index 9cdcdc45a..f96da8945 100644 private long ab = aw(); -- -2.11.0 +2.11.0.windows.3 diff --git a/work/Spigot b/work/Spigot index 6de2fbc337..47414001a0 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 6de2fbc3377792b16f704e188aa34e72ce460354 +Subproject commit 47414001a0202ebd8bd80feb532b0ef9ce1733a9