From e2c75e81f7580440f1b6c1a02a13a2f61b9c67ec Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 22 Jul 2018 01:27:46 -0400 Subject: [PATCH] Update Paper to 1.13 proper - THIS IS STILL HIGHLY UNSTABLE DO NOT RUN ON PRODUCTION SERVERS!!! Use Backups!! --- Spigot-API-Patches/0001-POM-changes.patch | 6 +- .../0006-Entity-Origin-API.patch | 6 +- Spigot-Server-Patches/0001-POM-Changes.patch | 21 ++--- .../0002-Paper-config-files.patch | 18 ++-- Spigot-Server-Patches/0009-Timings-v2.patch | 94 +++++++++++-------- .../0013-Allow-nerfed-mobs-to-jump.patch | 15 ++- ...ient-crashes-server-lists-and-Mojang.patch | 12 +-- .../0018-Player-affects-spawning-API.patch | 16 ++-- ...021-Further-improve-server-tick-loop.patch | 16 ++-- ...event-tile-entity-and-entity-crashes.patch | 8 +- .../0028-Lighting-Queue.patch | 16 ++-- .../0031-Optimize-explosions.patch | 10 +- .../0033-Disable-explosion-knockback.patch | 8 +- .../0047-Optimize-Pathfinding.patch | 6 +- .../0049-Expose-server-CommandMap.patch | 6 +- .../0057-Add-exception-reporting-event.patch | 22 ++--- .../0062-Chunk-save-queue-improvements.patch | 27 ++---- .../0063-Chunk-Save-Reattempt.patch | 10 +- ...llow-Reloading-of-Custom-Permissions.patch | 6 +- .../0068-Fix-Furnace-cook-time-bug.patch | 6 +- ...72-Optimized-Light-Level-Comparisons.patch | 14 +-- ...4-Custom-replacement-for-eaten-items.patch | 11 ++- ...Location-getType-and-getBlockData-fo.patch | 14 +-- .../0087-EntityPathfindEvent.patch | 8 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 14 +-- ...am-reload-spawn-chunks-in-nether-end.patch | 6 +- ...Remove-unused-World-Tile-Entity-List.patch | 6 +- .../0103-Configurable-Player-Collision.patch | 12 +-- ...-possibility-for-getServer-singleton.patch | 8 +- ...-API-Replenishable-Lootables-Feature.patch | 14 +-- ...y-scoreboard-teams-to-scoreboard.dat.patch | 6 +- .../0117-Fix-Chunk-Unload-Queue-Issues.patch | 8 +- .../0120-Optimize-UserCache-Thread-Safe.patch | 6 +- .../0125-Add-server-name-parameter.patch | 6 +- ...unk-Unloads-based-on-Player-Movement.patch | 10 +- .../0128-Fix-Double-World-Add-issues.patch | 8 +- ...setting-for-proxy-online-mode-status.patch | 6 +- .../0139-Auto-Save-Improvements.patch | 22 ++--- .../0140-Chunk-registration-fixes.patch | 6 +- ...Chunks-from-Hoppers-and-other-things.patch | 6 +- ...vent-Auto-Save-if-Save-Queue-is-full.patch | 10 +- .../0148-Chunk-Save-Stats-Debug-Option.patch | 12 +-- ...3-Allow-Reloading-of-Command-Aliases.patch | 6 +- ...to-control-if-armour-stands-can-move.patch | 6 +- ...64-Properly-fix-item-duplication-bug.patch | 8 +- .../0166-Activation-Range-Improvements.patch | 18 ++-- .../0171-Enforce-Sync-Player-Saves.patch | 8 +- ...PI-for-Reason-Source-Triggering-play.patch | 30 +++--- ...more-aggressive-in-the-chunk-unload-.patch | 8 +- .../0180-Do-not-let-armorstands-drown.patch | 14 +-- ...le-async-calls-to-restart-the-server.patch | 16 ++-- ...n-option-to-prevent-player-names-fro.patch | 6 +- ...oleAppender-for-console-improvements.patch | 36 +++---- ...urable-option-to-disable-creeper-lin.patch | 6 +- .../0191-Basic-PlayerProfile-API.patch | 12 +-- ...player-logins-during-server-shutdown.patch | 6 +- .../0202-ProfileWhitelistVerifyEvent.patch | 6 +- .../0203-Fix-this-stupid-bullshit.patch | 6 +- ...ams-to-redirect-System.out-err-to-lo.patch | 8 +- ...n-prefixes-using-Log4J-configuration.patch | 8 +- ...-Include-Log4J2-SLF4J-implementation.patch | 6 +- .../0213-Add-PlayerJumpEvent.patch | 14 +-- ...dEffects-only-to-players-who-can-see.patch | 8 +- .../0224-AsyncTabCompleteEvent.patch | 8 +- ...nt-extended-PaperServerListPingEvent.patch | 12 +-- .../0250-getPlayerUniqueId-API.patch | 6 +- .../0259-EndermanEscapeEvent.patch | 12 +-- .../0260-Enderman.teleportRandomly.patch | 8 +- ...ed-flag-on-cancel-of-Explosion-Event.patch | 6 +- ...e-shield-blocking-delay-configurable.patch | 12 +-- ...ivingEntity-Hand-Raised-Item-Use-API.patch | 34 ++++--- .../0289-InventoryCloseEvent-Reason-API.patch | 16 ++-- ...298-Use-asynchronous-Log4j-2-loggers.patch | 6 +- work/BuildData | 2 +- work/Bukkit | 2 +- work/CraftBukkit | 2 +- work/Spigot | 2 +- 77 files changed, 454 insertions(+), 452 deletions(-) diff --git a/Spigot-API-Patches/0001-POM-changes.patch b/Spigot-API-Patches/0001-POM-changes.patch index b3a5921d..0298688c 100644 --- a/Spigot-API-Patches/0001-POM-changes.patch +++ b/Spigot-API-Patches/0001-POM-changes.patch @@ -1,11 +1,11 @@ -From 7439e7e3c94eb559415193440a9e1515335819c7 Mon Sep 17 00:00:00 2001 +From 012c183c1c668f4ab31e7b6e0e6ae61005127510 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 00:16:08 +0100 Subject: [PATCH] POM changes diff --git a/pom.xml b/pom.xml -index 3e6c8707..c2d0651e 100644 +index e946bccf..7374304f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,29 +3,35 @@ @@ -21,7 +21,7 @@ index 3e6c8707..c2d0651e 100644 + + + paper-api - 1.13-pre7-R0.1-SNAPSHOT + 1.13-R0.1-SNAPSHOT jar - Spigot-API diff --git a/Spigot-API-Patches/0006-Entity-Origin-API.patch b/Spigot-API-Patches/0006-Entity-Origin-API.patch index afc96b45..ac51c913 100644 --- a/Spigot-API-Patches/0006-Entity-Origin-API.patch +++ b/Spigot-API-Patches/0006-Entity-Origin-API.patch @@ -1,4 +1,4 @@ -From 4e2445c63fba52523da6ce11e8cf8a241cf593f3 Mon Sep 17 00:00:00 2001 +From ac7a0eff76dedc21f1bc6fc1eb0d6cbb367f6f90 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Mon, 29 Feb 2016 17:50:31 -0600 Subject: [PATCH] Entity Origin API @@ -25,10 +25,10 @@ index 28b169d2..9b0f97f1 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java -index 9d34e691..b0b1defc 100644 +index 0cd830d9..170a9aee 100644 --- a/src/main/java/org/bukkit/entity/FallingBlock.java +++ b/src/main/java/org/bukkit/entity/FallingBlock.java -@@ -52,4 +52,15 @@ public interface FallingBlock extends Entity { +@@ -51,4 +51,15 @@ public interface FallingBlock extends Entity { * @param hurtEntities whether entities will be damaged by this block. */ void setHurtEntities(boolean hurtEntities); diff --git a/Spigot-Server-Patches/0001-POM-Changes.patch b/Spigot-Server-Patches/0001-POM-Changes.patch index 5200e9fa..559b1f08 100644 --- a/Spigot-Server-Patches/0001-POM-Changes.patch +++ b/Spigot-Server-Patches/0001-POM-Changes.patch @@ -1,23 +1,22 @@ -From 05b70bbd7bf543c94832d486d58987b490016c8d Mon Sep 17 00:00:00 2001 +From 6842476267fe66eaac1bffd41ef47e5e82cf4964 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 20:40:33 -0600 Subject: [PATCH] POM Changes diff --git a/pom.xml b/pom.xml -index 958eb763a..17bc80776 100644 +index 5d398f7cb..09b4ddf19 100644 --- a/pom.xml +++ b/pom.xml -@@ -1,12 +1,12 @@ +@@ -1,12 +1,11 @@ 4.0.0 - org.spigotmc - spigot -+ com.destroystokyo.paper + paper jar - 1.13-pre7-R0.1-SNAPSHOT + 1.13-R0.1-SNAPSHOT - Spigot - http://www.spigotmc.org + Paper @@ -25,7 +24,7 @@ index 958eb763a..17bc80776 100644 UTF-8 -@@ -21,16 +21,16 @@ +@@ -21,16 +20,16 @@ @@ -46,7 +45,7 @@ index 958eb763a..17bc80776 100644 ${project.version} compile -@@ -101,34 +101,22 @@ +@@ -101,34 +100,22 @@ @@ -92,7 +91,7 @@ index 958eb763a..17bc80776 100644 -@@ -138,11 +126,12 @@ +@@ -138,11 +125,12 @@ maven-jar-plugin 2.4 @@ -106,7 +105,7 @@ index 958eb763a..17bc80776 100644 ${maven.build.timestamp} Bukkit ${api.version} -@@ -182,19 +171,22 @@ +@@ -182,19 +170,22 @@ shade @@ -137,7 +136,7 @@ index 958eb763a..17bc80776 100644 org.bukkit.craftbukkit org.bukkit.craftbukkit.v${minecraft_version} -@@ -220,18 +212,6 @@ +@@ -220,18 +211,6 @@ org.apache.maven.plugins maven-compiler-plugin 3.7.0 @@ -156,7 +155,7 @@ index 958eb763a..17bc80776 100644 org.apache.maven.plugins -@@ -250,6 +230,11 @@ +@@ -250,6 +229,11 @@ development diff --git a/Spigot-Server-Patches/0002-Paper-config-files.patch b/Spigot-Server-Patches/0002-Paper-config-files.patch index a6ce669c..f0a9d3ae 100644 --- a/Spigot-Server-Patches/0002-Paper-config-files.patch +++ b/Spigot-Server-Patches/0002-Paper-config-files.patch @@ -1,4 +1,4 @@ -From a54aaf050878b967a9ee98b9264f67e476ff26ba Mon Sep 17 00:00:00 2001 +From b03f578652215491a2fda2190e0b3941e902b2dc Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 29 Feb 2016 21:02:09 -0600 Subject: [PATCH] Paper config files @@ -499,7 +499,7 @@ index 000000000..621bf7051 + } +} diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 8563712d9..9155aa727 100644 +index 5ff1e9686..3706e44a3 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -192,6 +192,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -514,7 +514,7 @@ index 8563712d9..9155aa727 100644 DedicatedServer.LOGGER.info("Generating keypair"); this.a(MinecraftEncryption.b()); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 015959b9f..f3f8b65be 100644 +index 5046ecb3b..3fa32228b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -134,9 +134,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener { @@ -531,7 +531,7 @@ index 015959b9f..f3f8b65be 100644 public boolean impulse; public int portalCooldown; diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index a0c701f35..557a3f97f 100644 +index ad3f89199..ca2a14d7a 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -2,6 +2,8 @@ package net.minecraft.server; @@ -555,7 +555,7 @@ index a0c701f35..557a3f97f 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c7f5cba2d..330ea4e72 100644 +index 13c404337..b2bb06c79 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -127,6 +127,8 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose @@ -576,7 +576,7 @@ index c7f5cba2d..330ea4e72 100644 this.world = new CraftWorld((WorldServer) this, gen, env); this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ce5ebcc54..88766d30d 100644 +index 4dc0c8fcb..99d397872 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -743,6 +743,7 @@ public final class CraftServer implements Server { @@ -603,7 +603,7 @@ index ce5ebcc54..88766d30d 100644 overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1880,4 +1883,26 @@ public final class CraftServer implements Server { +@@ -1862,4 +1865,26 @@ public final class CraftServer implements Server { { return spigot; } @@ -631,10 +631,10 @@ index ce5ebcc54..88766d30d 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index c234b8749..5e49bca8a 100644 +index df07dc594..57da619d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -126,6 +126,14 @@ public class Main { +@@ -128,6 +128,14 @@ public class Main { .defaultsTo(new File("spigot.yml")) .describedAs("Yml file"); // Spigot End diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 7b367186..5fc42925 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1,4 +1,4 @@ -From 3586286523db67ea246cf1e37a9693b8c6f902c6 Mon Sep 17 00:00:00 2001 +From 4a42cad650e2d9c8a48001ef506ce74e0437cf22 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 @@ -476,10 +476,10 @@ index 5ab2cf6ee..b5795b6d3 100644 + } } diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index ffb91b27b..ff110c8e9 100644 +index 06f10e1e8..43feccef8 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java -@@ -29,8 +29,17 @@ public class Block implements IMaterial { +@@ -28,8 +28,16 @@ public class Block implements IMaterial { private IBlockData blockData; protected final boolean o; private final boolean p; @@ -495,8 +495,7 @@ index ffb91b27b..ff110c8e9 100644 + return timing; + } + // Paper end -+ - private static final ThreadLocal>> r = ThreadLocal.withInitial(() -> { + private static final ThreadLocal> r = ThreadLocal.withInitial(() -> { Object2ByteLinkedOpenHashMap object2bytelinkedopenhashmap = new Object2ByteLinkedOpenHashMap(200) { protected void rehash(int i) {} diff --git a/src/main/java/net/minecraft/server/ChunkMap.java b/src/main/java/net/minecraft/server/ChunkMap.java @@ -531,10 +530,27 @@ index 5164e5c92..0c2386f5e 100644 return chunk1; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 0296d3ef0..badfe86b2 100644 +index 0296d3ef0..d23f4e80c 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -221,7 +221,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -122,14 +122,13 @@ public class ChunkProviderServer implements IChunkProvider { + if (chunk != null) { + return chunk; + } else { +- try { +- world.timings.syncChunkLoadTimer.startTiming(); // Spigot ++ try (co.aikar.timings.Timing timing = world.timings.chunkGeneration.startTiming()) { ++ ; // Spigot + chunk = (Chunk) this.generateChunk(i, j).get(); + return chunk; + } catch (ExecutionException | InterruptedException interruptedexception) { + throw this.a(i, j, (Throwable) interruptedexception); + } +- finally { world.timings.syncChunkLoadTimer.stopTiming(); } // Spigot + } + } + +@@ -221,7 +220,7 @@ public class ChunkProviderServer implements IChunkProvider { } public void saveChunk(IChunkAccess ichunkaccess, boolean unloaded) { // Spigot @@ -544,7 +560,7 @@ index 0296d3ef0..badfe86b2 100644 this.chunkLoader.saveChunk(this.world, ichunkaccess, unloaded); // Spigot } catch (IOException ioexception) { diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 90d857105..3a0e52d88 100644 +index 88301ee61..5001fd11d 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -1,5 +1,6 @@ @@ -554,7 +570,7 @@ index 90d857105..3a0e52d88 100644 import com.google.common.collect.Maps; import com.mojang.datafixers.DataFixTypes; import com.mojang.datafixers.DataFixer; -@@ -688,7 +689,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -690,7 +691,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { public void loadEntities(NBTTagCompound nbttagcompound, Chunk chunk) { NBTTagList nbttaglist = nbttagcompound.getList("Entities", 10); World world = chunk.getWorld(); @@ -563,7 +579,7 @@ index 90d857105..3a0e52d88 100644 for (int i = 0; i < nbttaglist.size(); ++i) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompound(i); -@@ -697,8 +698,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -699,8 +700,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { chunk.f(true); } @@ -572,7 +588,7 @@ index 90d857105..3a0e52d88 100644 NBTTagList nbttaglist1 = nbttagcompound.getList("TileEntities", 10); for (int j = 0; j < nbttaglist1.size(); ++j) { -@@ -715,8 +714,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -717,8 +716,6 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { } } } @@ -581,7 +597,7 @@ index 90d857105..3a0e52d88 100644 if (nbttagcompound.hasKeyOfType("TileTicks", 9) && world.I() instanceof TickListServer) { ((TickListServer) world.I()).a(nbttagcompound.getList("TileTicks", 10)); -@@ -725,7 +722,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -727,7 +724,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { if (nbttagcompound.hasKeyOfType("LiquidTicks", 9) && world.H() instanceof TickListServer) { ((TickListServer) world.H()).a(nbttagcompound.getList("LiquidTicks", 10)); } @@ -591,7 +607,7 @@ index 90d857105..3a0e52d88 100644 } diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 9155aa727..a3d58b5ce 100644 +index 3706e44a3..bf1fffcfe 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -29,7 +29,7 @@ import org.apache.logging.log4j.Level; @@ -644,7 +660,7 @@ index 9155aa727..a3d58b5ce 100644 return waitable.get(); } catch (java.util.concurrent.ExecutionException e) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7a17a4ff9..2ed362791 100644 +index 36cc0c18d..4830c7b8b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -29,7 +29,8 @@ import org.bukkit.command.CommandSender; @@ -683,7 +699,7 @@ index 7a17a4ff9..2ed362791 100644 protected float ab() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index b6dd6dc5d..f1840f4fa 100644 +index 514c95151..d6e9915c1 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -32,7 +32,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -701,7 +717,7 @@ index b6dd6dc5d..f1840f4fa 100644 public void tick() { - SpigotTimings.timerEntityBaseTick.startTiming(); // Spigot super.tick(); - this.cU(); + this.cV(); this.o(); @@ -2058,9 +2057,7 @@ public abstract class EntityLiving extends Entity { } @@ -753,7 +769,7 @@ index b6dd6dc5d..f1840f4fa 100644 } - SpigotTimings.timerEntityAICollision.startTiming(); // Spigot - this.cM(); + this.cN(); - SpigotTimings.timerEntityAICollision.stopTiming(); // Spigot this.world.methodProfiler.e(); } @@ -790,7 +806,7 @@ index ae31935c4..70c9b1f50 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d813c72e1..61ec088d2 100644 +index 71ee66a9b..1839bf7d2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1,5 +1,6 @@ @@ -810,7 +826,7 @@ index d813c72e1..61ec088d2 100644 public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStatistics, ICommandListener, Runnable { -@@ -560,6 +561,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -599,6 +600,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati } // CraftBukkit end MinecraftServer.LOGGER.info("Stopping server"); @@ -818,7 +834,7 @@ index d813c72e1..61ec088d2 100644 // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); -@@ -766,7 +768,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -805,7 +807,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati public void u() {} protected void v() { @@ -827,7 +843,7 @@ index d813c72e1..61ec088d2 100644 this.slackActivityAccountant.tickStarted(); // Spigot long i = SystemUtils.c(); -@@ -793,7 +795,6 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -832,7 +834,6 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati } if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit @@ -835,7 +851,7 @@ index d813c72e1..61ec088d2 100644 this.methodProfiler.a("save"); this.s.savePlayers(); // Spigot Start -@@ -808,7 +809,6 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -847,7 +848,6 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati // this.saveChunks(true); // Spigot End this.methodProfiler.e(); @@ -843,7 +859,7 @@ index d813c72e1..61ec088d2 100644 } this.methodProfiler.a("snooper"); -@@ -829,14 +829,14 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -868,14 +868,14 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.methodProfiler.e(); org.spigotmc.WatchdogThread.tick(); // Spigot this.slackActivityAccountant.tickEnded(l); // Spigot @@ -862,7 +878,7 @@ index d813c72e1..61ec088d2 100644 this.methodProfiler.a("jobs"); FutureTask futuretask; -@@ -844,26 +844,27 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -883,26 +883,27 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati while ((futuretask = (FutureTask) this.g.poll()) != null) { SystemUtils.a(futuretask, MinecraftServer.LOGGER); } @@ -871,7 +887,7 @@ index d813c72e1..61ec088d2 100644 this.methodProfiler.c("commandFunctions"); - SpigotTimings.commandFunctionsTimer.startTiming(); // Spigot + MinecraftTimings.commandFunctionsTimer.startTiming(); // Spigot - this.aD().X_(); + this.getFunctionData().Y_(); - SpigotTimings.commandFunctionsTimer.stopTiming(); // Spigot + MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot this.methodProfiler.c("levels"); @@ -897,7 +913,7 @@ index d813c72e1..61ec088d2 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) { -@@ -871,7 +872,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -910,7 +911,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati entityplayer.playerConnection.sendPacket(new PacketPlayOutUpdateTime(entityplayer.world.getTime(), entityplayer.getPlayerTime(), entityplayer.world.getGameRules().getBoolean("doDaylightCycle"))); // Add support for per player time } } @@ -906,7 +922,7 @@ index d813c72e1..61ec088d2 100644 int i; -@@ -930,9 +931,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -969,9 +970,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.methodProfiler.e(); this.methodProfiler.a("tracker"); @@ -916,7 +932,7 @@ index d813c72e1..61ec088d2 100644 this.methodProfiler.e(); this.methodProfiler.e(); } -@@ -941,20 +940,19 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -980,20 +979,19 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati } this.methodProfiler.c("connection"); @@ -936,7 +952,7 @@ index d813c72e1..61ec088d2 100644 - SpigotTimings.tickablesTimer.startTiming(); // Spigot + MinecraftTimings.tickablesTimer.startTiming(); // Spigot for (i = 0; i < this.l.size(); ++i) { - ((ITickable) this.l.get(i)).X_(); + ((ITickable) this.l.get(i)).Y_(); } - SpigotTimings.tickablesTimer.stopTiming(); // Spigot + MinecraftTimings.tickablesTimer.stopTiming(); // Spigot @@ -1038,7 +1054,7 @@ index ac6d8cc6e..d975c2ccf 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 6f21b01a8..359aa3997 100644 +index 556989f60..17b925f88 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; @@ -1100,7 +1116,7 @@ index 889b32287..69da194f5 100644 throw CancelledPacketHandleException.INSTANCE; } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 0156175fb..1e3dd22e5 100644 +index e476d3433..9cef6b9af 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -1,5 +1,6 @@ @@ -1110,7 +1126,7 @@ index 0156175fb..1e3dd22e5 100644 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1186,10 +1187,11 @@ public abstract class PlayerList { +@@ -1179,10 +1180,11 @@ public abstract class PlayerList { } public void savePlayers() { @@ -1178,7 +1194,7 @@ index a07895935..ee5c2421b 100644 } diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index b992360ac..5b7f6ca84 100644 +index cffbcb8f7..6b8a1c8c8 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; @@ -1198,7 +1214,7 @@ index b992360ac..5b7f6ca84 100644 private final TileEntityTypes e; public TileEntityTypes getTileEntityType() { return e; } // Paper - OBFHELPER protected World world; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 330ea4e72..e6b916a5d 100644 +index b2bb06c79..562a85b72 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,5 +1,6 @@ @@ -1303,7 +1319,7 @@ index 330ea4e72..e6b916a5d 100644 if (entity.isPassenger()) { entity.aH(); } else { -@@ -1402,8 +1408,6 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -1406,8 +1412,6 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose } } } @@ -1313,7 +1329,7 @@ index 330ea4e72..e6b916a5d 100644 public boolean a(@Nullable Entity entity, VoxelShape voxelshape) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index cecc9bc62..271d75c48 100644 +index 2c6f6de4c..f032ecab6 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1,5 +1,6 @@ @@ -1429,10 +1445,10 @@ index cecc9bc62..271d75c48 100644 // CraftBukkit start diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 60182cecf..33826231d 100644 +index 99d397872..bc1f858af 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1853,12 +1853,31 @@ public final class CraftServer implements Server { +@@ -1835,12 +1835,31 @@ public final class CraftServer implements Server { private final Spigot spigot = new Spigot() { @@ -1681,7 +1697,7 @@ index 413dd35f0..52a8c48fa 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 0a2199b6a..fad258f11 100644 +index 75d56ee3b..47f650e42 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1665,6 +1665,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch b/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch index 7e11177a..4178704f 100644 --- a/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch +++ b/Spigot-Server-Patches/0013-Allow-nerfed-mobs-to-jump.patch @@ -1,4 +1,4 @@ -From 505cb60061caae705dbb6fccad730e81f9634672 Mon Sep 17 00:00:00 2001 +From e2da442d9796c473f37e5fde6c8ff6b17cc2593b Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 13:24:16 -0600 Subject: [PATCH] Allow nerfed mobs to jump @@ -31,7 +31,7 @@ index 4ed5192c6..489beed26 100644 this.b.o(this.a); this.a = false; diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 5de20721c..27b01d1ee 100644 +index d24ff109c..3744d01ec 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -32,6 +32,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -56,24 +56,21 @@ index 5de20721c..27b01d1ee 100644 } // Spigot End diff --git a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java -index 4d8876cae..2cb9d1b5a 100644 +index 0d9505138..38a0b2db1 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java -@@ -6,6 +6,7 @@ public class PathfinderGoalFloat extends PathfinderGoal { +@@ -6,14 +6,17 @@ public class PathfinderGoalFloat extends PathfinderGoal { public PathfinderGoalFloat(EntityInsentient entityinsentient) { this.a = entityinsentient; + if (entityinsentient.getWorld().paperConfig.nerfedMobsShouldJump) entityinsentient.goalFloat = this; // Paper this.a(4); - if (entityinsentient.getNavigation() instanceof Navigation) { - ((Navigation) entityinsentient.getNavigation()).c(true); -@@ -15,10 +16,12 @@ public class PathfinderGoalFloat extends PathfinderGoal { - + entityinsentient.getNavigation().d(true); } + public boolean validConditions() { return this.a(); } // Paper - OBFHELPER public boolean a() { - return this.a.isInWater() || this.a.ax(); + return this.a.isInWater() && this.a.bY() > 0.4D || this.a.ax(); } + public void update() { this.e(); } // Paper - OBFHELPER 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 013c03a5..242aeffc 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 7bcfdec2f367b97a5459b023661911495b573125 Mon Sep 17 00:00:00 2001 +From ececfb43f16b065d3755a1bfc4e889287c0e3c95 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 @@ -25,10 +25,10 @@ index 220ca7bca..eb4b08be4 100644 } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 590eb507c..4889a82a2 100644 +index 1839bf7d2..5d5aa72ca 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1151,7 +1151,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1205,7 +1205,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati } public String getServerModName() { @@ -38,7 +38,7 @@ index 590eb507c..4889a82a2 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 88ea651ba..28f6cdf96 100644 +index bc1f858af..ce87736da 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -152,7 +152,7 @@ import org.bukkit.event.server.TabCompleteEvent; @@ -51,10 +51,10 @@ index 88ea651ba..28f6cdf96 100644 private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 5e49bca8a..d9059129d 100644 +index 57da619d8..38e696aa9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -198,7 +198,7 @@ public class Main { +@@ -200,7 +200,7 @@ public class Main { deadline.add(Calendar.DAY_OF_YEAR, -3); if (buildDate.before(deadline.getTime())) { System.err.println("*** Error, this build is outdated ***"); diff --git a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch index 5bd57f79..0072ac5d 100644 --- a/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch +++ b/Spigot-Server-Patches/0018-Player-affects-spawning-API.patch @@ -1,11 +1,11 @@ -From fd20af56dbf1982c04406fcd9a0360b54568d965 Mon Sep 17 00:00:00 2001 +From 655295872243600487c4870e833198a8746aecf1 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Tue, 1 Mar 2016 14:47:52 -0600 Subject: [PATCH] Player affects spawning API diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 40efd6c60..1aa32bf11 100644 +index fc64ba3c9..a47ef2ca5 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -72,6 +72,9 @@ public abstract class EntityHuman extends EntityLiving { @@ -19,7 +19,7 @@ index 40efd6c60..1aa32bf11 100644 // CraftBukkit start public boolean fauxSleeping; diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index c8c191667..d29364b01 100644 +index 27c97530f..3723fd977 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -614,7 +614,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -32,7 +32,7 @@ index c8c191667..d29364b01 100644 double d1 = entityhuman.locY - this.locY; double d2 = entityhuman.locZ - this.locZ; diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java -index 6cb4f889c..a1ebf5c68 100644 +index 75040a0f2..683191c4a 100644 --- a/src/main/java/net/minecraft/server/EntitySilverfish.java +++ b/src/main/java/net/minecraft/server/EntitySilverfish.java @@ -96,7 +96,7 @@ public class EntitySilverfish extends EntityMonster { @@ -45,7 +45,7 @@ index 6cb4f889c..a1ebf5c68 100644 return false; } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 44fb75c6f..aec9cdae5 100644 +index e54dcaa99..b12e767db 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -37,7 +37,7 @@ public final class SpawnerCreature { @@ -58,7 +58,7 @@ index 44fb75c6f..aec9cdae5 100644 j = MathHelper.floor(entityhuman.locZ / 16.0D); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 05d363171..fd64b75ed 100644 +index 6ca7a2069..ae11c2e43 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -28,6 +28,7 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData; @@ -69,7 +69,7 @@ index 05d363171..fd64b75ed 100644 import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockPhysicsEvent; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -@@ -2407,7 +2408,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -2411,7 +2412,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose for (int i = 0; i < this.players.size(); ++i) { EntityHuman entityhuman = (EntityHuman) this.players.get(i); @@ -79,7 +79,7 @@ index 05d363171..fd64b75ed 100644 if (d3 < 0.0D || d4 < d3 * d3) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fad258f11..c67137a80 100644 +index 47f650e42..0109d8e97 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1585,7 +1585,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch index c400cc82..24641bfb 100644 --- a/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch +++ b/Spigot-Server-Patches/0021-Further-improve-server-tick-loop.patch @@ -1,4 +1,4 @@ -From b51264983f1041ab516cbc32f6973fe9615826bd Mon Sep 17 00:00:00 2001 +From 977746b6c79dbf14c44ccb350fef1a1ab88084b7 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 cba7c18f2..093190108 100644 +index 5d5aa72ca..ae17796ce 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -141,7 +141,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -142,7 +142,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; public ConsoleReader reader; @@ -24,7 +24,7 @@ index cba7c18f2..093190108 100644 public final Thread primaryThread; public java.util.Queue processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; -@@ -149,10 +149,6 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -150,10 +150,6 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati public CommandDispatcher vanillaCommandDispatcher; // CraftBukkit end // Spigot start @@ -35,7 +35,7 @@ index cba7c18f2..093190108 100644 public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant(); // Spigot end -@@ -637,12 +633,54 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -676,12 +672,54 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.isRunning = false; } @@ -95,7 +95,7 @@ index cba7c18f2..093190108 100644 public void run() { try { -@@ -654,24 +692,41 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -693,24 +731,41 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati // Spigot start Arrays.fill( recentTps, 20 ); @@ -149,10 +149,10 @@ index cba7c18f2..093190108 100644 } lastTick = curTime; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a1a0a9b34..f39ddbf09 100644 +index ce87736da..fdcdbf508 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1850,6 +1850,17 @@ public final class CraftServer implements Server { +@@ -1832,6 +1832,17 @@ public final class CraftServer implements Server { return CraftMagicNumbers.INSTANCE; } diff --git a/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch b/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch index a0cbdf41..07a2a1c5 100644 --- a/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch +++ b/Spigot-Server-Patches/0024-Prevent-tile-entity-and-entity-crashes.patch @@ -1,11 +1,11 @@ -From 3b55d88bdefa6b3479ff0e0ee21da64912d24f0b Mon Sep 17 00:00:00 2001 +From 258c176a476363f322e5c45f1e9a9e2cb9e9530e Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 1 Mar 2016 23:52:34 -0600 Subject: [PATCH] Prevent tile entity and entity crashes diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 5b7f6ca84..8cab71c0e 100644 +index 6b8a1c8c8..e03965fc7 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java @@ -175,7 +175,12 @@ public abstract class TileEntity implements KeyedObject { @@ -23,7 +23,7 @@ index 5b7f6ca84..8cab71c0e 100644 } } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 3f0b6ac26..c605d7e52 100644 +index e3c56a750..bfe09a205 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1166,10 +1166,12 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose @@ -44,7 +44,7 @@ index 3f0b6ac26..c605d7e52 100644 } @@ -1232,10 +1234,13 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose - ((ITickable) tileentity).X_(); + ((ITickable) tileentity).Y_(); this.methodProfiler.e(); } catch (Throwable throwable2) { - crashreport1 = CrashReport.a(throwable2, "Ticking block entity"); diff --git a/Spigot-Server-Patches/0028-Lighting-Queue.patch b/Spigot-Server-Patches/0028-Lighting-Queue.patch index 98de27d7..bd89b86e 100644 --- a/Spigot-Server-Patches/0028-Lighting-Queue.patch +++ b/Spigot-Server-Patches/0028-Lighting-Queue.patch @@ -1,4 +1,4 @@ -From fe837b054c13a5ef4ad79e3111af573ff28c2bca Mon Sep 17 00:00:00 2001 +From 6a23a851deddbd06d8dbde1734d8ebd1644fb666 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 00:52:31 -0600 Subject: [PATCH] Lighting Queue @@ -43,7 +43,7 @@ index a340866f3..1e3405cc1 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 4a4cc6c59..b0060c363 100644 +index 091a53371..d46578b3e 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -91,6 +91,7 @@ public class Chunk implements IChunkAccess { @@ -102,10 +102,10 @@ index 4a4cc6c59..b0060c363 100644 IMMEDIATE, QUEUED, CHECK; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index badfe86b2..51bc23daf 100644 +index d23f4e80c..48b484da1 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -323,6 +323,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -322,6 +322,7 @@ public class ChunkProviderServer implements IChunkProvider { return false; } save = event.isSaveChunk(); @@ -114,10 +114,10 @@ index badfe86b2..51bc23daf 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 2e691b9f6..4473c3b51 100644 +index ae17796ce..1ac8d61cd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -825,7 +825,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -864,7 +864,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati protected void v() { co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper this.slackActivityAccountant.tickStarted(); // Spigot @@ -126,7 +126,7 @@ index 2e691b9f6..4473c3b51 100644 ++this.ticks; if (this.S) { -@@ -883,6 +883,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -922,6 +922,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.methodProfiler.e(); this.methodProfiler.e(); org.spigotmc.WatchdogThread.tick(); // Spigot @@ -233,7 +233,7 @@ index 000000000..345cd5824 + } +} diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c605d7e52..f57bd081b 100644 +index bfe09a205..c40ecbc0c 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -325,7 +325,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose diff --git a/Spigot-Server-Patches/0031-Optimize-explosions.patch b/Spigot-Server-Patches/0031-Optimize-explosions.patch index ec7be6e1..82fe2c24 100644 --- a/Spigot-Server-Patches/0031-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0031-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From 46d962a94e8bfe83e54319f47e57da34b4e7f741 Mon Sep 17 00:00:00 2001 +From b8d7f6c6cd036f9e845a1f07708681a023b68a2e Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 11:59:48 -0600 Subject: [PATCH] Optimize explosions @@ -25,7 +25,7 @@ index dccccbf5b..3626aa717 100644 + } } diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index 6b9f6c956..8fdcd52b2 100644 +index e558a3a57..18c55402d 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -136,7 +136,7 @@ public class Explosion { @@ -124,10 +124,10 @@ index 6b9f6c956..8fdcd52b2 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4473c3b51..1027b0588 100644 +index 1ac8d61cd..96d31f874 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -990,6 +990,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1029,6 +1029,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati worldserver.getTracker().updatePlayers(); this.methodProfiler.e(); this.methodProfiler.e(); @@ -136,7 +136,7 @@ index 4473c3b51..1027b0588 100644 // this.f[i][this.ticks % 100] = SystemUtils.c() - j; // CraftBukkit diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index f57bd081b..04493a1f9 100644 +index c40ecbc0c..1ca3eef11 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -18,6 +18,7 @@ import org.apache.logging.log4j.Logger; diff --git a/Spigot-Server-Patches/0033-Disable-explosion-knockback.patch b/Spigot-Server-Patches/0033-Disable-explosion-knockback.patch index 5ad06dff..08b06b4b 100644 --- a/Spigot-Server-Patches/0033-Disable-explosion-knockback.patch +++ b/Spigot-Server-Patches/0033-Disable-explosion-knockback.patch @@ -1,4 +1,4 @@ -From 2c3fc9d8180148edd78d5ce513eb6bd792cf7d0c Mon Sep 17 00:00:00 2001 +From f620d59ecbd4bff1544e6d010208a17cb8549df5 Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 14:48:03 -0600 Subject: [PATCH] Disable explosion knockback @@ -19,7 +19,7 @@ index 3626aa717..be92c1af6 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index f1840f4fa..17955d0f7 100644 +index d6e9915c1..574883462 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -1004,6 +1004,7 @@ public abstract class EntityLiving extends Entity { @@ -46,9 +46,9 @@ index f1840f4fa..17955d0f7 100644 + if (this.getHealth() <= 0.0F) { if (!this.e(damagesource)) { - SoundEffect soundeffect = this.cr(); + SoundEffect soundeffect = this.cs(); diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index 8fdcd52b2..75b21010b 100644 +index 18c55402d..7c676f9f3 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -152,7 +152,7 @@ public class Explosion { diff --git a/Spigot-Server-Patches/0047-Optimize-Pathfinding.patch b/Spigot-Server-Patches/0047-Optimize-Pathfinding.patch index dc3f59b8..ed5f4093 100644 --- a/Spigot-Server-Patches/0047-Optimize-Pathfinding.patch +++ b/Spigot-Server-Patches/0047-Optimize-Pathfinding.patch @@ -1,4 +1,4 @@ -From 77d4e20f2d1dcbac4798b664c809dbcf3819dbf2 Mon Sep 17 00:00:00 2001 +From a582f2795d2b29ef1c1d52de9dafde6db552ec36 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 02:02:07 -0600 Subject: [PATCH] Optimize Pathfinding @@ -7,7 +7,7 @@ Prevents pathfinding from spamming failures for things such as arrow attacks. diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index 9337b9397..1964684ac 100644 +index 62cb81516..8111317e3 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java @@ -122,10 +122,26 @@ public abstract class NavigationAbstract { @@ -41,7 +41,7 @@ index 9337b9397..1964684ac 100644 @@ -258,6 +274,7 @@ public abstract class NavigationAbstract { } - public void r() { + public void q() { + this.pathfindFailures = 0; this.lastFailure = 0; // Paper - Pathfinding optimizations this.c = null; } diff --git a/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch b/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch index 72c0fd75..7ebdadc0 100644 --- a/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch +++ b/Spigot-Server-Patches/0049-Expose-server-CommandMap.patch @@ -1,14 +1,14 @@ -From 7ad52fafe34a337de31950cfcb5714b42936672c Mon Sep 17 00:00:00 2001 +From bd50b8b817431b942df9ac1ed7cb17e6f9854b63 Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 3 Mar 2016 02:15:57 -0600 Subject: [PATCH] Expose server CommandMap diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d637199ca..703d38f0c 100644 +index 2d8820070..6d00be24b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1604,6 +1604,7 @@ public final class CraftServer implements Server { +@@ -1586,6 +1586,7 @@ public final class CraftServer implements Server { return helpMap; } diff --git a/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch index 152ceab6..2a7408d5 100644 --- a/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0057-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From 8dbd8eba1f8a7f3c7dc31d92225602ea6438fb91 Mon Sep 17 00:00:00 2001 +From 1bba90c8786ff7744430062680e3f9f2fb1e09be 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 @@ -50,7 +50,7 @@ index 000000000..93397188b +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 2d55abd7a..7ea4b9b5c 100644 +index 0c2540938..15ecac26c 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1,5 +1,6 @@ @@ -98,7 +98,7 @@ index 2d55abd7a..7ea4b9b5c 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 51bc23daf..bb96a7392 100644 +index 48b484da1..6917fdbe0 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -17,6 +17,7 @@ import java.util.concurrent.ExecutionException; @@ -109,7 +109,7 @@ index 51bc23daf..bb96a7392 100644 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@@ -215,7 +216,11 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -214,7 +215,11 @@ public class ChunkProviderServer implements IChunkProvider { try { // this.chunkLoader.a(this.world, chunk); // Spigot } catch (Exception exception) { @@ -122,7 +122,7 @@ index 51bc23daf..bb96a7392 100644 } } -@@ -225,9 +230,14 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -224,9 +229,14 @@ public class ChunkProviderServer implements IChunkProvider { ichunkaccess.setLastSaved(this.world.getTime()); this.chunkLoader.saveChunk(this.world, ichunkaccess, unloaded); // Spigot } catch (IOException ioexception) { @@ -167,7 +167,7 @@ index 33e5aaf2c..f13534917 100644 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/PersistentCollection.java b/src/main/java/net/minecraft/server/PersistentCollection.java -index 0ffca4301..86d8fd0d9 100644 +index 6b5600ba5..72f386720 100644 --- a/src/main/java/net/minecraft/server/PersistentCollection.java +++ b/src/main/java/net/minecraft/server/PersistentCollection.java @@ -1,5 +1,6 @@ @@ -194,7 +194,7 @@ index 0ffca4301..86d8fd0d9 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index 94364baae..c80d724f0 100644 +index 31899549d..cc7cad8be 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java @@ -1,5 +1,6 @@ @@ -212,7 +212,7 @@ index 94364baae..c80d724f0 100644 } } -@@ -209,6 +211,7 @@ public class RegionFile { +@@ -237,6 +239,7 @@ public class RegionFile { this.b(i, j, (int) (SystemUtils.d() / 1000L)); } catch (IOException ioexception) { ioexception.printStackTrace(); @@ -221,7 +221,7 @@ index 94364baae..c80d724f0 100644 } diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java -index d394645a5..384628ccc 100644 +index 0e91aeec3..ff473a263 100644 --- a/src/main/java/net/minecraft/server/RegionFileCache.java +++ b/src/main/java/net/minecraft/server/RegionFileCache.java @@ -1,5 +1,6 @@ @@ -240,7 +240,7 @@ index d394645a5..384628ccc 100644 } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index aec9cdae5..6d842df62 100644 +index b12e767db..342a15db5 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager; @@ -288,7 +288,7 @@ index 4ff243dab..67b2e41c7 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 26b2a1fd4..d51ed0f80 100644 +index 30cafca04..fa75ed496 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,6 +1,8 @@ diff --git a/Spigot-Server-Patches/0062-Chunk-save-queue-improvements.patch b/Spigot-Server-Patches/0062-Chunk-save-queue-improvements.patch index 7521d504..de30af69 100644 --- a/Spigot-Server-Patches/0062-Chunk-save-queue-improvements.patch +++ b/Spigot-Server-Patches/0062-Chunk-save-queue-improvements.patch @@ -1,4 +1,4 @@ -From ac2e096b98ab349ce20eb01bb7543fa3aaf4f4ee Mon Sep 17 00:00:00 2001 +From 9cb479ab95970eba850de078eaa105429a3024a7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 4 Mar 2016 18:18:37 -0600 Subject: [PATCH] Chunk save queue improvements @@ -41,7 +41,7 @@ index 36689db74..3898ad8fa 100644 + } } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 3a0e52d88..8701777cc 100644 +index 5001fd11d..b247d5f07 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -25,6 +25,7 @@ import java.util.function.Consumer; @@ -75,22 +75,7 @@ index 3a0e52d88..8701777cc 100644 private final File c; private final DataFixer d; private PersistentStructureLegacy e; -@@ -285,7 +299,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - } - }; - } else { -- if (this.b.containsKey(chunkcoordintpair) && this.a(this.b.get(chunkcoordintpair).get()) == ChunkStatus.Type.LEVELCHUNK || this.a(this.b(world, chunkcoordintpair.x, chunkcoordintpair.z)) == ChunkStatus.Type.LEVELCHUNK) { -+ // Paper start -+ Supplier existingSave; -+ synchronized (this) { -+ existingSave = this.b.get(chunkcoordintpair); -+ } -+ if (existingSave != null && this.a(existingSave.get()) == ChunkStatus.Type.LEVELCHUNK || this.a(this.b(world, chunkcoordintpair.x, chunkcoordintpair.z)) == ChunkStatus.Type.LEVELCHUNK) { // Paper - extract existingSave to synchronized lookup -+ // Paper end - return; - } - -@@ -296,8 +316,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -298,8 +312,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { } }; } @@ -101,7 +86,7 @@ index 3a0e52d88..8701777cc 100644 // Spigot end } catch (Exception exception) { ChunkRegionLoader.a.error("Failed to save chunk", exception); -@@ -306,18 +326,22 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -308,18 +322,22 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { } protected synchronized void a(ChunkCoordIntPair chunkcoordintpair, Supplier nbttagcompound) { // Spigot @@ -128,7 +113,7 @@ index 3a0e52d88..8701777cc 100644 if (logCompletion) { // CraftBukkit end ChunkRegionLoader.a.info("ThreadedAnvilChunkStorage ({}): All chunks are saved", this.c.getName()); -@@ -325,17 +349,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -327,17 +345,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { return false; } else { @@ -148,7 +133,7 @@ index 3a0e52d88..8701777cc 100644 if (nbttagcompound != null) { try { -@@ -347,7 +367,14 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -349,7 +363,14 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { flag = true; } finally { diff --git a/Spigot-Server-Patches/0063-Chunk-Save-Reattempt.patch b/Spigot-Server-Patches/0063-Chunk-Save-Reattempt.patch index bcd919ae..b115bd7e 100644 --- a/Spigot-Server-Patches/0063-Chunk-Save-Reattempt.patch +++ b/Spigot-Server-Patches/0063-Chunk-Save-Reattempt.patch @@ -1,4 +1,4 @@ -From 2fafede916dc83820145ee9a6663fa1f9725d8da Mon Sep 17 00:00:00 2001 +From cd1396b77d29f151316d181df8ce104bd61c5974 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 4 Mar 2013 23:46:10 -0500 Subject: [PATCH] Chunk Save Reattempt @@ -6,10 +6,10 @@ Subject: [PATCH] Chunk Save Reattempt We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks. diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 8701777cc..ad3bd3808 100644 +index b247d5f07..f007af2e1 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -358,11 +358,16 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -354,11 +354,16 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { NBTTagCompound nbttagcompound = SupplierUtils.getIfExists(chunk.compoundSupplier); // Spigot // Paper if (nbttagcompound != null) { @@ -28,10 +28,10 @@ index 8701777cc..ad3bd3808 100644 flag = true; diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java -index c80d724f0..3f9aa5923 100644 +index cc7cad8be..b8b514c87 100644 --- a/src/main/java/net/minecraft/server/RegionFile.java +++ b/src/main/java/net/minecraft/server/RegionFile.java -@@ -210,8 +210,7 @@ public class RegionFile { +@@ -238,8 +238,7 @@ public class RegionFile { this.b(i, j, (int) (SystemUtils.d() / 1000L)); } catch (IOException ioexception) { diff --git a/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch b/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch index 327c6df0..7e0f39fb 100644 --- a/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch +++ b/Spigot-Server-Patches/0065-Allow-Reloading-of-Custom-Permissions.patch @@ -1,4 +1,4 @@ -From 63781dcbca84f8aa63d89c21777f46521465843f Mon Sep 17 00:00:00 2001 +From 03aaffbcad2bfeb80e38be011d9da2f2934c57e8 Mon Sep 17 00:00:00 2001 From: William Date: Fri, 18 Mar 2016 03:30:17 -0400 Subject: [PATCH] Allow Reloading of Custom Permissions @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions https://github.com/PaperMC/Paper/issues/49 diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4db5aacc4..1c9637ff7 100644 +index ff966de55..3f51eb384 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1960,5 +1960,20 @@ public final class CraftServer implements Server { +@@ -1942,5 +1942,20 @@ public final class CraftServer implements Server { return false; } } diff --git a/Spigot-Server-Patches/0068-Fix-Furnace-cook-time-bug.patch b/Spigot-Server-Patches/0068-Fix-Furnace-cook-time-bug.patch index 2b39eb7d..6da7d4e9 100644 --- a/Spigot-Server-Patches/0068-Fix-Furnace-cook-time-bug.patch +++ b/Spigot-Server-Patches/0068-Fix-Furnace-cook-time-bug.patch @@ -1,4 +1,4 @@ -From 2223947a61cc98c1e2b2c3e52c5e0bad7399dceb Mon Sep 17 00:00:00 2001 +From db448a33d090f16e94422a122727963472d771a1 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 14:24:53 -0400 Subject: [PATCH] Fix Furnace cook time bug @@ -9,10 +9,10 @@ cook in the expected amount of time as the cook time was not decremented correct This patch ensures that furnaces cook to the correct wall time expectation. diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java -index 8f9a59693..3a587a766 100644 +index b484fc721..bc158b877 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java -@@ -272,7 +272,7 @@ public class TileEntityFurnace extends TileEntityContainer implements IWorldInve +@@ -267,7 +267,7 @@ public class TileEntityFurnace extends TileEntityContainer implements IWorldInve if (this.isBurning() && this.canBurn(irecipe)) { this.cookTime += elapsedTicks; if (this.cookTime >= this.cookTimeTotal) { diff --git a/Spigot-Server-Patches/0072-Optimized-Light-Level-Comparisons.patch b/Spigot-Server-Patches/0072-Optimized-Light-Level-Comparisons.patch index 53cc71b7..e4bcd1cc 100644 --- a/Spigot-Server-Patches/0072-Optimized-Light-Level-Comparisons.patch +++ b/Spigot-Server-Patches/0072-Optimized-Light-Level-Comparisons.patch @@ -1,4 +1,4 @@ -From b13a9f38c46d3600d2b142d3b69bee8e8c6f5cd4 Mon Sep 17 00:00:00 2001 +From a773200d9ab31e884e149a3fd9a108d1e94e618b Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 21:22:56 -0400 Subject: [PATCH] Optimized Light Level Comparisons @@ -8,7 +8,7 @@ Use an optimized method to test if a block position meets a desired light level. This method benefits from returning as soon as the desired light level matches. diff --git a/src/main/java/net/minecraft/server/BlockCrops.java b/src/main/java/net/minecraft/server/BlockCrops.java -index e64b6dbda..8acfe9e66 100644 +index b392846aa..c64e6c197 100644 --- a/src/main/java/net/minecraft/server/BlockCrops.java +++ b/src/main/java/net/minecraft/server/BlockCrops.java @@ -44,7 +44,7 @@ public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement @@ -17,9 +17,9 @@ index e64b6dbda..8acfe9e66 100644 super.a(iblockdata, world, blockposition, random); - if (world.getLightLevel(blockposition.up(), 0) >= 9) { + if (world.isLightLevel(blockposition.up(), 9)) { // Paper - int i = this.j(iblockdata); + int i = this.k(iblockdata); - if (i < this.d()) { + if (i < this.e()) { diff --git a/src/main/java/net/minecraft/server/BlockSapling.java b/src/main/java/net/minecraft/server/BlockSapling.java index 723e5c9b4..e24fb1736 100644 --- a/src/main/java/net/minecraft/server/BlockSapling.java @@ -34,7 +34,7 @@ index 723e5c9b4..e24fb1736 100644 world.captureTreeGeneration = true; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/BlockStem.java b/src/main/java/net/minecraft/server/BlockStem.java -index 3959e0700..c4aff522b 100644 +index 0192f9386..334c42d0d 100644 --- a/src/main/java/net/minecraft/server/BlockStem.java +++ b/src/main/java/net/minecraft/server/BlockStem.java @@ -27,7 +27,7 @@ public class BlockStem extends BlockPlant implements IBlockFragilePlantElement { @@ -47,7 +47,7 @@ index 3959e0700..c4aff522b 100644 if (random.nextInt((int) ((100.0F / (this == Blocks.PUMPKIN_STEM ? world.spigotConfig.pumpkinModifier : world.spigotConfig.melonModifier)) * (25.0F / f)) + 1) == 0) { // Spigot diff --git a/src/main/java/net/minecraft/server/EntityMonster.java b/src/main/java/net/minecraft/server/EntityMonster.java -index bef146aa9..9c387365b 100644 +index 494ce0bc0..f06c34c6f 100644 --- a/src/main/java/net/minecraft/server/EntityMonster.java +++ b/src/main/java/net/minecraft/server/EntityMonster.java @@ -64,9 +64,18 @@ public abstract class EntityMonster extends EntityCreature implements IMonster { @@ -73,7 +73,7 @@ index bef146aa9..9c387365b 100644 } diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 268e4d57b..24224efc6 100644 +index 9f8f667c1..90aa8641b 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -262,7 +262,7 @@ public class EntityZombie extends EntityMonster { diff --git a/Spigot-Server-Patches/0074-Custom-replacement-for-eaten-items.patch b/Spigot-Server-Patches/0074-Custom-replacement-for-eaten-items.patch index 401a5f22..c0cddfc8 100644 --- a/Spigot-Server-Patches/0074-Custom-replacement-for-eaten-items.patch +++ b/Spigot-Server-Patches/0074-Custom-replacement-for-eaten-items.patch @@ -1,11 +1,11 @@ -From a9821eba8de7feae6fcaed3baccc7451992f2fc6 Mon Sep 17 00:00:00 2001 +From 7b31831037d962e312445ec6f9e32fa2506bc4f9 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Sun, 21 Jun 2015 15:07:20 -0400 Subject: [PATCH] Custom replacement for eaten items diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 00cd44a72..bcbc77ad2 100644 +index dd48c6af0..acd8034e8 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -2563,12 +2563,13 @@ public abstract class EntityLiving extends Entity { @@ -23,7 +23,7 @@ index 00cd44a72..bcbc77ad2 100644 world.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { -@@ -2583,9 +2584,19 @@ public abstract class EntityLiving extends Entity { +@@ -2583,9 +2584,20 @@ public abstract class EntityLiving extends Entity { itemstack = this.activeItem.a(this.world, this); } @@ -33,13 +33,14 @@ index 00cd44a72..bcbc77ad2 100644 + itemstack = CraftItemStack.asNMSCopy(event.getReplacement()); + } + // Paper end - this.a(this.cT(), itemstack); + this.a(this.cU(), itemstack); // CraftBukkit end - this.cZ(); + this.da(); + // Paper start - if the replacement is anything but the default, update the client inventory + if (this instanceof EntityPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) { + ((EntityPlayer) this).getBukkitEntity().updateInventory(); + } ++ // Paper end } } diff --git a/Spigot-Server-Patches/0082-Optimize-isValidLocation-getType-and-getBlockData-fo.patch b/Spigot-Server-Patches/0082-Optimize-isValidLocation-getType-and-getBlockData-fo.patch index 8c7364fb..9635d0a0 100644 --- a/Spigot-Server-Patches/0082-Optimize-isValidLocation-getType-and-getBlockData-fo.patch +++ b/Spigot-Server-Patches/0082-Optimize-isValidLocation-getType-and-getBlockData-fo.patch @@ -1,4 +1,4 @@ -From 4710b24774a3e974f01b1db6348dcc36a4d2ded7 Mon Sep 17 00:00:00 2001 +From 2ad7998f791d185616cd9fe917db69a70eed172a Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 02:07:55 -0600 Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling @@ -31,7 +31,7 @@ index e2a7b4be2..58f8b4b72 100644 public BaseBlockPosition(int i, int j, int k) { this.a = i; diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java -index 70a7edf57..fff08f09d 100644 +index 35ec4981c..ca73ac82f 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java @@ -339,6 +339,16 @@ public class BlockPosition extends BaseBlockPosition { @@ -52,7 +52,7 @@ index 70a7edf57..fff08f09d 100644 public MutableBlockPosition() { this(0, 0, 0); diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index fb27dcac2..1c0580f79 100644 +index 0dc05b644..94d036865 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -430,12 +430,24 @@ public class Chunk implements IChunkAccess { @@ -96,7 +96,7 @@ index 7c6308dbe..880058a9e 100644 private NibbleArray skyLight; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d3785f73b..f8e4cd14c 100644 +index 11cf087e7..489c152ee 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -262,11 +262,11 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose @@ -172,7 +172,7 @@ index d3785f73b..f8e4cd14c 100644 return FluidTypes.a.i(); } else { Chunk chunk = this.getChunkAtWorldCoords(blockposition); -@@ -1764,7 +1764,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -1768,7 +1768,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose public Map capturedTileEntities = Maps.newHashMap(); @Nullable public TileEntity getTileEntity(BlockPosition blockposition) { @@ -181,7 +181,7 @@ index d3785f73b..f8e4cd14c 100644 return null; } else { // CraftBukkit start -@@ -1805,7 +1805,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -1809,7 +1809,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose } public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) { @@ -190,7 +190,7 @@ index d3785f73b..f8e4cd14c 100644 if (tileentity != null && !tileentity.x()) { // CraftBukkit start if (captureBlockStates) { -@@ -1866,7 +1866,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -1870,7 +1870,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose } public boolean p(BlockPosition blockposition) { diff --git a/Spigot-Server-Patches/0087-EntityPathfindEvent.patch b/Spigot-Server-Patches/0087-EntityPathfindEvent.patch index 56d56bbf..db092934 100644 --- a/Spigot-Server-Patches/0087-EntityPathfindEvent.patch +++ b/Spigot-Server-Patches/0087-EntityPathfindEvent.patch @@ -1,4 +1,4 @@ -From 6455ce561b9117bf7b6752c1553f5159fb3712f3 Mon Sep 17 00:00:00 2001 +From 6f900d976e49e29d9a3cfd377e94d7121ddb6e65 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 21:22:26 -0400 Subject: [PATCH] EntityPathfindEvent @@ -6,7 +6,7 @@ Subject: [PATCH] EntityPathfindEvent Fires when an Entity decides to start moving to a location. diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index 1964684ac..0c5215657 100644 +index 8111317e3..76d1f4bd2 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java @@ -4,7 +4,7 @@ import javax.annotation.Nullable; @@ -24,7 +24,7 @@ index 1964684ac..0c5215657 100644 } else { + if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(getEntity().getBukkitEntity(), MCUtil.toLocation(getEntity().world, blockposition), null).callEvent()) { return null; } // Paper this.q = blockposition; - float f = this.k(); + float f = this.j(); @@ -102,6 +103,7 @@ public abstract class NavigationAbstract { if (this.c != null && !this.c.b() && blockposition.equals(this.q)) { @@ -32,7 +32,7 @@ index 1964684ac..0c5215657 100644 } else { + if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(getEntity().getBukkitEntity(), MCUtil.toLocation(entity.world, blockposition), entity.getBukkitEntity()).callEvent()) { return null; } // Paper this.q = blockposition; - float f = this.k(); + float f = this.j(); -- 2.18.0 diff --git a/Spigot-Server-Patches/0095-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0095-Configurable-Keep-Spawn-Loaded-range-per-world.patch index d9ec20d0..8c6371c7 100644 --- a/Spigot-Server-Patches/0095-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0095-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From a064f1ff86cfe2af3e4659d3b4ab7191c1bbdee5 Mon Sep 17 00:00:00 2001 +From dfd965ef359e7bf7dfc9ed33736374439c753e83 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 @@ -21,10 +21,10 @@ index eb09be512..6ac58e5ec 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1027b0588..b7aa9e869 100644 +index 96d31f874..664007c29 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -446,8 +446,11 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -485,8 +485,11 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati ArrayList arraylist = Lists.newArrayList(); Set set = Sets.newConcurrentHashSet(); @@ -39,10 +39,10 @@ index 1027b0588..b7aa9e869 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index cc1492e4d..2c6774082 100644 +index 6ec1ee26d..a4c8e62e2 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -2821,8 +2821,9 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -2825,8 +2825,9 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose int k = i * 16 + 8 - blockposition.getX(); int l = j * 16 + 8 - blockposition.getZ(); boolean flag = true; @@ -54,10 +54,10 @@ index cc1492e4d..2c6774082 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 f90dc11f2..06b59657f 100644 +index 62872675d..7cb795dd8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1008,7 +1008,7 @@ public final class CraftServer implements Server { +@@ -990,7 +990,7 @@ public final class CraftServer implements Server { System.out.println("Preparing start region for level " + (console.worlds.size() - 1) + " (Seed: " + internal.getSeed() + ")"); if (internal.getWorld().getKeepSpawnInMemory()) { diff --git a/Spigot-Server-Patches/0097-Don-t-spam-reload-spawn-chunks-in-nether-end.patch b/Spigot-Server-Patches/0097-Don-t-spam-reload-spawn-chunks-in-nether-end.patch index 49cae9e0..b269197e 100644 --- a/Spigot-Server-Patches/0097-Don-t-spam-reload-spawn-chunks-in-nether-end.patch +++ b/Spigot-Server-Patches/0097-Don-t-spam-reload-spawn-chunks-in-nether-end.patch @@ -1,14 +1,14 @@ -From 0fcdea66258db413a6b24290ed64dbe31665a343 Mon Sep 17 00:00:00 2001 +From afb30e11f473e9edbeff81f0bad1736ab90b28b9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Apr 2016 19:42:22 -0400 Subject: [PATCH] Don't spam reload spawn chunks in nether/end diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 5b2d67260..3aecf7a5d 100644 +index ae953d85d..e747d1e46 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -2817,6 +2817,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -2821,6 +2821,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose return this.K; } diff --git a/Spigot-Server-Patches/0101-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0101-Remove-unused-World-Tile-Entity-List.patch index 7cd2cd6a..04e27d16 100644 --- a/Spigot-Server-Patches/0101-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0101-Remove-unused-World-Tile-Entity-List.patch @@ -1,4 +1,4 @@ -From e2d1cd0843677e1a8e8dea3ed851c5c8e2e94e69 Mon Sep 17 00:00:00 2001 +From 43bd8c9254a8f40906a62978cf6045d7e1eff64b Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 00:25:28 -0400 Subject: [PATCH] Remove unused World Tile Entity List @@ -6,7 +6,7 @@ Subject: [PATCH] Remove unused World Tile Entity List Massive hit to performance and it is completely unnecessary. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 3aecf7a5d..e5ecfdbf0 100644 +index e747d1e46..46eab028d 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -73,7 +73,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose @@ -57,7 +57,7 @@ index 3aecf7a5d..e5ecfdbf0 100644 this.tileEntityListTick.add(tileentity); } -@@ -1852,7 +1852,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -1856,7 +1856,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose } else { if (tileentity != null) { this.c.remove(tileentity); diff --git a/Spigot-Server-Patches/0103-Configurable-Player-Collision.patch b/Spigot-Server-Patches/0103-Configurable-Player-Collision.patch index f9dc5f7b..153b01ec 100644 --- a/Spigot-Server-Patches/0103-Configurable-Player-Collision.patch +++ b/Spigot-Server-Patches/0103-Configurable-Player-Collision.patch @@ -1,4 +1,4 @@ -From 9f2f1b9ab1eed83663f5141642da3ed16f93bdaf Mon Sep 17 00:00:00 2001 +From 3ee292c7290a2edfc9b0e97fb5ff14e1f8e0a595 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 13 Apr 2016 02:10:49 -0400 Subject: [PATCH] Configurable Player Collision @@ -19,10 +19,10 @@ index ec4643384..430b5d0cd 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b7aa9e869..c5670fe8d 100644 +index 664007c29..eb0e1361a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -379,6 +379,20 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -418,6 +418,20 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.a(this.getDifficulty()); this.g_(); @@ -44,7 +44,7 @@ index b7aa9e869..c5670fe8d 100644 protected void a(File file, WorldData worlddata) { diff --git a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java -index 5f54e7b9c..759288b97 100644 +index a6aed2531..575e3762b 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutScoreboardTeam.java @@ -94,7 +94,7 @@ public class PacketPlayOutScoreboardTeam implements Packet 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 3c201c2e2..05dc8451e 100644 +index eb0e1361a..68ab9b7eb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -68,6 +68,7 @@ import co.aikar.timings.MinecraftTimings; // Paper @@ -17,7 +17,7 @@ index 3c201c2e2..05dc8451e 100644 public static final Logger LOGGER = LogManager.getLogger(); public static final File a = new File("usercache.json"); public Convertable convertable; -@@ -153,6 +154,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -154,6 +155,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati // Spigot end public MinecraftServer(OptionSet options, Proxy proxy, DataFixer datafixer, CommandDispatcher commanddispatcher, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) { @@ -26,7 +26,7 @@ index 3c201c2e2..05dc8451e 100644 this.ac = new ResourceManager(EnumResourcePackType.SERVER_DATA); this.resourcePackRepository = new ResourcePackRepository(ResourcePackLoader::new); this.ag = new CraftingManager(); -@@ -1742,7 +1745,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1806,7 +1809,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati // CraftBukkit start @Deprecated public static MinecraftServer getServer() { diff --git a/Spigot-Server-Patches/0113-LootTable-API-Replenishable-Lootables-Feature.patch b/Spigot-Server-Patches/0113-LootTable-API-Replenishable-Lootables-Feature.patch index 61929791..157ce8fa 100644 --- a/Spigot-Server-Patches/0113-LootTable-API-Replenishable-Lootables-Feature.patch +++ b/Spigot-Server-Patches/0113-LootTable-API-Replenishable-Lootables-Feature.patch @@ -1,4 +1,4 @@ -From 9d96b8545503e22d3196831671b54fc1a5e80009 Mon Sep 17 00:00:00 2001 +From 89c539bf9cd6e0a1ac5fd61cbcb7bf6a08ed570d 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 @@ -418,7 +418,7 @@ index 000000000..9a65603bc + } +} diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java -index dc329dcc5..d3bf88585 100644 +index 9ec73ac06..8bd7976f9 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java +++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java @@ -6,17 +6,21 @@ import javax.annotation.Nullable; @@ -445,7 +445,7 @@ index dc329dcc5..d3bf88585 100644 // CraftBukkit start public List transaction = new java.util.ArrayList(); -@@ -159,12 +163,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -168,12 +172,13 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); @@ -460,7 +460,7 @@ index dc329dcc5..d3bf88585 100644 ContainerUtil.a(nbttagcompound, this.items); } -@@ -172,11 +177,12 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -181,11 +186,12 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp protected void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); @@ -474,7 +474,7 @@ index dc329dcc5..d3bf88585 100644 ContainerUtil.b(nbttagcompound, this.items); } -@@ -225,10 +231,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -234,10 +240,10 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp } public void f(@Nullable EntityHuman entityhuman) { @@ -487,7 +487,7 @@ index dc329dcc5..d3bf88585 100644 Random random; if (this.d == 0L) { -@@ -253,12 +259,51 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp +@@ -262,12 +268,51 @@ public abstract class EntityMinecartContainer extends EntityMinecartAbstract imp this.items.clear(); } @@ -540,7 +540,7 @@ index dc329dcc5..d3bf88585 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/TileEntityLootable.java b/src/main/java/net/minecraft/server/TileEntityLootable.java -index ce710d219..9c8bebe4b 100644 +index fbda02b32..e6fc1ae92 100644 --- a/src/main/java/net/minecraft/server/TileEntityLootable.java +++ b/src/main/java/net/minecraft/server/TileEntityLootable.java @@ -1,12 +1,16 @@ diff --git a/Spigot-Server-Patches/0116-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch b/Spigot-Server-Patches/0116-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch index 7a2d842a..c79726b5 100644 --- a/Spigot-Server-Patches/0116-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch +++ b/Spigot-Server-Patches/0116-Don-t-save-empty-scoreboard-teams-to-scoreboard.dat.patch @@ -1,4 +1,4 @@ -From e1f368e70c67a8656883a4a1025adfce7f085a83 Mon Sep 17 00:00:00 2001 +From a348c3710bdb5813fc2278b285f8f77f3a5d4368 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 7 May 2016 23:33:08 -0400 Subject: [PATCH] Don't save empty scoreboard teams to scoreboard.dat @@ -19,10 +19,10 @@ index 430b5d0cd..011cbf5e3 100644 + } } diff --git a/src/main/java/net/minecraft/server/PersistentScoreboard.java b/src/main/java/net/minecraft/server/PersistentScoreboard.java -index 81afa3195..ed3d5c889 100644 +index 0260fb7ec..45d8de1b7 100644 --- a/src/main/java/net/minecraft/server/PersistentScoreboard.java +++ b/src/main/java/net/minecraft/server/PersistentScoreboard.java -@@ -175,6 +175,7 @@ public class PersistentScoreboard extends PersistentBase { +@@ -177,6 +177,7 @@ public class PersistentScoreboard extends PersistentBase { while (iterator.hasNext()) { ScoreboardTeam scoreboardteam = (ScoreboardTeam) iterator.next(); diff --git a/Spigot-Server-Patches/0117-Fix-Chunk-Unload-Queue-Issues.patch b/Spigot-Server-Patches/0117-Fix-Chunk-Unload-Queue-Issues.patch index 3929c985..34736a4c 100644 --- a/Spigot-Server-Patches/0117-Fix-Chunk-Unload-Queue-Issues.patch +++ b/Spigot-Server-Patches/0117-Fix-Chunk-Unload-Queue-Issues.patch @@ -1,4 +1,4 @@ -From 5f52336745925855acb58d3b4f55fc404c5a1766 Mon Sep 17 00:00:00 2001 +From 570d7c506c2cc65f5899a4ca5e6b5cd5c2f38182 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 744b5bc6d..718ebfea0 100644 +index 49c5953fb..8da7e39ee 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -58,7 +58,7 @@ public class Chunk implements IChunkAccess { @@ -22,10 +22,10 @@ index 744b5bc6d..718ebfea0 100644 private int E; private final AtomicInteger F; diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index bb96a7392..7825dc91b 100644 +index 6917fdbe0..bac5c921b 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -302,6 +302,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -301,6 +301,7 @@ public class ChunkProviderServer implements IChunkProvider { if (chunk != null && chunk.d) { // CraftBukkit start - move unload logic to own method diff --git a/Spigot-Server-Patches/0120-Optimize-UserCache-Thread-Safe.patch b/Spigot-Server-Patches/0120-Optimize-UserCache-Thread-Safe.patch index 28c6eed7..441eca78 100644 --- a/Spigot-Server-Patches/0120-Optimize-UserCache-Thread-Safe.patch +++ b/Spigot-Server-Patches/0120-Optimize-UserCache-Thread-Safe.patch @@ -1,4 +1,4 @@ -From 1b066a794864bf5d0073b12f7d575ee00775466e Mon Sep 17 00:00:00 2001 +From 575168a9432ee2e2241160b96d5a72f299dfa366 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 05dc8451e..0e59fc9eb 100644 +index 68ab9b7eb..0e385e4ea 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -632,7 +632,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -671,7 +671,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati // Spigot start if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) { LOGGER.info("Saving usercache.json"); diff --git a/Spigot-Server-Patches/0125-Add-server-name-parameter.patch b/Spigot-Server-Patches/0125-Add-server-name-parameter.patch index c41a3201..981b629d 100644 --- a/Spigot-Server-Patches/0125-Add-server-name-parameter.patch +++ b/Spigot-Server-Patches/0125-Add-server-name-parameter.patch @@ -1,14 +1,14 @@ -From 6b56636274fd02421525e8c2000511fe4cf89272 Mon Sep 17 00:00:00 2001 +From 66f789bf81987858175b8ef9204c85c50a69d1b1 Mon Sep 17 00:00:00 2001 From: Martin Panzer Date: Sat, 28 May 2016 16:54:03 +0200 Subject: [PATCH] Add server-name parameter diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index d9059129d..aad208f47 100644 +index 38e696aa9..c552c624e 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -134,6 +134,14 @@ public class Main { +@@ -136,6 +136,14 @@ public class Main { .defaultsTo(new File("paper.yml")) .describedAs("Yml file"); // Paper end diff --git a/Spigot-Server-Patches/0127-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/Spigot-Server-Patches/0127-Delay-Chunk-Unloads-based-on-Player-Movement.patch index f841ac3e..9b99a796 100644 --- a/Spigot-Server-Patches/0127-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/Spigot-Server-Patches/0127-Delay-Chunk-Unloads-based-on-Player-Movement.patch @@ -1,4 +1,4 @@ -From 8b0ebf88191276c87b61235e51405887463861a3 Mon Sep 17 00:00:00 2001 +From 51db9f7a8b2e9545edec3a323c0d6c1e298d30d8 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 @@ -40,7 +40,7 @@ index 321da3be3..0e6c18b32 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 718ebfea0..6c6924937 100644 +index 8da7e39ee..99421aca9 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -39,6 +39,7 @@ public class Chunk implements IChunkAccess { @@ -52,10 +52,10 @@ index 718ebfea0..6c6924937 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 7825dc91b..2e72a294d 100644 +index bac5c921b..4f9ece9e4 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -318,6 +318,19 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -317,6 +317,19 @@ public class ChunkProviderServer implements IChunkProvider { activityAccountant.endActivity(); // Spigot } @@ -131,7 +131,7 @@ index 4d888d6d4..cf5c76a78 100644 } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 5102f24ed..c9b6b57af 100644 +index f1c036aa6..95ec4f48f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1294,7 +1294,13 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose diff --git a/Spigot-Server-Patches/0128-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0128-Fix-Double-World-Add-issues.patch index 9ebbe362..484c94d6 100644 --- a/Spigot-Server-Patches/0128-Fix-Double-World-Add-issues.patch +++ b/Spigot-Server-Patches/0128-Fix-Double-World-Add-issues.patch @@ -1,4 +1,4 @@ -From c4546f54875964aa47af70957bae0bc9a8840b28 Mon Sep 17 00:00:00 2001 +From dbfe877863ead07c12ce6bc9fe159f20cd3a8563 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 21 Jun 2016 22:54:34 -0400 Subject: [PATCH] Fix Double World Add issues @@ -8,10 +8,10 @@ Vanilla will double add Spider Jockeys to the world, so ignore already added. Also add debug if something else tries to, and abort before world gets bad state diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index ad3bd3808..e70c2184c 100644 +index f007af2e1..2f1488ee5 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -1058,7 +1058,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -1050,7 +1050,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { } public static void a(Entity entity, GeneratorAccess generatoraccess, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { @@ -21,7 +21,7 @@ index ad3bd3808..e70c2184c 100644 Iterator iterator = entity.bP().iterator(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c9b6b57af..067b92f3e 100644 +index 95ec4f48f..45ab70167 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -955,6 +955,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose diff --git a/Spigot-Server-Patches/0133-Add-setting-for-proxy-online-mode-status.patch b/Spigot-Server-Patches/0133-Add-setting-for-proxy-online-mode-status.patch index b78841f5..6709510e 100644 --- a/Spigot-Server-Patches/0133-Add-setting-for-proxy-online-mode-status.patch +++ b/Spigot-Server-Patches/0133-Add-setting-for-proxy-online-mode-status.patch @@ -1,4 +1,4 @@ -From 3345a0866470144d0accf25736ef329d09bdf279 Mon Sep 17 00:00:00 2001 +From ee073c0208ecf659a81f02bd43bf65b4fe99699d Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Fri, 5 Aug 2016 01:03:08 +0200 Subject: [PATCH] Add setting for proxy online mode status @@ -33,10 +33,10 @@ index f13534917..85c7a96c5 100644 } else { String[] astring1 = astring; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 06b59657f..6c7151536 100644 +index 7cb795dd8..e125632ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1375,7 +1375,8 @@ public final class CraftServer implements Server { +@@ -1357,7 +1357,8 @@ public final class CraftServer implements Server { // Spigot Start GameProfile profile = null; // Only fetch an online UUID in online mode diff --git a/Spigot-Server-Patches/0139-Auto-Save-Improvements.patch b/Spigot-Server-Patches/0139-Auto-Save-Improvements.patch index d8efe873..75d91990 100644 --- a/Spigot-Server-Patches/0139-Auto-Save-Improvements.patch +++ b/Spigot-Server-Patches/0139-Auto-Save-Improvements.patch @@ -1,4 +1,4 @@ -From 71e6ced752630d941c3d5bf62881eb81b72eb156 Mon Sep 17 00:00:00 2001 +From b790f76209c8a401084cc4d03b4c78164ee79c41 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 19 Sep 2016 23:16:39 -0400 Subject: [PATCH] Auto Save Improvements @@ -64,7 +64,7 @@ index 0e6c18b32..c182ceffb 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 6c6924937..2f40f687a 100644 +index 99421aca9..ee992e346 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -52,9 +52,9 @@ public class Chunk implements IChunkAccess { @@ -96,7 +96,7 @@ index 6c6924937..2f40f687a 100644 public boolean isEmpty() { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 2e72a294d..1e6ea3084 100644 +index 4f9ece9e4..afeb0685b 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -1,5 +1,6 @@ @@ -106,7 +106,7 @@ index 2e72a294d..1e6ea3084 100644 import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMaps; -@@ -260,7 +261,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -259,7 +260,7 @@ public class ChunkProviderServer implements IChunkProvider { this.saveChunk(chunk, false); // Spigot chunk.a(false); ++i; @@ -116,7 +116,7 @@ index 2e72a294d..1e6ea3084 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 08d6f77ae..5122cee42 100644 +index 982e18f8a..1879c3238 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -38,6 +38,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -128,10 +128,10 @@ index 08d6f77ae..5122cee42 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 0e59fc9eb..603ce9fe2 100644 +index 0e385e4ea..326d4242d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -143,6 +143,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -144,6 +144,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; public ConsoleReader reader; public static int currentTick = 0; // Paper - Further improve tick loop @@ -139,7 +139,7 @@ index 0e59fc9eb..603ce9fe2 100644 public final Thread primaryThread; public java.util.Queue processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; -@@ -869,22 +870,30 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -908,22 +909,30 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.n.b().a(agameprofile); } @@ -175,7 +175,7 @@ index 0e59fc9eb..603ce9fe2 100644 this.methodProfiler.a("snooper"); if (getSnooperEnabled() && !this.j.d() && this.ticks > 100) { // Spigot diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 6b7d81933..3ee587014 100644 +index d0c547cc9..12f6812d6 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -341,6 +341,7 @@ public abstract class PlayerList { @@ -186,7 +186,7 @@ index 6b7d81933..3ee587014 100644 this.playerFileData.save(entityplayer); ServerStatisticManager serverstatisticmanager = (ServerStatisticManager) entityplayer.getStatisticManager(); // CraftBukkit -@@ -1220,13 +1221,25 @@ public abstract class PlayerList { +@@ -1213,13 +1214,25 @@ public abstract class PlayerList { } @@ -214,7 +214,7 @@ index 6b7d81933..3ee587014 100644 public WhiteList getWhitelist() { return this.whitelist; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 6c976e3b1..a08ef197e 100644 +index 96002184b..bf07155bc 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -872,8 +872,9 @@ public class WorldServer extends World implements IAsyncTaskHandler { diff --git a/Spigot-Server-Patches/0140-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0140-Chunk-registration-fixes.patch index 78a3f719..3fbfc489 100644 --- a/Spigot-Server-Patches/0140-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0140-Chunk-registration-fixes.patch @@ -1,4 +1,4 @@ -From 977d7d2021db60c67df0f9fa5fa7fc5ae5089144 Mon Sep 17 00:00:00 2001 +From be60b6d44fc147afab85cfd2e75313fd053fd746 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 21 Sep 2016 22:54:28 -0400 Subject: [PATCH] Chunk registration fixes @@ -8,10 +8,10 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr Keep them consistent diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 067b92f3e..04b5521cd 100644 +index 45ab70167..5d3378be0 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java -@@ -1470,7 +1470,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose +@@ -1474,7 +1474,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose } i = MathHelper.floor(entity.locX / 16.0D); diff --git a/Spigot-Server-Patches/0146-Don-t-load-Chunks-from-Hoppers-and-other-things.patch b/Spigot-Server-Patches/0146-Don-t-load-Chunks-from-Hoppers-and-other-things.patch index f6a69ab8..3aa6029c 100644 --- a/Spigot-Server-Patches/0146-Don-t-load-Chunks-from-Hoppers-and-other-things.patch +++ b/Spigot-Server-Patches/0146-Don-t-load-Chunks-from-Hoppers-and-other-things.patch @@ -1,4 +1,4 @@ -From 86f5120f1974823a7b6aa8ffd62575bfcdb812fb Mon Sep 17 00:00:00 2001 +From c6e872685630cb2732c1f34b2f53d95867fcea05 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Nov 2016 20:28:12 -0400 Subject: [PATCH] Don't load Chunks from Hoppers and other things @@ -13,13 +13,13 @@ This of course is undesirable, so just return the loaded side as "primary" and treat it as a single chest if the other sides are unloaded diff --git a/src/main/java/net/minecraft/server/BlockChest.java b/src/main/java/net/minecraft/server/BlockChest.java -index f8be07258..633c75ffe 100644 +index 1ad39aca3..7262c2b19 100644 --- a/src/main/java/net/minecraft/server/BlockChest.java +++ b/src/main/java/net/minecraft/server/BlockChest.java @@ -196,7 +196,12 @@ public class BlockChest extends BlockTileEntity implements IFluidSource, IFluidC return (ITileInventory) object; } else { - BlockPosition blockposition1 = blockposition.shift(j(iblockdata)); + BlockPosition blockposition1 = blockposition.shift(k(iblockdata)); - IBlockData iblockdata1 = world.getType(blockposition1); + // Paper start - don't load chunks if the other side of the chest is in unloaded chunk + final IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition1); // Paper diff --git a/Spigot-Server-Patches/0147-Prevent-Auto-Save-if-Save-Queue-is-full.patch b/Spigot-Server-Patches/0147-Prevent-Auto-Save-if-Save-Queue-is-full.patch index 043c5072..fd8e7a45 100644 --- a/Spigot-Server-Patches/0147-Prevent-Auto-Save-if-Save-Queue-is-full.patch +++ b/Spigot-Server-Patches/0147-Prevent-Auto-Save-if-Save-Queue-is-full.patch @@ -1,4 +1,4 @@ -From 3efd56fcbb76e3a5ed65644d6040c9e030f641b7 Mon Sep 17 00:00:00 2001 +From 821c5c8577518add23e8a91fec1d7dc1ca81d7f2 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Nov 2016 21:52:22 -0400 Subject: [PATCH] Prevent Auto Save if Save Queue is full @@ -23,10 +23,10 @@ index 9a2ec0793..f88444c7e 100644 private void removeCorruptTEs() { removeCorruptTEs = getBoolean("remove-corrupt-tile-entities", false); diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 1e6ea3084..9145401bc 100644 +index afeb0685b..a4c4a9486 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -250,6 +250,14 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -249,6 +249,14 @@ public class ChunkProviderServer implements IChunkProvider { ArrayList arraylist = Lists.newArrayList(this.chunks.values()); Iterator iterator = arraylist.iterator(); @@ -41,7 +41,7 @@ index 1e6ea3084..9145401bc 100644 while (iterator.hasNext()) { Chunk chunk = (Chunk) iterator.next(); -@@ -261,7 +269,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -260,7 +268,7 @@ public class ChunkProviderServer implements IChunkProvider { this.saveChunk(chunk, false); // Spigot chunk.a(false); ++i; @@ -51,7 +51,7 @@ index 1e6ea3084..9145401bc 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index e70c2184c..20aa20a98 100644 +index 2f1488ee5..859148cb8 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -137,6 +137,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { diff --git a/Spigot-Server-Patches/0148-Chunk-Save-Stats-Debug-Option.patch b/Spigot-Server-Patches/0148-Chunk-Save-Stats-Debug-Option.patch index e625c95f..1fc1f7bd 100644 --- a/Spigot-Server-Patches/0148-Chunk-Save-Stats-Debug-Option.patch +++ b/Spigot-Server-Patches/0148-Chunk-Save-Stats-Debug-Option.patch @@ -1,4 +1,4 @@ -From 2180b64ba27758854a3d43a078e959ae159b8a8d Mon Sep 17 00:00:00 2001 +From 908a149ec4d6d824d1457eb2745f45e5afbfb942 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 4 Nov 2016 02:12:10 -0400 Subject: [PATCH] Chunk Save Stats Debug Option @@ -8,7 +8,7 @@ Adds a command line flag to enable stats on how chunk saves are processing. Stats on current queue, how many was processed and how many were queued. diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 9145401bc..ef35eb7ec 100644 +index a4c4a9486..4be7173bf 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -36,6 +36,11 @@ public class ChunkProviderServer implements IChunkProvider { @@ -23,7 +23,7 @@ index 9145401bc..ef35eb7ec 100644 public final WorldServer world; public ChunkProviderServer(WorldServer worldserver, IChunkLoader ichunkloader, ChunkGenerator chunkgenerator, IAsyncTaskHandler iasynctaskhandler) { -@@ -253,6 +258,30 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -252,6 +257,30 @@ public class ChunkProviderServer implements IChunkProvider { // Paper start final ChunkRegionLoader chunkLoader = (ChunkRegionLoader) world.getChunkProviderServer().chunkLoader; final int queueSize = chunkLoader.getQueueSize(); @@ -55,7 +55,7 @@ index 9145401bc..ef35eb7ec 100644 return false; } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 20aa20a98..de2231bb0 100644 +index 859148cb8..ea8684747 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -137,7 +137,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { @@ -73,7 +73,7 @@ index 20aa20a98..de2231bb0 100644 // CraftBukkit start - Add async variant, provide compatibility @Nullable -@@ -329,6 +335,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -325,6 +331,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { protected synchronized void a(ChunkCoordIntPair chunkcoordintpair, Supplier nbttagcompound) { // Spigot queue.add(new QueuedChunk(chunkcoordintpair, nbttagcompound)); // Paper - Chunk queue improvements @@ -81,7 +81,7 @@ index 20aa20a98..de2231bb0 100644 this.b.put(chunkcoordintpair, nbttagcompound); FileIOThread.a().a(this); } -@@ -352,6 +359,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { +@@ -348,6 +355,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { return false; } else { ChunkCoordIntPair chunkcoordintpair = chunk.coords; // Paper - Chunk queue improvements diff --git a/Spigot-Server-Patches/0153-Allow-Reloading-of-Command-Aliases.patch b/Spigot-Server-Patches/0153-Allow-Reloading-of-Command-Aliases.patch index c3205942..2f87c933 100644 --- a/Spigot-Server-Patches/0153-Allow-Reloading-of-Command-Aliases.patch +++ b/Spigot-Server-Patches/0153-Allow-Reloading-of-Command-Aliases.patch @@ -1,4 +1,4 @@ -From 21a06c5a111434636227935f23120b53773e3316 Mon Sep 17 00:00:00 2001 +From 8c64658c0fc06e452f61e18f3e5c5191edd1890b Mon Sep 17 00:00:00 2001 From: willies952002 Date: Mon, 28 Nov 2016 10:21:52 -0500 Subject: [PATCH] Allow Reloading of Command Aliases @@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 6c7151536..1b6a849e2 100644 +index e125632ff..d7247a1ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1986,5 +1986,24 @@ public final class CraftServer implements Server { +@@ -1968,5 +1968,24 @@ public final class CraftServer implements Server { }); } } diff --git a/Spigot-Server-Patches/0162-Add-API-methods-to-control-if-armour-stands-can-move.patch b/Spigot-Server-Patches/0162-Add-API-methods-to-control-if-armour-stands-can-move.patch index 2f14a6ed..47890bf9 100644 --- a/Spigot-Server-Patches/0162-Add-API-methods-to-control-if-armour-stands-can-move.patch +++ b/Spigot-Server-Patches/0162-Add-API-methods-to-control-if-armour-stands-can-move.patch @@ -1,11 +1,11 @@ -From c454c72a987b25fdfd7dd8a651f4aa4beb8b891e Mon Sep 17 00:00:00 2001 +From 542ff3ee75511fdfb8bd5963063c428d43a82747 Mon Sep 17 00:00:00 2001 From: kashike Date: Wed, 21 Dec 2016 11:47:25 -0600 Subject: [PATCH] Add API methods to control if armour stands can move diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index 4c615baea..52a1036fd 100644 +index cf11a2225..578d96640 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java @@ -44,6 +44,7 @@ public class EntityArmorStand extends EntityLiving { @@ -17,7 +17,7 @@ index 4c615baea..52a1036fd 100644 public EntityArmorStand(World world) { super(EntityTypes.ARMOR_STAND, world); @@ -755,4 +756,13 @@ public class EntityArmorStand extends EntityLiving { - public boolean de() { + public boolean df() { return false; } + diff --git a/Spigot-Server-Patches/0164-Properly-fix-item-duplication-bug.patch b/Spigot-Server-Patches/0164-Properly-fix-item-duplication-bug.patch index 56963e80..3ad1c4ef 100644 --- a/Spigot-Server-Patches/0164-Properly-fix-item-duplication-bug.patch +++ b/Spigot-Server-Patches/0164-Properly-fix-item-duplication-bug.patch @@ -1,4 +1,4 @@ -From 905fa22f222f8547b63412650bc2927850fa8382 Mon Sep 17 00:00:00 2001 +From 92dd98b36207e4e5aa69b572e52cf01641543621 Mon Sep 17 00:00:00 2001 From: Alfie Cleveland Date: Tue, 27 Dec 2016 01:57:57 +0000 Subject: [PATCH] Properly fix item duplication bug @@ -6,10 +6,10 @@ Subject: [PATCH] Properly fix item duplication bug Credit to prplz for figuring out the real issue diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index cf2a39384..c91caf578 100644 +index 4bde378af..7059fc118 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1531,7 +1531,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1525,7 +1525,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override protected boolean isFrozen() { @@ -19,7 +19,7 @@ index cf2a39384..c91caf578 100644 @Override diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 1f2cfbc92..f26636e30 100644 +index fc4e927d6..9ac86f7af 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2504,7 +2504,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { diff --git a/Spigot-Server-Patches/0166-Activation-Range-Improvements.patch b/Spigot-Server-Patches/0166-Activation-Range-Improvements.patch index 32643366..4980f156 100644 --- a/Spigot-Server-Patches/0166-Activation-Range-Improvements.patch +++ b/Spigot-Server-Patches/0166-Activation-Range-Improvements.patch @@ -1,4 +1,4 @@ -From 527982777c9728d51edc763ccf27080487902c05 Mon Sep 17 00:00:00 2001 +From f99c9ad753cb27454bb9bbc36b4c9ba4d54027e2 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 27 Dec 2016 22:38:06 -0500 Subject: [PATCH] Activation Range Improvements @@ -6,7 +6,7 @@ Subject: [PATCH] Activation Range Improvements Fixes and adds new Immunities to improve gameplay behavior diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java -index e2e1095118..34dcd01ded 100644 +index b34756769..53b25dd80 100644 --- a/src/main/java/net/minecraft/server/EntityCreature.java +++ b/src/main/java/net/minecraft/server/EntityCreature.java @@ -6,6 +6,7 @@ import org.bukkit.event.entity.EntityUnleashEvent; @@ -18,7 +18,7 @@ index e2e1095118..34dcd01ded 100644 private float b; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 1bef317758..c1618f8c36 100644 +index 8dbff3c37..3da4bc356 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -74,7 +74,7 @@ public abstract class EntityLiving extends Entity { @@ -31,19 +31,19 @@ index 1bef317758..c1618f8c36 100644 protected int ticksFarFromPlayer; protected float aZ; diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 2698579603..864ca3cc6e 100644 +index bb86ecb2f..5cd8c3f28 100644 --- a/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java @@ -363,6 +363,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn return this.bR != null; } -+ public boolean inCaravan() { return this.em(); } // Paper - OBFHELPER - public boolean em() { ++ public boolean inCaravan() { return this.en(); } // Paper - OBFHELPER + public boolean en() { return this.bQ != null; } diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java -index a146a8b459..a19853463c 100644 +index a146a8b45..a19853463 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoal.java +++ b/src/main/java/net/minecraft/server/PathfinderGoal.java @@ -18,7 +18,10 @@ public abstract class PathfinderGoal { @@ -59,7 +59,7 @@ index a146a8b459..a19853463c 100644 public void e() {} diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java -index d5c08aa7cb..fe6570c88d 100644 +index d5c08aa7c..fe6570c88 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java @@ -2,17 +2,24 @@ package net.minecraft.server; @@ -99,7 +99,7 @@ index d5c08aa7cb..fe6570c88d 100644 } } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index e02647f806..cdbf769e7b 100644 +index e02647f80..cdbf769e7 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -20,6 +20,7 @@ import net.minecraft.server.EntityFireball; diff --git a/Spigot-Server-Patches/0171-Enforce-Sync-Player-Saves.patch b/Spigot-Server-Patches/0171-Enforce-Sync-Player-Saves.patch index e72a606c..dbc70c01 100644 --- a/Spigot-Server-Patches/0171-Enforce-Sync-Player-Saves.patch +++ b/Spigot-Server-Patches/0171-Enforce-Sync-Player-Saves.patch @@ -1,4 +1,4 @@ -From 61d3c06b65d8a1032845bff14e2dbfc071cd9906 Mon Sep 17 00:00:00 2001 +From 0e2d3a5968ee223fd6d7c206a3393be137bd0046 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 7 Jan 2017 15:41:58 -0500 Subject: [PATCH] Enforce Sync Player Saves @@ -7,10 +7,10 @@ Saving players async is extremely dangerous. This will force it to main the same way we handle async chunk loads. diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 3ee587014..fdbc01792 100644 +index 12f6812d6..c8b5a610a 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1227,6 +1227,7 @@ public abstract class PlayerList { +@@ -1220,6 +1220,7 @@ public abstract class PlayerList { } public void savePlayers(Integer interval) { @@ -18,7 +18,7 @@ index 3ee587014..fdbc01792 100644 long now = MinecraftServer.currentTick; MinecraftTimings.savePlayers.startTiming(); // Paper int numSaved = 0; // Paper -@@ -1238,6 +1239,7 @@ public abstract class PlayerList { +@@ -1231,6 +1232,7 @@ public abstract class PlayerList { } } MinecraftTimings.savePlayers.stopTiming(); // Paper diff --git a/Spigot-Server-Patches/0175-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/Spigot-Server-Patches/0175-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index 38dec7c0..dde65c5e 100644 --- a/Spigot-Server-Patches/0175-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/Spigot-Server-Patches/0175-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -1,4 +1,4 @@ -From b381115d1a60cf615a6bc13d874fd8bb29a02c1b Mon Sep 17 00:00:00 2001 +From cf91146dbca0cbe6b854ea98e00be7a4bf6de4c6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 19 Dec 2017 16:31:46 -0500 Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player @@ -8,10 +8,10 @@ Adds lots of information about why this orb exists. Replaces isFromBottle() with logic that persists entity reloads too. diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index ff110c8e95..d95587c8cc 100644 +index 43feccef8..e820bfbd5 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java -@@ -473,13 +473,13 @@ public class Block implements IMaterial { +@@ -471,13 +471,13 @@ public class Block implements IMaterial { } } @@ -28,7 +28,7 @@ index ff110c8e95..d95587c8cc 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index e5f0645774..e237c5dc1a 100644 +index 131f8a515..d8ab87e21 100644 --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java @@ -618,7 +618,7 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo @@ -41,7 +41,7 @@ index e5f0645774..e237c5dc1a 100644 } diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java -index 3c888d6015..79d80596df 100644 +index 3c888d601..79d80596d 100644 --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java @@ -15,9 +15,59 @@ public class EntityExperienceOrb extends Entity { @@ -120,7 +120,7 @@ index 3c888d6015..79d80596df 100644 public void d(EntityHuman entityhuman) { diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java -index 7440e4a2a9..895254c155 100644 +index 1804a49de..82e4d2eab 100644 --- a/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java @@ -467,7 +467,7 @@ public class EntityFishingHook extends Entity { @@ -131,9 +131,9 @@ index 7440e4a2a9..895254c155 100644 + this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX, this.owner.locY + 0.5D, this.owner.locZ + 0.5D, playerFishEvent.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.FISHING, this.owner, this)); // Paper } // CraftBukkit end - if (itemstack1.getItem().a(TagsItem.G)) { + if (itemstack1.getItem().a(TagsItem.D)) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index c1618f8c36..9f493e43d4 100644 +index 3da4bc356..f9a76ce27 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -353,7 +353,8 @@ public abstract class EntityLiving extends Entity { @@ -147,7 +147,7 @@ index c1618f8c36..9f493e43d4 100644 this.expToDrop = 0; // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java -index a5e1939e05..e73dba09a6 100644 +index a5e1939e0..e73dba09a 100644 --- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java +++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java @@ -36,7 +36,7 @@ public class EntityThrownExpBottle extends EntityProjectile { @@ -160,7 +160,7 @@ index a5e1939e05..e73dba09a6 100644 this.die(); diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index fc0c1cc3b2..dd4ecfa883 100644 +index e8fdf8625..b51543ea7 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java @@ -411,7 +411,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant { @@ -173,7 +173,7 @@ index fc0c1cc3b2..dd4ecfa883 100644 if (this.tradingPlayer instanceof EntityPlayer) { diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java -index 4a128f707b..b870964674 100644 +index 4a128f707..b87096467 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java @@ -122,7 +122,7 @@ public class PathfinderGoalBreed extends PathfinderGoal { @@ -186,7 +186,7 @@ index 4a128f707b..b870964674 100644 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java -index 33b5080147..e34198e407 100644 +index 545a98302..55ec29bd2 100644 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java @@ -384,7 +384,7 @@ public class PlayerInteractManager { @@ -199,7 +199,7 @@ index 33b5080147..e34198e407 100644 // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/SlotFurnaceResult.java b/src/main/java/net/minecraft/server/SlotFurnaceResult.java -index 998662d9e6..6b4eb7f053 100644 +index 998662d9e..6b4eb7f05 100644 --- a/src/main/java/net/minecraft/server/SlotFurnaceResult.java +++ b/src/main/java/net/minecraft/server/SlotFurnaceResult.java @@ -9,7 +9,7 @@ import org.bukkit.event.inventory.FurnaceExtractEvent; @@ -221,7 +221,7 @@ index 998662d9e6..6b4eb7f053 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 86848543d0..7004f11764 100644 +index 86848543d..7004f1176 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1220,7 +1220,7 @@ public class CraftWorld implements World { @@ -234,7 +234,7 @@ index 86848543d0..7004f11764 100644 // not sure what this can do if (LightningStrike.class.isAssignableFrom(clazz)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java -index 3a09cab3d4..3302af0e45 100644 +index 3a09cab3d..3302af0e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java @@ -18,6 +18,18 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { diff --git a/Spigot-Server-Patches/0179-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch b/Spigot-Server-Patches/0179-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch index 26b90fc1..95f1267b 100644 --- a/Spigot-Server-Patches/0179-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch +++ b/Spigot-Server-Patches/0179-Make-targetSize-more-aggressive-in-the-chunk-unload-.patch @@ -1,14 +1,14 @@ -From 31b95b88c25e4b25cf7ef32ff4692d1bf937b679 Mon Sep 17 00:00:00 2001 +From 990b651cbd64dc43013878c653744f461492478e Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 7 Feb 2017 16:55:35 -0600 Subject: [PATCH] Make targetSize more aggressive in the chunk unload queue diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index ef35eb7ec..70790386e 100644 +index 4be7173bf..7d77c5fb3 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -328,7 +328,7 @@ public class ChunkProviderServer implements IChunkProvider { +@@ -327,7 +327,7 @@ public class ChunkProviderServer implements IChunkProvider { // Spigot start org.spigotmc.SlackActivityAccountant activityAccountant = this.world.getMinecraftServer().slackActivityAccountant; activityAccountant.startActivity(0.5); @@ -18,5 +18,5 @@ index ef35eb7ec..70790386e 100644 LongIterator longiterator = this.unloadQueue.iterator(); -- -2.17.1 +2.18.0 diff --git a/Spigot-Server-Patches/0180-Do-not-let-armorstands-drown.patch b/Spigot-Server-Patches/0180-Do-not-let-armorstands-drown.patch index 345adb22..72d2b8bf 100644 --- a/Spigot-Server-Patches/0180-Do-not-let-armorstands-drown.patch +++ b/Spigot-Server-Patches/0180-Do-not-let-armorstands-drown.patch @@ -1,11 +1,11 @@ -From 0628af2631258500bd906bbaf21bcaca89c8de03 Mon Sep 17 00:00:00 2001 +From 0fa5dce73cc9cdf2630c65eaa2ffaf4787580165 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 18 Feb 2017 19:29:58 -0600 Subject: [PATCH] Do not let armorstands drown diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index 52a1036fdb..26171b3430 100644 +index 578d96640..e9a746f13 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java @@ -764,5 +764,10 @@ public class EntityArmorStand extends EntityLiving { @@ -20,23 +20,23 @@ index 52a1036fdb..26171b3430 100644 // Paper end } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index fc0e440798..38baecd862 100644 +index 3b4867bfc..b596a616f 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -201,6 +201,7 @@ public abstract class EntityLiving extends Entity { super.a(d0, flag, iblockdata, blockposition); } -+ public boolean canBreatheUnderwater() { return this.bZ(); } // Paper - OBFHELPER - public boolean bZ() { ++ public boolean canBreatheUnderwater() { return this.ca(); } // Paper - OBFHELPER + public boolean ca() { return this.getMonsterType() == EnumMonsterType.UNDEAD; } @@ -235,7 +236,7 @@ public abstract class EntityLiving extends Entity { if (this.isAlive()) { if (this.a(TagsFluid.a) && this.world.getType(new BlockPosition(this.locX, this.locY + (double) this.getHeadHeight(), this.locZ)).getBlock() != Blocks.BUBBLE_COLUMN) { -- if (!this.bZ() && !MobEffectUtil.c(this) && !flag1) { -+ if (!this.canBreatheUnderwater() && !MobEffectUtil.c(this) && !flag1) { // Paper - use OBFHELPER +- if (!this.ca() && !MobEffectUtil.c(this) && !flag1) { ++ if (!this.canBreatheUnderwater() && !MobEffectUtil.c(this) && !flag1) { // Paper - use OBFHELPER so it can be overridden this.setAirTicks(this.l(this.getAirTicks())); if (this.getAirTicks() == -20) { this.setAirTicks(0); diff --git a/Spigot-Server-Patches/0181-Properly-handle-async-calls-to-restart-the-server.patch b/Spigot-Server-Patches/0181-Properly-handle-async-calls-to-restart-the-server.patch index 6794a152..46159481 100644 --- a/Spigot-Server-Patches/0181-Properly-handle-async-calls-to-restart-the-server.patch +++ b/Spigot-Server-Patches/0181-Properly-handle-async-calls-to-restart-the-server.patch @@ -1,4 +1,4 @@ -From 97859bd335e381d24dfb98d703ee44295283f04c Mon Sep 17 00:00:00 2001 +From a196d99aed3b693c24cece49966b2089b7123812 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Fri, 12 May 2017 23:34:11 -0500 Subject: [PATCH] Properly handle async calls to restart the server @@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result in corruption/dataloss. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index ab3193295..5d13f053f 100644 +index 9405dc7bf..eb8c7aaad 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -85,6 +85,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati @@ -41,7 +41,7 @@ index ab3193295..5d13f053f 100644 private boolean isStopped; private int ticks; protected final Proxy d; -@@ -591,7 +592,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -630,7 +631,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati if (this.s != null) { MinecraftServer.LOGGER.info("Saving players"); this.s.savePlayers(); @@ -50,7 +50,7 @@ index ab3193295..5d13f053f 100644 try { Thread.sleep(100); } catch (InterruptedException ex) {} // CraftBukkit - SPIGOT-625 - give server at least a chance to send packets } -@@ -650,10 +651,18 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -689,10 +690,18 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati return this.isRunning; } @@ -69,7 +69,7 @@ index ab3193295..5d13f053f 100644 // Paper start - Further improve server tick loop private static final int TPS = 20; private static final long SEC_IN_NANO = 1000000000; -@@ -1608,6 +1617,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1662,6 +1671,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati return this.aa; } @@ -78,10 +78,10 @@ index ab3193295..5d13f053f 100644 return this.serverThread; } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index fdbc01792..4c9ff8c29 100644 +index c8b5a610a..0b0d99652 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java -@@ -1345,10 +1345,15 @@ public abstract class PlayerList { +@@ -1338,10 +1338,15 @@ public abstract class PlayerList { entityplayer.playerInteractManager.b(generatoraccess.getWorldData().getGameType()); } @@ -98,7 +98,7 @@ index fdbc01792..4c9ff8c29 100644 } // CraftBukkit end // Paper start - Remove collideRule team if it exists -@@ -1359,6 +1364,7 @@ public abstract class PlayerList { +@@ -1352,6 +1357,7 @@ public abstract class PlayerList { } // Paper end } diff --git a/Spigot-Server-Patches/0184-Add-configuration-option-to-prevent-player-names-fro.patch b/Spigot-Server-Patches/0184-Add-configuration-option-to-prevent-player-names-fro.patch index f1902243..fa1f9493 100644 --- a/Spigot-Server-Patches/0184-Add-configuration-option-to-prevent-player-names-fro.patch +++ b/Spigot-Server-Patches/0184-Add-configuration-option-to-prevent-player-names-fro.patch @@ -1,4 +1,4 @@ -From 7c1020f87381d93af07c2ac419e8780a643c7405 Mon Sep 17 00:00:00 2001 +From b7ebc8e864503bb53440d7d919063dbce2971df6 Mon Sep 17 00:00:00 2001 From: kashike Date: Fri, 9 Jun 2017 07:24:34 -0700 Subject: [PATCH] Add configuration option to prevent player names from being @@ -20,10 +20,10 @@ index ea6fcb39f..dbafef023 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1b6a849e2..470e334f7 100644 +index d7247a1ec..ff9346023 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2005,5 +2005,10 @@ public final class CraftServer implements Server { +@@ -1987,5 +1987,10 @@ public final class CraftServer implements Server { commandMap.registerServerAliases(); return true; } diff --git a/Spigot-Server-Patches/0185-Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/0185-Use-TerminalConsoleAppender-for-console-improvements.patch index 26ad8fc2..c972f528 100644 --- a/Spigot-Server-Patches/0185-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/Spigot-Server-Patches/0185-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -1,4 +1,4 @@ -From af3fcc467f9180b820aaa4e89b3695f7d7d420cd Mon Sep 17 00:00:00 2001 +From 9192bd2b48900aca881a1ac43bc94dfea1585a2f Mon Sep 17 00:00:00 2001 From: Minecrell Date: Fri, 9 Jun 2017 19:03:43 +0200 Subject: [PATCH] Use TerminalConsoleAppender for console improvements @@ -19,10 +19,10 @@ Other changes: configuration diff --git a/pom.xml b/pom.xml -index 17bc80776..47cb2c036 100644 +index 09b4ddf19..47e307a24 100644 --- a/pom.xml +++ b/pom.xml -@@ -40,12 +40,6 @@ +@@ -39,12 +39,6 @@ ${minecraft.version}-SNAPSHOT compile @@ -35,7 +35,7 @@ index 17bc80776..47cb2c036 100644 org.ow2.asm asm -@@ -70,6 +64,32 @@ +@@ -69,6 +63,32 @@ 3.0.3 compile @@ -68,7 +68,7 @@ index 17bc80776..47cb2c036 100644 junit -@@ -203,10 +223,18 @@ +@@ -202,10 +222,18 @@ META-INF/services/java.sql.Driver @@ -157,7 +157,7 @@ index 000000000..685deaa0e + +} diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index a3d58b5ce..681194e94 100644 +index bf1fffcfe..af430b73f 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -79,6 +79,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -199,7 +199,7 @@ index a3d58b5ce..681194e94 100644 System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true)); System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true)); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5d13f053f..c95f12351 100644 +index eb8c7aaad..88900121d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -57,7 +57,6 @@ import org.apache.commons.lang3.Validate; @@ -210,7 +210,7 @@ index 5d13f053f..c95f12351 100644 import joptsimple.OptionSet; import org.bukkit.Bukkit; import org.bukkit.craftbukkit.CraftServer; -@@ -142,7 +141,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -143,7 +142,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati public OptionSet options; public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; @@ -219,7 +219,7 @@ index 5d13f053f..c95f12351 100644 public static int currentTick = 0; // Paper - Further improve tick loop public boolean serverAutoSave = false; // Paper public final Thread primaryThread; -@@ -184,7 +183,9 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -185,7 +184,9 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.ac.a((IResourcePackListener) this.al); // CraftBukkit start this.options = options; @@ -229,7 +229,7 @@ index 5d13f053f..c95f12351 100644 if (System.console() == null && System.getProperty("jline.terminal") == null) { System.setProperty("jline.terminal", "jline.UnsupportedTerminal"); Main.useJline = false; -@@ -205,6 +206,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -206,6 +207,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati LOGGER.warn((String) null, ex); } } @@ -238,7 +238,7 @@ index 5d13f053f..c95f12351 100644 Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this)); this.serverThread = primaryThread = new Thread(this, "Server thread"); // Moved from main -@@ -805,7 +808,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -844,7 +847,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati } finally { // CraftBukkit start - Restore terminal to original settings try { @@ -247,7 +247,7 @@ index 5d13f053f..c95f12351 100644 } catch (Exception ignored) { } // CraftBukkit end -@@ -1286,7 +1289,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1340,7 +1343,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati } public void sendMessage(IChatBaseComponent ichatbasecomponent) { @@ -257,7 +257,7 @@ index 5d13f053f..c95f12351 100644 public KeyPair G() { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 4c9ff8c29..9e403d625 100644 +index 0b0d99652..4cbe14801 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -78,8 +78,7 @@ public abstract class PlayerList { @@ -271,7 +271,7 @@ index 4c9ff8c29..9e403d625 100644 this.k = new GameProfileBanList(PlayerList.a); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8719fe35e..f6dfe2e2b 100644 +index ff9346023..21d9f381c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -137,8 +137,8 @@ import java.nio.ByteBuffer; @@ -284,7 +284,7 @@ index 8719fe35e..f6dfe2e2b 100644 import org.bukkit.NamespacedKey; import org.bukkit.block.data.BlockData; import org.bukkit.craftbukkit.block.data.CraftBlockData; -@@ -1141,9 +1141,13 @@ public final class CraftServer implements Server { +@@ -1123,9 +1123,13 @@ public final class CraftServer implements Server { return logger; } @@ -299,7 +299,7 @@ index 8719fe35e..f6dfe2e2b 100644 @Override public PluginCommand getPluginCommand(String name) { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index aad208f47..ac38028d7 100644 +index c552c624e..3245fded9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -14,7 +14,7 @@ import java.util.logging.Logger; @@ -311,7 +311,7 @@ index aad208f47..ac38028d7 100644 public class Main { public static boolean useJline = true; -@@ -176,6 +176,8 @@ public class Main { +@@ -178,6 +178,8 @@ public class Main { } try { @@ -320,7 +320,7 @@ index aad208f47..ac38028d7 100644 // This trick bypasses Maven Shade's clever rewriting of our getProperty call when using String literals String jline_UnsupportedTerminal = new String(new char[] {'j','l','i','n','e','.','U','n','s','u','p','p','o','r','t','e','d','T','e','r','m','i','n','a','l'}); String jline_terminal = new String(new char[] {'j','l','i','n','e','.','t','e','r','m','i','n','a','l'}); -@@ -193,10 +195,18 @@ public class Main { +@@ -195,10 +197,18 @@ public class Main { // This ensures the terminal literal will always match the jline implementation System.setProperty(jline.TerminalFactory.JLINE_TERMINAL, jline.UnsupportedTerminal.class.getName()); } diff --git a/Spigot-Server-Patches/0186-provide-a-configurable-option-to-disable-creeper-lin.patch b/Spigot-Server-Patches/0186-provide-a-configurable-option-to-disable-creeper-lin.patch index 9bcf3426..6391c95b 100644 --- a/Spigot-Server-Patches/0186-provide-a-configurable-option-to-disable-creeper-lin.patch +++ b/Spigot-Server-Patches/0186-provide-a-configurable-option-to-disable-creeper-lin.patch @@ -1,4 +1,4 @@ -From bf87bdd3574f5c1a208ffe8ea73199994905069c Mon Sep 17 00:00:00 2001 +From 36d19d1a7e42d31db09f1d3b94cb2293dbf484df Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 11 Jun 2017 21:01:18 +0100 Subject: [PATCH] provide a configurable option to disable creeper lingering @@ -21,11 +21,11 @@ index 99fe720e8..c80d84b9b 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index f286b6286..f37169d73 100644 +index 8b0134ecd..0147054df 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -214,7 +214,7 @@ public class EntityCreeper extends EntityMonster { - private void dF() { + private void dG() { Collection collection = this.getEffects(); - if (!collection.isEmpty()) { diff --git a/Spigot-Server-Patches/0191-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0191-Basic-PlayerProfile-API.patch index d75e9913..85c6d2cd 100644 --- a/Spigot-Server-Patches/0191-Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/0191-Basic-PlayerProfile-API.patch @@ -1,4 +1,4 @@ -From 6a116ada95d75bf31b18a32818efe792c9b39d49 Mon Sep 17 00:00:00 2001 +From 5ba0adc0334b2371f2b4647ac4f91d800402923e Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 15 Jan 2018 22:11:48 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -429,10 +429,10 @@ index 70db1cc14..9ab3844fc 100644 * Calculates distance between 2 entities * @param e1 diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c95f12351..26ace3cbf 100644 +index 88900121d..5d12855ba 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1115,7 +1115,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1157,7 +1157,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati */ // CraftBukkit end String s1 = "."; // PAIL? @@ -441,7 +441,7 @@ index c95f12351..26ace3cbf 100644 MinecraftSessionService minecraftsessionservice = yggdrasilauthenticationservice.createMinecraftSessionService(); GameProfileRepository gameprofilerepository = yggdrasilauthenticationservice.createProfileRepository(); UserCache usercache = new UserCache(gameprofilerepository, new File(s1, MinecraftServer.a.getName())); -@@ -1563,6 +1563,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -1617,6 +1617,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati this.G = i; } @@ -486,7 +486,7 @@ index a47a51a41..4c476f757 100644 private UserCacheEntry(GameProfile gameprofile, Date date) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ac46e50ac..a8da20e35 100644 +index 814a65ec5..202c6c492 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -152,6 +152,10 @@ import org.bukkit.craftbukkit.util.CraftNamespacedKey; @@ -500,7 +500,7 @@ index ac46e50ac..a8da20e35 100644 public final class CraftServer implements Server { private final String serverName = "Paper"; // Paper private final String serverVersion; -@@ -2021,5 +2025,21 @@ public final class CraftServer implements Server { +@@ -2003,5 +2007,21 @@ public final class CraftServer implements Server { public boolean suggestPlayerNamesWhenNullTabCompletions() { return com.destroystokyo.paper.PaperConfig.suggestPlayersWhenNullTabCompletions; } diff --git a/Spigot-Server-Patches/0194-Block-player-logins-during-server-shutdown.patch b/Spigot-Server-Patches/0194-Block-player-logins-during-server-shutdown.patch index 93755a20..084db50b 100644 --- a/Spigot-Server-Patches/0194-Block-player-logins-during-server-shutdown.patch +++ b/Spigot-Server-Patches/0194-Block-player-logins-during-server-shutdown.patch @@ -1,17 +1,17 @@ -From 147cea6aa1decfdcbf1f3d7fc2bca8f22fdaae5a Mon Sep 17 00:00:00 2001 +From dd04e617cb4eb245710fe0691eb157a0ab850400 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 2 Jul 2017 21:35:56 -0500 Subject: [PATCH] Block player logins during server shutdown diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java -index 89a11a496..bab13a4fd 100644 +index b6e829682..85eff6e2d 100644 --- a/src/main/java/net/minecraft/server/LoginListener.java +++ b/src/main/java/net/minecraft/server/LoginListener.java @@ -50,6 +50,12 @@ public class LoginListener implements PacketLoginInListener, ITickable { } - public void X_() { + public void Y_() { + // Paper start - Do not allow logins while the server is shutting down + if (!MinecraftServer.getServer().isRunning()) { + this.disconnect(new ChatMessage(org.spigotmc.SpigotConfig.restartMessage)); diff --git a/Spigot-Server-Patches/0202-ProfileWhitelistVerifyEvent.patch b/Spigot-Server-Patches/0202-ProfileWhitelistVerifyEvent.patch index 5edff7a9..b4775558 100644 --- a/Spigot-Server-Patches/0202-ProfileWhitelistVerifyEvent.patch +++ b/Spigot-Server-Patches/0202-ProfileWhitelistVerifyEvent.patch @@ -1,11 +1,11 @@ -From 29abeacb899601637af19e18457fff1ba671f470 Mon Sep 17 00:00:00 2001 +From 81ace36f21de4341d47d827637fcfe406d40b33a Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 3 Jul 2017 18:11:10 -0500 Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 9e403d625..879780c5b 100644 +index 4cbe14801..45e42e998 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -543,9 +543,9 @@ public abstract class PlayerList { @@ -20,7 +20,7 @@ index 9e403d625..879780c5b 100644 } else if (getIPBans().isBanned(socketaddress) && !getIPBans().get(socketaddress).hasExpired()) { IpBanEntry ipbanentry = this.l.get(socketaddress); -@@ -1184,9 +1184,25 @@ public abstract class PlayerList { +@@ -1177,9 +1177,25 @@ public abstract class PlayerList { this.server.getCommandDispatcher().a(entityplayer); } diff --git a/Spigot-Server-Patches/0203-Fix-this-stupid-bullshit.patch b/Spigot-Server-Patches/0203-Fix-this-stupid-bullshit.patch index 074d34b9..4855f3b4 100644 --- a/Spigot-Server-Patches/0203-Fix-this-stupid-bullshit.patch +++ b/Spigot-Server-Patches/0203-Fix-this-stupid-bullshit.patch @@ -1,4 +1,4 @@ -From 65acab73c8ed9963f274dd34e30d183069604441 Mon Sep 17 00:00:00 2001 +From ae43b5d79b454b6a616f610119360894023cb5c1 Mon Sep 17 00:00:00 2001 From: DemonWav Date: Sun, 6 Aug 2017 17:17:53 -0500 Subject: [PATCH] Fix this stupid bullshit @@ -9,10 +9,10 @@ modified in order to prevent merge conflicts when Spigot changes/disables the wa and to provide some level of hint without being disruptive. diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ac38028d7..ad0635925 100644 +index 3245fded9..d4f6e009e 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -215,10 +215,12 @@ public class Main { +@@ -217,10 +217,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); deadline.add(Calendar.DAY_OF_YEAR, -3); if (buildDate.before(deadline.getTime())) { diff --git a/Spigot-Server-Patches/0209-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch b/Spigot-Server-Patches/0209-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch index 6d1d4a7f..ed0ebe3f 100644 --- a/Spigot-Server-Patches/0209-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch +++ b/Spigot-Server-Patches/0209-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch @@ -1,4 +1,4 @@ -From 85d40c5071b3c70477b3dfbb204207f97904c8d3 Mon Sep 17 00:00:00 2001 +From 73bbebc2ba89bec6a0a886d598bac3901e2f81c8 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Mon, 18 Sep 2017 12:00:03 +0200 Subject: [PATCH] Use Log4j IOStreams to redirect System.out/err to logger @@ -12,10 +12,10 @@ results in a separate line, even though it should not result in a line break. Log4j's implementation handles it correctly. diff --git a/pom.xml b/pom.xml -index f2c7d2ba8b..fa6c3702a7 100644 +index 47e307a24..a93ed45df 100644 --- a/pom.xml +++ b/pom.xml -@@ -90,6 +90,13 @@ +@@ -89,6 +89,13 @@ runtime @@ -30,7 +30,7 @@ index f2c7d2ba8b..fa6c3702a7 100644 junit diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 681194e94f..927cbeedcd 100644 +index af430b73f..8c7630018 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -131,8 +131,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer diff --git a/Spigot-Server-Patches/0210-Handle-plugin-prefixes-using-Log4J-configuration.patch b/Spigot-Server-Patches/0210-Handle-plugin-prefixes-using-Log4J-configuration.patch index 344e696f..495741d0 100644 --- a/Spigot-Server-Patches/0210-Handle-plugin-prefixes-using-Log4J-configuration.patch +++ b/Spigot-Server-Patches/0210-Handle-plugin-prefixes-using-Log4J-configuration.patch @@ -1,4 +1,4 @@ -From 3b947e0656877c19c211ce7680e3937ae5dea267 Mon Sep 17 00:00:00 2001 +From d5b28ecc49de351485333e2960919669c43780e7 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Thu, 21 Sep 2017 16:14:55 +0200 Subject: [PATCH] Handle plugin prefixes using Log4J configuration @@ -15,10 +15,10 @@ This may cause additional prefixes to be disabled for plugins bypassing the plugin logger. diff --git a/pom.xml b/pom.xml -index 9d2473317..eb2cdf129 100644 +index a93ed45df..bb32cb749 100644 --- a/pom.xml +++ b/pom.xml -@@ -87,7 +87,7 @@ +@@ -86,7 +86,7 @@ org.apache.logging.log4j log4j-core 2.8.1 @@ -28,7 +28,7 @@ index 9d2473317..eb2cdf129 100644 diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index 9a1ffed07..b39096f04 100644 +index 676780b61..5a873fe9d 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -286,7 +286,7 @@ public class SpigotConfig diff --git a/Spigot-Server-Patches/0211-Include-Log4J2-SLF4J-implementation.patch b/Spigot-Server-Patches/0211-Include-Log4J2-SLF4J-implementation.patch index 9f1d8cf8..f15a0e05 100644 --- a/Spigot-Server-Patches/0211-Include-Log4J2-SLF4J-implementation.patch +++ b/Spigot-Server-Patches/0211-Include-Log4J2-SLF4J-implementation.patch @@ -1,14 +1,14 @@ -From edb75eca4cd2549499d4475155065a2e73d4b9c0 Mon Sep 17 00:00:00 2001 +From 7c9fbb91ca5a19e2e151dbf2e4021220d5347a31 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Thu, 21 Sep 2017 16:33:35 +0200 Subject: [PATCH] Include Log4J2 SLF4J implementation diff --git a/pom.xml b/pom.xml -index eb2cdf129..353a5560e 100644 +index bb32cb749..a319cfe3b 100644 --- a/pom.xml +++ b/pom.xml -@@ -91,6 +91,12 @@ +@@ -90,6 +90,12 @@ diff --git a/Spigot-Server-Patches/0213-Add-PlayerJumpEvent.patch b/Spigot-Server-Patches/0213-Add-PlayerJumpEvent.patch index 70a5eb21..3c22920f 100644 --- a/Spigot-Server-Patches/0213-Add-PlayerJumpEvent.patch +++ b/Spigot-Server-Patches/0213-Add-PlayerJumpEvent.patch @@ -1,23 +1,23 @@ -From dd4f541fca1b685e85db063ff2813f6d552cb262 Mon Sep 17 00:00:00 2001 +From e2039fa94b546d69eae59942ae8af658cb991af5 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 28 Sep 2017 17:21:44 -0400 Subject: [PATCH] Add PlayerJumpEvent diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index f08c0ba60..1b944abea 100644 +index b20cab58b..1bfe9d0e7 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -1460,6 +1460,7 @@ public abstract class EntityHuman extends EntityLiving { return 0; } -+ public void jump() { this.cG(); } // Paper - OBFHELPER - public void cG() { - super.cG(); ++ public void jump() { this.cH(); } // Paper - OBFHELPER + public void cH() { + super.cH(); this.a(StatisticList.JUMP); diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 383ef87ba..480b93aa0 100644 +index 932eeb19d..7465c548a 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -57,6 +57,8 @@ import org.bukkit.inventory.CraftingInventory; @@ -33,7 +33,7 @@ index 383ef87ba..480b93aa0 100644 d8 = d5 - this.p; d9 = d6 - this.q; if (this.player.onGround && !packetplayinflying.b() && d8 > 0.0D) { -- this.player.cG(); +- this.player.cH(); + // Paper start - Add player jump event + Player player = this.getPlayer(); + Location from = new Location(player.getWorld(), lastPosX, lastPosY, lastPosZ, lastYaw, lastPitch); // Get the Players previous Event location. diff --git a/Spigot-Server-Patches/0218-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/Spigot-Server-Patches/0218-Send-attack-SoundEffects-only-to-players-who-can-see.patch index c4ec08e7..c0d5b85e 100644 --- a/Spigot-Server-Patches/0218-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/Spigot-Server-Patches/0218-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -1,4 +1,4 @@ -From 6ded5c4dfe33c7a2da270fb889d550c0f89afcc2 Mon Sep 17 00:00:00 2001 +From 68d7cdfbe8d650efad86ee10f528f15670eabe04 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 31 Oct 2017 03:26:18 +0100 Subject: [PATCH] Send attack SoundEffects only to players who can see the @@ -6,7 +6,7 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 1b944abea..ae4dd621d 100644 +index 1bfe9d0e7..cd3e021a0 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -981,6 +981,15 @@ public abstract class EntityHuman extends EntityLiving { @@ -40,7 +40,7 @@ index 1b944abea..ae4dd621d 100644 - this.world.a((EntityHuman) null, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_SWEEP, this.bV(), 1.0F, 1.0F); + sendSoundEffect(this, this.locX, this.locY, this.locZ, SoundEffects.ENTITY_PLAYER_ATTACK_SWEEP, this.bV(), 1.0F, 1.0F); // Paper - send while respecting visibility - this.dk(); + this.dl(); } @@ -1113,15 +1122,15 @@ public abstract class EntityHuman extends EntityLiving { @@ -72,7 +72,7 @@ index 1b944abea..ae4dd621d 100644 entity.extinguish(); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index d0ce6b363..56292fad9 100644 +index 2f9aa10f8..2904a845b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -916,6 +916,12 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose diff --git a/Spigot-Server-Patches/0224-AsyncTabCompleteEvent.patch b/Spigot-Server-Patches/0224-AsyncTabCompleteEvent.patch index 9b522cc5..74797e9a 100644 --- a/Spigot-Server-Patches/0224-AsyncTabCompleteEvent.patch +++ b/Spigot-Server-Patches/0224-AsyncTabCompleteEvent.patch @@ -1,4 +1,4 @@ -From 9b2ecdc4d560d69dfd41dad01498207a3ef040f9 Mon Sep 17 00:00:00 2001 +From f4914b7018762e1d9e23715905c35c231f5d697c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 26 Nov 2017 13:19:58 -0500 Subject: [PATCH] AsyncTabCompleteEvent @@ -14,7 +14,7 @@ completion, such as offline players. Also adds isCommand and getLocation to the sync TabCompleteEvent diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 7e96c4eb4..ab2bd6dae 100644 +index cb9f25e96..c0249933b 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -504,18 +504,59 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -85,10 +85,10 @@ index 7e96c4eb4..ab2bd6dae 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0ef1186b9..d605e5792 100644 +index 202c6c492..c74831b3d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1685,7 +1685,7 @@ public final class CraftServer implements Server { +@@ -1667,7 +1667,7 @@ public final class CraftServer implements Server { offers = tabCompleteChat(player, message); } diff --git a/Spigot-Server-Patches/0244-Implement-extended-PaperServerListPingEvent.patch b/Spigot-Server-Patches/0244-Implement-extended-PaperServerListPingEvent.patch index 43daec4a..723436e4 100644 --- a/Spigot-Server-Patches/0244-Implement-extended-PaperServerListPingEvent.patch +++ b/Spigot-Server-Patches/0244-Implement-extended-PaperServerListPingEvent.patch @@ -1,4 +1,4 @@ -From a1e5ecf741cca8862642895e14580b92151b92ff Mon Sep 17 00:00:00 2001 +From 0d34338ddc54622e57515a7f8281f3726f33b1f6 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Wed, 11 Oct 2017 15:56:26 +0200 Subject: [PATCH] Implement extended PaperServerListPingEvent @@ -177,10 +177,10 @@ index 000000000..350410527 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 26ace3cbf..bc2712898 100644 +index 5d12855ba..ebc0709eb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -871,7 +871,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati +@@ -910,7 +910,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati if (i - this.Y >= 5000000000L) { this.Y = i; this.n.setPlayerSample(new ServerPing.ServerPingPlayerSample(this.B(), this.A())); @@ -189,8 +189,8 @@ index 26ace3cbf..bc2712898 100644 int j = MathHelper.nextInt(this.o, 0, this.A() - agameprofile.length); for (int k = 0; k < agameprofile.length; ++k) { -@@ -1221,10 +1221,12 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati - return "1.13-pre7"; +@@ -1275,10 +1275,12 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati + return "1.13"; } + public int getPlayerCount() { return A(); } // Paper - OBFHELPER @@ -251,7 +251,7 @@ index d7e1ecc03..f20cddc41 100644 this.c = agameprofile; } diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java -index b39096f04..d89224e7d 100644 +index 5a873fe9d..42bd3b6ed 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -285,7 +285,7 @@ public class SpigotConfig diff --git a/Spigot-Server-Patches/0250-getPlayerUniqueId-API.patch b/Spigot-Server-Patches/0250-getPlayerUniqueId-API.patch index 4ed50da5..177a1272 100644 --- a/Spigot-Server-Patches/0250-getPlayerUniqueId-API.patch +++ b/Spigot-Server-Patches/0250-getPlayerUniqueId-API.patch @@ -1,4 +1,4 @@ -From 3cf669e70d479742197c2514cda5bd38a37c53d6 Mon Sep 17 00:00:00 2001 +From 2881f51e09aaf6feb720969e323bbdcb87b054b7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 22 Mar 2018 01:40:24 -0400 Subject: [PATCH] getPlayerUniqueId API @@ -9,10 +9,10 @@ In Offline Mode, will return an Offline UUID This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b1d3f2a5e..f3050b126 100644 +index c74831b3d..e860a83d3 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1379,6 +1379,26 @@ public final class CraftServer implements Server { +@@ -1361,6 +1361,26 @@ public final class CraftServer implements Server { return recipients.size(); } diff --git a/Spigot-Server-Patches/0259-EndermanEscapeEvent.patch b/Spigot-Server-Patches/0259-EndermanEscapeEvent.patch index 82714f87..c3a6b276 100644 --- a/Spigot-Server-Patches/0259-EndermanEscapeEvent.patch +++ b/Spigot-Server-Patches/0259-EndermanEscapeEvent.patch @@ -1,4 +1,4 @@ -From b5b9280ab8819c53ce5fdcaf92e9967a002bc18a Mon Sep 17 00:00:00 2001 +From 2c487e159f55a7145d0e7a32048fa08fa60dcdae Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 30 Apr 2018 13:15:55 -0400 Subject: [PATCH] EndermanEscapeEvent @@ -8,7 +8,7 @@ Fires an event anytime an enderman intends to teleport away from the player You may cancel this, enabling ranged attacks to damage the enderman for example. diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index 96e29539b..e5eb0189d 100644 +index ddf64ee6c..a766b3895 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java @@ -1,6 +1,7 @@ @@ -39,7 +39,7 @@ index 96e29539b..e5eb0189d 100644 - if (f > 0.5F && this.world.e(new BlockPosition(this)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) { + if (f > 0.5F && this.world.e(new BlockPosition(this)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && tryEscape(EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper this.setGoalTarget((EntityLiving) null); - this.dz(); + this.dA(); } @@ -247,7 +254,7 @@ public class EntityEnderman extends EntityMonster { public boolean damageEntity(DamageSource damagesource, float f) { @@ -48,7 +48,7 @@ index 96e29539b..e5eb0189d 100644 - } else if (damagesource instanceof EntityDamageSourceIndirect) { + } else if (damagesource instanceof EntityDamageSourceIndirect && tryEscape(EndermanEscapeEvent.Reason.INDIRECT)) { // Paper for (int i = 0; i < 64; ++i) { - if (this.dz()) { + if (this.dA()) { return true; @@ -258,7 +265,7 @@ public class EntityEnderman extends EntityMonster { } else { @@ -56,7 +56,7 @@ index 96e29539b..e5eb0189d 100644 - if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0) { + if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0 && tryEscape(damagesource == DamageSource.DROWN ? EndermanEscapeEvent.Reason.DROWN : EndermanEscapeEvent.Reason.CRITICAL_HIT)) { // Paper - this.dz(); + this.dA(); } @@ -347,7 +354,7 @@ public class EntityEnderman extends EntityMonster { @@ -74,7 +74,7 @@ index 96e29539b..e5eb0189d 100644 if (this.i.f((EntityHuman) this.d)) { - if (((EntityHuman) this.d).h(this.i) < 16.0D) { + if (((EntityHuman) this.d).h(this.i) < 16.0D && this.getEnderman().tryEscape(EndermanEscapeEvent.Reason.STARE)) { // Paper - this.i.dz(); + this.i.dA(); } -- diff --git a/Spigot-Server-Patches/0260-Enderman.teleportRandomly.patch b/Spigot-Server-Patches/0260-Enderman.teleportRandomly.patch index 437a1d66..076c64b1 100644 --- a/Spigot-Server-Patches/0260-Enderman.teleportRandomly.patch +++ b/Spigot-Server-Patches/0260-Enderman.teleportRandomly.patch @@ -1,4 +1,4 @@ -From 880a89e66ceb7046eff5ee0e63c34e8c58789991 Mon Sep 17 00:00:00 2001 +From 4554c34485e08548f66997ac51e4ae290a56eecf Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 30 Apr 2018 13:29:44 -0400 Subject: [PATCH] Enderman.teleportRandomly() @@ -6,15 +6,15 @@ Subject: [PATCH] Enderman.teleportRandomly() Ability to trigger the vanilla "teleport randomly" mechanic of an enderman. diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index e5eb0189d..df94b4ca9 100644 +index a766b3895..0f64c8f2b 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java @@ -184,6 +184,7 @@ public class EntityEnderman extends EntityMonster { super.mobTick(); } -+ public boolean teleportRandomly() { return dz(); } // Paper - OBFHELPER - protected boolean dz() { ++ public boolean teleportRandomly() { return dA(); } // Paper - OBFHELPER + protected boolean dA() { double d0 = this.locX + (this.random.nextDouble() - 0.5D) * 64.0D; double d1 = this.locY + (double) (this.random.nextInt(64) - 32); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java diff --git a/Spigot-Server-Patches/0271-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/Spigot-Server-Patches/0271-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch index 313cbaba..8c018730 100644 --- a/Spigot-Server-Patches/0271-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch +++ b/Spigot-Server-Patches/0271-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch @@ -1,4 +1,4 @@ -From 6ed48dc3d24f2c96bc25877a4b9039fb81dfe608 Mon Sep 17 00:00:00 2001 +From f00d585a8bbb438d74f7802fd5fb536bfc69185b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 10 Jun 2018 01:18:49 -0400 Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event @@ -6,7 +6,7 @@ Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event Otherwise the creeper infinite explodes diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index f37169d73..86935f70a 100644 +index 0147054df..bbb4ca0fe 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -12,7 +12,7 @@ public class EntityCreeper extends EntityMonster { @@ -19,7 +19,7 @@ index f37169d73..86935f70a 100644 private int fuseTicks; public int maxFuseTicks = 30; @@ -205,6 +205,7 @@ public class EntityCreeper extends EntityMonster { - this.dF(); + this.dG(); } else { fuseTicks = 0; + this.datawatcher.set(isIgnitedDW, Boolean.valueOf(false)); // Paper diff --git a/Spigot-Server-Patches/0276-Make-shield-blocking-delay-configurable.patch b/Spigot-Server-Patches/0276-Make-shield-blocking-delay-configurable.patch index 6225fdc9..d37042c5 100644 --- a/Spigot-Server-Patches/0276-Make-shield-blocking-delay-configurable.patch +++ b/Spigot-Server-Patches/0276-Make-shield-blocking-delay-configurable.patch @@ -1,4 +1,4 @@ -From 8d4c2d59264801c858ea9086dcda25380a409942 Mon Sep 17 00:00:00 2001 +From 1bf8f7ce7285ba62fda47503cf9ac20e460b2926 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 16 Jun 2018 01:18:16 -0500 Subject: [PATCH] Make shield blocking delay configurable @@ -19,10 +19,10 @@ index f1db4becd..ef4bfb480 100644 + } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index a4026d64a..dffa42ba5 100644 +index 999a02cad..eaab10a14 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2663,7 +2663,7 @@ public abstract class EntityLiving extends Entity { +@@ -2664,7 +2664,7 @@ public abstract class EntityLiving extends Entity { if (this.isHandRaised() && !this.activeItem.isEmpty()) { Item item = this.activeItem.getItem(); @@ -31,8 +31,8 @@ index a4026d64a..dffa42ba5 100644 } else { return false; } -@@ -2751,4 +2751,16 @@ public abstract class EntityLiving extends Entity { - public boolean de() { +@@ -2752,4 +2752,16 @@ public abstract class EntityLiving extends Entity { + public boolean df() { return true; } + @@ -49,7 +49,7 @@ index a4026d64a..dffa42ba5 100644 + // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 460a050cc..35ba95e0f 100644 +index 524cfd99b..a6f847e31 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -530,5 +530,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/Spigot-Server-Patches/0283-LivingEntity-Hand-Raised-Item-Use-API.patch b/Spigot-Server-Patches/0283-LivingEntity-Hand-Raised-Item-Use-API.patch index 0716db9a..8470753b 100644 --- a/Spigot-Server-Patches/0283-LivingEntity-Hand-Raised-Item-Use-API.patch +++ b/Spigot-Server-Patches/0283-LivingEntity-Hand-Raised-Item-Use-API.patch @@ -1,4 +1,4 @@ -From a8a715a958825c0714c667dd9fb939e330e09551 Mon Sep 17 00:00:00 2001 +From 8f9dd75bf0186ef9e145b0399cedd29b5b090740 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 29 Jun 2018 00:21:28 -0400 Subject: [PATCH] LivingEntity Hand Raised/Item Use API @@ -6,29 +6,33 @@ Subject: [PATCH] LivingEntity Hand Raised/Item Use API How long an entity has raised hands to charge an attack or use an item diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 7cacbaffe..5f3ccee2e 100644 +index 4455dc489..8be1ba526 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2648,14 +2648,17 @@ public abstract class EntityLiving extends Entity { - - } - -+ public ItemStack getActiveItem() { return cV(); } // Paper - OBFHELPER - public ItemStack cV() { +@@ -106,7 +106,7 @@ public abstract class EntityLiving extends Entity { + private float bI; + private int bJ; + private float bK; +- protected ItemStack activeItem; ++ public ItemStack activeItem; // Paper - public + protected int bu; + protected int bv; + private BlockPosition bL; +@@ -2653,10 +2653,12 @@ public abstract class EntityLiving extends Entity { return this.activeItem; } -+ public int getItemUseRemainingTime() { return cW(); } // Paper - OBFHELPER - public int cW() { ++ public int getItemUseRemainingTime() { return cX(); } // Paper - OBFHELPER + public int cX() { return this.bu; } -+ public int getHandRaisedTime() { return cX(); } // Paper - OBFHELPER - public int cX() { - return this.isHandRaised() ? this.activeItem.k() - this.cW() : 0; ++ public int getHandRaisedTime() { return cY(); } // Paper - OBFHELPER + public int cY() { + return this.isHandRaised() ? this.activeItem.k() - this.cX() : 0; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 35ba95e0f..0975181e0 100644 +index a6f847e31..768bce141 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -540,5 +540,25 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -38,7 +42,7 @@ index 35ba95e0f..0975181e0 100644 + + @Override + public ItemStack getActiveItem() { -+ return getHandle().getActiveItem().asBukkitMirror(); ++ return getHandle().activeItem.asBukkitMirror(); + } + + @Override diff --git a/Spigot-Server-Patches/0289-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0289-InventoryCloseEvent-Reason-API.patch index 1caff55c..4dc1a88f 100644 --- a/Spigot-Server-Patches/0289-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0289-InventoryCloseEvent-Reason-API.patch @@ -1,4 +1,4 @@ -From 087cf44f244fd8c9afe5831e5714891a26585028 Mon Sep 17 00:00:00 2001 +From a110ff1f46dcdda93c0d692af44fd4d36b0dbc26 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 3 Jul 2018 21:56:23 -0400 Subject: [PATCH] InventoryCloseEvent Reason API @@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index ac90ca802..9e798038b 100644 +index a5a63a01d..e504b7858 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -886,7 +886,7 @@ public class Chunk implements IChunkAccess { @@ -29,11 +29,11 @@ index ac90ca802..9e798038b 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 4aba5716c..d84bb0e40 100644 +index 738ac8570..14a61f68e 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -153,7 +153,7 @@ public abstract class EntityHuman extends EntityLiving { - this.df(); + this.dg(); super.tick(); if (!this.world.isClientSide && this.activeContainer != null && !this.activeContainer.canUse(this)) { - this.closeInventory(); @@ -56,7 +56,7 @@ index 4aba5716c..d84bb0e40 100644 this.activeContainer = this.defaultContainer; } diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index 5db6e0764..99c638857 100644 +index 7059fc118..0c01f8daf 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -343,7 +343,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -110,7 +110,7 @@ index 5db6e0764..99c638857 100644 this.m(); } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 067f7b990..97b315bca 100644 +index 42bb86d31..2860df860 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2038,7 +2038,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -123,7 +123,7 @@ index 067f7b990..97b315bca 100644 this.player.m(); } diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 879780c5b..907f0232b 100644 +index 45e42e998..7a2b219c6 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -422,7 +422,7 @@ public abstract class PlayerList { @@ -155,7 +155,7 @@ index 4b9ecb4a6..b602a5d1b 100644 public boolean isBlocking() { return getHandle().isBlocking(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 60bc6d331..b25980027 100644 +index ab9956fa2..0f3e1d5ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -687,7 +687,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch b/Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch index 3f8946ea..b42c6fd7 100644 --- a/Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch +++ b/Spigot-Server-Patches/0298-Use-asynchronous-Log4j-2-loggers.patch @@ -1,14 +1,14 @@ -From 1b2b2a7ce9672bd95eb9708047a5761eb9b64b80 Mon Sep 17 00:00:00 2001 +From 4f6298ddaea7e4a4437ea321033433a16d8cf8fd Mon Sep 17 00:00:00 2001 From: Minecrell Date: Tue, 17 Jul 2018 16:42:17 +0200 Subject: [PATCH] Use asynchronous Log4j 2 loggers diff --git a/pom.xml b/pom.xml -index a034c87d6..efa52f356 100644 +index a319cfe3b..ddee1b048 100644 --- a/pom.xml +++ b/pom.xml -@@ -103,6 +103,14 @@ +@@ -102,6 +102,14 @@ 2.8.1 diff --git a/work/BuildData b/work/BuildData index a5effc61..351106b6 160000 --- a/work/BuildData +++ b/work/BuildData @@ -1 +1 @@ -Subproject commit a5effc614208d06202688a775f25d7b820b36d47 +Subproject commit 351106b6336fc52f6acf94aabd34ac54fc772432 diff --git a/work/Bukkit b/work/Bukkit index 2ba30ddd..7f222596 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 2ba30dddd4acb3bd789b4e487ed0647984576e8c +Subproject commit 7f2225966203a65e7d2c32d686121360489375f3 diff --git a/work/CraftBukkit b/work/CraftBukkit index 961295e4..4e2f5713 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 961295e4327324766a0404857c1ca85051971995 +Subproject commit 4e2f57133714acc3f84bec56d8ebcbcfc0228326 diff --git a/work/Spigot b/work/Spigot index 3fa6cc48..ed1cec9a 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 3fa6cc486bf213165cc95cc3809162036cf9bf78 +Subproject commit ed1cec9ae9ee07f1b51bdda14dfe14b40e92c9ed