From 92567cc43a2c246b329db575ae590d97c2fd092d Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 21 Oct 2016 15:28:44 -0500 Subject: [PATCH] Update upstream B/CB --- Spigot-API-Patches/0038-LootTable-API.patch | 22 +-- Spigot-Server-Patches/0005-Timings-v2.patch | 137 +++--------------- ...ient-crashes-server-lists-and-Mojang.patch | 8 +- .../0030-Lighting-Queue.patch | 20 +-- .../0035-Optimize-explosions.patch | 8 +- .../0052-Add-PlayerInitialSpawnEvent.patch | 8 +- ...54-Ensure-commands-are-not-ran-async.patch | 8 +- .../0067-Add-exception-reporting-event.patch | 8 +- .../0071-Complete-resource-pack-API.patch | 10 +- .../0109-Add-getEntity-by-UUID-API.patch | 10 +- ...0112-Add-PlayerUseUnknownEntityEvent.patch | 8 +- ...dDebugInfo-not-initialized-on-client.patch | 8 +- ...nilla-per-world-scoreboard-coloring-.patch | 8 +- ...te-PlayerConnection-on-teleporting-p.patch | 10 +- .../0124-Configurable-Player-Collision.patch | 16 +- ...-possibility-for-getServer-singleton.patch | 8 +- ...-API-Replenishable-Lootables-Feature.patch | 22 +-- ...mative-vehicle-moved-wrongly-message.patch | 8 +- ...168-Fix-AIOOBE-in-inventory-handling.patch | 8 +- ...onfigurable-packet-in-spam-threshold.patch | 8 +- ...70-Configurable-flying-kick-messages.patch | 10 +- .../0171-Auto-Save-Improvements.patch | 26 ++-- .../0177-Disable-Vanilla-Chunk-GC.patch | 14 +- work/Bukkit | 2 +- work/CraftBukkit | 2 +- 25 files changed, 149 insertions(+), 248 deletions(-) diff --git a/Spigot-API-Patches/0038-LootTable-API.patch b/Spigot-API-Patches/0038-LootTable-API.patch index 761cdb732a..e10a5328b1 100644 --- a/Spigot-API-Patches/0038-LootTable-API.patch +++ b/Spigot-API-Patches/0038-LootTable-API.patch @@ -1,4 +1,4 @@ -From 2b1c15d0ea5602d9281d1306e0596a5a7f2d85e2 Mon Sep 17 00:00:00 2001 +From 3cee88900b20b75852cff22796567415d3bed5c5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 May 2016 15:19:49 -0400 Subject: [PATCH] LootTable API @@ -295,7 +295,7 @@ index 0000000..2169493 + } +} diff --git a/src/main/java/org/bukkit/block/Chest.java b/src/main/java/org/bukkit/block/Chest.java -index ee95841..25dfc5f 100644 +index e941d8b..a2f8f53 100644 --- a/src/main/java/org/bukkit/block/Chest.java +++ b/src/main/java/org/bukkit/block/Chest.java @@ -1,12 +1,13 @@ @@ -308,13 +308,13 @@ index ee95841..25dfc5f 100644 /** * Represents a chest. */ --public interface Chest extends BlockState, InventoryHolder { -+public interface Chest extends BlockState, InventoryHolder, LootableInventory { // Paper +-public interface Chest extends BlockState, InventoryHolder, Lockable { ++public interface Chest extends BlockState, InventoryHolder, Lockable, LootableInventory { // Paper /** * Returns the chest's inventory. If this is a double chest, it returns diff --git a/src/main/java/org/bukkit/block/Dispenser.java b/src/main/java/org/bukkit/block/Dispenser.java -index 4e6b349..3aa0a81 100644 +index 94d360b..b80cb5f 100644 --- a/src/main/java/org/bukkit/block/Dispenser.java +++ b/src/main/java/org/bukkit/block/Dispenser.java @@ -1,12 +1,13 @@ @@ -327,13 +327,13 @@ index 4e6b349..3aa0a81 100644 /** * Represents a dispenser. */ --public interface Dispenser extends BlockState, InventoryHolder { -+public interface Dispenser extends BlockState, InventoryHolder, LootableInventory { // Paper +-public interface Dispenser extends BlockState, InventoryHolder, Lockable { ++public interface Dispenser extends BlockState, InventoryHolder, Lockable, LootableInventory { // Paper /** * Gets the BlockProjectileSource object for this dispenser. diff --git a/src/main/java/org/bukkit/block/Hopper.java b/src/main/java/org/bukkit/block/Hopper.java -index e097157..26aff5a 100644 +index 978cf2a..d8c8abd 100644 --- a/src/main/java/org/bukkit/block/Hopper.java +++ b/src/main/java/org/bukkit/block/Hopper.java @@ -1,10 +1,11 @@ @@ -345,10 +345,10 @@ index e097157..26aff5a 100644 /** * Represents a hopper. */ --public interface Hopper extends BlockState, InventoryHolder { -+public interface Hopper extends BlockState, InventoryHolder, LootableInventory { // Paper +-public interface Hopper extends BlockState, InventoryHolder, Lockable { ++public interface Hopper extends BlockState, InventoryHolder, Lockable, LootableInventory { // Paper } -- -2.9.2.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0005-Timings-v2.patch b/Spigot-Server-Patches/0005-Timings-v2.patch index 5d4ce1a830..2cdfc8297c 100644 --- a/Spigot-Server-Patches/0005-Timings-v2.patch +++ b/Spigot-Server-Patches/0005-Timings-v2.patch @@ -1,4 +1,4 @@ -From 816dc32418ed79b5a38e7a4b5bc58bddc8123af1 Mon Sep 17 00:00:00 2001 +From 42571345704ae6d7b8139b39bf4d90eeed7582bc Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 @@ -23,7 +23,7 @@ index 4ae34c8..63aaa7a 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 0000000..2dff5e3 --- /dev/null +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -0,0 +1,114 @@ @@ -45,7 +45,7 @@ index 0000000..29838de + public static final Timing chunkIOTickTimer = Timings.ofSafe("ChunkIOTick"); + public static final Timing timeUpdateTimer = Timings.ofSafe("Time Update"); + public static final Timing serverCommandTimer = Timings.ofSafe("Server Command"); -+ public static final Timing savePlayers = Timings.ofSafe("Save Players"); ++ public static final Timing worldSaveTimer = Timings.ofSafe("World Save"); + + public static final Timing tickEntityTimer = Timings.ofSafe("## tickEntity"); + public static final Timing tickTileEntityTimer = Timings.ofSafe("## tickTileEntity"); @@ -275,10 +275,10 @@ index 0000000..2bf5b66 +} 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 0000000..36aafb2 --- /dev/null +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java -@@ -0,0 +1,101 @@ +@@ -0,0 +1,91 @@ +package co.aikar.timings; + +import net.minecraft.server.World; @@ -325,11 +325,6 @@ index 0000000..e778911 + public final Timing chunkGeneration; + public final Timing chunkIOStage1; + public final Timing chunkIOStage2; -+ public final Timing worldSave; -+ public final Timing worldSaveChunks; -+ public final Timing worldSaveLevel; -+ public final Timing chunkSaveNop; -+ public final Timing chunkSaveData; + + public WorldTimingsHandler(World server) { + String name = server.worldData.getName() +" - "; @@ -368,11 +363,6 @@ index 0000000..e778911 + chunkGeneration = Timings.ofSafe(name + "chunkGeneration"); + chunkIOStage1 = Timings.ofSafe(name + "ChunkIO Stage 1 - DiskIO"); + chunkIOStage2 = Timings.ofSafe(name + "ChunkIO Stage 2 - Post Load"); -+ worldSave = Timings.ofSafe(name + "World Save"); -+ worldSaveLevel = Timings.ofSafe(name + "World Save - Level"); -+ worldSaveChunks = Timings.ofSafe(name + "World Save - Chunks"); -+ chunkSaveNop = Timings.ofSafe(name + "Chunk Save - NOP"); -+ chunkSaveData = Timings.ofSafe(name + "Chunk Save - Data"); + + tracker1 = Timings.ofSafe(name + "tracker stage 1"); + tracker2 = Timings.ofSafe(name + "tracker stage 2"); @@ -492,28 +482,6 @@ index b651edc..5807bb8 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 5682f03..1380815 100644 ---- a/src/main/java/net/minecraft/server/ChunkProviderServer.java -+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -194,7 +194,7 @@ public class ChunkProviderServer implements IChunkProvider { - } - - public void saveChunkNOP(Chunk chunk) { -- try { -+ try (co.aikar.timings.Timing timed = world.timings.chunkSaveNop.startTiming()) { - this.chunkLoader.b(this.world, chunk); - } catch (Exception exception) { - ChunkProviderServer.a.error("Couldn\'t save entities", exception); -@@ -203,7 +203,7 @@ public class ChunkProviderServer implements IChunkProvider { - } - - public void saveChunk(Chunk chunk) { -- try { -+ try (co.aikar.timings.Timing timed = world.timings.chunkSaveData.startTiming()) { - chunk.setLastSaved(this.world.getTime()); - 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 f604639..17dd7bb 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -727,7 +695,7 @@ index 5432e70..72cd51a 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 26f8467..4814643 100644 +index 26f8467..891c7ea 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -45,7 +45,7 @@ import org.bukkit.Bukkit; @@ -756,23 +724,25 @@ index 26f8467..4814643 100644 long i = System.nanoTime(); ++this.ticks; -@@ -681,7 +682,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -681,7 +682,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit - SpigotTimings.worldSaveTimer.startTiming(); // Spigot ++ MinecraftTimings.worldSaveTimer.startTiming(); // Spigot this.methodProfiler.a("save"); this.v.savePlayers(); // Spigot Start -@@ -696,7 +696,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -696,7 +697,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // this.saveChunks(true); // Spigot End this.methodProfiler.b(); - SpigotTimings.worldSaveTimer.stopTiming(); // Spigot ++ MinecraftTimings.worldSaveTimer.stopTiming(); // Spigot } this.methodProfiler.a("tallying"); -@@ -713,15 +712,16 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -713,15 +714,16 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); this.methodProfiler.b(); @@ -793,7 +763,7 @@ index 26f8467..4814643 100644 this.methodProfiler.a("jobs"); Queue queue = this.j; -@@ -732,22 +732,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -732,22 +734,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs SystemUtils.a(entry, MinecraftServer.LOGGER); } // Spigot end @@ -822,7 +792,7 @@ index 26f8467..4814643 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) { -@@ -755,7 +756,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -755,7 +758,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 +801,7 @@ index 26f8467..4814643 100644 int i; -@@ -812,9 +813,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -812,9 +815,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); this.methodProfiler.a("tracker"); @@ -841,7 +811,7 @@ index 26f8467..4814643 100644 this.methodProfiler.b(); this.methodProfiler.b(); // } // CraftBukkit -@@ -823,20 +822,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -823,20 +824,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } this.methodProfiler.c("connection"); @@ -969,7 +939,7 @@ index b0249ff..797a84f 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index f47c5fc..ae576f0 100644 +index 8f42ac8..0546cb8 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -57,6 +57,7 @@ import org.bukkit.inventory.CraftingInventory; @@ -980,7 +950,7 @@ index f47c5fc..ae576f0 100644 // CraftBukkit end public class PlayerConnection implements PacketListenerPlayIn, ITickable { -@@ -1339,7 +1340,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1341,7 +1342,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // CraftBukkit end private void handleCommand(String s) { @@ -989,7 +959,7 @@ index f47c5fc..ae576f0 100644 // CraftBukkit start - whole method if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getName() + " issued server command: " + s); -@@ -1350,22 +1351,22 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1352,22 +1353,22 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { this.server.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -1016,30 +986,6 @@ index f47c5fc..ae576f0 100644 // this.minecraftServer.getCommandHandler().a(this.player, s); // CraftBukkit end } -diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 6bd7151..1b2cc01 100644 ---- a/src/main/java/net/minecraft/server/PlayerList.java -+++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1,5 +1,6 @@ - package net.minecraft.server; - -+import co.aikar.timings.MinecraftTimings; - import com.google.common.collect.Lists; - import com.google.common.collect.Maps; - import com.google.common.collect.Sets; -@@ -1167,10 +1168,11 @@ public abstract class PlayerList { - } - - public void savePlayers() { -+ MinecraftTimings.savePlayers.startTiming(); // Paper - for (int i = 0; i < this.players.size(); ++i) { - this.savePlayerFile((EntityPlayer) this.players.get(i)); - } -- -+ MinecraftTimings.savePlayers.stopTiming(); // Paper - } - - 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 8dd434c..c965af1 100644 --- a/src/main/java/net/minecraft/server/StructureGenerator.java @@ -1209,7 +1155,7 @@ index e649435..b73f64e 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 50fad7c..3d98392 100644 +index 50fad7c..769d55b 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -246,13 +246,13 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -1298,49 +1244,6 @@ index 50fad7c..3d98392 100644 // CraftBukkit end } -@@ -1007,6 +1015,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { - - if (chunkproviderserver.e()) { - org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit -+ timings.worldSave.startTiming(); // Paper - if (iprogressupdate != null) { - iprogressupdate.a("Saving level"); - } -@@ -1016,7 +1025,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { - iprogressupdate.c("Saving chunks"); - } - -+ timings.worldSaveChunks.startTiming(); // Paper - chunkproviderserver.a(flag); -+ timings.worldSaveChunks.stopTiming(); // Paper - // CraftBukkit - ArrayList -> Collection - Collection arraylist = chunkproviderserver.a(); - Iterator iterator = arraylist.iterator(); -@@ -1028,7 +1039,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { - chunkproviderserver.unload(chunk); - } - } -- -+ timings.worldSave.stopTiming(); // Paper - } - } - -@@ -1041,6 +1052,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { - } - - protected void a() throws ExceptionWorldConflict { -+ timings.worldSaveLevel.startTiming(); // Paper - this.checkSession(); - WorldServer[] aworldserver = this.server.worldServer; - int i = aworldserver.length; -@@ -1070,6 +1082,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { - this.worldData.e(this.getWorldBorder().i()); - this.dataManager.saveWorldData(this.worldData, this.server.getPlayerList().t()); - this.worldMaps.a(); -+ timings.worldSaveLevel.stopTiming(); // Paper - } - - // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index e7e9941..5f2a9b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1833,5 +1736,5 @@ index 30efc99..eb30abe 100644 } } -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch b/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch index e1e200ced2..58ca0a03c6 100644 --- a/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch +++ b/Spigot-Server-Patches/0017-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch @@ -1,4 +1,4 @@ -From dfa1dfa903a53268c050cd0be90ed38d288c26c7 Mon Sep 17 00:00:00 2001 +From 16d6873a483163cd2febc990d57bf533e7a92756 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 @@ -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 4814643..41f560f 100644 +index 891c7ea..062cfd6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1028,7 +1028,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1030,7 +1030,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } public String getServerModName() { @@ -80,5 +80,5 @@ index 94a3d42..3ed983c 100644 log.log( Level.SEVERE, "------------------------------" ); // -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0030-Lighting-Queue.patch b/Spigot-Server-Patches/0030-Lighting-Queue.patch index 4822dda513..95e24cadad 100644 --- a/Spigot-Server-Patches/0030-Lighting-Queue.patch +++ b/Spigot-Server-Patches/0030-Lighting-Queue.patch @@ -1,4 +1,4 @@ -From fa2e0c1e868ffb94b3748ffbd75b60a5b6ce38fc Mon Sep 17 00:00:00 2001 +From 6ceeb5a95f2b04aa60c021c103bcb75a2e6568dc Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 00:52:31 -0600 Subject: [PATCH] Lighting Queue @@ -6,19 +6,19 @@ Subject: [PATCH] Lighting Queue This provides option to queue lighting updates to ensure they do not cause the server lag diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java -index e778911..f90f5bf 100644 +index 36aafb2..90bdbf0 100644 --- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java -@@ -50,6 +50,8 @@ public class WorldTimingsHandler { - public final Timing chunkSaveNop; - public final Timing chunkSaveData; +@@ -45,6 +45,8 @@ public class WorldTimingsHandler { + public final Timing chunkIOStage1; + public final Timing chunkIOStage2; + public final Timing lightingQueueTimer; + public WorldTimingsHandler(World server) { String name = server.worldData.getName() +" - "; -@@ -97,5 +99,7 @@ public class WorldTimingsHandler { +@@ -87,5 +89,7 @@ public class WorldTimingsHandler { tracker2 = Timings.ofSafe(name + "tracker stage 2"); doTick = Timings.ofSafe(name + "doTick"); tickEntities = Timings.ofSafe(name + "tickEntities"); @@ -85,7 +85,7 @@ index 445419f..76130c9 100644 TileEntity tileentity; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 1380815..466cd49 100644 +index 5682f03..5eeefe8 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -279,6 +279,7 @@ public class ChunkProviderServer implements IChunkProvider { @@ -97,7 +97,7 @@ index 1380815..466cd49 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 029a6c3..f0dcb9f 100644 +index 1363472..d0060d0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -709,7 +709,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -109,7 +109,7 @@ index 029a6c3..f0dcb9f 100644 ++this.ticks; if (this.S) { -@@ -767,6 +767,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -769,6 +769,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.b(); org.spigotmc.WatchdogThread.tick(); // Spigot @@ -235,5 +235,5 @@ index 8fb8176..672167a 100644 } -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0035-Optimize-explosions.patch b/Spigot-Server-Patches/0035-Optimize-explosions.patch index 3c10e87b58..e8aa1cedf2 100644 --- a/Spigot-Server-Patches/0035-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0035-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From b543f01f64b3f40cf217d22ba12d5d9d23ad1b71 Mon Sep 17 00:00:00 2001 +From f8839281ef56121c254147fe119f99a82f918977 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 11:59:48 -0600 Subject: [PATCH] Optimize explosions @@ -124,10 +124,10 @@ index f4765d3..caf29c7 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f0dcb9f..885fc80 100644 +index d0060d0..d1d268f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -870,6 +870,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -872,6 +872,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs worldserver.getTracker().updatePlayers(); this.methodProfiler.b(); this.methodProfiler.b(); @@ -156,5 +156,5 @@ index 672167a..e8cfe2b 100644 public CraftWorld getWorld() { return this.world; -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0052-Add-PlayerInitialSpawnEvent.patch b/Spigot-Server-Patches/0052-Add-PlayerInitialSpawnEvent.patch index 16a1494f54..c380e4ebcc 100644 --- a/Spigot-Server-Patches/0052-Add-PlayerInitialSpawnEvent.patch +++ b/Spigot-Server-Patches/0052-Add-PlayerInitialSpawnEvent.patch @@ -1,4 +1,4 @@ -From 01731b5d0db283d9319b44123c70162f64d8f06c Mon Sep 17 00:00:00 2001 +From 4ffa318aa9a2c11b22b34cfddcf85f87155b2ef9 Mon Sep 17 00:00:00 2001 From: Steve Anton Date: Thu, 3 Mar 2016 00:09:38 -0600 Subject: [PATCH] Add PlayerInitialSpawnEvent @@ -6,10 +6,10 @@ Subject: [PATCH] Add PlayerInitialSpawnEvent For modifying a player's initial spawn location as they join the server diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 1b2cc01..28bcef8 100644 +index 6bd7151..e88e918 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -101,6 +101,21 @@ public abstract class PlayerList { +@@ -100,6 +100,21 @@ public abstract class PlayerList { } // CraftBukkit end @@ -32,5 +32,5 @@ index 1b2cc01..28bcef8 100644 entityplayer.playerInteractManager.a((WorldServer) entityplayer.world); String s1 = "local"; -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0054-Ensure-commands-are-not-ran-async.patch b/Spigot-Server-Patches/0054-Ensure-commands-are-not-ran-async.patch index a1ca032548..9ace08beb7 100644 --- a/Spigot-Server-Patches/0054-Ensure-commands-are-not-ran-async.patch +++ b/Spigot-Server-Patches/0054-Ensure-commands-are-not-ran-async.patch @@ -1,4 +1,4 @@ -From 472b4ef245572864c66a7dac62b80bf422de4c7c Mon Sep 17 00:00:00 2001 +From 2b51a78e96091d06203d6febe96af359b248bae5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 01:17:12 -0600 Subject: [PATCH] Ensure commands are not ran async @@ -14,10 +14,10 @@ big slowdown in execution but throwing an exception at same time to raise awaren that it is happening so that plugin authors can fix their code to stop executing commands async. diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index ae576f0..4e75202 100644 +index 0546cb8..de4df07 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1272,6 +1272,29 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1274,6 +1274,29 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } if (!async && s.startsWith("/")) { @@ -82,5 +82,5 @@ index b5132cd..8e501b6 100644 return true; } -- -2.10.0.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0067-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0067-Add-exception-reporting-event.patch index 513a116f23..15625283ed 100644 --- a/Spigot-Server-Patches/0067-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0067-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From 53c6f8cabb78c2f2b965fd952f410afefd78780f Mon Sep 17 00:00:00 2001 +From 4b3de3279ff605f479f435c237f7f4188477116e Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Thu, 3 Mar 2016 03:15:41 -0600 Subject: [PATCH] Add exception reporting event @@ -89,7 +89,7 @@ index 989d510..9118e4d 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 466cd49..cbc93a8 100644 +index 5eeefe8..299cc91 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -11,6 +11,7 @@ import java.util.Iterator; @@ -114,7 +114,7 @@ index 466cd49..cbc93a8 100644 } } @@ -197,7 +202,11 @@ public class ChunkProviderServer implements IChunkProvider { - try (co.aikar.timings.Timing timed = world.timings.chunkSaveNop.startTiming()) { + try { this.chunkLoader.b(this.world, chunk); } catch (Exception exception) { - ChunkProviderServer.a.error("Couldn\'t save entities", exception); @@ -372,5 +372,5 @@ index 198c37c..cdb836a 100644 // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0071-Complete-resource-pack-API.patch b/Spigot-Server-Patches/0071-Complete-resource-pack-API.patch index 35b124d035..bacff15788 100644 --- a/Spigot-Server-Patches/0071-Complete-resource-pack-API.patch +++ b/Spigot-Server-Patches/0071-Complete-resource-pack-API.patch @@ -1,14 +1,14 @@ -From 6c6a041bda7c2a5953894142871485d45df86b56 Mon Sep 17 00:00:00 2001 +From d3c2b9158a8bd1adb6ee88279e941fe7aaccd052 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sat, 4 Apr 2015 23:17:52 -0400 Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 4e75202..9d1c255 100644 +index de4df07..5e58fe8 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1033,7 +1033,13 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1035,7 +1035,13 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // CraftBukkit start public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) { @@ -24,7 +24,7 @@ index 4e75202..9d1c255 100644 // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a6851e6..8ac7ec5 100644 +index 98cbc02..515d0cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -72,6 +72,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -72,5 +72,5 @@ index a6851e6..8ac7ec5 100644 private final Player.Spigot spigot = new Player.Spigot() { -- -2.10.0.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0109-Add-getEntity-by-UUID-API.patch b/Spigot-Server-Patches/0109-Add-getEntity-by-UUID-API.patch index c3f6f27bfa..fbbcd8d674 100644 --- a/Spigot-Server-Patches/0109-Add-getEntity-by-UUID-API.patch +++ b/Spigot-Server-Patches/0109-Add-getEntity-by-UUID-API.patch @@ -1,14 +1,14 @@ -From 190292d03cc0488c8792f1aa51881aa4839d26a2 Mon Sep 17 00:00:00 2001 +From e24ae8483920061ed713e82d14fe85453584e97d Mon Sep 17 00:00:00 2001 From: DemonWav Date: Wed, 30 Mar 2016 01:20:11 -0500 Subject: [PATCH] Add getEntity by UUID API diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 885fc80..7bb6033 100644 +index d1d268f..35a8602 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1506,6 +1506,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1508,6 +1508,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.Y = 0L; } @@ -16,7 +16,7 @@ index 885fc80..7bb6033 100644 @Nullable public Entity a(UUID uuid) { WorldServer[] aworldserver = this.worldServer; -@@ -1519,7 +1520,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1521,7 +1522,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs if (worldserver != null) { Entity entity = worldserver.getEntity(uuid); @@ -53,5 +53,5 @@ index 15bef42..703aff1 100644 // Paper end } -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0112-Add-PlayerUseUnknownEntityEvent.patch b/Spigot-Server-Patches/0112-Add-PlayerUseUnknownEntityEvent.patch index 6d0bec8852..182f5c5c53 100644 --- a/Spigot-Server-Patches/0112-Add-PlayerUseUnknownEntityEvent.patch +++ b/Spigot-Server-Patches/0112-Add-PlayerUseUnknownEntityEvent.patch @@ -1,4 +1,4 @@ -From 12ce90221506ab023761bb3421b51dacc6766516 Mon Sep 17 00:00:00 2001 +From ec6b2334152da279e684eacd3912dca9e0fdc0d7 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sat, 2 Apr 2016 05:09:16 -0400 Subject: [PATCH] Add PlayerUseUnknownEntityEvent @@ -18,10 +18,10 @@ index 2b23a5d..6464a84 100644 private Vec3D c; private EnumHand d; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 9d1c255..cad016a 100644 +index 5e58fe8..eea7872 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1622,6 +1622,16 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1624,6 +1624,16 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } } } @@ -39,5 +39,5 @@ index 9d1c255..cad016a 100644 } -- -2.10.0.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0113-Fix-reducedDebugInfo-not-initialized-on-client.patch b/Spigot-Server-Patches/0113-Fix-reducedDebugInfo-not-initialized-on-client.patch index a4f4f9491a..44ece30137 100644 --- a/Spigot-Server-Patches/0113-Fix-reducedDebugInfo-not-initialized-on-client.patch +++ b/Spigot-Server-Patches/0113-Fix-reducedDebugInfo-not-initialized-on-client.patch @@ -1,14 +1,14 @@ -From db122f3419edb02fe2f4dc8b826aec71207d2ac1 Mon Sep 17 00:00:00 2001 +From 20e687ed6f45f084359189c317b998a128ac1817 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sat, 2 Apr 2016 20:37:03 -0400 Subject: [PATCH] Fix reducedDebugInfo not initialized on client diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 28bcef8..d26da3a 100644 +index e88e918..a41bc5f 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -153,6 +153,7 @@ public abstract class PlayerList { +@@ -152,6 +152,7 @@ public abstract class PlayerList { playerconnection.sendPacket(new PacketPlayOutSpawnPosition(blockposition)); playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities)); playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex)); @@ -17,5 +17,5 @@ index 28bcef8..d26da3a 100644 entityplayer.getStatisticManager().d(); entityplayer.getStatisticManager().updateStatistics(entityplayer); -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0119-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch b/Spigot-Server-Patches/0119-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch index 41514c6362..a9a0005539 100644 --- a/Spigot-Server-Patches/0119-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch +++ b/Spigot-Server-Patches/0119-Option-to-use-vanilla-per-world-scoreboard-coloring-.patch @@ -1,4 +1,4 @@ -From e73783fde0c9d9866da5d5c70a4b9382ce491ded Mon Sep 17 00:00:00 2001 +From e39c81ef1649441812673b7c5069aba34b69c633 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 6 Apr 2016 01:04:23 -0500 Subject: [PATCH] Option to use vanilla per-world scoreboard coloring on names @@ -31,10 +31,10 @@ index 7696998..966f9fd 100644 public ScoreboardTeamBase aQ() { if (!this.world.paperConfig.nonPlayerEntitiesOnScoreboards && !(this instanceof EntityHuman)) { return null; } // Paper diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index cad016a..df6cb13 100644 +index eea7872..eb4af2e 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1352,7 +1352,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1354,7 +1354,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { return; } @@ -51,5 +51,5 @@ index cad016a..df6cb13 100644 if (((LazyPlayerSet) event.getRecipients()).isLazy()) { for (Object recipient : minecraftServer.getPlayerList().players) { -- -2.10.1.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0121-SPIGOT-1903-Update-PlayerConnection-on-teleporting-p.patch b/Spigot-Server-Patches/0121-SPIGOT-1903-Update-PlayerConnection-on-teleporting-p.patch index 4f5ca3de5e..9b983c662b 100644 --- a/Spigot-Server-Patches/0121-SPIGOT-1903-Update-PlayerConnection-on-teleporting-p.patch +++ b/Spigot-Server-Patches/0121-SPIGOT-1903-Update-PlayerConnection-on-teleporting-p.patch @@ -1,4 +1,4 @@ -From 0be73628c26f8911b84923c97bdc8e9bcb909e9a Mon Sep 17 00:00:00 2001 +From 31df39236b070e5486809b7eca2b6706c43814ff Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 10 Apr 2016 22:36:10 -0400 Subject: [PATCH] SPIGOT-1903: Update PlayerConnection on teleporting players @@ -7,7 +7,7 @@ Otherwise the player will trigger a "moved too quickly" next movement packet and rubber band. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index a17355c..66337e4 100644 +index 966f9fd..5f134d0 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -293,6 +293,7 @@ public abstract class Entity implements ICommandListener { @@ -19,10 +19,10 @@ index a17355c..66337e4 100644 float f1 = this.length; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 89bf52f..9911265 100644 +index eb4af2e..643a8e7 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -204,7 +204,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -206,7 +206,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { } @@ -32,5 +32,5 @@ index 89bf52f..9911265 100644 this.m = this.player.locY; this.n = this.player.locZ; -- -2.10.0.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0124-Configurable-Player-Collision.patch b/Spigot-Server-Patches/0124-Configurable-Player-Collision.patch index 19de70d34c..6829ef420a 100644 --- a/Spigot-Server-Patches/0124-Configurable-Player-Collision.patch +++ b/Spigot-Server-Patches/0124-Configurable-Player-Collision.patch @@ -1,4 +1,4 @@ -From 49407d9d80719c50b8ec3eb8083a5265f63c9837 Mon Sep 17 00:00:00 2001 +From 26e04cf744907827b24b555c1e10f692c971710e Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 02:10:49 -0400 Subject: [PATCH] Configurable Player Collision @@ -37,7 +37,7 @@ index 8e5419d..64a3495 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e35341b..01325b3 100644 +index 8e364de..a5ebb17 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -324,6 +324,14 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -69,10 +69,10 @@ index d8ec504..eb45d3c 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index d26da3a..eb846cf 100644 +index a41bc5f..ea4c7ee 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -68,6 +68,7 @@ public abstract class PlayerList { +@@ -67,6 +67,7 @@ public abstract class PlayerList { // CraftBukkit start private CraftServer cserver; private final Map playersByName = new org.spigotmc.CaseInsensitiveMap(); @@ -80,7 +80,7 @@ index d26da3a..eb846cf 100644 public PlayerList(MinecraftServer minecraftserver) { this.cserver = minecraftserver.server = new CraftServer(minecraftserver, this); -@@ -235,6 +236,12 @@ public abstract class PlayerList { +@@ -234,6 +235,12 @@ public abstract class PlayerList { } entityplayer.syncInventory(); @@ -93,7 +93,7 @@ index d26da3a..eb846cf 100644 // CraftBukkit - Moved from above, added world PlayerList.f.info(entityplayer.getName() + "[" + s1 + "] logged in with entity id " + entityplayer.getId() + " at ([" + entityplayer.world.worldData.getName() + "]" + entityplayer.locX + ", " + entityplayer.locY + ", " + entityplayer.locZ + ")"); } -@@ -405,6 +412,16 @@ public abstract class PlayerList { +@@ -404,6 +411,16 @@ public abstract class PlayerList { entityplayer.k_();// SPIGOT-924 // PAIL: rename - playerTick // CraftBukkit end @@ -110,7 +110,7 @@ index d26da3a..eb846cf 100644 this.savePlayerFile(entityplayer); if (entityplayer.isPassenger()) { Entity entity = entityplayer.getVehicle(); -@@ -1304,7 +1321,13 @@ public abstract class PlayerList { +@@ -1302,7 +1319,13 @@ public abstract class PlayerList { player.playerConnection.disconnect(this.server.server.getShutdownMessage()); // CraftBukkit - add custom shutdown message } // CraftBukkit end @@ -126,5 +126,5 @@ index d26da3a..eb846cf 100644 // CraftBukkit start -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0137-remove-null-possibility-for-getServer-singleton.patch b/Spigot-Server-Patches/0137-remove-null-possibility-for-getServer-singleton.patch index 87594bc895..568f1e0927 100644 --- a/Spigot-Server-Patches/0137-remove-null-possibility-for-getServer-singleton.patch +++ b/Spigot-Server-Patches/0137-remove-null-possibility-for-getServer-singleton.patch @@ -1,4 +1,4 @@ -From 4d88a9833dba3f9449be3f9bc0a9d8f773024fc7 Mon Sep 17 00:00:00 2001 +From 45a81c0386108c5e75ed02ff0e0752e9f7753417 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 28 Apr 2016 00:57:27 -0400 Subject: [PATCH] remove null possibility for getServer singleton @@ -6,7 +6,7 @@ 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 01325b3..9455475 100644 +index a5ebb17..6fbe9e6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -49,6 +49,7 @@ import co.aikar.timings.MinecraftTimings; // Paper @@ -25,7 +25,7 @@ index 01325b3..9455475 100644 io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable this.e = proxy; this.U = yggdrasilauthenticationservice; -@@ -1603,7 +1605,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -1605,7 +1607,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs // CraftBukkit start @Deprecated public static MinecraftServer getServer() { @@ -35,5 +35,5 @@ index 01325b3..9455475 100644 // CraftBukkit end } -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0139-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0139-LootTable-API-Replenishable-Lootables-Feature.patch index a0200030dc..0f60191700 100644 --- a/Spigot-Server-Patches/0139-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/Spigot-Server-Patches/0139-LootTable-API-Replenishable-Lootables-Feature.patch @@ -1,4 +1,4 @@ -From 4b57c2643714635049c7b638ac751b6c8bc9c8b6 Mon Sep 17 00:00:00 2001 +From 9b89c7828d3ae27caf2ad7c4e8aee73e5c4f2f2b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 1 May 2016 21:19:14 -0400 Subject: [PATCH] LootTable API & Replenishable Lootables Feature @@ -652,7 +652,7 @@ index ef81867..b3c9f23 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java -index ce36ee4..99b039b 100644 +index f15c26b..9c43cbe 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java @@ -1,5 +1,6 @@ @@ -666,13 +666,13 @@ index ce36ee4..99b039b 100644 import org.bukkit.craftbukkit.inventory.CraftInventoryDoubleChest; import org.bukkit.inventory.Inventory; --public class CraftChest extends CraftBlockState implements Chest { -+public class CraftChest extends CraftBlockState implements Chest, CraftLootableBlockInventory { // Paper +-public class CraftChest extends CraftContainer implements Chest { ++public class CraftChest extends CraftContainer implements Chest, CraftLootableBlockInventory { // Paper private final CraftWorld world; private final TileEntityChest chest; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java -index a3ca3a5..cd7e65d 100644 +index 003381a..d70281d 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java @@ -1,5 +1,6 @@ @@ -686,13 +686,13 @@ index a3ca3a5..cd7e65d 100644 import org.bukkit.inventory.Inventory; import org.bukkit.projectiles.BlockProjectileSource; --public class CraftDispenser extends CraftBlockState implements Dispenser { -+public class CraftDispenser extends CraftBlockState implements Dispenser, CraftLootableBlockInventory { // Paper +-public class CraftDispenser extends CraftContainer implements Dispenser { ++public class CraftDispenser extends CraftContainer implements Dispenser, CraftLootableBlockInventory { // Paper private final CraftWorld world; private final TileEntityDispenser dispenser; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java -index db844a3..1e805a7 100644 +index f155790..acad8bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftHopper.java @@ -1,5 +1,6 @@ @@ -706,8 +706,8 @@ index db844a3..1e805a7 100644 import org.bukkit.craftbukkit.inventory.CraftInventory; import org.bukkit.inventory.Inventory; --public class CraftHopper extends CraftBlockState implements Hopper { -+public class CraftHopper extends CraftBlockState implements Hopper, CraftLootableBlockInventory { // Paper +-public class CraftHopper extends CraftContainer implements Hopper { ++public class CraftHopper extends CraftContainer implements Hopper, CraftLootableBlockInventory { // Paper private final TileEntityHopper hopper; public CraftHopper(final Block block) { @@ -752,5 +752,5 @@ index e9963e2..acb4dee 100644 CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) { -- -2.10.0.windows.1 +2.9.3 diff --git a/Spigot-Server-Patches/0162-More-informative-vehicle-moved-wrongly-message.patch b/Spigot-Server-Patches/0162-More-informative-vehicle-moved-wrongly-message.patch index ec7976a87c..e9f7ae7384 100644 --- a/Spigot-Server-Patches/0162-More-informative-vehicle-moved-wrongly-message.patch +++ b/Spigot-Server-Patches/0162-More-informative-vehicle-moved-wrongly-message.patch @@ -1,14 +1,14 @@ -From fa32cabbc0e1c0a33e370ba2732f40c7f06823f9 Mon Sep 17 00:00:00 2001 +From 4985b099705964ad8ee14b8952f135839291a1c7 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 28 Jul 2016 17:58:53 -0500 Subject: [PATCH] More informative vehicle moved wrongly message diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index b6dfffc..972b85b 100644 +index 643a8e7..11870cd 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -343,7 +343,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -345,7 +345,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot flag1 = true; @@ -18,5 +18,5 @@ index b6dfffc..972b85b 100644 entity.setLocation(d3, d4, d5, f, f1); -- -2.10.0 +2.9.3 diff --git a/Spigot-Server-Patches/0168-Fix-AIOOBE-in-inventory-handling.patch b/Spigot-Server-Patches/0168-Fix-AIOOBE-in-inventory-handling.patch index 0c0106da48..2082f65aa2 100644 --- a/Spigot-Server-Patches/0168-Fix-AIOOBE-in-inventory-handling.patch +++ b/Spigot-Server-Patches/0168-Fix-AIOOBE-in-inventory-handling.patch @@ -1,14 +1,14 @@ -From c0bf573cbb3f25ec137f12dcfccf400e38debba2 Mon Sep 17 00:00:00 2001 +From 24da669ca98bf8b5667a3a9c9f9ade3d0c7e9fb5 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Sun, 4 Sep 2016 16:35:43 -0500 Subject: [PATCH] Fix AIOOBE in inventory handling diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 972b85b..50b23ed 100644 +index 11870cd..ecafc26 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -1822,7 +1822,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -1824,7 +1824,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { case CLONE: if (packetplayinwindowclick.c() == 2) { click = ClickType.MIDDLE; @@ -18,5 +18,5 @@ index 972b85b..50b23ed 100644 } else { Slot slot = this.player.activeContainer.getSlot(packetplayinwindowclick.b()); -- -2.10.0 +2.9.3 diff --git a/Spigot-Server-Patches/0169-Configurable-packet-in-spam-threshold.patch b/Spigot-Server-Patches/0169-Configurable-packet-in-spam-threshold.patch index 8e6513198e..462e94a5d8 100644 --- a/Spigot-Server-Patches/0169-Configurable-packet-in-spam-threshold.patch +++ b/Spigot-Server-Patches/0169-Configurable-packet-in-spam-threshold.patch @@ -1,4 +1,4 @@ -From 09d45262f0de84815a53417f657bdb605018887b Mon Sep 17 00:00:00 2001 +From afc5c3843f515c8ef06d628dc607ba73c0890754 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 11 Sep 2016 14:30:57 -0500 Subject: [PATCH] Configurable packet in spam threshold @@ -23,10 +23,10 @@ index 91546b6..211b88a 100644 + } } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 50b23ed..29653cf 100644 +index ecafc26..e583138 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -868,13 +868,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -870,13 +870,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { // Spigot start - limit place/interactions private int limitedPackets; private long lastLimitedPacket = -1; @@ -44,5 +44,5 @@ index 50b23ed..29653cf 100644 limitedPackets = 0; return true; -- -2.10.0 +2.9.3 diff --git a/Spigot-Server-Patches/0170-Configurable-flying-kick-messages.patch b/Spigot-Server-Patches/0170-Configurable-flying-kick-messages.patch index fcbf28fab5..5f23d42b0e 100644 --- a/Spigot-Server-Patches/0170-Configurable-flying-kick-messages.patch +++ b/Spigot-Server-Patches/0170-Configurable-flying-kick-messages.patch @@ -1,4 +1,4 @@ -From 5277018aa6deb3c472fb9a31375dd52d7380d8c6 Mon Sep 17 00:00:00 2001 +From 28d1c2b967f2ff6fb5edfc2919dbe6c1d8dac797 Mon Sep 17 00:00:00 2001 From: kashike Date: Tue, 20 Sep 2016 00:58:01 +0000 Subject: [PATCH] Configurable flying kick messages @@ -21,10 +21,10 @@ index 211b88a..3161dad 100644 + } } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 29653cf..7bac585 100644 +index e583138..56138b6 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -143,7 +143,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -145,7 +145,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (this.B) { if (++this.C > 80) { PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", new Object[] { this.player.getName()}); @@ -33,7 +33,7 @@ index 29653cf..7bac585 100644 return; } } else { -@@ -162,7 +162,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { +@@ -164,7 +164,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { if (this.D && this.player.getVehicle().bw() == this.player) { if (++this.E > 80) { PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", new Object[] { this.player.getName()}); @@ -43,5 +43,5 @@ index 29653cf..7bac585 100644 } } else { -- -2.10.0 +2.9.3 diff --git a/Spigot-Server-Patches/0171-Auto-Save-Improvements.patch b/Spigot-Server-Patches/0171-Auto-Save-Improvements.patch index e66a7ef5da..8f28081165 100644 --- a/Spigot-Server-Patches/0171-Auto-Save-Improvements.patch +++ b/Spigot-Server-Patches/0171-Auto-Save-Improvements.patch @@ -1,4 +1,4 @@ -From efc5e2a80cc31881a2438fdf57211cb36aadd74d Mon Sep 17 00:00:00 2001 +From 288acc02847ff43dfa0ba7a8e0bb91767b14c6a2 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 19 Sep 2016 23:16:39 -0400 Subject: [PATCH] Auto Save Improvements @@ -55,7 +55,7 @@ index 683a6dd..547628a 100644 } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 3828da7..7e53fee 100644 +index 1ba02f1..65de280 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -1,5 +1,6 @@ @@ -75,7 +75,7 @@ index 3828da7..7e53fee 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a4f7e4d..fb06496 100644 +index 8ca8fbf..c19bde9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -114,6 +114,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs @@ -86,11 +86,12 @@ index a4f7e4d..fb06496 100644 // CraftBukkit end public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { -@@ -745,22 +746,26 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs +@@ -745,24 +746,28 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.q.b().a(agameprofile); } - if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit + MinecraftTimings.worldSaveTimer.startTiming(); // Spigot this.methodProfiler.a("save"); + + serverAutoSave = (autosavePeriod > 0 && this.ticks % autosavePeriod == 0); // Paper @@ -111,34 +112,31 @@ index a4f7e4d..fb06496 100644 // this.saveChunks(true); // Spigot End this.methodProfiler.b(); + MinecraftTimings.worldSaveTimer.stopTiming(); // Spigot - } + //} // Paper - Incremental Auto Saving this.methodProfiler.a("tallying"); this.h[this.ticks % 100] = System.nanoTime() - i; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index fc33575..81712ff 100644 +index 24b79d3..9e38304 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1017,8 +1017,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1017,12 +1017,12 @@ public class WorldServer extends World implements IAsyncTaskHandler { ChunkProviderServer chunkproviderserver = this.getChunkProviderServer(); if (chunkproviderserver.e()) { - org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit + if (flag) org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit // Paper - Incremental Auto Saving - Only fire event on full save - timings.worldSave.startTiming(); // Paper -+ if (flag || server.serverAutoSave) { // Paper if (iprogressupdate != null) { iprogressupdate.a("Saving level"); } -@@ -1027,6 +1028,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { + +- this.a(); ++ if (flag || server.serverAutoSave) this.a(); // Paper if (iprogressupdate != null) { iprogressupdate.c("Saving chunks"); } -+ } // Paper - - timings.worldSaveChunks.startTiming(); // Paper - chunkproviderserver.a(flag); -- -2.10.1 +2.9.3 diff --git a/Spigot-Server-Patches/0177-Disable-Vanilla-Chunk-GC.patch b/Spigot-Server-Patches/0177-Disable-Vanilla-Chunk-GC.patch index b75fc3b564..7624688174 100644 --- a/Spigot-Server-Patches/0177-Disable-Vanilla-Chunk-GC.patch +++ b/Spigot-Server-Patches/0177-Disable-Vanilla-Chunk-GC.patch @@ -1,4 +1,4 @@ -From 2341f19c681ecd15a3326ba292a20828b9685bae Mon Sep 17 00:00:00 2001 +From 7ae69904dd5672eb9be2e2e8ff7d45a9cc41c829 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 26 Sep 2016 01:51:30 -0400 Subject: [PATCH] Disable Vanilla Chunk GC @@ -6,28 +6,28 @@ Subject: [PATCH] Disable Vanilla Chunk GC Bukkit has its own system for this. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 81712ff..5c07180 100644 +index 9e38304..7c91625 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1034,7 +1034,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1029,7 +1029,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { + chunkproviderserver.a(flag); - timings.worldSaveChunks.stopTiming(); // Paper // CraftBukkit - ArrayList -> Collection - Collection arraylist = chunkproviderserver.a(); + /* //Paper start Collection arraylist = chunkproviderserver.a(); Iterator iterator = arraylist.iterator(); while (iterator.hasNext()) { -@@ -1043,7 +1043,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { +@@ -1038,7 +1038,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { if (chunk != null && !this.manager.a(chunk.locX, chunk.locZ)) { chunkproviderserver.unload(chunk); } - } + }*/ + // Paper end - timings.worldSave.stopTiming(); // Paper + } } -- -2.10.1 +2.9.3 diff --git a/work/Bukkit b/work/Bukkit index 450225fe17..cdf11d5677 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 450225fe17a930d7bb0de2d646c4a892d5bdcd7e +Subproject commit cdf11d567708cfb03453e4a139de7abc60f89cf9 diff --git a/work/CraftBukkit b/work/CraftBukkit index e20928f7da..b6490dada5 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit e20928f7da265577c771b63ca7ce49c35ef19b2b +Subproject commit b6490dada59fa2f7777448c09f591384faa8333e