diff --git a/Spigot-API-Patches/0096-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-API-Patches/0096-Expand-World.spawnParticle-API-and-add-Builder.patch index ac1f33451..233b4b8b6 100644 --- a/Spigot-API-Patches/0096-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-API-Patches/0096-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -515,10 +515,10 @@ index b32de827cf8d1780861c271b4215276fdaab7165..1020002ff7127877db2d7e096f2c5217 * Options which can be applied to redstone dust particles - a particle * color and size. diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index df2178aea2ac5420decc20a71f2337fd9a2ce33d..a8471e630769f8d9761ddf5a2ca2157822038fcc 100644 +index 4bffb3cadebb2081e8caae6b9d127591345411e6..994e289fcbfef03a56d005f9d1b91151f2cecfaa 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2542,7 +2542,57 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -2551,7 +2551,57 @@ public interface World extends PluginMessageRecipient, Metadatable { * @param data the data to use for the particle or null, * the type of this depends on {@link Particle#getDataType()} */ diff --git a/Spigot-API-Patches/0111-Expand-Explosions-API.patch b/Spigot-API-Patches/0111-Expand-Explosions-API.patch index 8f544b548..4c543ede8 100644 --- a/Spigot-API-Patches/0111-Expand-Explosions-API.patch +++ b/Spigot-API-Patches/0111-Expand-Explosions-API.patch @@ -106,10 +106,10 @@ index 4cf22afc3c1f1cc19b6e5350043431215908a612..af2ee43f2c5133668c18710f526a107d * Returns a list of entities within a bounding box centered around a Location. * diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index bd63ab47f7cf0a4e8ebed270933a60d7e602d15a..0f2da753bdc8d8fd0e636752c9393722c87b0d42 100644 +index 994e289fcbfef03a56d005f9d1b91151f2cecfaa..aa0e0b6d916e5ba01470ea94f9fd6fe0b2a7b4cf 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -1401,6 +1401,88 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -1410,6 +1410,88 @@ public interface World extends PluginMessageRecipient, Metadatable { */ public boolean createExplosion(@NotNull Location loc, float power, boolean setFire); diff --git a/Spigot-API-Patches/0156-Add-sun-related-API.patch b/Spigot-API-Patches/0156-Add-sun-related-API.patch index 440493a10..1c6589f86 100644 --- a/Spigot-API-Patches/0156-Add-sun-related-API.patch +++ b/Spigot-API-Patches/0156-Add-sun-related-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 9b8f354d79e6aad67faf5fc587df76264ceeac37..11d5df94788794da99572c57baec12ee1e58e0b1 100644 +index de607fe0a2e864dc66d9341b233d0d8b120db1f9..ad915c2a190fa5bb50cbf88dfd99798918c75a47 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1780,6 +1780,16 @@ public interface World extends PluginMessageRecipient, Metadatable { @@ -23,7 +23,7 @@ index 9b8f354d79e6aad67faf5fc587df76264ceeac37..11d5df94788794da99572c57baec12ee + // Paper end + /** - * Returns whether the world has an ongoing storm. + * Gets the full in-game time on this world since the world generation * diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java index b132287817d35579ca5128a1ed5c242bf229771a..d726453c041a980576312b6bee96a07837f37974 100644 diff --git a/Spigot-API-Patches/0201-World-view-distance-api.patch b/Spigot-API-Patches/0201-World-view-distance-api.patch index f95487bd8..248364be8 100644 --- a/Spigot-API-Patches/0201-World-view-distance-api.patch +++ b/Spigot-API-Patches/0201-World-view-distance-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] World view distance api diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 5905da5828752c8805faff3c96d2288260f4c4bc..bded64b3dea35a1b8945510bb3def5f436d92d62 100644 +index 607d46e819867b20549b6b2717a9b2b3c37797b5..22b913071af2526e73a571cdf8889b0f19e22d6e 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -3397,6 +3397,34 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -3406,6 +3406,34 @@ public interface World extends PluginMessageRecipient, Metadatable { int getViewDistance(); // Spigot end diff --git a/Spigot-API-Patches/0203-Spawn-Reason-API.patch b/Spigot-API-Patches/0203-Spawn-Reason-API.patch index 994050f08..ec97c0f2b 100644 --- a/Spigot-API-Patches/0203-Spawn-Reason-API.patch +++ b/Spigot-API-Patches/0203-Spawn-Reason-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spawn Reason API diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index ac149127ac7b1814bf0dfaa440cae558a860227d..9466202ffa7c75f85282fbc585498f8e72ae8b12 100644 +index 22b913071af2526e73a571cdf8889b0f19e22d6e..9b12fbec82017d8cbb21b5a8c3d563f1974dc1c5 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1,6 +1,8 @@ @@ -17,7 +17,7 @@ index ac149127ac7b1814bf0dfaa440cae558a860227d..9466202ffa7c75f85282fbc585498f8e import org.bukkit.generator.ChunkGenerator; import java.util.ArrayList; -@@ -2208,6 +2210,12 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -2217,6 +2219,12 @@ public interface World extends PluginMessageRecipient, Metadatable { @NotNull public T spawn(@NotNull Location location, @NotNull Class clazz) throws IllegalArgumentException; @@ -30,7 +30,7 @@ index ac149127ac7b1814bf0dfaa440cae558a860227d..9466202ffa7c75f85282fbc585498f8e /** * Spawn an entity of a specific class at the given {@link Location}, with * the supplied function run before the entity is added to the world. -@@ -2225,7 +2233,28 @@ public interface World extends PluginMessageRecipient, Metadatable { +@@ -2234,7 +2242,28 @@ public interface World extends PluginMessageRecipient, Metadatable { * {@link Entity} requested cannot be spawned */ @NotNull diff --git a/Spigot-Server-Patches/0004-MC-Utils.patch b/Spigot-Server-Patches/0004-MC-Utils.patch index 14aa39810..397053f3f 100644 --- a/Spigot-Server-Patches/0004-MC-Utils.patch +++ b/Spigot-Server-Patches/0004-MC-Utils.patch @@ -2411,7 +2411,7 @@ index 1b2f415e3ed7f6dca12d13cd098cb4ec3af54020..64e8088d394ddcda59d0209883b778ab @Override public BlockPosition immutableCopy() { diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 225e8fef6741d9bdbc8ac86cd17e54ddbf04a9e8..8d5598fab64ce3ac58121302dca4b528edd26563 100644 +index 9a07db3442d1ef2c1b1c1f1293445d28b0a4c84d..c8ff99ef5c7574292ee66a4aec45d1550eab1624 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -26,7 +26,7 @@ public class Chunk implements IChunkAccess { @@ -2572,7 +2572,7 @@ index 225e8fef6741d9bdbc8ac86cd17e54ddbf04a9e8..8d5598fab64ce3ac58121302dca4b528 @Override public Fluid getFluid(BlockPosition blockposition) { return this.a(blockposition.getX(), blockposition.getY(), blockposition.getZ()); -@@ -356,6 +473,7 @@ public class Chunk implements IChunkAccess { +@@ -357,6 +474,7 @@ public class Chunk implements IChunkAccess { entity.chunkX = this.loc.x; entity.chunkY = k; entity.chunkZ = this.loc.z; @@ -2580,7 +2580,7 @@ index 225e8fef6741d9bdbc8ac86cd17e54ddbf04a9e8..8d5598fab64ce3ac58121302dca4b528 this.entitySlices[k].add(entity); } -@@ -378,6 +496,7 @@ public class Chunk implements IChunkAccess { +@@ -380,6 +498,7 @@ public class Chunk implements IChunkAccess { } this.entitySlices[i].remove(entity); @@ -2588,7 +2588,7 @@ index 225e8fef6741d9bdbc8ac86cd17e54ddbf04a9e8..8d5598fab64ce3ac58121302dca4b528 } @Override -@@ -399,6 +518,7 @@ public class Chunk implements IChunkAccess { +@@ -401,6 +520,7 @@ public class Chunk implements IChunkAccess { return this.a(blockposition, Chunk.EnumTileEntityState.CHECK); } @@ -2596,7 +2596,7 @@ index 225e8fef6741d9bdbc8ac86cd17e54ddbf04a9e8..8d5598fab64ce3ac58121302dca4b528 @Nullable public TileEntity a(BlockPosition blockposition, Chunk.EnumTileEntityState chunk_enumtileentitystate) { // CraftBukkit start -@@ -510,7 +630,25 @@ public class Chunk implements IChunkAccess { +@@ -512,7 +632,25 @@ public class Chunk implements IChunkAccess { // CraftBukkit start public void loadCallback() { @@ -2622,7 +2622,7 @@ index 225e8fef6741d9bdbc8ac86cd17e54ddbf04a9e8..8d5598fab64ce3ac58121302dca4b528 if (server != null) { /* * If it's a new world, the first few chunks are generated inside -@@ -549,6 +687,22 @@ public class Chunk implements IChunkAccess { +@@ -551,6 +689,22 @@ public class Chunk implements IChunkAccess { server.getPluginManager().callEvent(unloadEvent); // note: saving can be prevented, but not forced if no saving is actually required this.mustNotSave = !unloadEvent.isSaveChunk(); @@ -4392,7 +4392,7 @@ index ff41038ce6d2c1a8093bce3539070fa0ccfd61c2..ed0f9c5d29c4f88b7beee4b0ecdd7a56 return VoxelShapes.b; } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 2ffa56f3580b524c3593505585410dc347e1780c..9c6b15e70bfb7db853c8e4a8dfd7b24bae27a70c 100644 +index 1606a7b4727fffef27d6bb08633b652b7e7fe588..6df28adb17d78a7f5189787a979a44fad677f05c 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -22,6 +22,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot @@ -4593,7 +4593,7 @@ index 9ad17c560c8d99a396543ab9f97c34de648f6544..4bf48f77f3f7cd62a91590543f5af441 currentTask = null; } diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index 3f55381c152b9841b524f623c9b32360e97cb8ed..d85e21b75054067b926ecfee89d62c6dd0744189 100644 +index a8ce875f801edc424b5277abf7471e73ce91e3e6..f5f70c1fe31e5c533991e2c857fe8c10a83b94fc 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -39,6 +39,21 @@ public class CraftTask implements BukkitTask, Runnable { // Spigot diff --git a/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch b/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch index 124b4d1b7..a6b0ae798 100644 --- a/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch +++ b/Spigot-Server-Patches/0007-Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch @@ -8,7 +8,7 @@ This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 8d5598fab64ce3ac58121302dca4b528edd26563..402f6ed90132f48d560a21f56cd50121c42fb34a 100644 +index c8ff99ef5c7574292ee66a4aec45d1550eab1624..7c5f79124d2f2c69548263e79752484e07e77d48 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -56,11 +56,36 @@ public class Chunk implements IChunkAccess { @@ -49,7 +49,7 @@ index 8d5598fab64ce3ac58121302dca4b528edd26563..402f6ed90132f48d560a21f56cd50121 this.l = Maps.newHashMap(); this.m = Maps.newHashMap(); this.n = new ShortList[16]; -@@ -470,6 +495,7 @@ public class Chunk implements IChunkAccess { +@@ -471,6 +496,7 @@ public class Chunk implements IChunkAccess { } entity.inChunk = true; @@ -57,7 +57,7 @@ index 8d5598fab64ce3ac58121302dca4b528edd26563..402f6ed90132f48d560a21f56cd50121 entity.chunkX = this.loc.x; entity.chunkY = k; entity.chunkZ = this.loc.z; -@@ -482,6 +508,7 @@ public class Chunk implements IChunkAccess { +@@ -483,6 +509,7 @@ public class Chunk implements IChunkAccess { ((HeightMap) this.heightMap.get(heightmap_type)).a(along); } @@ -65,7 +65,7 @@ index 8d5598fab64ce3ac58121302dca4b528edd26563..402f6ed90132f48d560a21f56cd50121 public void b(Entity entity) { this.a(entity, entity.chunkY); } -@@ -495,7 +522,12 @@ public class Chunk implements IChunkAccess { +@@ -497,7 +524,12 @@ public class Chunk implements IChunkAccess { i = this.entitySlices.length - 1; } @@ -80,7 +80,7 @@ index 8d5598fab64ce3ac58121302dca4b528edd26563..402f6ed90132f48d560a21f56cd50121 } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index f6b97eec33ace01077e6bca58f3c11978422ac47..5e0db989a0f6c7c7041a968550f4068b9a946136 100644 +index b8267cf23f795fd7e586b0e567037eae5048d08e..b35ffae9f88cc14aec01482c2a3ed2e2428c2012 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -176,7 +176,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch b/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch index 1b3233c08..a4a2a5f47 100644 --- a/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch +++ b/Spigot-Server-Patches/0008-Store-counts-for-each-Entity-Block-Entity-Type.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Store counts for each Entity/Block Entity Type Opens door for future patches to optimize performance diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 402f6ed90132f48d560a21f56cd50121c42fb34a..9f1db6491dafa8e32395db381466a3447395da7e 100644 +index 7c5f79124d2f2c69548263e79752484e07e77d48..853e11836b6c4eadd03feead101bf578b17b86a3 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -57,15 +57,19 @@ public class Chunk implements IChunkAccess { @@ -37,7 +37,7 @@ index 402f6ed90132f48d560a21f56cd50121c42fb34a..9f1db6491dafa8e32395db381466a344 } return removed; } -@@ -494,6 +499,7 @@ public class Chunk implements IChunkAccess { +@@ -495,6 +500,7 @@ public class Chunk implements IChunkAccess { k = this.entitySlices.length - 1; } @@ -45,7 +45,7 @@ index 402f6ed90132f48d560a21f56cd50121c42fb34a..9f1db6491dafa8e32395db381466a344 entity.inChunk = true; entity.setCurrentChunk(this); // Paper entity.chunkX = this.loc.x; -@@ -527,6 +533,7 @@ public class Chunk implements IChunkAccess { +@@ -529,6 +535,7 @@ public class Chunk implements IChunkAccess { if (!this.entitySlices[i].remove(entity)) { return; } diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 0a3bbd17f..0e7a9f9a4 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -738,10 +738,10 @@ index 871b79cb2c63525c430c257f00b2cf70157aa476..d847326b0099a0c05a085d5d62de6304 private String name; @Nullable diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 9f1db6491dafa8e32395db381466a3447395da7e..19ddcabdc17c23c4ec46f5669ba0fd56d4bbee58 100644 +index 853e11836b6c4eadd03feead101bf578b17b86a3..0aea16df16b55b1d4756b51d10c8c22d37aef9a3 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -697,6 +697,7 @@ public class Chunk implements IChunkAccess { +@@ -699,6 +699,7 @@ public class Chunk implements IChunkAccess { server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(this.bukkitChunk, this.needsDecoration)); if (this.needsDecoration) { @@ -749,7 +749,7 @@ index 9f1db6491dafa8e32395db381466a3447395da7e..19ddcabdc17c23c4ec46f5669ba0fd56 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(world.getSeed()); -@@ -716,6 +717,7 @@ public class Chunk implements IChunkAccess { +@@ -718,6 +719,7 @@ public class Chunk implements IChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -1007,7 +1007,7 @@ index d91b029c95b6380300db81e7c0fb172ff57958a1..218071260dec39dd4f7eb733ae6f832a } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 9f32f6c3c34464e82a953a50141343b0083dea71..ace7d5a36c0a44763d554d5d83cee7817f77fcc1 100644 +index b35ffae9f88cc14aec01482c2a3ed2e2428c2012..03933c24ed4d97e16bcebf6b89b1a8d1fc43cd0b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -31,7 +31,6 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent; diff --git a/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch b/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch index 1abdd2b2d..bbd1eaf65 100644 --- a/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch +++ b/Spigot-Server-Patches/0021-Remove-invalid-mob-spawner-tile-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove invalid mob spawner tile entities diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 19ddcabdc17c23c4ec46f5669ba0fd56d4bbee58..0da51a454b599f54f3bd443040cdcac57b1c7d7c 100644 +index 0aea16df16b55b1d4756b51d10c8c22d37aef9a3..0d0f36c62d260390827321aa6472f51a3a204c95 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -612,6 +612,10 @@ public class Chunk implements IChunkAccess { +@@ -614,6 +614,10 @@ public class Chunk implements IChunkAccess { } // CraftBukkit start diff --git a/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch index 9f4ed7bce..7f597196e 100644 --- a/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0054-Add-exception-reporting-event.patch @@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..f699ce18ca044f813e194ef2786b7ea8 + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 0da51a454b599f54f3bd443040cdcac57b1c7d7c..81c6ce3ba87da692675bca8b2831a90fabfa4e37 100644 +index 0d0f36c62d260390827321aa6472f51a3a204c95..01655fd86f9a3218036f8b5404e233d32e0904a5 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -1,5 +1,6 @@ @@ -59,7 +59,7 @@ index 0da51a454b599f54f3bd443040cdcac57b1c7d7c..81c6ce3ba87da692675bca8b2831a90f import com.google.common.collect.Maps; import com.google.common.collect.Sets; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -@@ -617,10 +618,15 @@ public class Chunk implements IChunkAccess { +@@ -619,10 +620,15 @@ public class Chunk implements IChunkAccess { this.tileEntities.remove(blockposition); // Paper end } else { diff --git a/Spigot-Server-Patches/0073-Configurable-Chunk-Inhabited-Time.patch b/Spigot-Server-Patches/0073-Configurable-Chunk-Inhabited-Time.patch index 7898d4b53..f3ecbeea8 100644 --- a/Spigot-Server-Patches/0073-Configurable-Chunk-Inhabited-Time.patch +++ b/Spigot-Server-Patches/0073-Configurable-Chunk-Inhabited-Time.patch @@ -30,10 +30,10 @@ index cd64fb9d0c6d123e1c86cb33f12cd9cefc9f80d0..74ba5dbb83c13ce1721619b755036a78 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index b6ff6095543d720382786e159a9f1cdd6eb6f166..f9ad646f3061914e55e424602abe27da7f1c0865 100644 +index 9ef17a2ad31c8e11ba433b49aa9a31cf8df57dc8..83858165764a7459843433de1a077037692a2a97 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -984,7 +984,7 @@ public class Chunk implements IChunkAccess { +@@ -986,7 +986,7 @@ public class Chunk implements IChunkAccess { @Override public long getInhabitedTime() { diff --git a/Spigot-Server-Patches/0114-Option-to-remove-corrupt-tile-entities.patch b/Spigot-Server-Patches/0114-Option-to-remove-corrupt-tile-entities.patch index f1fa88135..ecea71ce5 100644 --- a/Spigot-Server-Patches/0114-Option-to-remove-corrupt-tile-entities.patch +++ b/Spigot-Server-Patches/0114-Option-to-remove-corrupt-tile-entities.patch @@ -19,10 +19,10 @@ index 6eca3f300020006f02dd36253b522db442e3cc33..622affa0dc3cc1eadaed400511f2ca2c + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index f9ad646f3061914e55e424602abe27da7f1c0865..8dd560c8207f14123ab9c9820d8ce7333775db35 100644 +index 83858165764a7459843433de1a077037692a2a97..380690cdb1052b12d0574c111c2162bd7ed8ecca 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -641,6 +641,12 @@ public class Chunk implements IChunkAccess { +@@ -643,6 +643,12 @@ public class Chunk implements IChunkAccess { "Chunk coordinates: " + (this.loc.x * 16) + "," + (this.loc.z * 16)); e.printStackTrace(); ServerInternalException.reportInternalException(e); diff --git a/Spigot-Server-Patches/0136-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/Spigot-Server-Patches/0136-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index 1a64186e7..e6ce13ff4 100644 --- a/Spigot-Server-Patches/0136-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/Spigot-Server-Patches/0136-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -278,10 +278,10 @@ index a3ddf7be4c7ea588098381b8f05b2bad5b388853..99b20fa5feff0f766124d4ec9474852e } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 3f35e1290beaab1fa2ca93ec64ab0dd42d68d71c..85562d2cafab6f81705b70ac1f965ccfb38abdf5 100644 +index e42f27bb10b6ee279555cfee3c90a88fccad9d65..5bf5a815653b0556d9d2bcaf5f69026b77bd28a6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1822,7 +1822,7 @@ public class CraftWorld implements World { +@@ -1827,7 +1827,7 @@ public class CraftWorld implements World { } else if (TNTPrimed.class.isAssignableFrom(clazz)) { entity = new EntityTNTPrimed(world, x, y, z, null); } else if (ExperienceOrb.class.isAssignableFrom(clazz)) { diff --git a/Spigot-Server-Patches/0212-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0212-Expand-World.spawnParticle-API-and-add-Builder.patch index 1628be677..97a93de58 100644 --- a/Spigot-Server-Patches/0212-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-Server-Patches/0212-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -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 8e005ead10a9ac738b0e626239926bbf30e16695..78e99f072304fbddec95fed488b4b14743bd1252 100644 +index e23a5f446a1e357493f5232c39baa45f7386a637..a1491094b58cf814d7b05d6c0ce4067bf34dae1a 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -61,7 +61,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -43,10 +43,10 @@ index 8e005ead10a9ac738b0e626239926bbf30e16695..78e99f072304fbddec95fed488b4b147 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 7b8440c58471315d7b8af786ba8daddc1625865f..88774ab77801476c16506699ad2d53c4e360e20a 100644 +index 5bf5a815653b0556d9d2bcaf5f69026b77bd28a6..94fd77595a6bf2ee8deace75e243e5ce4286d82d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2334,11 +2334,17 @@ public class CraftWorld implements World { +@@ -2339,11 +2339,17 @@ public class CraftWorld implements World { @Override public void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) { diff --git a/Spigot-Server-Patches/0216-Allow-spawning-Item-entities-with-World.spawnEntity.patch b/Spigot-Server-Patches/0216-Allow-spawning-Item-entities-with-World.spawnEntity.patch index f47357f83..de477b392 100644 --- a/Spigot-Server-Patches/0216-Allow-spawning-Item-entities-with-World.spawnEntity.patch +++ b/Spigot-Server-Patches/0216-Allow-spawning-Item-entities-with-World.spawnEntity.patch @@ -8,10 +8,10 @@ This API has more capabilities than .dropItem with the Consumer function Item can be set inside of the Consumer pre spawn function. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 88774ab77801476c16506699ad2d53c4e360e20a..4028996bcd0317dc487680ecbca30563c68fbe10 100644 +index 94fd77595a6bf2ee8deace75e243e5ce4286d82d..3518505236e1b5c7267bc65756acd60f34873cfc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1502,6 +1502,10 @@ public class CraftWorld implements World { +@@ -1507,6 +1507,10 @@ public class CraftWorld implements World { if (Boat.class.isAssignableFrom(clazz)) { entity = new EntityBoat(world, x, y, z); entity.setPositionRotation(x, y, z, yaw, pitch); diff --git a/Spigot-Server-Patches/0228-Expand-Explosions-API.patch b/Spigot-Server-Patches/0228-Expand-Explosions-API.patch index d9151a168..33d335e1b 100644 --- a/Spigot-Server-Patches/0228-Expand-Explosions-API.patch +++ b/Spigot-Server-Patches/0228-Expand-Explosions-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API Add Entity as a Source capability, and add more API choices, and on Location. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index b092a01bc061563cb095b3d81e8595c26bf1e85e..f2badcd265fe717132a377da7ca8d11d64c32871 100644 +index 3518505236e1b5c7267bc65756acd60f34873cfc..5059ae88375ca9077f02fa521b9ff35018584417 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -877,6 +877,11 @@ public class CraftWorld implements World { +@@ -882,6 +882,11 @@ public class CraftWorld implements World { public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) { return !world.createExplosion(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? Explosion.Effect.BREAK : Explosion.Effect.NONE).wasCanceled; } diff --git a/Spigot-Server-Patches/0232-Implement-World.getEntity-UUID-API.patch b/Spigot-Server-Patches/0232-Implement-World.getEntity-UUID-API.patch index b594abab1..6931f8ac7 100644 --- a/Spigot-Server-Patches/0232-Implement-World.getEntity-UUID-API.patch +++ b/Spigot-Server-Patches/0232-Implement-World.getEntity-UUID-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement World.getEntity(UUID) API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index f2badcd265fe717132a377da7ca8d11d64c32871..e5e27c2ecc92f1a8c33cc7442e7034de1b4a4a84 100644 +index 5059ae88375ca9077f02fa521b9ff35018584417..6c58b404807c109bacdf6f3d35fbb05329ea8465 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1291,6 +1291,15 @@ public class CraftWorld implements World { +@@ -1296,6 +1296,15 @@ public class CraftWorld implements World { return list; } diff --git a/Spigot-Server-Patches/0248-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch b/Spigot-Server-Patches/0248-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch index 69204c099..49acb393e 100644 --- a/Spigot-Server-Patches/0248-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch +++ b/Spigot-Server-Patches/0248-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Mark chunk dirty anytime entities change to guarantee it diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 8dd560c8207f14123ab9c9820d8ce7333775db35..90b2a891c5bfa26ab1ff6738f58719a10d5cbed6 100644 +index 380690cdb1052b12d0574c111c2162bd7ed8ecca..84ad87f4a1ab9c136e00f4c9f029853d82f57247 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -523,6 +523,7 @@ public class Chunk implements IChunkAccess { +@@ -524,6 +524,7 @@ public class Chunk implements IChunkAccess { entity.chunkZ = this.loc.z; this.entities.add(entity); // Paper - per chunk entity list this.entitySlices[k].add(entity); @@ -17,7 +17,7 @@ index 8dd560c8207f14123ab9c9820d8ce7333775db35..90b2a891c5bfa26ab1ff6738f58719a1 } @Override -@@ -550,6 +551,7 @@ public class Chunk implements IChunkAccess { +@@ -552,6 +553,7 @@ public class Chunk implements IChunkAccess { return; } entityCounts.decrement(entity.getMinecraftKeyString()); diff --git a/Spigot-Server-Patches/0249-Add-some-Debug-to-Chunk-Entity-slices.patch b/Spigot-Server-Patches/0249-Add-some-Debug-to-Chunk-Entity-slices.patch index 03a6fa611..c8c69a78f 100644 --- a/Spigot-Server-Patches/0249-Add-some-Debug-to-Chunk-Entity-slices.patch +++ b/Spigot-Server-Patches/0249-Add-some-Debug-to-Chunk-Entity-slices.patch @@ -9,10 +9,10 @@ This should hopefully avoid duplicate entities ever being created if the entity was to end up in 2 different chunk slices diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 90b2a891c5bfa26ab1ff6738f58719a10d5cbed6..8b9454fd44fe1d14eb6d46f772be56937c99595a 100644 +index 84ad87f4a1ab9c136e00f4c9f029853d82f57247..e829f62397d092fa919d387b157a65b0c627e2e2 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -514,6 +514,25 @@ public class Chunk implements IChunkAccess { +@@ -515,6 +515,25 @@ public class Chunk implements IChunkAccess { if (k >= this.entitySlices.length) { k = this.entitySlices.length - 1; } @@ -38,7 +38,7 @@ index 90b2a891c5bfa26ab1ff6738f58719a10d5cbed6..8b9454fd44fe1d14eb6d46f772be5693 if (!entity.inChunk || entity.getCurrentChunk() != this) entityCounts.increment(entity.getMinecraftKeyString()); // Paper entity.inChunk = true; -@@ -523,6 +542,7 @@ public class Chunk implements IChunkAccess { +@@ -524,6 +543,7 @@ public class Chunk implements IChunkAccess { entity.chunkZ = this.loc.z; this.entities.add(entity); // Paper - per chunk entity list this.entitySlices[k].add(entity); @@ -46,7 +46,7 @@ index 90b2a891c5bfa26ab1ff6738f58719a10d5cbed6..8b9454fd44fe1d14eb6d46f772be5693 this.markDirty(); // Paper } -@@ -547,6 +567,10 @@ public class Chunk implements IChunkAccess { +@@ -549,6 +569,10 @@ public class Chunk implements IChunkAccess { // Paper start if (entity.currentChunk != null && entity.currentChunk.get() == this) entity.setCurrentChunk(null); @@ -58,7 +58,7 @@ index 90b2a891c5bfa26ab1ff6738f58719a10d5cbed6..8b9454fd44fe1d14eb6d46f772be5693 return; } diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 02e4ce705c2a7a1cdc7024a6c3db799db8922ce9..29b24fd75f06501a814868d1fab85c9b818bd316 100644 +index c7c8dd944c084c281568cb6444c8bda35b35a4df..da195d9bb6995fcbe569ca2e2b08c473431376a6 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -71,6 +71,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke diff --git a/Spigot-Server-Patches/0253-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0253-Ignore-Dead-Entities-in-entityList-iteration.patch index 5f66f7521..4963089a0 100644 --- a/Spigot-Server-Patches/0253-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0253-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -23,10 +23,10 @@ index 9cb2f3b31921870ddba044840e99eb04babe26bb..f0a836db74ad3e20778d3863223bc9a3 MutablePair> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.chunkX, e.chunkZ); diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 8b9454fd44fe1d14eb6d46f772be56937c99595a..a35cd4df85f0043b83f2f70cec6091d6bae89767 100644 +index e829f62397d092fa919d387b157a65b0c627e2e2..3cb1ee261724e34a23c4a0f98673da1597786a01 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -823,6 +823,7 @@ public class Chunk implements IChunkAccess { +@@ -825,6 +825,7 @@ public class Chunk implements IChunkAccess { for (int i1 = 0; i1 < l; ++i1) { Entity entity1 = (Entity) list1.get(i1); @@ -34,7 +34,7 @@ index 8b9454fd44fe1d14eb6d46f772be56937c99595a..a35cd4df85f0043b83f2f70cec6091d6 if (entity1.getBoundingBox().c(axisalignedbb) && entity1 != entity) { if (predicate == null || predicate.test(entity1)) { -@@ -860,6 +861,7 @@ public class Chunk implements IChunkAccess { +@@ -862,6 +863,7 @@ public class Chunk implements IChunkAccess { while (iterator.hasNext()) { T entity = (T) iterator.next(); // CraftBukkit - decompile error @@ -42,7 +42,7 @@ index 8b9454fd44fe1d14eb6d46f772be56937c99595a..a35cd4df85f0043b83f2f70cec6091d6 if ((entitytypes == null || entity.getEntityType() == entitytypes) && entity.getBoundingBox().c(axisalignedbb) && predicate.test(entity)) { list.add(entity); -@@ -882,6 +884,7 @@ public class Chunk implements IChunkAccess { +@@ -884,6 +886,7 @@ public class Chunk implements IChunkAccess { while (iterator.hasNext()) { T t0 = (T) iterator.next(); // CraftBukkit - decompile error @@ -51,7 +51,7 @@ index 8b9454fd44fe1d14eb6d46f772be56937c99595a..a35cd4df85f0043b83f2f70cec6091d6 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 29b24fd75f06501a814868d1fab85c9b818bd316..b2cccdc9f2f243cd3fb1283ade0280b2acb0f772 100644 +index da195d9bb6995fcbe569ca2e2b08c473431376a6..49c7b40744adcd36e5ae1eef026679e9b646feac 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -190,6 +190,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -63,7 +63,7 @@ index 29b24fd75f06501a814868d1fab85c9b818bd316..b2cccdc9f2f243cd3fb1283ade0280b2 public float getBukkitYaw() { return this.yaw; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 0d78071a1d91c0289992d84a3858102e56434356..46624d1832eb76aed688da5e1cf6c7dc304d610b 100644 +index d6c319c1177e43eebeb7d9f366da3495b38b6b97..1cbb1c3ddf45cd6d650ca274af4545f2d1c8a813 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -1198,6 +1198,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -83,10 +83,10 @@ index 0d78071a1d91c0289992d84a3858102e56434356..46624d1832eb76aed688da5e1cf6c7dc } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9799e870ed5eff4053178b65e3f327892d5cfd5b..015fba96878fc48494bed06b94983ad408d186c5 100644 +index 6c58b404807c109bacdf6f3d35fbb05329ea8465..47d407af1a770404284c591978978b229cbf7541 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1027,6 +1027,7 @@ public class CraftWorld implements World { +@@ -1032,6 +1032,7 @@ public class CraftWorld implements World { for (Object o : world.entitiesById.values()) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o; @@ -94,7 +94,7 @@ index 9799e870ed5eff4053178b65e3f327892d5cfd5b..015fba96878fc48494bed06b94983ad4 Entity bukkitEntity = mcEnt.getBukkitEntity(); // Assuming that bukkitEntity isn't null -@@ -1046,6 +1047,7 @@ public class CraftWorld implements World { +@@ -1051,6 +1052,7 @@ public class CraftWorld implements World { for (Object o : world.entitiesById.values()) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o; @@ -102,7 +102,7 @@ index 9799e870ed5eff4053178b65e3f327892d5cfd5b..015fba96878fc48494bed06b94983ad4 Entity bukkitEntity = mcEnt.getBukkitEntity(); // Assuming that bukkitEntity isn't null -@@ -1072,6 +1074,7 @@ public class CraftWorld implements World { +@@ -1077,6 +1079,7 @@ public class CraftWorld implements World { for (Object entity: world.entitiesById.values()) { if (entity instanceof net.minecraft.server.Entity) { @@ -110,7 +110,7 @@ index 9799e870ed5eff4053178b65e3f327892d5cfd5b..015fba96878fc48494bed06b94983ad4 Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity(); if (bukkitEntity == null) { -@@ -1095,6 +1098,7 @@ public class CraftWorld implements World { +@@ -1100,6 +1103,7 @@ public class CraftWorld implements World { for (Object entity: world.entitiesById.values()) { if (entity instanceof net.minecraft.server.Entity) { diff --git a/Spigot-Server-Patches/0294-Add-sun-related-API.patch b/Spigot-Server-Patches/0294-Add-sun-related-API.patch index 298483434..51b920af1 100644 --- a/Spigot-Server-Patches/0294-Add-sun-related-API.patch +++ b/Spigot-Server-Patches/0294-Add-sun-related-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 38bf49da2cc6b2f7068462ea8b57cf3a76ae1779..d91503b3e46c6ded3d77da4feeb8350df5bf924c 100644 +index fbecc8ccab47b428c43530ad344e325538cf242d..800a8dd2543f0b83eec67e780510427467649d5d 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -1529,6 +1529,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -17,7 +17,7 @@ index 38bf49da2cc6b2f7068462ea8b57cf3a76ae1779..d91503b3e46c6ded3d77da4feeb8350d if (this.world.isDay() && !this.world.isClientSide) { float f = this.aR(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index d193667beca3da156d8ae17cd80f4bf4c1dbfc8c..98af366848dba468d526d037a5e78fde4a4eda59 100644 +index bc10ccd76fcf3f03c23f52064c4db17bcad1c574..46a7e7b2f6079df036d2b73c82d7bf5ea1b07871 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -858,6 +858,13 @@ public class CraftWorld implements World { @@ -32,8 +32,8 @@ index d193667beca3da156d8ae17cd80f4bf4c1dbfc8c..98af366848dba468d526d037a5e78fde + // Paper end + @Override - public boolean createExplosion(double x, double y, double z, float power) { - return createExplosion(x, y, z, power, false, true); + public long getGameTime() { + return world.worldData.getTime(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java index c89bc7024b650c3b6d2c551f0e4e156975570cca..eaad222fd38a4db4074db04c931bcff7a9ca5e24 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java diff --git a/Spigot-Server-Patches/0350-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0350-Duplicate-UUID-Resolve-Option.patch index 30c3b5ba7..ea4852800 100644 --- a/Spigot-Server-Patches/0350-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0350-Duplicate-UUID-Resolve-Option.patch @@ -81,10 +81,10 @@ index fbf3ccfb347a5ba6e895339e9576629d940d1aa4..38d25a12c6a52d8a83214e2a0f43a218 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index a35cd4df85f0043b83f2f70cec6091d6bae89767..714ef2a305fe98895ab5eb9190826bafbb157f59 100644 +index 3cb1ee261724e34a23c4a0f98673da1597786a01..b258d4a85c41c2de55a28c565766f57c3f1604ff 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -503,6 +503,7 @@ public class Chunk implements IChunkAccess { +@@ -504,6 +504,7 @@ public class Chunk implements IChunkAccess { if (i != this.loc.x || j != this.loc.z) { Chunk.LOGGER.warn("Wrong location! ({}, {}) should be ({}, {}), {}", i, j, this.loc.x, this.loc.z, entity); entity.dead = true; @@ -93,7 +93,7 @@ index a35cd4df85f0043b83f2f70cec6091d6bae89767..714ef2a305fe98895ab5eb9190826baf 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 0d7f1a3f3861347479c90c8901b81429bf8629b2..53868afe6b8f7161a2fe30c23195e37cf00193a3 100644 +index 1dbeda9fb385be29b3bb20c33a0487334c6e7c16..595adbeb253529720e72f695667d5bf9584ebaf0 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -2711,6 +2711,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -197,7 +197,7 @@ index 4bbcd00950405a4bf3ce391b557049a3b1d4aee8..2db0f3e060850ae65033f878ed46b678 ChunkCoordIntPair chunkcoordintpair = playerchunk.i(); CompletableFuture, PlayerChunk.Failure>> completablefuture = this.a(chunkcoordintpair, 1, (i) -> { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 8d220f165435f0c73552dc5e6c912aefbaf91ee1..de2bdd55213613f439cd797bfe01986c8851eaa4 100644 +index 58c00add7c64c425150342c3840aa533b605ca7b..33e30ed20c99ab237f86c9d8746041a5b046bd42 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -4,6 +4,8 @@ import com.google.common.annotations.VisibleForTesting; diff --git a/Spigot-Server-Patches/0352-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0352-Configurable-Keep-Spawn-Loaded-range-per-world.patch index be5c8732f..7ee48984e 100644 --- a/Spigot-Server-Patches/0352-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0352-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -21,7 +21,7 @@ index 38d25a12c6a52d8a83214e2a0f43a218cf15ceac..ffe9b1a63d78925e1d77b9e730aef42f + } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 44991803a489a42842f79ce51bdd53a73ef35d71..7d9a3375d289deccdfa0f4caa8a2088550c560aa 100644 +index 83a0dc052683ad2de6843d49d2e2a861d94e8de2..816ab7ac0485f3eb80d461711800e84129f50d64 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -597,35 +597,36 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant ticklist, TickList ticklist1, long i, @Nullable ChunkSection[] achunksection, @Nullable Consumer consumer) { -@@ -543,6 +547,13 @@ public class Chunk implements IChunkAccess { +@@ -544,6 +548,13 @@ public class Chunk implements IChunkAccess { entity.chunkZ = this.loc.z; this.entities.add(entity); // Paper - per chunk entity list this.entitySlices[k].add(entity); @@ -42,7 +42,7 @@ index 68a6e8e3425291eb28f1759ecdd54eb80612f3a4..08d122f7f20e3c2cdfeababb41b0a891 entity.entitySlice = this.entitySlices[k]; // Paper this.markDirty(); // Paper } -@@ -575,6 +586,11 @@ public class Chunk implements IChunkAccess { +@@ -577,6 +588,11 @@ public class Chunk implements IChunkAccess { if (!this.entitySlices[i].remove(entity)) { return; } @@ -54,7 +54,7 @@ index 68a6e8e3425291eb28f1759ecdd54eb80612f3a4..08d122f7f20e3c2cdfeababb41b0a891 entityCounts.decrement(entity.getMinecraftKeyString()); this.markDirty(); // Paper // Paper end -@@ -860,6 +876,14 @@ public class Chunk implements IChunkAccess { +@@ -862,6 +878,14 @@ public class Chunk implements IChunkAccess { for (int k = i; k <= j; ++k) { Iterator iterator = this.entitySlices[k].iterator(); // Spigot @@ -69,7 +69,7 @@ index 68a6e8e3425291eb28f1759ecdd54eb80612f3a4..08d122f7f20e3c2cdfeababb41b0a891 while (iterator.hasNext()) { T entity = (T) iterator.next(); // CraftBukkit - decompile error if (entity.shouldBeRemoved) continue; // Paper -@@ -880,9 +904,29 @@ public class Chunk implements IChunkAccess { +@@ -882,9 +906,29 @@ public class Chunk implements IChunkAccess { i = MathHelper.clamp(i, 0, this.entitySlices.length - 1); j = MathHelper.clamp(j, 0, this.entitySlices.length - 1); diff --git a/Spigot-Server-Patches/0368-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0368-Asynchronous-chunk-IO-and-loading.patch index 47c61e6b9..a8f554599 100644 --- a/Spigot-Server-Patches/0368-Asynchronous-chunk-IO-and-loading.patch +++ b/Spigot-Server-Patches/0368-Asynchronous-chunk-IO-and-loading.patch @@ -2950,7 +2950,7 @@ index 85f7cfa1fade8d574e7f85d857ab071c66ec4a95..e79ed0b5702688aaa5a86dc5a511c326 DedicatedServer dedicatedserver1 = new DedicatedServer(optionset, datapackconfiguration1, thread, iregistrycustom_dimension, convertable_conversionsession, resourcepackrepository, datapackresources, null, dedicatedserversettings, DataConverterRegistry.a(), minecraftsessionservice, gameprofilerepository, usercache, WorldLoadListenerLogger::new); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8e2971458b4fbac7d288c190245bb0f8e1c84d7a..10be85be566d486a486e2e0a61b3aa33858cab27 100644 +index cb551b24a103ff81459483d61050948840c27064..04a149a4902790c6b6d3c54a1738fb0cf2d462f9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -801,7 +801,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index ccb37f6828fe2edb9358c93daa9f67edeef1f920..a999683d6d16d3704c76b1af95255ad3c02a9fc2 100644 +index a468398008c176c67ead844e21b0dbf6cc4a9bf7..f9d3e7a774f6621cb8608d3dfa8676c3d13a174f 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -98,6 +98,79 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -4015,7 +4015,7 @@ index ccb37f6828fe2edb9358c93daa9f67edeef1f920..a999683d6d16d3704c76b1af95255ad3 } public void removeTicketsForSpawn(int radiusInBlocks, BlockPosition spawn) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index dd3c24b4de393f4eaca88484ccf94b620fd28bdc..191660c6c3fd7272daec09f8986a3668479cc6ed 100644 +index 32c4b0089bc4ab1351e74e04b4e07c79beb9e328..83d1c748c0dd3004c4a479ca58f634d6a9b6faf4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -75,6 +75,7 @@ import net.minecraft.server.IBlockData; @@ -4058,7 +4058,7 @@ index dd3c24b4de393f4eaca88484ccf94b620fd28bdc..191660c6c3fd7272daec09f8986a3668 // fall through to load // we do this so we do not re-read the chunk data on disk -@@ -2484,6 +2486,34 @@ public class CraftWorld implements World { +@@ -2489,6 +2491,34 @@ public class CraftWorld implements World { public DragonBattle getEnderDragonBattle() { return (getHandle().getDragonBattle() == null) ? null : new CraftDragonBattle(getHandle().getDragonBattle()); } diff --git a/Spigot-Server-Patches/0380-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch b/Spigot-Server-Patches/0380-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch index d1ffcc079..732fa7656 100644 --- a/Spigot-Server-Patches/0380-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch +++ b/Spigot-Server-Patches/0380-Fix-spawning-of-hanging-entities-that-are-not-ItemFr.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix spawning of hanging entities that are not ItemFrames and diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 191660c6c3fd7272daec09f8986a3668479cc6ed..f826f656efd54672c20cb3240d7ef7acd834b9f5 100644 +index 83d1c748c0dd3004c4a479ca58f634d6a9b6faf4..6ddfeea46997907f1dd666000c7cc2eb27cd4398 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1875,7 +1875,12 @@ public class CraftWorld implements World { +@@ -1880,7 +1880,12 @@ public class CraftWorld implements World { height = 9; } diff --git a/Spigot-Server-Patches/0407-Optimise-random-block-ticking.patch b/Spigot-Server-Patches/0407-Optimise-random-block-ticking.patch index 6e1ab7bf3..9e5b261d9 100644 --- a/Spigot-Server-Patches/0407-Optimise-random-block-ticking.patch +++ b/Spigot-Server-Patches/0407-Optimise-random-block-ticking.patch @@ -83,10 +83,10 @@ index f068436960c96b0df427bcdf337a4dcc6a9f66f5..253423acc3c3697a5e47136f34da9261 return this.d(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ()); } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 08d122f7f20e3c2cdfeababb41b0a8910760b80b..81504bfbbd4a987c95f35d0f25754dbf8b2487e4 100644 +index 0601e9cdeb33dec82642ee9fbfaac1712bd0fae9..49bcd959206eeb21ff743f827a076b0c4cd3c722 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -597,8 +597,8 @@ public class Chunk implements IChunkAccess { +@@ -599,8 +599,8 @@ public class Chunk implements IChunkAccess { this.entities.remove(entity); // Paper } diff --git a/Spigot-Server-Patches/0469-No-Tick-view-distance-implementation.patch b/Spigot-Server-Patches/0469-No-Tick-view-distance-implementation.patch index 65cf5a77d..59234c571 100644 --- a/Spigot-Server-Patches/0469-No-Tick-view-distance-implementation.patch +++ b/Spigot-Server-Patches/0469-No-Tick-view-distance-implementation.patch @@ -37,7 +37,7 @@ index 46ac6d91422423f1e03b86d3efa3241f2599000d..6463d3e4837d032a35654a035f42b8a8 + } } diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 8e91a0270a7a72f09dfc86331a788765de1f9f5e..544f4a473d1453e029111bea45483543e3bcbabb 100644 +index 63de4bba14df9bc33ce04fff5bc0baede6fad6f7..0347dca5d2e40ba078d3f256e17f69ee7f0265cc 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -202,7 +202,51 @@ public class Chunk implements IChunkAccess { @@ -92,7 +92,7 @@ index 8e91a0270a7a72f09dfc86331a788765de1f9f5e..544f4a473d1453e029111bea45483543 } public final boolean isAnyNeighborsLoaded() { -@@ -1089,7 +1133,7 @@ public class Chunk implements IChunkAccess { +@@ -1091,7 +1135,7 @@ public class Chunk implements IChunkAccess { IBlockData iblockdata = this.getType(blockposition); IBlockData iblockdata1 = Block.b(iblockdata, (GeneratorAccess) this.world, blockposition); @@ -627,10 +627,10 @@ index d26fd68b2abd4907138ce77a6e6bb45c9af4af02..b5127f4b2deaa70b411991d78657f0c9 if ((i & 1) != 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 8f221c3b4c4cc9b5dea9938d868a2a036854d6e3..48dc8ed1294ac53216d7014b0b3130acb8e5b328 100644 +index 756c675939c5f5835736e6b8c42ae20941712c49..b55523c573d1d44e84a7a63502473dc33eb1538c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2535,10 +2535,39 @@ public class CraftWorld implements World { +@@ -2540,10 +2540,39 @@ public class CraftWorld implements World { // Spigot start @Override public int getViewDistance() { diff --git a/Spigot-Server-Patches/0484-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/Spigot-Server-Patches/0484-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index 1f2166480..c5ee62793 100644 --- a/Spigot-Server-Patches/0484-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/Spigot-Server-Patches/0484-Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -1222,10 +1222,10 @@ index d7b9d9fd3a3b607278a3d72b0b306b0be2aa30ad..6fd852db6bcfbfbf84ec2acf6d23b08a public static TicketType a(String s, Comparator comparator) { return new TicketType<>(s, comparator, 0L); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 48dc8ed1294ac53216d7014b0b3130acb8e5b328..560590c3c772eb91d562c622b627af36bf394609 100644 +index b55523c573d1d44e84a7a63502473dc33eb1538c..925aa6dddb4f572a05e7b5be5a0a201162b7b1eb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2525,6 +2525,10 @@ public class CraftWorld implements World { +@@ -2530,6 +2530,10 @@ public class CraftWorld implements World { return future; } diff --git a/Spigot-Server-Patches/0494-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/Spigot-Server-Patches/0494-Add-Plugin-Tickets-to-API-Chunk-Methods.patch index f061674d0..b921b862d 100644 --- a/Spigot-Server-Patches/0494-Add-Plugin-Tickets-to-API-Chunk-Methods.patch +++ b/Spigot-Server-Patches/0494-Add-Plugin-Tickets-to-API-Chunk-Methods.patch @@ -44,7 +44,7 @@ index 8c454db0986fe5c23f7b8ece0abdad1f1e36cf08..94c91b38ec71a03fc3bc5b1e15f9737c printSaveWarning = false; console.autosavePeriod = configuration.getInt("ticks-per.autosave"); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 560590c3c772eb91d562c622b627af36bf394609..10697f8b5208a72bf3d7248c5abd73ddd10420cd 100644 +index 925aa6dddb4f572a05e7b5be5a0a201162b7b1eb..e32e972b00098bf1851b7974218c24eee55682d9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -407,9 +407,22 @@ public class CraftWorld implements World { @@ -112,7 +112,7 @@ index 560590c3c772eb91d562c622b627af36bf394609..10697f8b5208a72bf3d7248c5abd73dd world.getChunkProvider().getChunkAt(x, z, ChunkStatus.FULL, true); return true; // Paper end -@@ -2531,6 +2546,7 @@ public class CraftWorld implements World { +@@ -2536,6 +2551,7 @@ public class CraftWorld implements World { } return this.world.getChunkProvider().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> { net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) either.left().orElse(null); diff --git a/Spigot-Server-Patches/0536-Add-missing-strikeLighting-call-to-World-spigot-stri.patch b/Spigot-Server-Patches/0536-Add-missing-strikeLighting-call-to-World-spigot-stri.patch index 61be8b922..c9713cbe1 100644 --- a/Spigot-Server-Patches/0536-Add-missing-strikeLighting-call-to-World-spigot-stri.patch +++ b/Spigot-Server-Patches/0536-Add-missing-strikeLighting-call-to-World-spigot-stri.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing strikeLighting call to diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 10697f8b5208a72bf3d7248c5abd73ddd10420cd..f3aab5be1722651a27bb48a33618650b807d4e07 100644 +index e32e972b00098bf1851b7974218c24eee55682d9..ed55a1e6943fb9cdc763d1b7340e3ec53a46106e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2609,6 +2609,7 @@ public class CraftWorld implements World { +@@ -2614,6 +2614,7 @@ public class CraftWorld implements World { lightning.teleportAndSync( loc.getX(), loc.getY(), loc.getZ() ); lightning.isEffect = true; lightning.isSilent = isSilent; diff --git a/Spigot-Server-Patches/0636-Added-WorldGameRuleChangeEvent.patch b/Spigot-Server-Patches/0636-Added-WorldGameRuleChangeEvent.patch index 5014da1a1..a9ea2650b 100644 --- a/Spigot-Server-Patches/0636-Added-WorldGameRuleChangeEvent.patch +++ b/Spigot-Server-Patches/0636-Added-WorldGameRuleChangeEvent.patch @@ -74,10 +74,10 @@ index b245428604e2a432fa3bab4836a5ca1fb35c3f64..53b40f8947c9380ef57ecc7edca203c5 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 597d7a36d7d0b19502d92cf13da53d96c6ede58a..d86c25593db7cc0a73db1c37af94ae4e41bb4e93 100644 +index fe21b612f9bd2cf85670eeffa25998130b543339..22eba9372d334c65d009721e808c958dfc271308 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2345,8 +2345,13 @@ public class CraftWorld implements World { +@@ -2350,8 +2350,13 @@ public class CraftWorld implements World { if (!isGameRule(rule)) return false; @@ -92,7 +92,7 @@ index 597d7a36d7d0b19502d92cf13da53d96c6ede58a..d86c25593db7cc0a73db1c37af94ae4e handle.onChange(getHandle().getMinecraftServer()); return true; } -@@ -2381,8 +2386,12 @@ public class CraftWorld implements World { +@@ -2386,8 +2391,12 @@ public class CraftWorld implements World { if (!isGameRule(rule.getName())) return false; diff --git a/work/Bukkit b/work/Bukkit index 315b69c1d..5b289e691 160000 --- a/work/Bukkit +++ b/work/Bukkit @@ -1 +1 @@ -Subproject commit 315b69c1d189f057263c5ac54c058352f706a8b9 +Subproject commit 5b289e69146fd76766ce7f973821b05792d9a695 diff --git a/work/CraftBukkit b/work/CraftBukkit index a82b21297..d97d91871 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit a82b21297372bff77085d76f1fda58e8b0e2e1ab +Subproject commit d97d91871d7b2003591d9a9d59ee9c2306d3178a diff --git a/work/Spigot b/work/Spigot index cd23533a5..73fb6094f 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit cd23533a5b0ce59fcd0dd509be994b94d7c5f55e +Subproject commit 73fb6094f4fa318955bb5bb11a1ec1af12cf90a1