From 4ac69cec8d35e04fef5156b26c2233b10bd00c48 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Tue, 23 Jul 2019 20:20:14 -0700 Subject: [PATCH] Bring task execution into server tick timings (#2357) --- Spigot-Server-Patches/0009-Timings-v2.patch | 177 +++++++++++++----- ...ient-crashes-server-lists-and-Mojang.patch | 14 +- .../0025-Entity-Origin-API.patch | 16 +- .../0032-Optimize-explosions.patch | 12 +- .../0034-Disable-thunder.patch | 6 +- .../0035-Disable-ice-and-snow.patch | 6 +- ...le-spawn-chances-for-skeleton-horses.patch | 6 +- ...ckPhysicsEvent-if-a-plugin-has-a-lis.patch | 14 +- ...Entity-AddTo-RemoveFrom-World-Events.patch | 8 +- ...Remove-unused-World-Tile-Entity-List.patch | 10 +- ...-possibility-for-getServer-singleton.patch | 6 +- ...item-frames-performance-and-bug-fixe.patch | 12 +- .../0109-Fix-Double-World-Add-issues.patch | 6 +- .../0118-Chunk-registration-fixes.patch | 6 +- ...oleAppender-for-console-improvements.patch | 32 ++-- .../0159-Basic-PlayerProfile-API.patch | 24 +-- ...ld.spawnParticle-API-and-add-Builder.patch | 8 +- .../0245-InventoryCloseEvent-Reason-API.patch | 22 +-- ...nilla-entity-warnings-for-duplicates.patch | 6 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 14 +- ...ead-Entities-in-entityList-iteration.patch | 18 +- ...ets-from-world-player-list-not-serve.patch | 12 +- .../0288-Optimize-Hoppers.patch | 14 +- ...mit-lightning-strike-effect-distance.patch | 10 +- .../0334-Optimize-World-Time-Updates.patch | 6 +- .../0366-Entity-getEntitySpawnReason.patch | 12 +- .../0372-Server-Tick-Events.patch | 12 +- ...isPrimaryThread-and-MinecraftServer-.patch | 8 +- ...h-entity-loss-due-to-unloaded-chunks.patch | 8 +- .../0387-Duplicate-UUID-Resolve-Option.patch | 16 +- ...le-Keep-Spawn-Loaded-range-per-world.patch | 16 +- ...tually-Limit-Natural-Spawns-To-Limit.patch | 6 +- .../0396-incremental-chunk-saving.patch | 20 +- ...al-Spawned-mobs-towards-natural-spaw.patch | 6 +- 34 files changed, 329 insertions(+), 240 deletions(-) diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 2e2ea69010..ec7c62a2a4 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1,4 +1,4 @@ -From 32433f247363809b8ea035499c20a4fee2e8fe1e Mon Sep 17 00:00:00 2001 +From c1ee662cf3caa470950652abba88a1cb8be0a561 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 04:00:11 -0600 Subject: [PATCH] Timings v2 @@ -6,10 +6,10 @@ Subject: [PATCH] Timings v2 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java new file mode 100644 -index 000000000..3f9fb6f90 +index 0000000000..c2d2614181 --- /dev/null +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java -@@ -0,0 +1,133 @@ +@@ -0,0 +1,134 @@ +package co.aikar.timings; + +import com.google.common.collect.MapMaker; @@ -44,6 +44,7 @@ index 000000000..3f9fb6f90 + public static final Timing structureGenerationTimer = Timings.ofSafe("Structure Generation"); + + public static final Timing processQueueTimer = Timings.ofSafe("processQueue"); ++ public static final Timing processTasksTimer = Timings.ofSafe("processTasks"); + + public static final Timing playerCommandTimer = Timings.ofSafe("playerCommand"); + @@ -145,10 +146,10 @@ index 000000000..3f9fb6f90 +} diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java new file mode 100644 -index 000000000..366de6665 +index 0000000000..92c32c48d2 --- /dev/null +++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java -@@ -0,0 +1,107 @@ +@@ -0,0 +1,120 @@ +package co.aikar.timings; + +import net.minecraft.server.World; @@ -187,6 +188,12 @@ index 000000000..366de6665 + public final Timing tracker2; + public final Timing doTick; + public final Timing tickEntities; ++ public final Timing chunks; ++ public final Timing newEntities; ++ public final Timing raids; ++ public final Timing chunkProviderTick; ++ public final Timing broadcastChunkUpdates; ++ public final Timing countNaturalMobs; + + public final Timing syncChunkLoadTimer; + public final Timing syncChunkLoadDataTimer; @@ -250,6 +257,13 @@ index 000000000..366de6665 + tracker2 = Timings.ofSafe(name + "tracker stage 2"); + doTick = Timings.ofSafe(name + "doTick"); + tickEntities = Timings.ofSafe(name + "tickEntities"); ++ ++ chunks = Timings.ofSafe(name + "Chunks"); ++ newEntities = Timings.ofSafe(name + "New entity registration"); ++ raids = Timings.ofSafe(name + "Raids"); ++ chunkProviderTick = Timings.ofSafe(name + "Chunk provider tick"); ++ broadcastChunkUpdates = Timings.ofSafe(name + "Broadcast chunk updates"); ++ countNaturalMobs = Timings.ofSafe(name + "Count natural mobs"); + } + + public static Timing getTickList(WorldServer worldserver, String timingsType) { @@ -257,7 +271,7 @@ index 000000000..366de6665 + } +} diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 5518ec1e5..0c65afccf 100644 +index 5518ec1e54..0c65afccfd 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -14,11 +14,14 @@ import java.util.concurrent.TimeUnit; @@ -304,7 +318,7 @@ index 5518ec1e5..0c65afccf 100644 + } } diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index abba434da..1426bd01a 100644 +index abba434dac..1426bd01ad 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -31,6 +31,15 @@ public class Block implements IMaterial { @@ -324,7 +338,7 @@ index abba434da..1426bd01a 100644 private final float frictionFactor; protected final BlockStateList blockStateList; diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 3ed48be38..c4d989f70 100644 +index 3ed48be382..c4d989f702 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -573,6 +573,7 @@ public class Chunk implements IChunkAccess { @@ -344,7 +358,7 @@ index 3ed48be38..c4d989f70 100644 } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index dd6e69a0f..25e0163c6 100644 +index dd6e69a0f1..978a9f9172 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -150,11 +150,13 @@ public class ChunkProviderServer extends IChunkProvider { @@ -373,7 +387,40 @@ index dd6e69a0f..25e0163c6 100644 } @Override -@@ -462,9 +466,9 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -375,7 +379,9 @@ public class ChunkProviderServer extends IChunkProvider { + this.tickDistanceManager(); + this.world.timings.doChunkMap.stopTiming(); // Spigot + this.world.getMethodProfiler().exitEnter("chunks"); ++ this.world.timings.chunks.startTiming(); // Paper - timings + this.tickChunks(); ++ this.world.timings.chunks.stopTiming(); // Paper - timings + this.world.timings.doChunkUnload.startTiming(); // Spigot + this.world.getMethodProfiler().exitEnter("unload"); + this.playerChunkMap.unloadChunks(booleansupplier); +@@ -400,10 +406,12 @@ public class ChunkProviderServer extends IChunkProvider { + boolean flag2 = world.ticksPerAnimalSpawns != 0L && worlddata.getTime() % world.ticksPerAnimalSpawns == 0L; // CraftBukkit // PAIL: TODO monster ticks + + this.world.getMethodProfiler().enter("naturalSpawnCount"); ++ this.world.timings.countNaturalMobs.startTiming(); // Paper - timings + int l = this.chunkMapDistance.b(); + EnumCreatureType[] aenumcreaturetype = EnumCreatureType.values(); + Object2IntMap object2intmap = this.world.l(); + ++ this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings + this.world.getMethodProfiler().exit(); + this.playerChunkMap.f().forEach((playerchunk) -> { + Optional optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left(); +@@ -412,7 +420,9 @@ public class ChunkProviderServer extends IChunkProvider { + Chunk chunk = (Chunk) optional.get(); + + this.world.getMethodProfiler().enter("broadcast"); ++ this.world.timings.broadcastChunkUpdates.startTiming(); // Paper - timings + playerchunk.a(chunk); ++ this.world.timings.broadcastChunkUpdates.stopTiming(); // Paper - timings + this.world.getMethodProfiler().exit(); + ChunkCoordIntPair chunkcoordintpair = playerchunk.i(); + +@@ -462,9 +472,9 @@ public class ChunkProviderServer extends IChunkProvider { this.world.getMethodProfiler().exit(); } @@ -385,7 +432,7 @@ index dd6e69a0f..25e0163c6 100644 } } }); -@@ -477,9 +481,7 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -477,9 +487,7 @@ public class ChunkProviderServer extends IChunkProvider { this.world.getMethodProfiler().exit(); } @@ -396,7 +443,7 @@ index dd6e69a0f..25e0163c6 100644 @Override diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 28bf9e14d..03be77299 100644 +index 28bf9e14d6..03be77299b 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -1,5 +1,6 @@ @@ -434,7 +481,7 @@ index 28bf9e14d..03be77299 100644 } diff --git a/src/main/java/net/minecraft/server/CustomFunction.java b/src/main/java/net/minecraft/server/CustomFunction.java -index 12885cbd6..49de6e997 100644 +index 12885cbd60..49de6e997a 100644 --- a/src/main/java/net/minecraft/server/CustomFunction.java +++ b/src/main/java/net/minecraft/server/CustomFunction.java @@ -13,12 +13,22 @@ public class CustomFunction { @@ -461,7 +508,7 @@ index 12885cbd6..49de6e997 100644 return this.b; } diff --git a/src/main/java/net/minecraft/server/CustomFunctionData.java b/src/main/java/net/minecraft/server/CustomFunctionData.java -index 53735b52a..721839b4c 100644 +index 53735b52a3..721839b4c6 100644 --- a/src/main/java/net/minecraft/server/CustomFunctionData.java +++ b/src/main/java/net/minecraft/server/CustomFunctionData.java @@ -101,7 +101,7 @@ public class CustomFunctionData implements IResourcePackListener { @@ -474,7 +521,7 @@ index 53735b52a..721839b4c 100644 int j = 0; CustomFunction.c[] acustomfunction_c = customfunction.b(); diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 5e0797afd..f572cd8fc 100644 +index 5e0797afde..f572cd8fc7 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -19,6 +19,8 @@ import java.util.Collections; @@ -562,7 +609,7 @@ index 5e0797afd..f572cd8fc 100644 } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index d4954801c..fd4712c71 100644 +index d4954801cb..fd4712c710 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; @@ -601,7 +648,7 @@ index d4954801c..fd4712c71 100644 protected Vec3D a(Vec3D vec3d, EnumMoveType enummovetype) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index dcbc4ea7e..b1f130f91 100644 +index dcbc4ea7e1..b1f130f91d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -35,7 +35,7 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -677,7 +724,7 @@ index dcbc4ea7e..b1f130f91 100644 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1701d39ea..8d04500ac 100644 +index 1701d39eab..d9eb5ce085 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -63,7 +63,7 @@ import org.bukkit.craftbukkit.CraftServer; @@ -697,6 +744,15 @@ index 1701d39ea..8d04500ac 100644 // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); +@@ -881,7 +882,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { + return !this.canSleepForTick(); + }); @@ -961,7 +962,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant implements TickList { @@ -1031,7 +1092,7 @@ index 00bbd34b6..f533860bb 100644 this.g.clear(); } diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index 2efaf516f..22a8ea916 100644 +index 2efaf516ff..22a8ea916a 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java @@ -9,11 +9,12 @@ import org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer; @@ -1050,7 +1111,7 @@ index 2efaf516f..22a8ea916 100644 private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 1d5e4c512..60c222b12 100644 +index 1d5e4c5127..60c222b12b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1,5 +1,7 @@ @@ -1105,7 +1166,7 @@ index 1d5e4c512..60c222b12 100644 CrashReport crashreport = CrashReport.a(throwable, "Ticking entity"); CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being ticked"); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 825e72e53..ab82623cc 100644 +index 825e72e53a..a28c97a889 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1,5 +1,7 @@ @@ -1137,9 +1198,13 @@ index 825e72e53..ab82623cc 100644 this.H = Sets.newHashSet(); this.I = new ObjectLinkedOpenHashSet(); this.dataManager = worldnbtstorage; -@@ -258,12 +259,12 @@ public class WorldServer extends World { +@@ -256,24 +257,28 @@ public class WorldServer extends World { + this.M(); + this.a(); gameprofilerfiller.exitEnter("chunkSource"); ++ this.timings.chunkProviderTick.startTiming(); // Paper - timings this.getChunkProvider().tick(booleansupplier); ++ this.timings.chunkProviderTick.stopTiming(); // Paper - timings gameprofilerfiller.exitEnter("tickPending"); - timings.doTickPending.startTiming(); // Spigot + timings.scheduledBlocks.startTiming(); // Spigot @@ -1152,7 +1217,19 @@ index 825e72e53..ab82623cc 100644 gameprofilerfiller.exitEnter("portalForcer"); timings.doPortalForcer.startTiming(); // Spigot -@@ -316,6 +317,7 @@ public class WorldServer extends World { + this.portalTravelAgent.a(this.getTime()); + timings.doPortalForcer.stopTiming(); // Spigot + gameprofilerfiller.exitEnter("raid"); ++ this.timings.raids.startTiming(); // Paper - timings + this.c.a(); + if (this.mobSpawnerTrader != null) { + this.mobSpawnerTrader.a(); + } ++ this.timings.raids.stopTiming(); // Paper - timings + + gameprofilerfiller.exitEnter("blockEvents"); + timings.doSounds.startTiming(); // Spigot +@@ -316,6 +321,7 @@ public class WorldServer extends World { org.spigotmc.ActivationRange.activateEntities(this); // Spigot timings.entityTick.startTiming(); // Spigot @@ -1160,7 +1237,7 @@ index 825e72e53..ab82623cc 100644 while (objectiterator.hasNext()) { Entry entry = (Entry) objectiterator.next(); Entity entity1 = (Entity) entry.getValue(); -@@ -342,6 +344,7 @@ public class WorldServer extends World { +@@ -342,6 +348,7 @@ public class WorldServer extends World { gameprofilerfiller.enter("tick"); if (!entity1.dead && !(entity1 instanceof EntityComplexPart)) { this.a(this::entityJoinedWorld, entity1); @@ -1168,7 +1245,19 @@ index 825e72e53..ab82623cc 100644 } gameprofilerfiller.exit(); -@@ -419,6 +422,7 @@ public class WorldServer extends World { +@@ -358,9 +365,11 @@ public class WorldServer extends World { + + this.tickingEntities = false; + ++ try (co.aikar.timings.Timing ignored = this.timings.newEntities.startTiming()) { // Paper - timings + while ((entity = (Entity) this.entitiesToAdd.poll()) != null) { + this.registerEntity(entity); + } ++ } // Paper - timings + + gameprofilerfiller.exit(); + timings.tickEntities.stopTiming(); // Spigot +@@ -419,6 +428,7 @@ public class WorldServer extends World { } gameprofilerfiller.exitEnter("tickBlocks"); @@ -1176,7 +1265,7 @@ index 825e72e53..ab82623cc 100644 if (i > 0) { ChunkSection[] achunksection = chunk.getSections(); int l = achunksection.length; -@@ -450,7 +454,7 @@ public class WorldServer extends World { +@@ -450,7 +460,7 @@ public class WorldServer extends World { } } } @@ -1185,7 +1274,7 @@ index 825e72e53..ab82623cc 100644 gameprofilerfiller.exit(); } -@@ -745,6 +749,7 @@ public class WorldServer extends World { +@@ -745,6 +755,7 @@ public class WorldServer extends World { if (!flag1) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -1193,7 +1282,7 @@ index 825e72e53..ab82623cc 100644 if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel", new Object[0])); } -@@ -754,7 +759,10 @@ public class WorldServer extends World { +@@ -754,7 +765,10 @@ public class WorldServer extends World { iprogressupdate.c(new ChatMessage("menu.savingChunks", new Object[0])); } @@ -1205,7 +1294,7 @@ index 825e72e53..ab82623cc 100644 // CraftBukkit start - moved from MinecraftServer.saveChunks diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2fd73f483..6de0b6e5d 100644 +index 2fd73f4835..6de0b6e5da 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1931,12 +1931,31 @@ public final class CraftServer implements Server { @@ -1242,7 +1331,7 @@ index 2fd73f483..6de0b6e5d 100644 org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java deleted file mode 100644 -index b98a7b56a..000000000 +index b98a7b56a4..0000000000 --- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java +++ /dev/null @@ -1,164 +0,0 @@ @@ -1411,7 +1500,7 @@ index b98a7b56a..000000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e434738cb..9f5080b23 100644 +index e434738cb1..9f5080b233 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1749,6 +1749,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1430,7 +1519,7 @@ index e434738cb..9f5080b23 100644 public Player.Spigot spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index b90979c7b..8823f94f7 100644 +index b90979c7ba..8823f94f7b 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -1,5 +1,6 @@ @@ -1496,7 +1585,7 @@ index b90979c7b..8823f94f7 100644 private boolean isReady(final int currentTick) { diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index 3f55381c1..0d9a46680 100644 +index 3f55381c15..0d9a466809 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -1,9 +1,11 @@ @@ -1581,7 +1670,7 @@ index 3f55381c1..0d9a46680 100644 - // Spigot end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java -index e52ef47b7..3d90b3426 100644 +index e52ef47b78..3d90b34268 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftIconCache.java @@ -5,6 +5,7 @@ import org.bukkit.util.CachedServerIcon; @@ -1593,7 +1682,7 @@ index e52ef47b7..3d90b3426 100644 this.value = value; } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index dd602243d..924ab7f54 100644 +index dd602243d3..924ab7f541 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -288,6 +288,13 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -1611,7 +1700,7 @@ index dd602243d..924ab7f54 100644 * This helper class represents the different NBT Tags. *

diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index ca7789b5e..442383969 100644 +index ca7789b5e0..4423839697 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -31,7 +31,7 @@ import net.minecraft.server.EntityWither; 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 30668f7850..733ab5adbc 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 8a94ed11527adbb597c3cf4dca2d9d202f9e1e94 Mon Sep 17 00:00:00 2001 +From af9adce4d92c26640b7c018c32287af165d9091f Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 14:32:43 -0600 Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang @@ -6,7 +6,7 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang diff --git a/src/main/java/net/minecraft/server/EULA.java b/src/main/java/net/minecraft/server/EULA.java -index 3f35a28ba..cf00f35a5 100644 +index 3f35a28ba1..cf00f35a5b 100644 --- a/src/main/java/net/minecraft/server/EULA.java +++ b/src/main/java/net/minecraft/server/EULA.java @@ -70,7 +70,7 @@ public class EULA { @@ -19,10 +19,10 @@ index 3f35a28ba..cf00f35a5 100644 throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8d04500ac..cec120cf2 100644 +index d9eb5ce085..15c6818f10 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1295,7 +1295,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Tue, 1 Mar 2016 23:45:08 -0600 Subject: [PATCH] Entity Origin API diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 40dcb3125..5f85eb2ba 100644 +index 40dcb31258..5f85eb2ba2 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -163,6 +163,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -51,7 +51,7 @@ index 40dcb3125..5f85eb2ba 100644 NBTTagList nbttaglist = new NBTTagList(); double[] adouble1 = adouble; diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java -index f8d8d8f35..0f9fa4113 100644 +index f8d8d8f353..0f9fa41133 100644 --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java @@ -254,6 +254,14 @@ public class EntityFallingBlock extends Entity { @@ -70,7 +70,7 @@ index f8d8d8f35..0f9fa4113 100644 public void a(boolean flag) { diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -index e988abd67..f2ee53ab9 100644 +index e988abd67c..f2ee53ab90 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java @@ -104,6 +104,14 @@ public class EntityTNTPrimed extends Entity { @@ -89,7 +89,7 @@ index e988abd67..f2ee53ab9 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java -index ce510c486..b7c94fe23 100644 +index ce510c4867..b7c94fe238 100644 --- a/src/main/java/net/minecraft/server/NBTTagList.java +++ b/src/main/java/net/minecraft/server/NBTTagList.java @@ -161,6 +161,7 @@ public class NBTTagList extends NBTList { @@ -101,10 +101,10 @@ index ce510c486..b7c94fe23 100644 if (i >= 0 && i < this.list.size()) { NBTBase nbtbase = (NBTBase) this.list.get(i); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index ab82623cc..9c487fb61 100644 +index a28c97a889..aec67b9bc0 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1103,6 +1103,11 @@ public class WorldServer extends World { +@@ -1109,6 +1109,11 @@ public class WorldServer extends World { this.H.add(((EntityInsentient) entity).getNavigation()); } entity.valid = true; // CraftBukkit @@ -117,7 +117,7 @@ index ab82623cc..9c487fb61 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index a98f6f338..d1d37c06b 100644 +index a98f6f3389..d1d37c06bf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1009,4 +1009,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/Spigot-Server-Patches/0032-Optimize-explosions.patch b/Spigot-Server-Patches/0032-Optimize-explosions.patch index da736b9b08..02d71b6a0c 100644 --- a/Spigot-Server-Patches/0032-Optimize-explosions.patch +++ b/Spigot-Server-Patches/0032-Optimize-explosions.patch @@ -1,4 +1,4 @@ -From f945ca215b4e13bd1ef95950c3c916db65175ea9 Mon Sep 17 00:00:00 2001 +From 007df3f67953da4b9df15a5b6b6c7486d9dc5a80 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 2 Mar 2016 11:59:48 -0600 Subject: [PATCH] Optimize explosions @@ -10,7 +10,7 @@ This patch adds a per-tick cache that is used for storing and retrieving an entity's exposure during an explosion. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index c2b9690a0..a5ec0bc0e 100644 +index c2b9690a0c..a5ec0bc0e0 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -145,4 +145,10 @@ public class PaperWorldConfig { @@ -25,7 +25,7 @@ index c2b9690a0..a5ec0bc0e 100644 + } } diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java -index cdd893950..bd6a0bd16 100644 +index cdd8939504..bd6a0bd16b 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -172,7 +172,7 @@ public class Explosion { @@ -123,10 +123,10 @@ index cdd893950..bd6a0bd16 100644 + // Paper end } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7bb83014b..6d9db5294 100644 +index a7b8567ec5..980284c3e9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1139,6 +1139,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Wed, 2 Mar 2016 14:52:43 -0600 Subject: [PATCH] Disable thunder @@ -19,10 +19,10 @@ index 6a307d5dd6..bf0cd6a8b4 100644 + } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index b9e1816e82..9555afbd8d 100644 +index aec67b9bc0..48cd8913d1 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -383,7 +383,7 @@ public class WorldServer extends World { +@@ -389,7 +389,7 @@ public class WorldServer extends World { gameprofilerfiller.enter("thunder"); BlockPosition blockposition; diff --git a/Spigot-Server-Patches/0035-Disable-ice-and-snow.patch b/Spigot-Server-Patches/0035-Disable-ice-and-snow.patch index 9d3174eb7c..b27e1eba23 100644 --- a/Spigot-Server-Patches/0035-Disable-ice-and-snow.patch +++ b/Spigot-Server-Patches/0035-Disable-ice-and-snow.patch @@ -1,4 +1,4 @@ -From 6b7e6ab5ed2af58cd941e6d5715778ee5ea21c4b Mon Sep 17 00:00:00 2001 +From 0de55207887aaffe899954d39a585887634e3cf9 Mon Sep 17 00:00:00 2001 From: Sudzzy Date: Wed, 2 Mar 2016 14:57:24 -0600 Subject: [PATCH] Disable ice and snow @@ -19,10 +19,10 @@ index bf0cd6a8b4..8db5c3f3fe 100644 + } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 9555afbd8d..eaa2ff33c8 100644 +index 48cd8913d1..4ca79a774e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -403,7 +403,7 @@ public class WorldServer extends World { +@@ -409,7 +409,7 @@ public class WorldServer extends World { } gameprofilerfiller.exitEnter("iceandsnow"); diff --git a/Spigot-Server-Patches/0071-Configurable-spawn-chances-for-skeleton-horses.patch b/Spigot-Server-Patches/0071-Configurable-spawn-chances-for-skeleton-horses.patch index fe3221257a..5295cdd8b8 100644 --- a/Spigot-Server-Patches/0071-Configurable-spawn-chances-for-skeleton-horses.patch +++ b/Spigot-Server-Patches/0071-Configurable-spawn-chances-for-skeleton-horses.patch @@ -1,4 +1,4 @@ -From c3fa37daab3af14e540958f9d1754deac692251a Mon Sep 17 00:00:00 2001 +From 1861ca0fb17451f485c82125a94eae83f820c2f6 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 22 Mar 2016 12:04:28 -0500 Subject: [PATCH] Configurable spawn chances for skeleton horses @@ -22,10 +22,10 @@ index 98049567f4..2a71381dae 100644 + } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index eaa2ff33c8..252fbb36eb 100644 +index 4ca79a774e..ee74a677a3 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -387,7 +387,7 @@ public class WorldServer extends World { +@@ -393,7 +393,7 @@ public class WorldServer extends World { blockposition = this.a(this.a(j, 0, k, 15)); if (this.isRainingAt(blockposition)) { DifficultyDamageScaler difficultydamagescaler = this.getDamageScaler(blockposition); diff --git a/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index cb67a744cb..f4c7db5084 100644 --- a/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/Spigot-Server-Patches/0074-Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -1,4 +1,4 @@ -From 37a6f823c355660c814b5ced5abca655be766b10 Mon Sep 17 00:00:00 2001 +From 9bbb2d0782475e8049ba823fc4e5432d6f47a12b Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 19:55:45 -0400 Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener @@ -6,7 +6,7 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener Saves on some object allocation and processing when no plugin listens to this diff --git a/src/main/java/net/minecraft/server/BlockPlant.java b/src/main/java/net/minecraft/server/BlockPlant.java -index 9bf42bb5e..0526af776 100644 +index 9bf42bb5ef..0526af776d 100644 --- a/src/main/java/net/minecraft/server/BlockPlant.java +++ b/src/main/java/net/minecraft/server/BlockPlant.java @@ -16,7 +16,7 @@ public class BlockPlant extends Block { @@ -19,7 +19,7 @@ index 9bf42bb5e..0526af776 100644 } } diff --git a/src/main/java/net/minecraft/server/BlockTallPlant.java b/src/main/java/net/minecraft/server/BlockTallPlant.java -index ef392f5fe..227fe073f 100644 +index ef392f5fe8..227fe073fd 100644 --- a/src/main/java/net/minecraft/server/BlockTallPlant.java +++ b/src/main/java/net/minecraft/server/BlockTallPlant.java @@ -55,7 +55,7 @@ public class BlockTallPlant extends BlockPlant { @@ -32,10 +32,10 @@ index ef392f5fe..227fe073f 100644 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6d9db5294..524b8dc6c 100644 +index 980284c3e9..0740737672 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1105,6 +1105,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager()); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c40777ecb..cb5515dc3 100644 +index c40777ecb8..cb5515dc3b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -440,7 +440,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -66,7 +66,7 @@ index c40777ecb..cb5515dc3 100644 this.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 332663c75..991f0132b 100644 +index ee74a677a3..81f8373985 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -71,6 +71,7 @@ public class WorldServer extends World { diff --git a/Spigot-Server-Patches/0075-Entity-AddTo-RemoveFrom-World-Events.patch b/Spigot-Server-Patches/0075-Entity-AddTo-RemoveFrom-World-Events.patch index ac24cb00d6..d0f820bea6 100644 --- a/Spigot-Server-Patches/0075-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/Spigot-Server-Patches/0075-Entity-AddTo-RemoveFrom-World-Events.patch @@ -1,14 +1,14 @@ -From 21e3a13e33fa949b25056cc51be4b77342dc337e Mon Sep 17 00:00:00 2001 +From 0dfed2c9f792756621050fcae3fc81ef8de41d01 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 28 Mar 2016 20:32:58 -0400 Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 991f0132b..e5fd949e2 100644 +index 81f8373985..f63cb1843f 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1109,6 +1109,7 @@ public class WorldServer extends World { +@@ -1115,6 +1115,7 @@ public class WorldServer extends World { entity.origin = entity.getBukkitEntity().getLocation(); } // Paper end @@ -16,7 +16,7 @@ index 991f0132b..e5fd949e2 100644 } } -@@ -1117,6 +1118,7 @@ public class WorldServer extends World { +@@ -1123,6 +1124,7 @@ public class WorldServer extends World { if (this.tickingEntities) { throw new IllegalStateException("Removing entity while ticking!"); } else { diff --git a/Spigot-Server-Patches/0089-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0089-Remove-unused-World-Tile-Entity-List.patch index 661ae549c0..96e2411462 100644 --- a/Spigot-Server-Patches/0089-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0089-Remove-unused-World-Tile-Entity-List.patch @@ -1,4 +1,4 @@ -From 66eb68aecc656e97825ab083d2446999a3773802 Mon Sep 17 00:00:00 2001 +From 088133cdf474306bd86db30e27b2345bef28687c 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 07d150586..ebeb48f6d 100644 +index 07d1505867..ebeb48f6dc 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -40,7 +40,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -67,10 +67,10 @@ index 07d150586..ebeb48f6d 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index e5fd949e2..552373ddb 100644 +index f63cb1843f..79f97f0de0 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1558,7 +1558,7 @@ public class WorldServer extends World { +@@ -1564,7 +1564,7 @@ public class WorldServer extends World { } bufferedwriter.write(String.format("entities: %d\n", this.entitiesById.size())); @@ -79,7 +79,7 @@ index e5fd949e2..552373ddb 100644 bufferedwriter.write(String.format("block_ticks: %d\n", this.getBlockTickList().a())); bufferedwriter.write(String.format("fluid_ticks: %d\n", this.getFluidTickList().a())); bufferedwriter.write("distance_manager: " + playerchunkmap.e().c() + "\n"); -@@ -1721,7 +1721,7 @@ public class WorldServer extends World { +@@ -1727,7 +1727,7 @@ public class WorldServer extends World { private void a(Writer writer) throws IOException { CSVWriter csvwriter = CSVWriter.a().a("x").a("y").a("z").a("type").a(writer); diff --git a/Spigot-Server-Patches/0098-remove-null-possibility-for-getServer-singleton.patch b/Spigot-Server-Patches/0098-remove-null-possibility-for-getServer-singleton.patch index 0a875e0ed4..359b55aa2d 100644 --- a/Spigot-Server-Patches/0098-remove-null-possibility-for-getServer-singleton.patch +++ b/Spigot-Server-Patches/0098-remove-null-possibility-for-getServer-singleton.patch @@ -1,4 +1,4 @@ -From 5e758106631ef6319880888cf38ead080a7de9d9 Mon Sep 17 00:00:00 2001 +From 84a97a765c6b7e047e6fddd62e3c6036caea4f1b Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 28 Apr 2016 00:57:27 -0400 Subject: [PATCH] remove null possibility for getServer singleton @@ -6,7 +6,7 @@ Subject: [PATCH] remove null possibility for getServer singleton to stop IDE complaining about potential NPE diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 57db59671..9562fde4c 100644 +index 815b8dc243..5a04e6d72e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -68,6 +68,7 @@ import org.spigotmc.SlackActivityAccountant; // Spigot @@ -25,7 +25,7 @@ index 57db59671..9562fde4c 100644 this.resourcePackRepository = new ResourcePackRepository<>(ResourcePackLoader::new); this.ai = new CraftingManager(); this.aj = new TagRegistry(); -@@ -2117,7 +2119,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Fri, 29 Apr 2016 20:02:00 -0400 Subject: [PATCH] Improve Maps (in item frames) performance and bug fixes @@ -13,7 +13,7 @@ custom renderers are in use, defaulting to the much simpler Vanilla system. Additionally, numerous issues to player position tracking on maps has been fixed. diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index aaf297e71..3f829f79e 100644 +index aaf297e717..3f829f79e4 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -605,6 +605,12 @@ public abstract class EntityHuman extends EntityLiving { @@ -30,7 +30,7 @@ index aaf297e71..3f829f79e 100644 return entityitem; } diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java -index fc0815893..090d3dbd3 100644 +index fc08158937..090d3dbd31 100644 --- a/src/main/java/net/minecraft/server/WorldMap.java +++ b/src/main/java/net/minecraft/server/WorldMap.java @@ -31,6 +31,7 @@ public class WorldMap extends PersistentBase { @@ -102,10 +102,10 @@ index fc0815893..090d3dbd3 100644 for ( org.bukkit.map.MapCursor cursor : render.cursors) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 552373ddb..26840d500 100644 +index 79f97f0de0..7416781044 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1045,6 +1045,7 @@ public class WorldServer extends World { +@@ -1051,6 +1051,7 @@ public class WorldServer extends World { { if ( iter.next().trackee == entity ) { @@ -114,7 +114,7 @@ index 552373ddb..26840d500 100644 } } diff --git a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java -index 256a13178..5768cd512 100644 +index 256a131781..5768cd512e 100644 --- a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java +++ b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java @@ -5,7 +5,7 @@ import org.bukkit.map.MapCursor; diff --git a/Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch index 2106570bc3..a70edf1426 100644 --- a/Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch +++ b/Spigot-Server-Patches/0109-Fix-Double-World-Add-issues.patch @@ -1,4 +1,4 @@ -From 0f13c4eb9499652484b2bbe90f32dea9ac588e3d Mon Sep 17 00:00:00 2001 +From f50b93045265d5c0add7a1e9d25bf9439b19d47a 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/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 26840d500..35e46dd75 100644 +index 7416781044..3265d66065 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -934,6 +934,7 @@ public class WorldServer extends World { +@@ -940,6 +940,7 @@ public class WorldServer extends World { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/Spigot-Server-Patches/0118-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0118-Chunk-registration-fixes.patch index d75538aec7..df0b5899ec 100644 --- a/Spigot-Server-Patches/0118-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0118-Chunk-registration-fixes.patch @@ -1,4 +1,4 @@ -From fdb0692c5b8e5803493e54d448b2d4129badb38f Mon Sep 17 00:00:00 2001 +From d24a8917a1b54548c0325e25915f79ebb1863524 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/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index f6831a33a4..78d5cf4738 100644 +index 3265d66065..18e0455a37 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -623,7 +623,7 @@ public class WorldServer extends World { +@@ -629,7 +629,7 @@ public class WorldServer extends World { public void chunkCheck(Entity entity) { this.getMethodProfiler().enter("chunkCheck"); int i = MathHelper.floor(entity.locX / 16.0D); diff --git a/Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch index 66f94c10a7..3d0868f337 100644 --- a/Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/Spigot-Server-Patches/0153-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -1,4 +1,4 @@ -From 21d4e267f8aeaa9764da1381e37d0d082e4a155a Mon Sep 17 00:00:00 2001 +From 1e4a0195e149cf0b657118531e001bacde3daeb7 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,7 +19,7 @@ Other changes: configuration diff --git a/pom.xml b/pom.xml -index 04b0dd9a7..58b14a740 100644 +index 04b0dd9a7f..58b14a740e 100644 --- a/pom.xml +++ b/pom.xml @@ -41,10 +41,27 @@ @@ -75,7 +75,7 @@ index 04b0dd9a7..58b14a740 100644 org.apache.maven.plugins diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java new file mode 100644 -index 000000000..cd6e25923 +index 0000000000..cd6e259239 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java @@ -0,0 +1,40 @@ @@ -121,7 +121,7 @@ index 000000000..cd6e25923 +} diff --git a/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java b/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java new file mode 100644 -index 000000000..685deaa0e +index 0000000000..685deaa0e5 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java @@ -0,0 +1,17 @@ @@ -143,7 +143,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 f2c65e40a..f8fa3f78e 100644 +index f2c65e40a1..f8fa3f78e7 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -85,6 +85,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -185,7 +185,7 @@ index f2c65e40a..f8fa3f78e 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 7f6c3d4f6..dd188e941 100644 +index 43319f1061..6c2b050da3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -57,7 +57,7 @@ import org.apache.commons.lang3.Validate; @@ -234,7 +234,7 @@ index 7f6c3d4f6..dd188e941 100644 } catch (Exception ignored) { } // CraftBukkit end -@@ -1423,7 +1427,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Mon, 15 Jan 2018 22:11:48 -0500 Subject: [PATCH] Basic PlayerProfile API @@ -7,7 +7,7 @@ Establishes base extension of profile systems for future edits too diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java new file mode 100644 -index 000000000..b151a13c1 +index 0000000000..b151a13c1b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java @@ -0,0 +1,280 @@ @@ -293,7 +293,7 @@ index 000000000..b151a13c1 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java new file mode 100644 -index 000000000..25836b975 +index 0000000000..25836b975b --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java @@ -0,0 +1,30 @@ @@ -329,7 +329,7 @@ index 000000000..25836b975 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java new file mode 100644 -index 000000000..3bcdb8f93 +index 0000000000..3bcdb8f93f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java @@ -0,0 +1,17 @@ @@ -352,7 +352,7 @@ index 000000000..3bcdb8f93 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java new file mode 100644 -index 000000000..4b2a67423 +index 0000000000..4b2a67423f --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java @@ -0,0 +1,29 @@ @@ -387,7 +387,7 @@ index 000000000..4b2a67423 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java new file mode 100644 -index 000000000..3aceb0ea8 +index 0000000000..3aceb0ea8a --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java @@ -0,0 +1,11 @@ @@ -403,7 +403,7 @@ index 000000000..3aceb0ea8 + } +} diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java -index 1f6a12632..6d278a0da 100644 +index 1f6a126329..6d278a0da5 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java @@ -1,7 +1,10 @@ @@ -429,10 +429,10 @@ index 1f6a12632..6d278a0da 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 dd188e941..798bf3521 100644 +index 6c2b050da3..22d653cfcd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1254,7 +1254,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Tue, 15 Aug 2017 22:29:12 -0400 Subject: [PATCH] Expand World.spawnParticle API and add Builder @@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 73c4fa2a4..18abad9d8 100644 +index 18e0455a37..55bb019eaa 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -52,7 +52,7 @@ public class WorldServer extends World { @@ -22,7 +22,7 @@ index 73c4fa2a4..18abad9d8 100644 boolean tickingEntities; private final MinecraftServer server; private final WorldNBTStorage dataManager; -@@ -1330,12 +1330,17 @@ public class WorldServer extends World { +@@ -1336,12 +1336,17 @@ public class WorldServer extends World { } public int sendParticles(EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { @@ -43,7 +43,7 @@ index 73c4fa2a4..18abad9d8 100644 if (this.a(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 72e54b08e..3ef989346 100644 +index 72e54b08e9..3ef9893460 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2163,11 +2163,17 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch index 08e0b44455..005f02bf53 100644 --- a/Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0245-InventoryCloseEvent-Reason-API.patch @@ -1,4 +1,4 @@ -From b3ac49835faaa81cda96aa6a80a69d854368a5e4 Mon Sep 17 00:00:00 2001 +From d71a3828816ca43e895799b50172617d1911d0ba 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/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 8bec59b8f..7d6a2e8d5 100644 +index 8bec59b8fd..7d6a2e8d53 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -164,7 +164,7 @@ public abstract class EntityHuman extends EntityLiving { @@ -34,7 +34,7 @@ index 8bec59b8f..7d6a2e8d5 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 fc9899037..dcd48d8b3 100644 +index fc98990379..dcd48d8b3d 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -362,7 +362,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -88,7 +88,7 @@ index fc9899037..dcd48d8b3 100644 this.m(); } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 89beac63a..b9793d4cc 100644 +index 89beac63aa..b9793d4cc6 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2025,7 +2025,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -101,7 +101,7 @@ index 89beac63a..b9793d4cc 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 a167843bf..9e5cd22d7 100644 +index a167843bfb..9e5cd22d7d 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -402,7 +402,7 @@ public abstract class PlayerList { @@ -114,10 +114,10 @@ index a167843bf..9e5cd22d7 100644 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game"); cserver.getPluginManager().callEvent(playerQuitEvent); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 18abad9d8..a607c819c 100644 +index 55bb019eaa..174fe985f2 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -987,7 +987,7 @@ public class WorldServer extends World { +@@ -993,7 +993,7 @@ public class WorldServer extends World { { if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity ) { @@ -126,7 +126,7 @@ index 18abad9d8..a607c819c 100644 } } } -@@ -1010,7 +1010,7 @@ public class WorldServer extends World { +@@ -1016,7 +1016,7 @@ public class WorldServer extends World { { if ( h instanceof org.bukkit.craftbukkit.entity.CraftHumanEntity ) { @@ -136,7 +136,7 @@ index 18abad9d8..a607c819c 100644 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 2f24b52dd..92c7449b7 100644 +index 2f24b52ddd..92c7449b76 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -619,8 +619,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -155,7 +155,7 @@ index 2f24b52dd..92c7449b7 100644 @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e610c8aae..ce35e6bbc 100644 +index e610c8aaed..ce35e6bbc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -781,7 +781,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -168,7 +168,7 @@ index e610c8aae..ce35e6bbc 100644 // Check if the fromWorld and toWorld are the same. diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9e6ad82ba..e84df5dd4 100644 +index 9e6ad82ba5..e84df5dd4e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1259,8 +1259,19 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch b/Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch index 0009384041..2e54d7a896 100644 --- a/Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch +++ b/Spigot-Server-Patches/0250-Re-add-vanilla-entity-warnings-for-duplicates.patch @@ -1,4 +1,4 @@ -From 34feaa0ebfc4d90a9139870e709a57776b3329d5 Mon Sep 17 00:00:00 2001 +From ac7243bc9b8c3ea44c7806ea208a4dbb98d6dcc7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 19 Jul 2018 01:08:05 -0400 Subject: [PATCH] Re-add vanilla entity warnings for duplicates @@ -8,10 +8,10 @@ These are a critical sign that somethin went wrong, and you've lost some data... We should kind of know about these things you know. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index cd4cb9616c..895d9ccac8 100644 +index 174fe985f2..d8c49d95e1 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -972,7 +972,8 @@ public class WorldServer extends World { +@@ -978,7 +978,8 @@ public class WorldServer extends World { if (entity1 == null) { return false; } else { diff --git a/Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 40a6f8e6c6..d22869187a 100644 --- a/Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/Spigot-Server-Patches/0254-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -1,4 +1,4 @@ -From be784e43b2526bf7a73473e1b90210a51f1f877c Mon Sep 17 00:00:00 2001 +From e1dc1fc92f1d4e46ea41c274074713de49976a3c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 08:25:40 -0400 Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues @@ -6,7 +6,7 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues Add -Ddebug.entities=true to your JVM flags to gain more information diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 6ada92379..924187413 100644 +index 6ada923797..9241874139 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -75,6 +75,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -19,7 +19,7 @@ index 6ada92379..924187413 100644 if (bukkitEntity == null) { bukkitEntity = CraftEntity.getEntity(world.getServer(), this); diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index e6c55d87b..6379d2d84 100644 +index e6c55d87b4..6379d2d84f 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -1014,6 +1014,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -40,7 +40,7 @@ index e6c55d87b..6379d2d84 100644 protected void g() { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e780f7af4..627fec10a 100644 +index e780f7af40..627fec10a8 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -68,6 +68,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -52,7 +52,7 @@ index e780f7af4..627fec10a 100644 public boolean captureBlockStates = false; public boolean captureTreeGeneration = false; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index dc258e3b2..b11604957 100644 +index d8c49d95e1..93d1cf0683 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -72,6 +72,9 @@ public class WorldServer extends World { @@ -65,7 +65,7 @@ index dc258e3b2..b11604957 100644 // Add env and gen to constructor public WorldServer(MinecraftServer minecraftserver, Executor executor, WorldNBTStorage worldnbtstorage, WorldData worlddata, DimensionManager dimensionmanager, GameProfilerFiller gameprofilerfiller, WorldLoadListener worldloadlistener, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) { -@@ -936,6 +939,12 @@ public class WorldServer extends World { +@@ -942,6 +945,12 @@ public class WorldServer extends World { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); return true; } // Paper if (entity.dead) { @@ -78,7 +78,7 @@ index dc258e3b2..b11604957 100644 // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getName(entity.getEntityType())); // CraftBukkit return false; } else if (this.isUUIDTaken(entity)) { -@@ -1101,7 +1110,24 @@ public class WorldServer extends World { +@@ -1107,7 +1116,24 @@ public class WorldServer extends World { } } diff --git a/Spigot-Server-Patches/0268-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0268-Ignore-Dead-Entities-in-entityList-iteration.patch index 26a77524da..ccb1fea466 100644 --- a/Spigot-Server-Patches/0268-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0268-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -1,4 +1,4 @@ -From c1497231a38c361881fcc0d0be1f27fc5d945dea Mon Sep 17 00:00:00 2001 +From 711732dece46935958e265cecf83aa9e2a70417d Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 28 Jul 2018 12:18:27 -0400 Subject: [PATCH] Ignore Dead Entities in entityList iteration @@ -11,7 +11,7 @@ This will ensure that dead entities are skipped from iteration since they shouldn't of been in the list in the first place. diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java -index 360abc05e..391726d99 100644 +index 360abc05e4..391726d99c 100644 --- a/src/main/java/com/destroystokyo/paper/PaperCommand.java +++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java @@ -176,6 +176,7 @@ public class PaperCommand extends Command { @@ -23,7 +23,7 @@ index 360abc05e..391726d99 100644 MutablePair> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ()); diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index a74e389d1..09e010e67 100644 +index a74e389d14..09e010e670 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -678,6 +678,7 @@ public class Chunk implements IChunkAccess { @@ -51,7 +51,7 @@ index a74e389d1..09e010e67 100644 if (oclass.isInstance(t0) && t0.getBoundingBox().c(axisalignedbb) && (predicate == null || predicate.test(t0))) { // Spigot - instance check list.add(t0); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 701090c11..7d579c119 100644 +index 701090c11e..7d579c119b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -126,6 +126,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -63,10 +63,10 @@ index 701090c11..7d579c119 100644 private float av; private float aw; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index b11604957..4b7104927 100644 +index 93d1cf0683..20fb20c2e7 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -845,7 +845,7 @@ public class WorldServer extends World { +@@ -851,7 +851,7 @@ public class WorldServer extends World { while (objectiterator.hasNext()) { Entity entity = (Entity) objectiterator.next(); @@ -75,7 +75,7 @@ index b11604957..4b7104927 100644 if (entity instanceof EntityInsentient) { EntityInsentient entityinsentient = (EntityInsentient) entity; -@@ -1138,6 +1138,7 @@ public class WorldServer extends World { +@@ -1144,6 +1144,7 @@ public class WorldServer extends World { entity.origin = entity.getBukkitEntity().getLocation(); } // Paper end @@ -83,7 +83,7 @@ index b11604957..4b7104927 100644 new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid } -@@ -1151,6 +1152,7 @@ public class WorldServer extends World { +@@ -1157,6 +1158,7 @@ public class WorldServer extends World { this.removeEntityFromChunk(entity); this.entitiesById.remove(entity.getId()); this.unregisterEntity(entity); @@ -92,7 +92,7 @@ index b11604957..4b7104927 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 62240fbf9..a4df908bb 100644 +index 62240fbf92..a4df908bb9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -931,6 +931,7 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0286-Send-nearby-packets-from-world-player-list-not-serve.patch b/Spigot-Server-Patches/0286-Send-nearby-packets-from-world-player-list-not-serve.patch index aeabf46f3d..e85bbe5213 100644 --- a/Spigot-Server-Patches/0286-Send-nearby-packets-from-world-player-list-not-serve.patch +++ b/Spigot-Server-Patches/0286-Send-nearby-packets-from-world-player-list-not-serve.patch @@ -1,11 +1,11 @@ -From 636d42b7fd0f59ebb3a211c26f1b2c060ce6f7f5 Mon Sep 17 00:00:00 2001 +From dd89fe6e7813bf8bb59dc7e9df0ea17cd5ad6218 Mon Sep 17 00:00:00 2001 From: Mystiflow Date: Fri, 6 Jul 2018 13:21:30 +0100 Subject: [PATCH] Send nearby packets from world player list not server list diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 9e5cd22d7..049d702cb 100644 +index 9e5cd22d7d..049d702cb9 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -922,8 +922,25 @@ public abstract class PlayerList { @@ -46,10 +46,10 @@ index 9e5cd22d7..049d702cb 100644 double d5 = d1 - entityplayer.locY; double d6 = d2 - entityplayer.locZ; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 4b7104927..d8d4da7d1 100644 +index 20fb20c2e7..9172d08001 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1185,7 +1185,7 @@ public class WorldServer extends World { +@@ -1191,7 +1191,7 @@ public class WorldServer extends World { } // CraftBukkit end this.globalEntityList.add(entitylightning); @@ -58,7 +58,7 @@ index 4b7104927..d8d4da7d1 100644 } @Override -@@ -1317,7 +1317,7 @@ public class WorldServer extends World { +@@ -1323,7 +1323,7 @@ public class WorldServer extends World { BlockActionData blockactiondata = (BlockActionData) this.I.removeFirst(); if (this.a(blockactiondata)) { @@ -68,7 +68,7 @@ index 4b7104927..d8d4da7d1 100644 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index a4df908bb..9a7b0076f 100644 +index a4df908bb9..9a7b0076fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1998,7 +1998,7 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0288-Optimize-Hoppers.patch b/Spigot-Server-Patches/0288-Optimize-Hoppers.patch index 5aae109b8c..b3f1ab5aea 100644 --- a/Spigot-Server-Patches/0288-Optimize-Hoppers.patch +++ b/Spigot-Server-Patches/0288-Optimize-Hoppers.patch @@ -1,4 +1,4 @@ -From 5b801e3c5edad18b68fec16407515dc6c6b942b7 Mon Sep 17 00:00:00 2001 +From 5b14cf5c8f6cb08ef4991880537bae8439a94343 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 27 Apr 2016 22:09:52 -0400 Subject: [PATCH] Optimize Hoppers @@ -11,7 +11,7 @@ Subject: [PATCH] Optimize Hoppers * Skip subsequent InventoryMoveItemEvents if a plugin does not use the item after first event fire for an iteration diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 5832c3e86..ede558d02 100644 +index 5832c3e868..ede558d029 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -355,6 +355,15 @@ public class PaperWorldConfig { @@ -31,7 +31,7 @@ index 5832c3e86..ede558d02 100644 private void disableSprintInterruptionOnAttack() { disableSprintInterruptionOnAttack = getBoolean("game-mechanics.disable-sprint-interruption-on-attack", false); diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java -index c69a067ef..1e23d77e7 100644 +index c69a067ef1..1e23d77e72 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -482,8 +482,9 @@ public final class ItemStack { @@ -47,10 +47,10 @@ index c69a067ef..1e23d77e7 100644 itemstack.d(this.C()); if (this.tag != null) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e99e698c4..cd80d2a56 100644 +index 4efcbcbad5..ae33f2e948 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1137,6 +1137,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0; // Paper @@ -59,7 +59,7 @@ index e99e698c4..cd80d2a56 100644 this.methodProfiler.a(() -> { return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager()); diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java -index c72b01386..b8ddb99fa 100644 +index c72b013868..b8ddb99fa3 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java @@ -62,6 +62,7 @@ public abstract class TileEntity implements KeyedObject { // Paper @@ -79,7 +79,7 @@ index c72b01386..b8ddb99fa 100644 this.world.b(this.position, this); if (!this.c.isAir()) { diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java -index 1ba98bf73..6f6519f6c 100644 +index 1ba98bf736..6f6519f6c5 100644 --- a/src/main/java/net/minecraft/server/TileEntityHopper.java +++ b/src/main/java/net/minecraft/server/TileEntityHopper.java @@ -189,6 +189,154 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi diff --git a/Spigot-Server-Patches/0322-Limit-lightning-strike-effect-distance.patch b/Spigot-Server-Patches/0322-Limit-lightning-strike-effect-distance.patch index a97fa7c9b7..1728e24c37 100644 --- a/Spigot-Server-Patches/0322-Limit-lightning-strike-effect-distance.patch +++ b/Spigot-Server-Patches/0322-Limit-lightning-strike-effect-distance.patch @@ -1,11 +1,11 @@ -From 7dd2179e78684fc322f82017fc67d851a85ca677 Mon Sep 17 00:00:00 2001 +From e5cd8b14861c5e1e592df865cf45603cf7ed42bc Mon Sep 17 00:00:00 2001 From: Trigary Date: Fri, 14 Sep 2018 17:42:08 +0200 Subject: [PATCH] Limit lightning strike effect distance diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 7e031d18e..63f313a92 100644 +index 7e031d18e0..63f313a92d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -234,6 +234,28 @@ public class PaperWorldConfig { @@ -38,7 +38,7 @@ index 7e031d18e..63f313a92 100644 public int fixedInhabitedTime; private void fixedInhabitedTime() { diff --git a/src/main/java/net/minecraft/server/EntityLightning.java b/src/main/java/net/minecraft/server/EntityLightning.java -index 2ceee79cf..27bf271bb 100644 +index 2ceee79cf2..27bf271bb5 100644 --- a/src/main/java/net/minecraft/server/EntityLightning.java +++ b/src/main/java/net/minecraft/server/EntityLightning.java @@ -64,6 +64,17 @@ public class EntityLightning extends Entity { @@ -69,10 +69,10 @@ index 2ceee79cf..27bf271bb 100644 --this.lifeTicks; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index d8d4da7d1..dd9b9cbfa 100644 +index 9172d08001..9d92fb2a3f 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -1185,7 +1185,7 @@ public class WorldServer extends World { +@@ -1191,7 +1191,7 @@ public class WorldServer extends World { } // CraftBukkit end this.globalEntityList.add(entitylightning); diff --git a/Spigot-Server-Patches/0334-Optimize-World-Time-Updates.patch b/Spigot-Server-Patches/0334-Optimize-World-Time-Updates.patch index 4bcc65af1b..158da6fc3e 100644 --- a/Spigot-Server-Patches/0334-Optimize-World-Time-Updates.patch +++ b/Spigot-Server-Patches/0334-Optimize-World-Time-Updates.patch @@ -1,4 +1,4 @@ -From 00ff72f7dcdf3fa0d12681e7491bd52c59798c9d Mon Sep 17 00:00:00 2001 +From e81b7a80f13ef4a74b4c31279c19ed692cfb5c0e Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 2 Nov 2018 23:11:51 -0400 Subject: [PATCH] Optimize World Time Updates @@ -8,10 +8,10 @@ the updates per world, so that we can re-use the same packet object for every player unless they have per-player time enabled. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f6a979a5b..c92586ccd 100644 +index 3b948a0eed..7959fba8a8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1124,12 +1124,24 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Sun, 24 Mar 2019 00:24:52 -0400 Subject: [PATCH] Entity#getEntitySpawnReason @@ -10,7 +10,7 @@ persistenting Living Entity, SPAWNER for spawners, or DEFAULT since data was not stored. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 046e7e031..f87514a20 100644 +index 046e7e031c..f87514a200 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -68,6 +68,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -59,7 +59,7 @@ index 046e7e031..f87514a20 100644 } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 65df0e7c8..abddc8895 100644 +index 65df0e7c8c..abddc8895e 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -250,7 +250,7 @@ public abstract class PlayerList { @@ -72,10 +72,10 @@ index 65df0e7c8..abddc8895 100644 }); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index dd9b9cbfa..1745a164b 100644 +index 9d92fb2a3f..c791ab686e 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -937,6 +937,7 @@ public class WorldServer extends World { +@@ -943,6 +943,7 @@ public class WorldServer extends World { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot @@ -84,7 +84,7 @@ index dd9b9cbfa..1745a164b 100644 if (entity.dead) { // Paper start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 1cd3448e5..15042943c 100644 +index 1cd3448e57..15042943c9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1053,5 +1053,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/Spigot-Server-Patches/0372-Server-Tick-Events.patch b/Spigot-Server-Patches/0372-Server-Tick-Events.patch index 7e149d7be3..9013ddd024 100644 --- a/Spigot-Server-Patches/0372-Server-Tick-Events.patch +++ b/Spigot-Server-Patches/0372-Server-Tick-Events.patch @@ -1,4 +1,4 @@ -From 7ac59fdac9af57bab449c5d23341bdd924acad2c Mon Sep 17 00:00:00 2001 +From 92e78367f968c250304b0d7a05343e015ff8ce44 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 27 Mar 2019 22:48:45 -0400 Subject: [PATCH] Server Tick Events @@ -6,7 +6,7 @@ Subject: [PATCH] Server Tick Events Fires event at start and end of a server tick diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c92586ccd..73b8f7f99 100644 +index 7959fba8a8..d72c02680c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1054,6 +1054,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Mon, 13 May 2019 21:10:59 -0700 Subject: [PATCH] Fix CraftServer#isPrimaryThread and MinecraftServer @@ -16,10 +16,10 @@ handling that should have been handled synchronously will be handled synchronously when the server gets shut down. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 105aa4c46..200df602a 100644 +index cbc9502802..51be3f9adf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2149,7 +2149,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Fri, 28 Sep 2018 21:49:53 -0400 Subject: [PATCH] Fix issues with entity loss due to unloaded chunks @@ -19,10 +19,10 @@ This change ensures the chunks are always loaded when entities are added to the world, or a valid entity moves between chunks. diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 3734613efe..e37285e791 100644 +index c791ab686e..51f697b2c9 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -634,7 +634,7 @@ public class WorldServer extends World { +@@ -640,7 +640,7 @@ public class WorldServer extends World { this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY); } @@ -31,7 +31,7 @@ index 3734613efe..e37285e791 100644 entity.inChunk = false; } else { this.getChunkAt(i, k).a(entity); -@@ -955,7 +955,7 @@ public class WorldServer extends World { +@@ -961,7 +961,7 @@ public class WorldServer extends World { return false; } // CraftBukkit end diff --git a/Spigot-Server-Patches/0387-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0387-Duplicate-UUID-Resolve-Option.patch index 11600795a5..4b6fe8608e 100644 --- a/Spigot-Server-Patches/0387-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0387-Duplicate-UUID-Resolve-Option.patch @@ -1,4 +1,4 @@ -From 03a9af08fdb99d5eeec5eb9a363255440a714bcc Mon Sep 17 00:00:00 2001 +From 0774260e6ddf31b3c48d62ce459633e624768a2c Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 14:27:34 -0400 Subject: [PATCH] Duplicate UUID Resolve Option @@ -33,7 +33,7 @@ But for those who are ok with leaving this inconsistent behavior, you may use WA It is recommended you regenerate the entities, as these were legit entities, and deserve your love. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 91c809b7c..d8bb13693 100644 +index 91c809b7ce..d8bb13693d 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -444,4 +444,43 @@ public class PaperWorldConfig { @@ -81,7 +81,7 @@ index 91c809b7c..d8bb13693 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 09e010e67..ee8f80174 100644 +index 09e010e670..ee8f801745 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -397,6 +397,7 @@ public class Chunk implements IChunkAccess { @@ -93,7 +93,7 @@ index 09e010e67..ee8f80174 100644 int k = MathHelper.floor(entity.locY / 16.0D); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f87514a20..55c73ffca 100644 +index f87514a200..55c73ffcaa 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2728,6 +2728,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -105,7 +105,7 @@ index f87514a20..55c73ffca 100644 this.uniqueID = uuid; this.ap = this.uniqueID.toString(); diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 6379d2d84..67d011745 100644 +index 6379d2d84f..67d011745f 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -1,6 +1,7 @@ @@ -196,7 +196,7 @@ index 6379d2d84..67d011745 100644 if (list != null) { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index c01984dca..2a9ceacaf 100644 +index 51f697b2c9..e474237c24 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -2,6 +2,8 @@ package net.minecraft.server; @@ -208,7 +208,7 @@ index c01984dca..2a9ceacaf 100644 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Queues; -@@ -982,8 +984,23 @@ public class WorldServer extends World { +@@ -988,8 +990,23 @@ public class WorldServer extends World { if (entity1 == null) { return false; } else { @@ -234,7 +234,7 @@ index c01984dca..2a9ceacaf 100644 return true; } } -@@ -1116,7 +1133,7 @@ public class WorldServer extends World { +@@ -1122,7 +1139,7 @@ public class WorldServer extends World { } Entity old = this.entitiesByUUID.put(entity.getUniqueID(), entity); diff --git a/Spigot-Server-Patches/0389-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0389-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 890c842c28..e7ef3cdd44 100644 --- a/Spigot-Server-Patches/0389-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0389-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -1,4 +1,4 @@ -From f4ac025c6de88b7e2536490ab7f2c624c2268e96 Mon Sep 17 00:00:00 2001 +From c5d9df70d841184b48e1202c9ff00e6dbf660b45 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 13 Sep 2014 23:14:43 -0400 Subject: [PATCH] Configurable Keep Spawn Loaded range per world @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Keep Spawn Loaded range per world This lets you disable it for some worlds and lower it for others. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index d8bb13693..de11a91af 100644 +index d8bb13693d..de11a91af6 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -483,4 +483,10 @@ public class PaperWorldConfig { @@ -21,7 +21,7 @@ index d8bb13693..de11a91af 100644 + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 200df602a..98c2694a2 100644 +index 51be3f9adf..380c3663a6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -577,6 +577,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Sun, 2 Jun 2019 01:22:02 -0400 Subject: [PATCH] Actually-Limit-Natural-Spawns-To-Limit diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 4e60de0b6e..21032fa943 100644 +index 744fa825e6..3b7288c6cb 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -459,8 +459,12 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -465,8 +465,12 @@ public class ChunkProviderServer extends IChunkProvider { if (enumcreaturetype != EnumCreatureType.MISC && (!enumcreaturetype.c() || this.allowAnimals) && (enumcreaturetype.c() || this.allowMonsters) && (!enumcreaturetype.d() || flag2)) { int k1 = limit * l / ChunkProviderServer.b; // CraftBukkit - use per-world limits diff --git a/Spigot-Server-Patches/0396-incremental-chunk-saving.patch b/Spigot-Server-Patches/0396-incremental-chunk-saving.patch index 0f0aa56854..8f5dddf217 100644 --- a/Spigot-Server-Patches/0396-incremental-chunk-saving.patch +++ b/Spigot-Server-Patches/0396-incremental-chunk-saving.patch @@ -1,11 +1,11 @@ -From aec6947ae80ea5c923fc0f5a6984f036ff965b2a Mon Sep 17 00:00:00 2001 +From 26a439d52fa750663f2280641d8299ec5bdbfc4b Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 9 Jun 2019 03:53:22 +0100 Subject: [PATCH] incremental chunk saving diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index de11a91af..4d3c6c6b4 100644 +index de11a91af6..4d3c6c6b47 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -489,4 +489,19 @@ public class PaperWorldConfig { @@ -29,7 +29,7 @@ index de11a91af..4d3c6c6b4 100644 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index ee8f80174..2003522d9 100644 +index ee8f801745..2003522d96 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -42,7 +42,7 @@ public class Chunk implements IChunkAccess { @@ -42,7 +42,7 @@ index ee8f80174..2003522d9 100644 private long t; @Nullable diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 98c2694a2..e9a497359 100644 +index 380c3663a6..01b389d89f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -165,6 +165,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 100) { // Spigot diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 493770bf6..17eee15b2 100644 +index 493770bf68..17eee15b2d 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -325,15 +325,32 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -126,10 +126,10 @@ index 493770bf6..17eee15b2 100644 } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a98e2613a..20894e549 100644 +index 1003ea50d3..d709002c89 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -754,8 +754,9 @@ public class WorldServer extends World { +@@ -760,8 +760,9 @@ public class WorldServer extends World { ChunkProviderServer chunkproviderserver = this.getChunkProvider(); if (!flag1) { @@ -140,7 +140,7 @@ index a98e2613a..20894e549 100644 if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel", new Object[0])); } -@@ -764,6 +765,7 @@ public class WorldServer extends World { +@@ -770,6 +771,7 @@ public class WorldServer extends World { if (iprogressupdate != null) { iprogressupdate.c(new ChatMessage("menu.savingChunks", new Object[0])); } @@ -148,7 +148,7 @@ index a98e2613a..20894e549 100644 timings.worldSaveChunks.startTiming(); // Paper chunkproviderserver.save(flag); -@@ -771,6 +773,7 @@ public class WorldServer extends World { +@@ -777,6 +779,7 @@ public class WorldServer extends World { } // Paper } @@ -156,7 +156,7 @@ index a98e2613a..20894e549 100644 // CraftBukkit start - moved from MinecraftServer.saveChunks // PAIL - rename WorldServer worldserver1 = this; -@@ -780,6 +783,7 @@ public class WorldServer extends World { +@@ -786,6 +789,7 @@ public class WorldServer extends World { worlddata.c(this.server.getBossBattleCustomData().c()); worldserver1.getDataManager().saveWorldData(worlddata, this.server.getPlayerList().r()); // CraftBukkit end diff --git a/Spigot-Server-Patches/0403-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch b/Spigot-Server-Patches/0403-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch index 96f1b530a1..0573a22167 100644 --- a/Spigot-Server-Patches/0403-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch +++ b/Spigot-Server-Patches/0403-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch @@ -1,4 +1,4 @@ -From 75867964f818c34502a5eef6ef6d504166bc8721 Mon Sep 17 00:00:00 2001 +From 7b2643a897ec0574d7af42c7d004e3c643fa2e75 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 24 Mar 2019 01:01:32 -0400 Subject: [PATCH] Only count Natural Spawned mobs towards natural spawn mob @@ -38,10 +38,10 @@ index 929f5c3031..ff520d9e86 100644 public boolean asynchronous; public EngineMode engineMode; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index b7d536ff0e..9fb5af4717 100644 +index d709002c89..b8e964c974 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -864,6 +864,13 @@ public class WorldServer extends World { +@@ -870,6 +870,13 @@ public class WorldServer extends World { EnumCreatureType enumcreaturetype = entity.getEntityType().e(); if (enumcreaturetype != EnumCreatureType.MISC && this.getChunkProvider().b(entity)) {