From c953e51dd79124f897a379eb7b89745978c4cdc0 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 7 Apr 2021 01:17:32 -0400 Subject: [PATCH] [Auto] Updated Upstream (CraftBukkit/Spigot) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 221aed6cf SPIGOT-6413: Server Corruption Changing Blocks in Piston Events 721c4966b SPIGOT-6411: The PlayerEditBookEvent is not called when the player edits a book in the off-hand. be0e94581 Add mc-dev imports Spigot Changes: a25e8ed2 Remove mc-dev imports --- Spigot-Server-Patches/0003-MC-Dev-fixes.patch | 12 +++++------ Spigot-Server-Patches/0004-MC-Utils.patch | 16 +++++++-------- Spigot-Server-Patches/0009-Timings-v2.patch | 18 ++++++++--------- Spigot-Server-Patches/0010-Adventure.patch | 10 +++++----- .../0026-Entity-Origin-API.patch | 6 +++--- .../0035-Disable-thunder.patch | 4 ++-- .../0036-Disable-ice-and-snow.patch | 4 ++-- .../0055-Add-exception-reporting-event.patch | 6 +++--- ...-don-t-need-to-when-cerealising-text.patch | 4 ++-- .../0060-Chunk-Save-Reattempt.patch | 4 ++-- ...le-spawn-chances-for-skeleton-horses.patch | 4 ++-- ...Entity-AddTo-RemoveFrom-World-Events.patch | 6 +++--- ...Remove-unused-World-Tile-Entity-List.patch | 8 ++++---- .../0086-Don-t-tick-Skulls-unused-code.patch | 6 +++--- ...item-frames-performance-and-bug-fixe.patch | 4 ++-- .../0099-Optimize-UserCache-Thread-Safe.patch | 18 ++++++++--------- .../0105-Fix-Double-World-Add-issues.patch | 4 ++-- ...e-profiles-that-have-no-UUID-and-no-.patch | 4 ++-- .../0112-Chunk-registration-fixes.patch | 4 ++-- .../0152-Basic-PlayerProfile-API.patch | 10 +++++----- ...nt-protocol-version-and-virtual-host.patch | 4 ++-- ...-max-squid-spawn-height-configurable.patch | 4 ++-- ...ld.spawnParticle-API-and-add-Builder.patch | 4 ++-- .../0234-InventoryCloseEvent-Reason-API.patch | 10 +++++----- ...ge-the-Entity-Random-seed-for-squids.patch | 4 ++-- ...nilla-entity-warnings-for-duplicates.patch | 4 ++-- ...ies-option-to-debug-dupe-uuid-issues.patch | 8 ++++---- ...8-Vanished-players-don-t-have-rights.patch | 6 +++--- ...revent-Saving-Bad-entities-to-chunks.patch | 6 +++--- ...ead-Entities-in-entityList-iteration.patch | 8 ++++---- .../0259-Add-hand-to-bucket-events.patch | 6 +++--- ...ient-rendering-skulls-from-same-user.patch | 6 +++--- ...272-Optimize-CraftBlockData-Creation.patch | 4 ++-- ...333-Allow-Saving-of-Oversized-Chunks.patch | 16 +++++++-------- ...ength-when-serialising-BungeeCord-te.patch | 6 +++--- .../0337-Entity-getEntitySpawnReason.patch | 4 ++-- ...h-entity-loss-due-to-unloaded-chunks.patch | 6 +++--- .../0351-Duplicate-UUID-Resolve-Option.patch | 4 ++-- ...le-Keep-Spawn-Loaded-range-per-world.patch | 4 ++-- ...359-Fix-World-isChunkGenerated-calls.patch | 10 +++++----- .../0362-incremental-chunk-saving.patch | 6 +++--- ...-being-ticked-when-notifying-navigat.patch | 6 +++--- ...69-Asynchronous-chunk-IO-and-loading.patch | 20 +++++++++---------- .../0402-Entity-Activation-Range-2.0.patch | 16 +++++++-------- .../0408-Optimise-random-block-ticking.patch | 8 ++++---- ...imise-TickListServer-by-rewriting-it.patch | 4 ++-- ...re-Entity-is-never-double-registered.patch | 10 +++++----- ...ering-entities-from-unloading-chunks.patch | 4 ++-- ...-PlayerChunkMap-adds-crashing-server.patch | 6 +++--- ...asks-Speed-up-processing-of-chunk-lo.patch | 10 +++++----- ...Add-Raw-Byte-ItemStack-Serialization.patch | 8 ++++---- ...ions-until-after-entity-ticking-is-d.patch | 4 ++-- ...and-End-Portal-Frames-from-being-des.patch | 8 ++++---- ...ze-NibbleArray-to-use-pooled-buffers.patch | 9 +++++---- ...ookup-for-Treasure-Maps-Fixes-lag-fr.patch | 4 ++-- .../0493-Optimize-Light-Engine.patch | 4 ++-- ...512-Don-t-allow-null-UUID-s-for-chat.patch | 6 +++--- ...-Remove-some-streams-from-structures.patch | 10 +++++----- ...geEvent-not-firing-for-all-use-cases.patch | 4 ++-- ...CreateEvent-needs-to-know-its-entity.patch | 6 +++--- ...p-capture-to-capture-all-items-added.patch | 4 ++-- ...inig-for-some-hot-IBlockData-methods.patch | 10 +++++----- .../0646-Remove-stale-POIs.patch | 6 +++--- ...disable-pathfinding-updates-on-block.patch | 6 +++--- ...0685-fix-converting-txt-to-json-file.patch | 4 ++-- work/CraftBukkit | 2 +- work/Spigot | 2 +- 67 files changed, 232 insertions(+), 231 deletions(-) diff --git a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch index 884320a1f..136539612 100644 --- a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch +++ b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch @@ -148,10 +148,10 @@ index 170a65cb13e7b87f64cd28331431ba55d53702cd..d6e51f82f6df2d7058806f3e483766e1 default String asString() { return this.toString(); diff --git a/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java b/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java -index 020c041461aaf771d5ec35a9afc6c4b914966d64..f792ac1639e16522695082caed754b1c2cb333b9 100644 +index be4d54099a0deb0e0275208ac61c8a172a48b398..850d3a7bb8ae4c43c0e2f737cfe69261f338b026 100644 --- a/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java +++ b/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java -@@ -17,6 +17,7 @@ import java.util.zip.GZIPOutputStream; +@@ -18,6 +18,7 @@ import java.util.zip.GZIPOutputStream; import net.minecraft.CrashReport; import net.minecraft.CrashReportSystemDetails; import net.minecraft.ReportedException; @@ -159,7 +159,7 @@ index 020c041461aaf771d5ec35a9afc6c4b914966d64..f792ac1639e16522695082caed754b1c public class NBTCompressedStreamTools { -@@ -136,7 +137,7 @@ public class NBTCompressedStreamTools { +@@ -137,7 +138,7 @@ public class NBTCompressedStreamTools { public static NBTTagCompound a(DataInput datainput, NBTReadLimiter nbtreadlimiter) throws IOException { // Spigot start @@ -278,10 +278,10 @@ index 1c500e1193296f92f03a94e2cf085b215daaad6c..51ef4adf66c1e21093e63ab46fa47e66 } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index d1e11c1b3300ebc324ad88d05170d4b1232f2ddb..b88b0890cb5b5b0c4c2c35456fdffb02e8cfcf91 100644 +index 1eeb9b9ca01357ae32358737a12fdc2e8cd389d8..634f34b8b88a1ef86cebf3126da9989a88707711 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1918,7 +1918,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1920,7 +1920,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // CraftBukkit - decompile error @@ -291,7 +291,7 @@ index d1e11c1b3300ebc324ad88d05170d4b1232f2ddb..b88b0890cb5b5b0c4c2c35456fdffb02 }).collect(Collectors.joining(",")); } catch (Exception exception) { diff --git a/src/main/java/net/minecraft/stats/ServerStatisticManager.java b/src/main/java/net/minecraft/stats/ServerStatisticManager.java -index a920e1de04a3b3d2f794c1490075f32072f48fb2..de87ed44e09b61f6d2e6a93d770a7c37b9f95fa1 100644 +index 322a4b584c6223b08581affb2e9919df19c0267b..1efab34e03199879f5e0dcee0ff79ce2c23c73bc 100644 --- a/src/main/java/net/minecraft/stats/ServerStatisticManager.java +++ b/src/main/java/net/minecraft/stats/ServerStatisticManager.java @@ -203,7 +203,7 @@ public class ServerStatisticManager extends StatisticManager { diff --git a/Spigot-Server-Patches/0004-MC-Utils.patch b/Spigot-Server-Patches/0004-MC-Utils.patch index 22194308d..5678863c7 100644 --- a/Spigot-Server-Patches/0004-MC-Utils.patch +++ b/Spigot-Server-Patches/0004-MC-Utils.patch @@ -3637,7 +3637,7 @@ index 9cae7fed34df3ff81d75105b2fcbc4510f2a0e71..285a03b57431bd6a4d26bb84e916d2c6 public static TicketType a(String s, Comparator comparator) { return new TicketType<>(s, comparator, 0L); diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index b88b0890cb5b5b0c4c2c35456fdffb02e8cfcf91..bc580b35bdffddc5675a7bd50801057587fd02fe 100644 +index 634f34b8b88a1ef86cebf3126da9989a88707711..da53050c6c3d0a6ef3d5b96a88517e694536a268 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -12,6 +12,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry; @@ -3657,7 +3657,7 @@ index b88b0890cb5b5b0c4c2c35456fdffb02e8cfcf91..bc580b35bdffddc5675a7bd508010575 boolean tickingEntities; private final MinecraftServer server; public final WorldDataServer worldDataServer; // CraftBukkit - type -@@ -1687,7 +1688,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1689,7 +1690,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { ObjectIterator objectiterator = spawnercreature_d.b().object2IntEntrySet().iterator(); while (objectiterator.hasNext()) { @@ -3667,7 +3667,7 @@ index b88b0890cb5b5b0c4c2c35456fdffb02e8cfcf91..bc580b35bdffddc5675a7bd508010575 bufferedwriter.write(String.format("spawn_count.%s: %d\n", ((EnumCreatureType) it_unimi_dsi_fastutil_objects_object2intmap_entry.getKey()).b(), it_unimi_dsi_fastutil_objects_object2intmap_entry.getIntValue())); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 638eb973121af6d942bdc6e9e0d6fceaa75ea665..5ed893d96fe317dc5a238c82b0bd5f3f03dfa9cc 100644 +index fbb844c37de99a6e168df34097826e9dcb620084..f5e9758b051b5404297748e164917d18222ed723 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -218,9 +218,9 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -3741,7 +3741,7 @@ index b91bb7f562d5c43ec1d0d88ba417e43b07dbf0f3..dbfcdc3cc7c1dccf785f5e13634e84c5 // CraftBukkit start - fire event setGoalTarget(entityliving, EntityTargetEvent.TargetReason.UNKNOWN, true); diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index e4710d5fd7d28d6269d26cf1e3d399a66f5fabf1..feb640a21f4d0b00d85c1c4f013c22454616578a 100644 +index 97591280da3bfb30703a95fbe4e34b56b70544f4..c76ab1e6a54399eddae1ef2a595778385cd50026 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -231,6 +231,7 @@ public abstract class EntityLiving extends Entity { @@ -4143,10 +4143,10 @@ index f794113e7cc5809d1da0c85648fb7311fb633f40..0cbebc2095489c240fecd3fd32f5373b return chunk.getType(blockposition); } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 2e9a7deaf7837558519528d30fcc3f729b11d7b2..a96c7b0883f3bdf8b731aeccaf1217583a32f5c8 100644 +index ef652d8f3eb7371c9ddfc3afe67fd1bd669a77c0..2902117fd2803741b053a04fda7f4414fb8593cb 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -687,6 +687,7 @@ public abstract class BlockBase { +@@ -688,6 +688,7 @@ public abstract class BlockBase { return this.a != null ? this.a.d : Block.a(this.getCollisionShape(iblockaccess, blockposition)); } @@ -4509,10 +4509,10 @@ index 859561a5dccba6548967b685b20e8fcfc296db2a..9ebf2806122a308f7655cdbee1f642cd protected IOWorker(File file, boolean flag, String s) { diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index d5b11b08cadbe53fee06025f5658c9a165bd2bd7..f2694e46123ac2edcfdc53ef1abae283227eaa51 100644 +index 5e3bbc6d89794e23df7b60b13ae48c0f5136f20e..d1b761055c508a4b80436b50a832e00d0449d8cb 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -111,6 +111,7 @@ public class RegionFile implements AutoCloseable { +@@ -112,6 +112,7 @@ public class RegionFile implements AutoCloseable { return this.e.resolve(s); } diff --git a/Spigot-Server-Patches/0009-Timings-v2.patch b/Spigot-Server-Patches/0009-Timings-v2.patch index 0ee785f8e..94708649b 100644 --- a/Spigot-Server-Patches/0009-Timings-v2.patch +++ b/Spigot-Server-Patches/0009-Timings-v2.patch @@ -1249,7 +1249,7 @@ index 0bf95b97140a67682ec2953ccc773f6faad7b7da..9eae9d7e9d18d73b1050e1d9b8859802 protected void broadcast(Entity entity, Packet packet) { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492bda7116d 100644 +index da53050c6c3d0a6ef3d5b96a88517e694536a268..4170743875d2fb16987e513713b2d141918219a5 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -2,6 +2,8 @@ package net.minecraft.server.level; @@ -1282,7 +1282,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 this.navigators = Sets.newHashSet(); this.L = new ObjectLinkedOpenHashSet(); this.Q = flag1; -@@ -440,17 +441,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -442,17 +443,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.Q(); this.b(); gameprofilerfiller.exitEnter("chunkSource"); @@ -1306,7 +1306,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 gameprofilerfiller.exitEnter("blockEvents"); timings.doSounds.startTiming(); // Spigot this.ak(); -@@ -622,6 +627,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -624,6 +629,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } gameprofilerfiller.exitEnter("tickBlocks"); @@ -1314,7 +1314,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 if (i > 0) { ChunkSection[] achunksection = chunk.getSections(); int l = achunksection.length; -@@ -653,7 +659,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -655,7 +661,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } } @@ -1323,7 +1323,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 gameprofilerfiller.exit(); } -@@ -751,14 +757,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -753,14 +759,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) { this.chunkCheck(entity); } else { @@ -1347,7 +1347,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 entity.g(entity.locX(), entity.locY(), entity.locZ()); entity.lastYaw = entity.yaw; entity.lastPitch = entity.pitch; -@@ -785,7 +799,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -787,7 +801,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.a(entity, entity1); } } @@ -1356,7 +1356,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 } } -@@ -863,6 +877,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -865,6 +879,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (!flag1) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit @@ -1364,7 +1364,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel")); } -@@ -872,7 +887,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -874,7 +889,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { iprogressupdate.c(new ChatMessage("menu.savingChunks")); } @@ -1376,7 +1376,7 @@ index bc580b35bdffddc5675a7bd50801057587fd02fe..038944613b6687c057e73eaa038c9492 // CraftBukkit start - moved from MinecraftServer.saveChunks diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 5ed893d96fe317dc5a238c82b0bd5f3f03dfa9cc..db155011112aba2b1e3ec5b337db25dfb7b511fb 100644 +index f5e9758b051b5404297748e164917d18222ed723..462461f3cfebe7a8217f6e341bfc2c7759b0b758 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -209,6 +209,7 @@ import org.bukkit.inventory.CraftingInventory; diff --git a/Spigot-Server-Patches/0010-Adventure.patch b/Spigot-Server-Patches/0010-Adventure.patch index e5aec1548..227543e39 100644 --- a/Spigot-Server-Patches/0010-Adventure.patch +++ b/Spigot-Server-Patches/0010-Adventure.patch @@ -1055,10 +1055,10 @@ index 85140d961722e86abfe7006a0ad752751e73c721..c7c191b0a9889450fdf495f5aa45d59f public static IChatMutableComponent a(JsonElement jsonelement) { return (IChatMutableComponent) IChatBaseComponent.ChatSerializer.a.fromJson(jsonelement, IChatMutableComponent.class); diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -index b9bcc3e84bf8166451ca55f7c03661e8d9c07a45..bc7de641a37b2f4c8fe7ed8272c55a30ac4bc313 100644 +index 2bfe15e693271bcd4bbccfa436bae72178633135..edae451a54bfcd6b54e89c1619fb112a7763eb3b 100644 --- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java +++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -@@ -10,6 +10,7 @@ import net.minecraft.network.protocol.Packet; +@@ -11,6 +11,7 @@ import net.minecraft.network.protocol.Packet; public class PacketPlayOutChat implements Packet { private IChatBaseComponent a; @@ -1066,7 +1066,7 @@ index b9bcc3e84bf8166451ca55f7c03661e8d9c07a45..bc7de641a37b2f4c8fe7ed8272c55a30 public net.md_5.bungee.api.chat.BaseComponent[] components; // Spigot private ChatMessageType b; private UUID c; -@@ -31,6 +32,11 @@ public class PacketPlayOutChat implements Packet { +@@ -32,6 +33,11 @@ public class PacketPlayOutChat implements Packet { @Override public void b(PacketDataSerializer packetdataserializer) throws IOException { @@ -1256,7 +1256,7 @@ index 2a96564c1656d42a74c331a6178e511cd5347a66..d219eda271a71f786808a6958b829fca @Override diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index db155011112aba2b1e3ec5b337db25dfb7b511fb..c417250f66805788d63434e2c360349a39996176 100644 +index 462461f3cfebe7a8217f6e341bfc2c7759b0b758..73a40378f434b09c91b6f45da8f7a7b9e37b1e6a 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -159,6 +159,8 @@ import org.apache.logging.log4j.LogManager; @@ -2370,7 +2370,7 @@ index 597b3b061c707081e7665d5896f5d73676e691d6..137870c7d18c9ef3ae637e83c5457d42 private final Player.Spigot spigot = new Player.Spigot() { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 74b5aaa87e74d1270adba7d3e66bccc40c1f2a0f..788617eaeab9985c426f80e9f4cdbb912383c049 100644 +index c925582b84b6576e869a93874da8ef94ca26a39c..9175d66ec9ad2e8155d6dea64beadfa73b93cd48 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -767,9 +767,9 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0026-Entity-Origin-API.patch b/Spigot-Server-Patches/0026-Entity-Origin-API.patch index a40fb5e2c..60fd7b5fb 100644 --- a/Spigot-Server-Patches/0026-Entity-Origin-API.patch +++ b/Spigot-Server-Patches/0026-Entity-Origin-API.patch @@ -17,10 +17,10 @@ index 4f6f6f51f9807bafa88482c0fe776c8b163107d7..ce6572df63c4e7341708aee60330fb21 if (i >= 0 && i < this.list.size()) { NBTBase nbtbase = (NBTBase) this.list.get(i); diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 038944613b6687c057e73eaa038c9492bda7116d..09fa1f8e4e2ccf03fafe477bb9dc32b2a72b41bb 100644 +index 4170743875d2fb16987e513713b2d141918219a5..701b00e65c4d5eb66e974f8d622eecef0f744f82 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1244,6 +1244,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1246,6 +1246,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.navigators.add(((EntityInsentient) entity).getNavigation()); } entity.valid = true; // CraftBukkit @@ -33,7 +33,7 @@ index 038944613b6687c057e73eaa038c9492bda7116d..09fa1f8e4e2ccf03fafe477bb9dc32b2 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ca620977666f4d4173089876f506f041ab278bd3..dce47ec1fc186d12ffa30bfd3d71870aecb95d40 100644 +index cae9da158f54438d2a397665c7ce964f6f755469..83006297e59971f4c358eacc3da586417982540c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -247,6 +247,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/Spigot-Server-Patches/0035-Disable-thunder.patch b/Spigot-Server-Patches/0035-Disable-thunder.patch index daa8dd7fb..9887bf87d 100644 --- a/Spigot-Server-Patches/0035-Disable-thunder.patch +++ b/Spigot-Server-Patches/0035-Disable-thunder.patch @@ -19,10 +19,10 @@ index 2222c1bb5f8625eee4d88946e4bfdfa2fe598977..083e421f8496b5336af473b108498ed2 + } } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 09fa1f8e4e2ccf03fafe477bb9dc32b2a72b41bb..b9d9affab30c60a355552f92b44b574dc5074a5c 100644 +index 701b00e65c4d5eb66e974f8d622eecef0f744f82..6e8e9067a43d0fb88683be733fb3d138f35d6cf0 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -584,7 +584,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -586,7 +586,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { gameprofilerfiller.enter("thunder"); BlockPosition blockposition; diff --git a/Spigot-Server-Patches/0036-Disable-ice-and-snow.patch b/Spigot-Server-Patches/0036-Disable-ice-and-snow.patch index 0ce0ca17b..911b86d03 100644 --- a/Spigot-Server-Patches/0036-Disable-ice-and-snow.patch +++ b/Spigot-Server-Patches/0036-Disable-ice-and-snow.patch @@ -19,10 +19,10 @@ index 083e421f8496b5336af473b108498ed28b984774..2f7a5a4a5a7b29750cfd777e0bc5d19a + } } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index b9d9affab30c60a355552f92b44b574dc5074a5c..eddfbd25953e8ef410f1617a1edecbc7d07696c0 100644 +index 6e8e9067a43d0fb88683be733fb3d138f35d6cf0..474e91b1a0a3fc2c5abb238f058e50ad787c22d9 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -608,7 +608,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -610,7 +610,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } gameprofilerfiller.exitEnter("iceandsnow"); diff --git a/Spigot-Server-Patches/0055-Add-exception-reporting-event.patch b/Spigot-Server-Patches/0055-Add-exception-reporting-event.patch index 74ea309c9..fdfb729b2 100644 --- a/Spigot-Server-Patches/0055-Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/0055-Add-exception-reporting-event.patch @@ -199,10 +199,10 @@ index a2d80c2c8e4f080f60746548f75631c5946ba8e2..4b3de29b1a6e9d75b28962073c62bbe8 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index f2694e46123ac2edcfdc53ef1abae283227eaa51..7f695f2b49df3400cd263fd6ffff77e753a65ea1 100644 +index d1b761055c508a4b80436b50a832e00d0449d8cb..1638f7902290e1bb233f11e5d0bbf83a9e863939 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -264,6 +264,7 @@ public class RegionFile implements AutoCloseable { +@@ -265,6 +265,7 @@ public class RegionFile implements AutoCloseable { return true; } } catch (IOException ioexception) { @@ -210,7 +210,7 @@ index f2694e46123ac2edcfdc53ef1abae283227eaa51..7f695f2b49df3400cd263fd6ffff77e7 return false; } } -@@ -336,6 +337,7 @@ public class RegionFile implements AutoCloseable { +@@ -337,6 +338,7 @@ public class RegionFile implements AutoCloseable { filechannel.write(bytebuffer); } catch (Throwable throwable1) { throwable = throwable1; diff --git a/Spigot-Server-Patches/0056-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch b/Spigot-Server-Patches/0056-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch index 08ec688be..e8a68b30b 100644 --- a/Spigot-Server-Patches/0056-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch +++ b/Spigot-Server-Patches/0056-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Don't nest if we don't need to when cerealising text diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -index bc7de641a37b2f4c8fe7ed8272c55a30ac4bc313..c47427fd2eed173726cb856aae62c02a2b46bbf0 100644 +index edae451a54bfcd6b54e89c1619fb112a7763eb3b..f6a1c5ac9acb34b1ef2262721adbbb1a5b0feaf7 100644 --- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java +++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -@@ -39,7 +39,14 @@ public class PacketPlayOutChat implements Packet { +@@ -40,7 +40,14 @@ public class PacketPlayOutChat implements Packet { // Paper end // Spigot start if (components != null) { diff --git a/Spigot-Server-Patches/0060-Chunk-Save-Reattempt.patch b/Spigot-Server-Patches/0060-Chunk-Save-Reattempt.patch index 6cf26b30d..03f01b158 100644 --- a/Spigot-Server-Patches/0060-Chunk-Save-Reattempt.patch +++ b/Spigot-Server-Patches/0060-Chunk-Save-Reattempt.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Chunk Save Reattempt We commonly have "Stream Closed" errors on chunk saving, so this code should re-try to save the chunk in the event of failure and hopefully prevent rollbacks. diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 7f695f2b49df3400cd263fd6ffff77e753a65ea1..6efbb8a3502f86e105d4dfb9cef114a790966e95 100644 +index 1638f7902290e1bb233f11e5d0bbf83a9e863939..4bf3e0cb4602d33a2e00c502b1dd212032b22a8f 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -264,7 +264,7 @@ public class RegionFile implements AutoCloseable { +@@ -265,7 +265,7 @@ public class RegionFile implements AutoCloseable { return true; } } catch (IOException ioexception) { diff --git a/Spigot-Server-Patches/0070-Configurable-spawn-chances-for-skeleton-horses.patch b/Spigot-Server-Patches/0070-Configurable-spawn-chances-for-skeleton-horses.patch index f87fe58b3..a0c1e7b12 100644 --- a/Spigot-Server-Patches/0070-Configurable-spawn-chances-for-skeleton-horses.patch +++ b/Spigot-Server-Patches/0070-Configurable-spawn-chances-for-skeleton-horses.patch @@ -22,10 +22,10 @@ index 3c78d3234054ce2dc46ef77decb6adb0cbd10620..cd64fb9d0c6d123e1c86cb33f12cd9ce + } } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index b04a6cd626fceed26aec6121e20fb1b6dd1c716d..3403ed91e7ec98116438398fb7247e7f05171feb 100644 +index 045183ab75bac68b1da5e0899a15fa34cd9e956f..a5ee8bf7904444ff6fd82260a66a81c9af479f9e 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -588,7 +588,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -590,7 +590,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { blockposition = this.a(this.a(j, 0, k, 15)); if (this.isRainingAt(blockposition)) { DifficultyDamageScaler difficultydamagescaler = this.getDamageScaler(blockposition); diff --git a/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch b/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch index f26860a90..e910aa110 100644 --- a/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch +++ b/Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity AddTo/RemoveFrom World Events diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 3b82b358d53454dcde4e64123e6262a68a5ed1b0..acff0752aba49bb360d944e5f648b80a82bc984d 100644 +index c5baf9c448761f24c4fd49d7c4bade7dee43edf4..b40089319329a0843c4d74ebd6189fc4089e319a 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1212,7 +1212,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1214,7 +1214,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity instanceof EntityInsentient) { this.navigators.remove(((EntityInsentient) entity).getNavigation()); } @@ -17,7 +17,7 @@ index 3b82b358d53454dcde4e64123e6262a68a5ed1b0..acff0752aba49bb360d944e5f648b80a entity.valid = false; // CraftBukkit } -@@ -1250,6 +1250,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1252,6 +1252,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { entity.origin = entity.getBukkitEntity().getLocation(); } // Paper end diff --git a/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch index cff05cecd..56289f693 100644 --- a/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch +++ b/Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch @@ -6,10 +6,10 @@ 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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index acff0752aba49bb360d944e5f648b80a82bc984d..e96a92119dce25c34509e502e8dce8596af6fd67 100644 +index b40089319329a0843c4d74ebd6189fc4089e319a..2412c2fa22abe171254f7fe49d319bcd6cc533ff 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1720,7 +1720,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1722,7 +1722,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } bufferedwriter.write(String.format("entities: %d\n", this.entitiesById.size())); @@ -18,7 +18,7 @@ index acff0752aba49bb360d944e5f648b80a82bc984d..e96a92119dce25c34509e502e8dce859 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"); -@@ -1859,7 +1859,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1861,7 +1861,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { private void a(Writer writer) throws IOException { CSVWriter csvwriter = CSVWriter.a().a("x").a("y").a("z").a("type").a(writer); @@ -28,7 +28,7 @@ index acff0752aba49bb360d944e5f648b80a82bc984d..e96a92119dce25c34509e502e8dce859 while (iterator.hasNext()) { TileEntity tileentity = (TileEntity) iterator.next(); diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java -index 7611481db980a230d42b3cec1d81fae2622ca634..2bb85896df999675d33f70a90f1c68865099ee83 100644 +index 8da8141c2320c0c1a9b95826a9be2dbe22e11c14..cad86b0273c05767f78bcb3bdfaa9ea01e26af4e 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java @@ -91,7 +91,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { diff --git a/Spigot-Server-Patches/0086-Don-t-tick-Skulls-unused-code.patch b/Spigot-Server-Patches/0086-Don-t-tick-Skulls-unused-code.patch index d284e1387..26489896a 100644 --- a/Spigot-Server-Patches/0086-Don-t-tick-Skulls-unused-code.patch +++ b/Spigot-Server-Patches/0086-Don-t-tick-Skulls-unused-code.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't tick Skulls - unused code diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java -index 5e778fcc1bce3339890933c0c769701a432240d8..06ab45e0927403beb6b5e11d2b5ea93d4786f1d3 100644 +index 87a5f352c8a6336c65008d6e21a771fd6332773c..22217f24b4a87f10b6d5a3e37d23a1164af84ace 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java -@@ -32,7 +32,7 @@ import net.minecraft.server.MinecraftServer; +@@ -33,7 +33,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.world.entity.player.EntityHuman; // Spigot end @@ -17,7 +17,7 @@ index 5e778fcc1bce3339890933c0c769701a432240d8..06ab45e0927403beb6b5e11d2b5ea93d @Nullable private static UserCache userCache; -@@ -135,7 +135,7 @@ public class TileEntitySkull extends TileEntity implements ITickable { +@@ -136,7 +136,7 @@ public class TileEntitySkull extends TileEntity implements ITickable { } diff --git a/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index 921668102..73619accb 100644 --- a/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -13,10 +13,10 @@ 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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 5ac96a25a9010ab3ddbd4a2b30cef0bba2a02054..de95ff06f2eedd8f812d7e2a83955642c1f9bba9 100644 +index 2412c2fa22abe171254f7fe49d319bcd6cc533ff..c4bbc4e97ee1871ed6e4364c1fe9204b0dd2fdae 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1168,6 +1168,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1170,6 +1170,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { { if ( iter.next().trackee == entity ) { diff --git a/Spigot-Server-Patches/0099-Optimize-UserCache-Thread-Safe.patch b/Spigot-Server-Patches/0099-Optimize-UserCache-Thread-Safe.patch index 143884b0a..bd7185774 100644 --- a/Spigot-Server-Patches/0099-Optimize-UserCache-Thread-Safe.patch +++ b/Spigot-Server-Patches/0099-Optimize-UserCache-Thread-Safe.patch @@ -36,10 +36,10 @@ index faf4d00bf288359db806913c4d2964324e8706b7..8ae72e8c8325d9b03803f29fcdd83a0c if (!NameReferencingFileConverter.e(this)) { diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java -index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba857472276821a70ae0 100644 +index 5694ba68a142d735a7c61563ee22cd54da9b4cc9..39d1c379b781c08bfdd720cd6810a9c0bb9f0d09 100644 --- a/src/main/java/net/minecraft/server/players/UserCache.java +++ b/src/main/java/net/minecraft/server/players/UserCache.java -@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.AtomicLong; +@@ -36,6 +36,7 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Stream; import javax.annotation.Nullable; @@ -47,7 +47,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 import net.minecraft.world.entity.player.EntityHuman; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@@ -107,7 +108,7 @@ public class UserCache { +@@ -108,7 +109,7 @@ public class UserCache { return UserCache.b; } @@ -56,7 +56,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); -@@ -116,7 +117,7 @@ public class UserCache { +@@ -117,7 +118,7 @@ public class UserCache { UserCache.UserCacheEntry usercache_usercacheentry = new UserCache.UserCacheEntry(gameprofile, date); this.a(usercache_usercacheentry); @@ -65,7 +65,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 } private long d() { -@@ -124,7 +125,7 @@ public class UserCache { +@@ -125,7 +126,7 @@ public class UserCache { } @Nullable @@ -74,7 +74,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 String s1 = s.toLowerCase(Locale.ROOT); UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.c.get(s1); boolean flag = false; -@@ -150,7 +151,7 @@ public class UserCache { +@@ -151,7 +152,7 @@ public class UserCache { } if (flag && !org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) { // Spigot - skip saving if disabled @@ -83,7 +83,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 } return gameprofile; -@@ -232,7 +233,7 @@ public class UserCache { +@@ -233,7 +234,7 @@ public class UserCache { return arraylist; } @@ -92,7 +92,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 JsonArray jsonarray = new JsonArray(); DateFormat dateformat = e(); -@@ -240,6 +241,7 @@ public class UserCache { +@@ -241,6 +242,7 @@ public class UserCache { jsonarray.add(a(usercache_usercacheentry, dateformat)); }); String s = this.f.toJson(jsonarray); @@ -100,7 +100,7 @@ index 581e036f598b51a4e9f2dafd7e92c700c3e04407..2de2d84a56183435d641ba8574722768 try { BufferedWriter bufferedwriter = Files.newWriter(this.g, StandardCharsets.UTF_8); -@@ -267,6 +269,14 @@ public class UserCache { +@@ -268,6 +270,14 @@ public class UserCache { } catch (IOException ioexception) { ; } diff --git a/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch b/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch index 0f4e3cf1f..d3f7911b3 100644 --- a/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch +++ b/Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch @@ -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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 62430c61047f288ce6df6f77302c3bfb2817b299..fd7767d420fe58b1bbd4d8f20d7a7bd8048afe31 100644 +index c4bbc4e97ee1871ed6e4364c1fe9204b0dd2fdae..e008ef98d6902f5e1000da99870b12ae9d61bddb 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1036,6 +1036,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1038,6 +1038,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/Spigot-Server-Patches/0107-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/Spigot-Server-Patches/0107-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch index 3df71abbf..60ded5616 100644 --- a/Spigot-Server-Patches/0107-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch +++ b/Spigot-Server-Patches/0107-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't lookup game profiles that have no UUID and no name diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java -index 2de2d84a56183435d641ba857472276821a70ae0..6c349128bdedc53003f043c9cb1210b4666aee33 100644 +index 39d1c379b781c08bfdd720cd6810a9c0bb9f0d09..4ad084e7cea3b341ca0dbaa6e853cfc685a555ff 100644 --- a/src/main/java/net/minecraft/server/players/UserCache.java +++ b/src/main/java/net/minecraft/server/players/UserCache.java -@@ -91,7 +91,7 @@ public class UserCache { +@@ -92,7 +92,7 @@ public class UserCache { gameprofilerepository.findProfilesByNames(new String[]{s}, Agent.MINECRAFT, profilelookupcallback); GameProfile gameprofile = (GameProfile) atomicreference.get(); diff --git a/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch b/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch index b15425001..b6399aa64 100644 --- a/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch +++ b/Spigot-Server-Patches/0112-Chunk-registration-fixes.patch @@ -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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index fd7767d420fe58b1bbd4d8f20d7a7bd8048afe31..1e9884e819ac2afe58b5f50b89355c2d58ed73d5 100644 +index e008ef98d6902f5e1000da99870b12ae9d61bddb..6137a88e1dc8d19a4e35ad97500dabeddba008a8 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -845,7 +845,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -847,7 +847,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity.cl()) { this.getMethodProfiler().enter("chunkCheck"); int i = MathHelper.floor(entity.locX() / 16.0D); diff --git a/Spigot-Server-Patches/0152-Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/0152-Basic-PlayerProfile-API.patch index a04012c28..177be589b 100644 --- a/Spigot-Server-Patches/0152-Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/0152-Basic-PlayerProfile-API.patch @@ -473,10 +473,10 @@ index 89db31061fcc3420bc8e668533a4051cdbd12253..191a74bd9b894f9d64d0a55747cb17e0 GameProfileRepository gameprofilerepository = yggdrasilauthenticationservice.createProfileRepository(); UserCache usercache = new UserCache(gameprofilerepository, new File(file, MinecraftServer.b.getName())); diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java -index 6c349128bdedc53003f043c9cb1210b4666aee33..e3801a4a13d0bac7816a1350d3799a9815481c4b 100644 +index 4ad084e7cea3b341ca0dbaa6e853cfc685a555ff..e17927ecc3ad3e27e436082ac94e3772d7311725 100644 --- a/src/main/java/net/minecraft/server/players/UserCache.java +++ b/src/main/java/net/minecraft/server/players/UserCache.java -@@ -44,7 +44,7 @@ public class UserCache { +@@ -45,7 +45,7 @@ public class UserCache { private static final Logger LOGGER = LogManager.getLogger(); private static boolean b; @@ -485,7 +485,7 @@ index 6c349128bdedc53003f043c9cb1210b4666aee33..e3801a4a13d0bac7816a1350d3799a98 private final Map d = Maps.newConcurrentMap(); private final GameProfileRepository e; private final Gson f = (new GsonBuilder()).create(); -@@ -108,6 +108,7 @@ public class UserCache { +@@ -109,6 +109,7 @@ public class UserCache { return UserCache.b; } @@ -493,7 +493,7 @@ index 6c349128bdedc53003f043c9cb1210b4666aee33..e3801a4a13d0bac7816a1350d3799a98 public synchronized void a(GameProfile gameprofile) { // Paper - synchronize Calendar calendar = Calendar.getInstance(); -@@ -157,6 +158,13 @@ public class UserCache { +@@ -158,6 +159,13 @@ public class UserCache { return gameprofile; } @@ -507,7 +507,7 @@ index 6c349128bdedc53003f043c9cb1210b4666aee33..e3801a4a13d0bac7816a1350d3799a98 @Nullable public GameProfile getProfile(UUID uuid) { UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.d.get(uuid); -@@ -339,7 +347,7 @@ public class UserCache { +@@ -340,7 +348,7 @@ public class UserCache { static class UserCacheEntry { diff --git a/Spigot-Server-Patches/0172-Expose-client-protocol-version-and-virtual-host.patch b/Spigot-Server-Patches/0172-Expose-client-protocol-version-and-virtual-host.patch index 26cabb688..3f282910b 100644 --- a/Spigot-Server-Patches/0172-Expose-client-protocol-version-and-virtual-host.patch +++ b/Spigot-Server-Patches/0172-Expose-client-protocol-version-and-virtual-host.patch @@ -76,10 +76,10 @@ index f093b465b868e6003bb2b5ee634a624b5b054493..60e4a4aa3854aaeb250d1318f2f25cf3 public NetworkManager(EnumProtocolDirection enumprotocoldirection) { this.h = enumprotocoldirection; diff --git a/src/main/java/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.java b/src/main/java/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.java -index 5b815717084193d37d1d458458f1fd86bb3e9627..65ff946363fbee43adf76710b7379e184c5cbb22 100644 +index b290ddfbc19aed3e44169281c3dae5429dac0062..14c002376540d2039fc2fe2ef746e53471a9cb08 100644 --- a/src/main/java/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.java +++ b/src/main/java/net/minecraft/network/protocol/handshake/PacketHandshakingInSetProtocol.java -@@ -38,6 +38,7 @@ public class PacketHandshakingInSetProtocol implements Packet entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/Spigot-Server-Patches/0213-Expand-World.spawnParticle-API-and-add-Builder.patch b/Spigot-Server-Patches/0213-Expand-World.spawnParticle-API-and-add-Builder.patch index 07a104704..485911c0a 100644 --- a/Spigot-Server-Patches/0213-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/Spigot-Server-Patches/0213-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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index e27bcf54654c1aabb3baf8c549ceac584f528b6c..32ad210daf61b6c43fc60f3140dc46529d14ec27 100644 +index 6137a88e1dc8d19a4e35ad97500dabeddba008a8..96d67fc3cbe61c1fb6e639b1838b2fd198c3f3d5 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -170,7 +170,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -22,7 +22,7 @@ index e27bcf54654c1aabb3baf8c549ceac584f528b6c..32ad210daf61b6c43fc60f3140dc4652 public final ChunkProviderServer chunkProvider; // Paper - public boolean tickingEntities; private final MinecraftServer server; -@@ -1477,12 +1477,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1479,12 +1479,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { } 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) { diff --git a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch index de6e63635..974042542 100644 --- a/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch +++ b/Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch @@ -61,10 +61,10 @@ index 8b79d547a3296f056731cbb66508494d84809e94..b3c5a22bf2eb360399ebfbf90fc74843 this.o(); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 32ad210daf61b6c43fc60f3140dc46529d14ec27..95cd4855cf577d9ceac8c3b45ac54705bea00ea9 100644 +index 96d67fc3cbe61c1fb6e639b1838b2fd198c3f3d5..c7e54920b40bdf049f2192310bfdb9d1749580d0 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1123,7 +1123,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1125,7 +1125,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { for (TileEntity tileentity : chunk.getTileEntities().values()) { if (tileentity instanceof net.minecraft.world.IInventory) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((net.minecraft.world.IInventory) tileentity).getViewers())) { @@ -73,7 +73,7 @@ index 32ad210daf61b6c43fc60f3140dc46529d14ec27..95cd4855cf577d9ceac8c3b45ac54705 } } } -@@ -1181,7 +1181,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1183,7 +1183,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { @@ -83,7 +83,7 @@ index 32ad210daf61b6c43fc60f3140dc46529d14ec27..95cd4855cf577d9ceac8c3b45ac54705 } // Spigot End diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 415f34109019e68638f76fefa52bd8d40c449e12..c4f14fabc83a9cb13f8f82b651119e0ac7d8aa02 100644 +index 2d04aa08c52dac8f0a30830500b8cc251b2b799e..b3a51bd3229e3d492286acd97f49a1e7cf2630c5 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -190,6 +190,7 @@ import org.bukkit.event.inventory.ClickType; @@ -193,7 +193,7 @@ index 871c0e0b0c6df68c0f8c87828a01fe006d0646fb..32228b4eddaadabbae46ebbc5eb3404a // 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 8f60cc5bf1583b48c6052f7598e99b4c63203852..681eb48c568029d6e3c5fa140a2c330a5f27df6f 100644 +index 791a4490c25f88aa4525c98e794ff3b2bfe194ed..db8dc8e5dda304a3ccd81dc0c781476d5946a1ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1166,7 +1166,7 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0237-Don-t-change-the-Entity-Random-seed-for-squids.patch b/Spigot-Server-Patches/0237-Don-t-change-the-Entity-Random-seed-for-squids.patch index e00010f9a..7640438b0 100644 --- a/Spigot-Server-Patches/0237-Don-t-change-the-Entity-Random-seed-for-squids.patch +++ b/Spigot-Server-Patches/0237-Don-t-change-the-Entity-Random-seed-for-squids.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't change the Entity Random seed for squids diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -index 2d9ac7baa924e6558727d58d43dbf6667f4f84a9..92ff03f8e8286f710fd5e63b4d103e489787d453 100644 +index 7ce5e2597b34d3a4d2a79d73c15e893c064fc88c..1f5f3e0d209426b97e32b82dd15176b800f85816 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java -@@ -47,7 +47,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -48,7 +48,7 @@ public class EntitySquid extends EntityWaterAnimal { public EntitySquid(EntityTypes entitytypes, World world) { super(entitytypes, world); diff --git a/Spigot-Server-Patches/0238-Re-add-vanilla-entity-warnings-for-duplicates.patch b/Spigot-Server-Patches/0238-Re-add-vanilla-entity-warnings-for-duplicates.patch index f3c28e7f6..9a588302c 100644 --- a/Spigot-Server-Patches/0238-Re-add-vanilla-entity-warnings-for-duplicates.patch +++ b/Spigot-Server-Patches/0238-Re-add-vanilla-entity-warnings-for-duplicates.patch @@ -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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index eb909ef3a34045480034bd7d7f3e5ac674f664b5..4d3e3a4496ab28e0865f2ad871915fcb2ae57e36 100644 +index c7e54920b40bdf049f2192310bfdb9d1749580d0..9af581339884d99709242735ad655d90faf7224a 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1075,7 +1075,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1077,7 +1077,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity1 == null) { return false; } else { diff --git a/Spigot-Server-Patches/0242-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/0242-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index b6cf01775..b18cb8556 100644 --- a/Spigot-Server-Patches/0242-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/Spigot-Server-Patches/0242-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -27,7 +27,7 @@ index c6b9b02e6d31bebb3f8c0cadd68e4b5c47fab090..c4dd2bac48bb93117925b35dcd753d0f protected void g() { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 24563d21ce2a77b47300cca00e07658a014be96c..04b708e776f277985340f329dc8cb3c16a6100a7 100644 +index 9af581339884d99709242735ad655d90faf7224a..14321bc6ecc5ca70e71c1eef9578091822aa94cd 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -197,6 +197,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -40,7 +40,7 @@ index 24563d21ce2a77b47300cca00e07658a014be96c..04b708e776f277985340f329dc8cb3c1 @Override public Chunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkProvider.getChunkAt(x, z, false); -@@ -1036,8 +1039,28 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1038,8 +1041,28 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot @@ -70,7 +70,7 @@ index 24563d21ce2a77b47300cca00e07658a014be96c..04b708e776f277985340f329dc8cb3c1 // 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)) { -@@ -1235,7 +1258,24 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1237,7 +1260,24 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } @@ -97,7 +97,7 @@ index 24563d21ce2a77b47300cca00e07658a014be96c..04b708e776f277985340f329dc8cb3c1 // CraftBukkit start - SPIGOT-5278 if (entity instanceof EntityDrowned) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a4915d330d9df8773ce2643a17f353045fff7965..36ac9ba19b3bbcab40b5d4339ba9c297d4b5a65b 100644 +index bd9cd050c72792c3d5a2094991b21e3a998b2cd9..c88eea18e2e219f242c53ffb4e28cfc6d7bf318a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -48,6 +48,7 @@ import net.minecraft.resources.MinecraftKey; diff --git a/Spigot-Server-Patches/0248-Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/0248-Vanished-players-don-t-have-rights.patch index 9892a1b93..190e494a4 100644 --- a/Spigot-Server-Patches/0248-Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/0248-Vanished-players-don-t-have-rights.patch @@ -130,10 +130,10 @@ index 8c7263f9dbb00cf6484e7f70b8d97639bab0cefc..07c5cdd00930a55fd412ef95f71f55ee public boolean s_() { return this.isClientSide; diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index a96c7b0883f3bdf8b731aeccaf1217583a32f5c8..61e2da8d8b2ebf50b28362c5c89bf5c32dbba1ba 100644 +index 2902117fd2803741b053a04fda7f4414fb8593cb..10f4015b8c36e4e27cf7d0745ba70b8a9e60aff3 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -504,6 +504,7 @@ public abstract class BlockBase { +@@ -505,6 +505,7 @@ public abstract class BlockBase { return this.a != null ? this.a.b : this.b(iblockaccess, blockposition, VoxelShapeCollision.a()); } @@ -174,7 +174,7 @@ index fdd9e37a8c90fc3311e515355af0a0593efbdacc..cf32a4f63e8e59535c02a3f9c57f9883 if (operatorboolean.apply(false, false)) { throw (IllegalArgumentException) SystemUtils.c((Throwable) (new IllegalArgumentException())); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 681eb48c568029d6e3c5fa140a2c330a5f27df6f..e0e48094160b55b55efb9b567fa5fd7d497ed628 100644 +index db8dc8e5dda304a3ccd81dc0c781476d5946a1ba..334ac1cb253cf3d063c7a26db698c596b425b057 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -1202,6 +1202,14 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch b/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch index 547315f0b..d16a82a8f 100644 --- a/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch +++ b/Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch @@ -18,10 +18,10 @@ an invalid entity. This should reduce log occurrences of dupe uuid messages. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 04b708e776f277985340f329dc8cb3c16a6100a7..c59bcb6e19b712e007c7bf66bf70a4ffa3c6c2cd 100644 +index 14321bc6ecc5ca70e71c1eef9578091822aa94cd..ce7431ea8597c645bb2c97f596796dbf12206e72 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1155,6 +1155,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1157,6 +1157,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { List[] aentityslice = chunk.getEntitySlices(); // Spigot int i = aentityslice.length; @@ -29,7 +29,7 @@ index 04b708e776f277985340f329dc8cb3c16a6100a7..c59bcb6e19b712e007c7bf66bf70a4ff for (int j = 0; j < i; ++j) { List entityslice = aentityslice[j]; // Spigot Iterator iterator = entityslice.iterator(); -@@ -1167,11 +1168,25 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1169,11 +1170,25 @@ public class WorldServer extends World implements GeneratorAccessSeed { throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } diff --git a/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch b/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch index ef440ea74..4a53bdbde 100644 --- a/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch +++ b/Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch @@ -23,10 +23,10 @@ index 6943524c2dd8b12691b8ac5b08daee823ce50c3d..b67bd98cca4a06bc0ebaed577195dffc 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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index c59bcb6e19b712e007c7bf66bf70a4ffa3c6c2cd..8452b4f62689b231d38f4608c2d72b41164078b3 100644 +index ce7431ea8597c645bb2c97f596796dbf12206e72..4eda8d2065d72c67b1e1cf9e9560e13e7f24d470 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1307,6 +1307,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1309,6 +1309,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { entity.origin = entity.getBukkitEntity().getLocation(); } // Paper end @@ -34,7 +34,7 @@ index c59bcb6e19b712e007c7bf66bf70a4ffa3c6c2cd..8452b4f62689b231d38f4608c2d72b41 new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid } -@@ -1319,6 +1320,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1321,6 +1322,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.removeEntityFromChunk(entity); this.entitiesById.remove(entity.getId()); this.unregisterEntity(entity); @@ -83,7 +83,7 @@ index e4accac8f2e8daa58f9b0c279ffcad9347448bb0..79ff96f18c53f3d1ce4a00be2e2d8fe6 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/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 1bb6ed364cdde01fe54553cfad8ec4256789620b..24c80cf3820622297046abaa13205814b8178195 100644 +index d85e1e95b99c6d8b618ac0094d46caf6a38a59c6..2c2343ad815a4baee22f92fda426180b56d18fae 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1046,6 +1046,7 @@ public class CraftWorld implements World { diff --git a/Spigot-Server-Patches/0259-Add-hand-to-bucket-events.patch b/Spigot-Server-Patches/0259-Add-hand-to-bucket-events.patch index baabf8474..70503203a 100644 --- a/Spigot-Server-Patches/0259-Add-hand-to-bucket-events.patch +++ b/Spigot-Server-Patches/0259-Add-hand-to-bucket-events.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add hand to bucket events diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 8452b4f62689b231d38f4608c2d72b41164078b3..ab18969083e89eb2016c6a6bffc06f4e83c9f753 100644 +index 4eda8d2065d72c67b1e1cf9e9560e13e7f24d470..0c1867c00be9ecda5294298c5b9d22098e213a81 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1656,15 +1656,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1658,15 +1658,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.getMinecraftServer().getPlayerList().sendAll(new PacketPlayOutSpawnPosition(blockposition, f)); } @@ -126,7 +126,7 @@ index 07c5cdd00930a55fd412ef95f71f55ee908189a1..88b1a0235bfc0b41ae1855f8900632e4 public boolean s_() { return this.isClientSide; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index e0e48094160b55b55efb9b567fa5fd7d497ed628..ecd3b31216616b0ffe239785e3942cfb4bfebcf8 100644 +index 334ac1cb253cf3d063c7a26db698c596b425b057..d65c521b6028d61eed8cd1c63f8f9e72f2aa0e3b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -227,7 +227,7 @@ public class CraftEventFactory { diff --git a/Spigot-Server-Patches/0261-Fix-client-rendering-skulls-from-same-user.patch b/Spigot-Server-Patches/0261-Fix-client-rendering-skulls-from-same-user.patch index 97e95497b..192b8c8a6 100644 --- a/Spigot-Server-Patches/0261-Fix-client-rendering-skulls-from-same-user.patch +++ b/Spigot-Server-Patches/0261-Fix-client-rendering-skulls-from-same-user.patch @@ -95,10 +95,10 @@ index c525afbc7d73488db2cae1501cdbe80ec05aeb7c..ce5d8463763dd39e1225d9dec0514b17 private Entity k; private ShapeDetectorBlock l; diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java -index 06ab45e0927403beb6b5e11d2b5ea93d4786f1d3..1d1d708d1cbebb5a3ee50d5f46d9d953f22447dc 100644 +index 22217f24b4a87f10b6d5a3e37d23a1164af84ace..4f7c014fa609a39cac651ccc6d3397d7edb77d8d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java -@@ -8,6 +8,7 @@ import java.util.UUID; +@@ -9,6 +9,7 @@ import java.util.UUID; import javax.annotation.Nullable; import net.minecraft.nbt.GameProfileSerializer; import net.minecraft.nbt.NBTTagCompound; @@ -106,7 +106,7 @@ index 06ab45e0927403beb6b5e11d2b5ea93d4786f1d3..1d1d708d1cbebb5a3ee50d5f46d9d953 import net.minecraft.network.protocol.game.PacketPlayOutTileEntityData; import net.minecraft.server.players.UserCache; import net.minecraft.util.UtilColor; -@@ -153,9 +154,37 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa +@@ -154,9 +155,37 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa @Nullable @Override public PacketPlayOutTileEntityData getUpdatePacket() { diff --git a/Spigot-Server-Patches/0272-Optimize-CraftBlockData-Creation.patch b/Spigot-Server-Patches/0272-Optimize-CraftBlockData-Creation.patch index 0edba12de..727414b27 100644 --- a/Spigot-Server-Patches/0272-Optimize-CraftBlockData-Creation.patch +++ b/Spigot-Server-Patches/0272-Optimize-CraftBlockData-Creation.patch @@ -7,10 +7,10 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData and cloning it when one is needed. diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 61e2da8d8b2ebf50b28362c5c89bf5c32dbba1ba..58c9f11bda5b8a0d80739d7c243e8e5cba4fe0af 100644 +index 10f4015b8c36e4e27cf7d0745ba70b8a9e60aff3..57857cc33603cf278de424b540a3d4a5943584c9 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -374,6 +374,14 @@ public abstract class BlockBase { +@@ -375,6 +375,14 @@ public abstract class BlockBase { this.o = blockbase_info.t; this.p = blockbase_info.u; } diff --git a/Spigot-Server-Patches/0333-Allow-Saving-of-Oversized-Chunks.patch b/Spigot-Server-Patches/0333-Allow-Saving-of-Oversized-Chunks.patch index be548e855..56fb7e5bc 100644 --- a/Spigot-Server-Patches/0333-Allow-Saving-of-Oversized-Chunks.patch +++ b/Spigot-Server-Patches/0333-Allow-Saving-of-Oversized-Chunks.patch @@ -31,10 +31,10 @@ this fix, as the data will remain in the oversized file. Once the server returns to a jar with this fix, the data will be restored. diff --git a/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java b/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java -index f792ac1639e16522695082caed754b1c2cb333b9..9da608c9dde183ad813fa5b7643314ce05c85aa5 100644 +index 850d3a7bb8ae4c43c0e2f737cfe69261f338b026..20410a5853e34c90c872f5e9592d50c4727e914d 100644 --- a/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java +++ b/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java -@@ -131,6 +131,7 @@ public class NBTCompressedStreamTools { +@@ -132,6 +132,7 @@ public class NBTCompressedStreamTools { } @@ -42,7 +42,7 @@ index f792ac1639e16522695082caed754b1c2cb333b9..9da608c9dde183ad813fa5b7643314ce public static NBTTagCompound a(DataInput datainput) throws IOException { return a(datainput, NBTReadLimiter.a); } -@@ -151,6 +152,7 @@ public class NBTCompressedStreamTools { +@@ -152,6 +153,7 @@ public class NBTCompressedStreamTools { } } @@ -51,10 +51,10 @@ index f792ac1639e16522695082caed754b1c2cb333b9..9da608c9dde183ad813fa5b7643314ce a((NBTBase) nbttagcompound, dataoutput); } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 6efbb8a3502f86e105d4dfb9cef114a790966e95..a9cbe17f6ccf0ce4ace97ba4b951b3fd7415d71b 100644 +index 4bf3e0cb4602d33a2e00c502b1dd212032b22a8f..00cef1c0bc19976a000389e57a1af5d93690c0e7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -19,8 +19,12 @@ import java.nio.file.LinkOption; +@@ -20,8 +20,12 @@ import java.nio.file.LinkOption; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.nio.file.StandardOpenOption; @@ -67,7 +67,7 @@ index 6efbb8a3502f86e105d4dfb9cef114a790966e95..a9cbe17f6ccf0ce4ace97ba4b951b3fd import net.minecraft.world.level.ChunkCoordIntPair; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@@ -37,6 +41,7 @@ public class RegionFile implements AutoCloseable { +@@ -38,6 +42,7 @@ public class RegionFile implements AutoCloseable { private final IntBuffer i; @VisibleForTesting protected final RegionFileBitSet freeSectors; @@ -75,7 +75,7 @@ index 6efbb8a3502f86e105d4dfb9cef114a790966e95..a9cbe17f6ccf0ce4ace97ba4b951b3fd public RegionFile(File file, File file1, boolean flag) throws IOException { this(file.toPath(), file1.toPath(), RegionFileCompression.b, flag); -@@ -44,6 +49,8 @@ public class RegionFile implements AutoCloseable { +@@ -45,6 +50,8 @@ public class RegionFile implements AutoCloseable { public RegionFile(Path path, Path path1, RegionFileCompression regionfilecompression, boolean flag) throws IOException { this.g = ByteBuffer.allocateDirect(8192); @@ -84,7 +84,7 @@ index 6efbb8a3502f86e105d4dfb9cef114a790966e95..a9cbe17f6ccf0ce4ace97ba4b951b3fd this.freeSectors = new RegionFileBitSet(); this.f = regionfilecompression; if (!Files.isDirectory(path1, new LinkOption[0])) { -@@ -407,6 +414,74 @@ public class RegionFile implements AutoCloseable { +@@ -408,6 +415,74 @@ public class RegionFile implements AutoCloseable { void run() throws IOException; } diff --git a/Spigot-Server-Patches/0336-Use-proper-max-length-when-serialising-BungeeCord-te.patch b/Spigot-Server-Patches/0336-Use-proper-max-length-when-serialising-BungeeCord-te.patch index b46ce70f1..b9eefdc88 100644 --- a/Spigot-Server-Patches/0336-Use-proper-max-length-when-serialising-BungeeCord-te.patch +++ b/Spigot-Server-Patches/0336-Use-proper-max-length-when-serialising-BungeeCord-te.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use proper max length when serialising BungeeCord text diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -index c47427fd2eed173726cb856aae62c02a2b46bbf0..d4cf5536883192c49636177cb782a9a2f514cd87 100644 +index f6a1c5ac9acb34b1ef2262721adbbb1a5b0feaf7..fefcacf27d71c67403555502685a992a5a706099 100644 --- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java +++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -@@ -8,7 +8,7 @@ import net.minecraft.network.chat.IChatBaseComponent; +@@ -9,7 +9,7 @@ import net.minecraft.network.chat.IChatBaseComponent; import net.minecraft.network.protocol.Packet; public class PacketPlayOutChat implements Packet { @@ -18,7 +18,7 @@ index c47427fd2eed173726cb856aae62c02a2b46bbf0..d4cf5536883192c49636177cb782a9a2 private IChatBaseComponent a; public net.kyori.adventure.text.Component adventure$message; // Paper public net.md_5.bungee.api.chat.BaseComponent[] components; // Spigot -@@ -42,9 +42,9 @@ public class PacketPlayOutChat implements Packet { +@@ -43,9 +43,9 @@ public class PacketPlayOutChat implements Packet { //packetdataserializer.a(net.md_5.bungee.chat.ComponentSerializer.toString(components)); // Paper - comment, replaced with below // Paper start - don't nest if we don't need to so that we can preserve formatting if (this.components.length == 1) { diff --git a/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch b/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch index 4cebbb7d1..4523ff926 100644 --- a/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch +++ b/Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch @@ -10,10 +10,10 @@ persistenting Living Entity, SPAWNER for spawners, or DEFAULT since data was not stored. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ab18969083e89eb2016c6a6bffc06f4e83c9f753..53359f5ca7a1098f78e683ebad142d5bcca51782 100644 +index 0c1867c00be9ecda5294298c5b9d22098e213a81..b8a32742b2b2558a6155fc72e277a693c2306302 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1039,6 +1039,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1041,6 +1041,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit start private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/Spigot-Server-Patches/0350-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch b/Spigot-Server-Patches/0350-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch index b79ebc2d6..fcbd18cfe 100644 --- a/Spigot-Server-Patches/0350-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch +++ b/Spigot-Server-Patches/0350-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch @@ -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/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 2a510940525fda83707e2a587e18ce34e5822af1..b8f0ea863b89bf9ddeef8104d09fe7f00b91f711 100644 +index b8a32742b2b2558a6155fc72e277a693c2306302..61d3524e962b97ed032af1990f8dc6513fbe51d6 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -852,11 +852,18 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -854,11 +854,18 @@ public class WorldServer extends World implements GeneratorAccessSeed { int k = MathHelper.floor(entity.locZ() / 16.0D); if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) { @@ -42,7 +42,7 @@ index 2a510940525fda83707e2a587e18ce34e5822af1..b8f0ea863b89bf9ddeef8104d09fe7f0 if (entity.inChunk) { WorldServer.LOGGER.warn("Entity {} left loaded chunk area", entity); } -@@ -1071,7 +1078,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1073,7 +1080,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { return false; } // CraftBukkit end diff --git a/Spigot-Server-Patches/0351-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0351-Duplicate-UUID-Resolve-Option.patch index b5241bf30..3bb620b1f 100644 --- a/Spigot-Server-Patches/0351-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0351-Duplicate-UUID-Resolve-Option.patch @@ -181,7 +181,7 @@ index c4dd2bac48bb93117925b35dcd753d0fbb22e3cf..aeed11cfee42fbde2c2e5731f46ac24d ChunkCoordIntPair chunkcoordintpair = playerchunk.i(); CompletableFuture, PlayerChunk.Failure>> completablefuture = this.a(chunkcoordintpair, 1, (i) -> { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index edae7ff7d181a5d28e083e714112dc3188b2461f..44611304d5bf222900866319a02a333e0f56218d 100644 +index 61d3524e962b97ed032af1990f8dc6513fbe51d6..a7fbbb755b2e829022efb0ae63fc1020d5adda4f 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -4,6 +4,8 @@ import com.google.common.annotations.VisibleForTesting; @@ -193,7 +193,7 @@ index edae7ff7d181a5d28e083e714112dc3188b2461f..44611304d5bf222900866319a02a333e import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Queues; -@@ -1106,7 +1108,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1108,7 +1110,22 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (entity1 == null) { return false; } else { diff --git a/Spigot-Server-Patches/0353-Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/0353-Configurable-Keep-Spawn-Loaded-range-per-world.patch index 5f22a742a..f7756392c 100644 --- a/Spigot-Server-Patches/0353-Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/0353-Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -75,7 +75,7 @@ index b704401da2832601dd45d3c29e950cb52033a3fd..90eb5d8ed7698b5e19d38cec647c1bcb if (true) { WorldServer worldserver1 = worldserver; diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 44611304d5bf222900866319a02a333e0f56218d..16441006736abdea0120570557348be4919c82ad 100644 +index a7fbbb755b2e829022efb0ae63fc1020d5adda4f..a9c0d3fc4aa07d9d580a31106169796b7bde4e63 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -67,6 +67,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent; @@ -86,7 +86,7 @@ index 44611304d5bf222900866319a02a333e0f56218d..16441006736abdea0120570557348be4 import net.minecraft.server.MinecraftServer; import net.minecraft.server.ScoreboardServer; import net.minecraft.server.level.progress.WorldLoadListener; -@@ -1672,12 +1673,88 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1674,12 +1675,88 @@ public class WorldServer extends World implements GeneratorAccessSeed { return ((PersistentIdCounts) this.getMinecraftServer().E().getWorldPersistentData().a(PersistentIdCounts::new, "idcounts")).a(); } diff --git a/Spigot-Server-Patches/0359-Fix-World-isChunkGenerated-calls.patch b/Spigot-Server-Patches/0359-Fix-World-isChunkGenerated-calls.patch index bb4d40698..d57314296 100644 --- a/Spigot-Server-Patches/0359-Fix-World-isChunkGenerated-calls.patch +++ b/Spigot-Server-Patches/0359-Fix-World-isChunkGenerated-calls.patch @@ -209,10 +209,10 @@ index 247d14a3ca56734bbbf4dc0ec247d60a1f241e7a..d785f44cd503d4d91589f3fc4bc8dc80 @Nullable private PersistentStructureLegacy c; diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index a9cbe17f6ccf0ce4ace97ba4b951b3fd7415d71b..39d3a71f3945b1c97df35e28d1011b9d42b162f5 100644 +index 00cef1c0bc19976a000389e57a1af5d93690c0e7..d50b9c9d030016f951e2ed7fb519250b7408c833 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -26,6 +26,7 @@ import net.minecraft.SystemUtils; +@@ -27,6 +27,7 @@ import net.minecraft.SystemUtils; import net.minecraft.nbt.NBTCompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.level.ChunkCoordIntPair; @@ -220,7 +220,7 @@ index a9cbe17f6ccf0ce4ace97ba4b951b3fd7415d71b..39d3a71f3945b1c97df35e28d1011b9d import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@@ -43,6 +44,30 @@ public class RegionFile implements AutoCloseable { +@@ -44,6 +45,30 @@ public class RegionFile implements AutoCloseable { protected final RegionFileBitSet freeSectors; public final File file; // Paper @@ -251,7 +251,7 @@ index a9cbe17f6ccf0ce4ace97ba4b951b3fd7415d71b..39d3a71f3945b1c97df35e28d1011b9d public RegionFile(File file, File file1, boolean flag) throws IOException { this(file.toPath(), file1.toPath(), RegionFileCompression.b, flag); } -@@ -379,11 +404,13 @@ public class RegionFile implements AutoCloseable { +@@ -380,11 +405,13 @@ public class RegionFile implements AutoCloseable { return this.getOffset(chunkcoordintpair) != 0; } @@ -294,7 +294,7 @@ index ab9f4d40fd1126a3d7ba5b16fdc6ab09de4a7fdb..55e7e983d2c760a8052d7b3ddbdc8447 } catch (Throwable throwable1) { throwable = throwable1; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9e47e9cfa5bf1819e6d6779c52828e4472e4eed0..bf1ebb108149f519ae29a2277020398c898d2bc3 100644 +index c19ac8c28a799bebf68f098171cefd0fc3ec3f0b..57e8b8078aaa92d0869ab2aeb17a5f53c5e7b2bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -19,6 +19,7 @@ import java.util.Objects; diff --git a/Spigot-Server-Patches/0362-incremental-chunk-saving.patch b/Spigot-Server-Patches/0362-incremental-chunk-saving.patch index 875707df0..0209e596b 100644 --- a/Spigot-Server-Patches/0362-incremental-chunk-saving.patch +++ b/Spigot-Server-Patches/0362-incremental-chunk-saving.patch @@ -252,10 +252,10 @@ index ccfde274edfe1b611ccf8c583c92b16d52e4518d..1f32ab230d650bb5f652efbacdd5e4b9 return PlayerChunk.getChunkState(playerchunk.getTicketLevel()); }); diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 16441006736abdea0120570557348be4919c82ad..5da94d3c2498c84da81f41c37249159d1c3a9ca2 100644 +index a9c0d3fc4aa07d9d580a31106169796b7bde4e63..735da5729c16940e3d8877f32a40342b9d1e989d 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -886,11 +886,43 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -888,11 +888,43 @@ public class WorldServer extends World implements GeneratorAccessSeed { return !this.server.a(this, blockposition, entityhuman) && this.getWorldBorder().a(blockposition); } @@ -300,7 +300,7 @@ index 16441006736abdea0120570557348be4919c82ad..5da94d3c2498c84da81f41c37249159d try (co.aikar.timings.Timing ignored = timings.worldSave.startTiming()) { // Paper if (iprogressupdate != null) { iprogressupdate.a(new ChatMessage("menu.savingLevel")); -@@ -916,6 +948,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -918,6 +950,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { // CraftBukkit end } diff --git a/Spigot-Server-Patches/0366-Mark-entities-as-being-ticked-when-notifying-navigat.patch b/Spigot-Server-Patches/0366-Mark-entities-as-being-ticked-when-notifying-navigat.patch index c98ba61e5..6e29d9d66 100644 --- a/Spigot-Server-Patches/0366-Mark-entities-as-being-ticked-when-notifying-navigat.patch +++ b/Spigot-Server-Patches/0366-Mark-entities-as-being-ticked-when-notifying-navigat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Mark entities as being ticked when notifying navigation diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 280ecd3634d77b93cf0923f4c4a5cfd7f114e848..7282ac286e4f1333c25a8515275b27b9efb19343 100644 +index caf3d4df460d2d6dad6e68a68e1256e3603e3891..1b05d2394244d85a63ecd8336f7dd1d05f4fdffe 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1474,6 +1474,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1476,6 +1476,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) { @@ -16,7 +16,7 @@ index 280ecd3634d77b93cf0923f4c4a5cfd7f114e848..7282ac286e4f1333c25a8515275b27b9 Iterator iterator = this.navigators.iterator(); while (iterator.hasNext()) { -@@ -1495,6 +1496,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1497,6 +1498,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } diff --git a/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch index 0c3210bf1..bff57d4fc 100644 --- a/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch +++ b/Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch @@ -3071,7 +3071,7 @@ index 285a03b57431bd6a4d26bb84e916d2c6e1eb0213..218dc900e125a11548485887b1918742 public static TicketType a(String s, Comparator comparator) { return new TicketType<>(s, comparator, 0L); diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 7282ac286e4f1333c25a8515275b27b9efb19343..1ceff988080b47352edf9cdf3c4f8e69421765d2 100644 +index 1b05d2394244d85a63ecd8336f7dd1d05f4fdffe..a68be9b72daca6353d51141a8771e00240375315 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -51,6 +51,7 @@ import net.minecraft.core.IRegistry; @@ -3179,7 +3179,7 @@ index 7282ac286e4f1333c25a8515275b27b9efb19343..1ceff988080b47352edf9cdf3c4f8e69 } // CraftBukkit start -@@ -1742,7 +1819,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1744,7 +1821,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { } MCUtil.getSpiralOutChunks(spawn, radiusInBlocks >> 4).forEach(pair -> { @@ -3192,7 +3192,7 @@ index 7282ac286e4f1333c25a8515275b27b9efb19343..1ceff988080b47352edf9cdf3c4f8e69 } public void removeTicketsForSpawn(int radiusInBlocks, BlockPosition spawn) { diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 6a00d53e01f5f169a5e9d58ba6bd3fb067722c63..12d98c82b93658d1246bfe267bbfc87d3a56bbaa 100644 +index eff63b82e69eef6921a6dc09e86cd045e7e2febb..97429dc047f8907fbbd1ba16a6d4721518433b02 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -728,6 +728,13 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -3382,10 +3382,10 @@ index 711308cf84a816f09d116a7414f9cbee803c8713..f094ddf6b4d155f3c7a08a3b811c98b0 return this.c() >= chunkstatus.c(); } diff --git a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -index 37d31b49dbbbf834daf29e50daffd9852bfaaf03..2e86be5be969ebf672ef3844e1367583c823f252 100644 +index a2518fdadd1d7239e8614f498a5223144f1c2a36..86b4db483787c5fd10461f7d7e90a772ee049599 100644 --- a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java +++ b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -@@ -72,6 +72,7 @@ public class NibbleArray { +@@ -73,6 +73,7 @@ public class NibbleArray { return this.a; } @@ -3767,10 +3767,10 @@ index d785f44cd503d4d91589f3fc4bc8dc805dff3d41..01ae13385dd0208c9f34da8b3897b571 } } diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -index 39d3a71f3945b1c97df35e28d1011b9d42b162f5..4999ba61fb04713ffe3d23c556f732dc4abbf0bc 100644 +index d50b9c9d030016f951e2ed7fb519250b7408c833..1b0535ba211904b2384cc80c02c21ed1a606e752 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java -@@ -44,6 +44,8 @@ public class RegionFile implements AutoCloseable { +@@ -45,6 +45,8 @@ public class RegionFile implements AutoCloseable { protected final RegionFileBitSet freeSectors; public final File file; // Paper @@ -3779,7 +3779,7 @@ index 39d3a71f3945b1c97df35e28d1011b9d42b162f5..4999ba61fb04713ffe3d23c556f732dc // Paper start - Cache chunk status private final ChunkStatus[] statuses = new ChunkStatus[32 * 32]; -@@ -250,7 +252,7 @@ public class RegionFile implements AutoCloseable { +@@ -251,7 +253,7 @@ public class RegionFile implements AutoCloseable { return (i + 4096 - 1) / 4096; } @@ -3788,7 +3788,7 @@ index 39d3a71f3945b1c97df35e28d1011b9d42b162f5..4999ba61fb04713ffe3d23c556f732dc int i = this.getOffset(chunkcoordintpair); if (i == 0) { -@@ -410,6 +412,11 @@ public class RegionFile implements AutoCloseable { +@@ -411,6 +413,11 @@ public class RegionFile implements AutoCloseable { } public void close() throws IOException { @@ -3800,7 +3800,7 @@ index 39d3a71f3945b1c97df35e28d1011b9d42b162f5..4999ba61fb04713ffe3d23c556f732dc this.closed = true; // Paper try { this.d(); -@@ -420,6 +427,10 @@ public class RegionFile implements AutoCloseable { +@@ -421,6 +428,10 @@ public class RegionFile implements AutoCloseable { this.dataFile.close(); } } diff --git a/Spigot-Server-Patches/0402-Entity-Activation-Range-2.0.patch b/Spigot-Server-Patches/0402-Entity-Activation-Range-2.0.patch index 118ae7433..8b4f3d20d 100644 --- a/Spigot-Server-Patches/0402-Entity-Activation-Range-2.0.patch +++ b/Spigot-Server-Patches/0402-Entity-Activation-Range-2.0.patch @@ -14,10 +14,10 @@ Adds flying monsters to control ghast and phantoms Adds villagers as separate config diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index f11617dc37771f65d574cd14ae9cea09103d11e1..c4adf5d3c2389d3344e179562eee6817cd4fb298 100644 +index 07b2f7f13044ace4db48274da8309c37aaa2d2c4..18169d48598b873b0d7507bb55a1a0bad0ab6566 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -859,17 +859,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -861,17 +861,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper @@ -39,7 +39,7 @@ index f11617dc37771f65d574cd14ae9cea09103d11e1..c4adf5d3c2389d3344e179562eee6817 try { // Paper end - timings entity.g(entity.locX(), entity.locY(), entity.locZ()); -@@ -883,12 +883,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -885,12 +885,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { return IRegistry.ENTITY_TYPE.getKey(entity.getEntityType()).toString(); }); gameprofilerfiller.c("tickNonPassenger"); @@ -56,7 +56,7 @@ index f11617dc37771f65d574cd14ae9cea09103d11e1..c4adf5d3c2389d3344e179562eee6817 if (entity.inChunk) { Iterator iterator = entity.getPassengers().iterator(); -@@ -898,7 +902,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -900,7 +904,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.a(entity, entity1); } } @@ -65,7 +65,7 @@ index f11617dc37771f65d574cd14ae9cea09103d11e1..c4adf5d3c2389d3344e179562eee6817 } } -@@ -906,6 +910,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -908,6 +912,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { public void a(Entity entity, Entity entity1) { if (!entity1.dead && entity1.getVehicle() == entity) { if (entity1 instanceof EntityHuman || this.getChunkProvider().a(entity1)) { @@ -77,7 +77,7 @@ index f11617dc37771f65d574cd14ae9cea09103d11e1..c4adf5d3c2389d3344e179562eee6817 entity1.g(entity1.locX(), entity1.locY(), entity1.locZ()); entity1.lastYaw = entity1.yaw; entity1.lastPitch = entity1.pitch; -@@ -917,8 +926,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -919,8 +928,17 @@ public class WorldServer extends World implements GeneratorAccessSeed { return IRegistry.ENTITY_TYPE.getKey(entity1.getEntityType()).toString(); }); gameprofilerfiller.c("tickPassenger"); @@ -95,7 +95,7 @@ index f11617dc37771f65d574cd14ae9cea09103d11e1..c4adf5d3c2389d3344e179562eee6817 gameprofilerfiller.exit(); } -@@ -931,7 +949,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -933,7 +951,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.a(entity1, entity2); } @@ -217,7 +217,7 @@ index db72b685f4a4b95f345f1d34f9eeb83b8731120a..89d24d7532a256434513a45c901946e2 if (this.isPassenger() && this.getVehicle() instanceof EntityInsentient) { EntityInsentient entityinsentient = (EntityInsentient) this.getVehicle(); diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 00f94e94aa302e24d286164ae829c935d2bcce95..750c568201acf447f598343437e67cb039423111 100644 +index f851a9806e3b936093275cf404caca82c6662ab4..02d3b792cc9769b5daa6fcac57f5cda320a2a29e 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java @@ -192,7 +192,7 @@ public abstract class EntityLiving extends Entity { diff --git a/Spigot-Server-Patches/0408-Optimise-random-block-ticking.patch b/Spigot-Server-Patches/0408-Optimise-random-block-ticking.patch index 798698c44..340a9f9e5 100644 --- a/Spigot-Server-Patches/0408-Optimise-random-block-ticking.patch +++ b/Spigot-Server-Patches/0408-Optimise-random-block-ticking.patch @@ -83,10 +83,10 @@ index 4c9ec211470f95d538d1d95c74796190edf99b87..8c0aeb51f5e230fd6109e750732eb545 return this.d(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ()); } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index c4adf5d3c2389d3344e179562eee6817cd4fb298..f666b281926876636672e76a7a5e6386a9701b6a 100644 +index 18169d48598b873b0d7507bb55a1a0bad0ab6566..291c8091dbe58bc8e2c9ed8f3c80428386a2a1d1 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -673,7 +673,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -675,7 +675,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { }); } @@ -100,7 +100,7 @@ index c4adf5d3c2389d3344e179562eee6817cd4fb298..f666b281926876636672e76a7a5e6386 ChunkCoordIntPair chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); int j = chunkcoordintpair.d(); -@@ -681,10 +686,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -683,10 +688,10 @@ public class WorldServer extends World implements GeneratorAccessSeed { GameProfilerFiller gameprofilerfiller = this.getMethodProfiler(); gameprofilerfiller.enter("thunder"); @@ -113,7 +113,7 @@ index c4adf5d3c2389d3344e179562eee6817cd4fb298..f666b281926876636672e76a7a5e6386 if (this.isRainingAt(blockposition)) { DifficultyDamageScaler difficultydamagescaler = this.getDamageScaler(blockposition); boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper -@@ -707,59 +712,77 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -709,59 +714,77 @@ public class WorldServer extends World implements GeneratorAccessSeed { } gameprofilerfiller.exitEnter("iceandsnow"); diff --git a/Spigot-Server-Patches/0418-Optimise-TickListServer-by-rewriting-it.patch b/Spigot-Server-Patches/0418-Optimise-TickListServer-by-rewriting-it.patch index 88e22f511..69a2d46d7 100644 --- a/Spigot-Server-Patches/0418-Optimise-TickListServer-by-rewriting-it.patch +++ b/Spigot-Server-Patches/0418-Optimise-TickListServer-by-rewriting-it.patch @@ -942,7 +942,7 @@ index 6433463938d8bb717840c8f57fe6e7079e1030f2..445dba8ed210407664904b707c36c78a } }); diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index f666b281926876636672e76a7a5e6386a9701b6a..74aef9741cc3ebf36749dc510bc4ef9d8f5580b0 100644 +index 291c8091dbe58bc8e2c9ed8f3c80428386a2a1d1..12be2c5406ece16a21abaebb3ca89171304cb929 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -298,6 +298,15 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -989,7 +989,7 @@ index f666b281926876636672e76a7a5e6386a9701b6a..74aef9741cc3ebf36749dc510bc4ef9d this.navigators = Sets.newHashSet(); this.L = new ObjectLinkedOpenHashSet(); this.Q = flag1; -@@ -643,7 +661,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -645,7 +663,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (this.Q) { long i = this.worldData.getTime() + 1L; diff --git a/Spigot-Server-Patches/0420-Ensure-Entity-is-never-double-registered.patch b/Spigot-Server-Patches/0420-Ensure-Entity-is-never-double-registered.patch index 39ea97d5a..d92d3aaeb 100644 --- a/Spigot-Server-Patches/0420-Ensure-Entity-is-never-double-registered.patch +++ b/Spigot-Server-Patches/0420-Ensure-Entity-is-never-double-registered.patch @@ -11,10 +11,10 @@ Vs behavior of non ticking of just overwriting state. We will now simply log a warning when this happens instead of crashing the server. diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 74aef9741cc3ebf36749dc510bc4ef9d8f5580b0..ae4db654658675f05b678a3d2d6c4a6be503761e 100644 +index 12be2c5406ece16a21abaebb3ca89171304cb929..7dbb7e75c10d443fe9c90eadec8e9cdf01024548 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -647,6 +647,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -649,6 +649,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { Entity entity2; while ((entity2 = (Entity) this.entitiesToAdd.poll()) != null) { @@ -22,7 +22,7 @@ index 74aef9741cc3ebf36749dc510bc4ef9d8f5580b0..ae4db654658675f05b678a3d2d6c4a6b this.registerEntity(entity2); } -@@ -1404,6 +1405,19 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1406,6 +1407,19 @@ public class WorldServer extends World implements GeneratorAccessSeed { public void unregisterEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot @@ -42,7 +42,7 @@ index 74aef9741cc3ebf36749dc510bc4ef9d8f5580b0..ae4db654658675f05b678a3d2d6c4a6b // Spigot start if ( entity instanceof EntityHuman ) { -@@ -1470,9 +1484,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1472,9 +1486,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { private void registerEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -66,7 +66,7 @@ index 74aef9741cc3ebf36749dc510bc4ef9d8f5580b0..ae4db654658675f05b678a3d2d6c4a6b if (entity instanceof EntityEnderDragon) { EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 19322c00422ac53de9903b3492994ce6e3c3bef4..44886357da22f0e7f74b1739028ae0c7a81dd525 100644 +index 68fdb01c3f11c3b060d3d621099d67f6b29431d6..f95aa9b4cc53c1e3258b7b32249ec1c3ef4ae2f1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -148,6 +148,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/Spigot-Server-Patches/0421-Fix-unregistering-entities-from-unloading-chunks.patch b/Spigot-Server-Patches/0421-Fix-unregistering-entities-from-unloading-chunks.patch index 1b480d89a..26ec69941 100644 --- a/Spigot-Server-Patches/0421-Fix-unregistering-entities-from-unloading-chunks.patch +++ b/Spigot-Server-Patches/0421-Fix-unregistering-entities-from-unloading-chunks.patch @@ -15,10 +15,10 @@ Combine that with a buggy detail of the previous implementation of the Dupe UUID patch, then this was the likely source of the "Ghost entities" diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ae4db654658675f05b678a3d2d6c4a6be503761e..928d884dcdf1ff6aa1aa4a0e7f6d68f7ae5bce13 100644 +index 7dbb7e75c10d443fe9c90eadec8e9cdf01024548..49a4c2ab35e00cc30bcfad7c702f9278db7b1155 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1563,9 +1563,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1565,9 +1565,9 @@ public class WorldServer extends World implements GeneratorAccessSeed { } private void removeEntityFromChunk(Entity entity) { diff --git a/Spigot-Server-Patches/0424-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/Spigot-Server-Patches/0424-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index b9885b71f..ccc10756c 100644 --- a/Spigot-Server-Patches/0424-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/Spigot-Server-Patches/0424-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -26,10 +26,10 @@ index 4be5f3be285b1944eee66684c1a565ac1eceb024..12cfe9f3c89316557e94c8b944b4f822 EntityTypes entitytypes = entity.getEntityType(); int i = entitytypes.getChunkRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 928d884dcdf1ff6aa1aa4a0e7f6d68f7ae5bce13..ddc0057e0bd77bf7187df45b9bac9ac025f297b1 100644 +index 49a4c2ab35e00cc30bcfad7c702f9278db7b1155..5d085321414134043e52d8012e12a8891529097c 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1529,7 +1529,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1531,7 +1531,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } @@ -38,7 +38,7 @@ index 928d884dcdf1ff6aa1aa4a0e7f6d68f7ae5bce13..ddc0057e0bd77bf7187df45b9bac9ac0 // CraftBukkit start - SPIGOT-5278 if (entity instanceof EntityDrowned) { this.navigators.add(((EntityDrowned) entity).navigationWater); -@@ -1540,6 +1540,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1542,6 +1542,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.navigators.add(((EntityInsentient) entity).getNavigation()); } entity.valid = true; // CraftBukkit diff --git a/Spigot-Server-Patches/0430-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch b/Spigot-Server-Patches/0430-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch index ca67ac4ff..72bf19f16 100644 --- a/Spigot-Server-Patches/0430-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch +++ b/Spigot-Server-Patches/0430-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch @@ -234,10 +234,10 @@ index 138676e5b03bc80a777a1f4c12f3f4b5316e8dea..99108d2c8145c16943fb29872c55d8e7 protected boolean executeNext() { // CraftBukkit start - process pending Chunk loadCallback() and unloadCallback() after each run task diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ddc0057e0bd77bf7187df45b9bac9ac025f297b1..3ad428dd85ec0cbf37a24711004f9a54052c5c93 100644 +index 5d085321414134043e52d8012e12a8891529097c..c34ec6440b3c081a6e573b213f483c9ccf345c2b 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -569,6 +569,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -571,6 +571,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } timings.scheduledBlocks.stopTiming(); // Paper @@ -245,7 +245,7 @@ index ddc0057e0bd77bf7187df45b9bac9ac025f297b1..3ad428dd85ec0cbf37a24711004f9a54 gameprofilerfiller.exitEnter("raid"); this.timings.raids.startTiming(); // Paper - timings this.persistentRaid.a(); -@@ -577,6 +578,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -579,6 +580,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { timings.doSounds.startTiming(); // Spigot this.ak(); timings.doSounds.stopTiming(); // Spigot @@ -253,7 +253,7 @@ index ddc0057e0bd77bf7187df45b9bac9ac025f297b1..3ad428dd85ec0cbf37a24711004f9a54 this.ticking = false; gameprofilerfiller.exitEnter("entities"); boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players -@@ -643,6 +645,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -645,6 +647,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { timings.entityTick.stopTiming(); // Spigot this.tickingEntities = false; @@ -261,7 +261,7 @@ index ddc0057e0bd77bf7187df45b9bac9ac025f297b1..3ad428dd85ec0cbf37a24711004f9a54 Entity entity2; -@@ -652,6 +655,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -654,6 +657,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } timings.tickEntities.stopTiming(); // Spigot diff --git a/Spigot-Server-Patches/0434-Add-Raw-Byte-ItemStack-Serialization.patch b/Spigot-Server-Patches/0434-Add-Raw-Byte-ItemStack-Serialization.patch index 6fc148567..99f307baf 100644 --- a/Spigot-Server-Patches/0434-Add-Raw-Byte-ItemStack-Serialization.patch +++ b/Spigot-Server-Patches/0434-Add-Raw-Byte-ItemStack-Serialization.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization Serializes using NBT which is safer for server data migrations than bukkits format. diff --git a/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java b/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java -index 9da608c9dde183ad813fa5b7643314ce05c85aa5..a6e4bc57ed057f3cbb54817b991d0cef3f0c74fe 100644 +index 20410a5853e34c90c872f5e9592d50c4727e914d..860f084de38dc3f8723d881ff78fb1873f2b602a 100644 --- a/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java +++ b/src/main/java/net/minecraft/nbt/NBTCompressedStreamTools.java -@@ -50,6 +50,7 @@ public class NBTCompressedStreamTools { +@@ -51,6 +51,7 @@ public class NBTCompressedStreamTools { return nbttagcompound; } @@ -17,7 +17,7 @@ index 9da608c9dde183ad813fa5b7643314ce05c85aa5..a6e4bc57ed057f3cbb54817b991d0cef public static NBTTagCompound a(InputStream inputstream) throws IOException { DataInputStream datainputstream = new DataInputStream(new BufferedInputStream(new GZIPInputStream(inputstream))); Throwable throwable = null; -@@ -105,6 +106,7 @@ public class NBTCompressedStreamTools { +@@ -106,6 +107,7 @@ public class NBTCompressedStreamTools { } @@ -38,7 +38,7 @@ index 6527509e6aed7187667c681af682e9a02937a224..28e36ee76da533f8aa0a09cfc4f1fc0f return DataConverterRegistry.c; } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 8a2ff2ef17aba806a63be3aaebfa779dac96831d..3d5a4d662ae4880fa27bd681127ddf7d1f70b51c 100644 +index 661f400ae4f5cebef5d1743819529ecf647b6681..0468f80b7f52ee45fc9364470b23f80f7cd0cb57 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -198,6 +198,7 @@ public final class ItemStack { diff --git a/Spigot-Server-Patches/0436-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch b/Spigot-Server-Patches/0436-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch index ae2e58600..ace543ae0 100644 --- a/Spigot-Server-Patches/0436-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch +++ b/Spigot-Server-Patches/0436-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Delay unsafe actions until after entity ticking is done This will help prevent many cases of unregistering entities during entity ticking diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 3ad428dd85ec0cbf37a24711004f9a54052c5c93..c69eef0d523fc75dce2c2606f3e447591c7cf6dc 100644 +index c34ec6440b3c081a6e573b213f483c9ccf345c2b..ae99f3fb3a4b37c737fb276590004b2e10beab5a 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -178,6 +178,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { @@ -26,7 +26,7 @@ index 3ad428dd85ec0cbf37a24711004f9a54052c5c93..c69eef0d523fc75dce2c2606f3e44759 private final MinecraftServer server; public final WorldDataServer worldDataServer; // CraftBukkit - type public boolean savingDisabled; -@@ -645,6 +655,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -647,6 +657,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { timings.entityTick.stopTiming(); // Spigot this.tickingEntities = false; diff --git a/Spigot-Server-Patches/0478-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/Spigot-Server-Patches/0478-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 23ea26bd6..c5742080f 100644 --- a/Spigot-Server-Patches/0478-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/Spigot-Server-Patches/0478-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -137,10 +137,10 @@ index 7de86d6232eb84642fb6423a1b0a9f30d9df9f2b..e062fd288098127fae22a55562e0207c world.playSound((EntityHuman) null, blockposition, SoundEffects.BLOCK_PISTON_CONTRACT, SoundCategory.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 58c9f11bda5b8a0d80739d7c243e8e5cba4fe0af..1fcbb2e78904aa9f6ab870d7e2bc95ae25fbd33a 100644 +index 57857cc33603cf278de424b540a3d4a5943584c9..2a785ea58a7bdc80c703a60bc6ed602dc8040aa0 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -189,7 +189,7 @@ public abstract class BlockBase { +@@ -190,7 +190,7 @@ public abstract class BlockBase { @Deprecated public boolean a(IBlockData iblockdata, BlockActionContext blockactioncontext) { @@ -149,7 +149,7 @@ index 58c9f11bda5b8a0d80739d7c243e8e5cba4fe0af..1fcbb2e78904aa9f6ab870d7e2bc95ae } @Deprecated -@@ -393,7 +393,11 @@ public abstract class BlockBase { +@@ -394,7 +394,11 @@ public abstract class BlockBase { public Block getBlock() { return (Block) this.c; } @@ -162,7 +162,7 @@ index 58c9f11bda5b8a0d80739d7c243e8e5cba4fe0af..1fcbb2e78904aa9f6ab870d7e2bc95ae public Material getMaterial() { return this.g; } -@@ -483,7 +487,7 @@ public abstract class BlockBase { +@@ -484,7 +488,7 @@ public abstract class BlockBase { } public EnumPistonReaction getPushReaction() { diff --git a/Spigot-Server-Patches/0479-Optimize-NibbleArray-to-use-pooled-buffers.patch b/Spigot-Server-Patches/0479-Optimize-NibbleArray-to-use-pooled-buffers.patch index ebb1afc54..0b519eafd 100644 --- a/Spigot-Server-Patches/0479-Optimize-NibbleArray-to-use-pooled-buffers.patch +++ b/Spigot-Server-Patches/0479-Optimize-NibbleArray-to-use-pooled-buffers.patch @@ -123,10 +123,11 @@ index 247d969e7d1aa59d9650fce1032aaa09db3903e5..9050ff7180f63c1f5756570446c4d0a8 this.d &= ~(1 << k); if (nibblearray != null) { diff --git a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -index 2e86be5be969ebf672ef3844e1367583c823f252..064d49a36dc1603c92a6bb8e9540ba9cc41a3335 100644 +index 86b4db483787c5fd10461f7d7e90a772ee049599..b82420e9a5d42a4383d24921614fe613c640edb9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java +++ b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -@@ -1,17 +1,77 @@ +@@ -1,18 +1,78 @@ + // mc-dev import package net.minecraft.world.level.chunk; +import com.destroystokyo.paper.util.pooled.PooledObjects; // Paper @@ -206,7 +207,7 @@ index 2e86be5be969ebf672ef3844e1367583c823f252..064d49a36dc1603c92a6bb8e9540ba9c if (abyte.length != 2048) { throw (IllegalArgumentException) SystemUtils.c((Throwable) (new IllegalArgumentException("ChunkNibbleArrays should be 2048 bytes not: " + abyte.length))); } -@@ -45,7 +105,8 @@ public class NibbleArray { +@@ -46,7 +106,8 @@ public class NibbleArray { public void a(int i, int j) { // PAIL: private -> public if (this.a == null) { @@ -216,7 +217,7 @@ index 2e86be5be969ebf672ef3844e1367583c823f252..064d49a36dc1603c92a6bb8e9540ba9c } int k = this.d(i); -@@ -67,14 +128,36 @@ public class NibbleArray { +@@ -68,14 +129,36 @@ public class NibbleArray { public byte[] asBytes() { if (this.a == null) { this.a = new byte[2048]; diff --git a/Spigot-Server-Patches/0491-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/Spigot-Server-Patches/0491-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch index 103f8f247..8e7eb5995 100644 --- a/Spigot-Server-Patches/0491-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch +++ b/Spigot-Server-Patches/0491-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use seed based lookup for Treasure Maps - Fixes lag from diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index da3614a4a59884e7cbc8758cfdad9698eb15424f..e7cebe1277cb8fc54a080b93b34a66a2e962119b 100644 +index 06fa9b91cc103a5d5f39ab8fcfb5ccad4cf0e5de..1a7d06d8a3d1fe0a2a943eae5efd23d28fe4bd62 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -419,8 +419,8 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -421,8 +421,8 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.worldDataServer.setThundering(flag1); } diff --git a/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch b/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch index f0edd65ee..6136fa5c2 100644 --- a/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch +++ b/Spigot-Server-Patches/0493-Optimize-Light-Engine.patch @@ -454,10 +454,10 @@ index 2efca1fe92b2e93dcbf5337eea8855b1b2b9a564..72bfda620f073fd3c3e4c43d78583386 this.a.a(t0); this.f(); diff --git a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -index 064d49a36dc1603c92a6bb8e9540ba9cc41a3335..3a85a89be2a736e5b6b7f08032f4becd6bb39ed1 100644 +index b82420e9a5d42a4383d24921614fe613c640edb9..0fec15e141051863dbf51a2b3e1ace5028cd2fc1 100644 --- a/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java +++ b/src/main/java/net/minecraft/world/level/chunk/NibbleArray.java -@@ -10,6 +10,13 @@ import net.minecraft.server.MCUtil; +@@ -11,6 +11,13 @@ import net.minecraft.server.MCUtil; public class NibbleArray { // Paper start diff --git a/Spigot-Server-Patches/0512-Don-t-allow-null-UUID-s-for-chat.patch b/Spigot-Server-Patches/0512-Don-t-allow-null-UUID-s-for-chat.patch index 547939385..b5584efc9 100644 --- a/Spigot-Server-Patches/0512-Don-t-allow-null-UUID-s-for-chat.patch +++ b/Spigot-Server-Patches/0512-Don-t-allow-null-UUID-s-for-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't allow null UUID's for chat diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -index d4cf5536883192c49636177cb782a9a2f514cd87..2203a3d89a3d9f9b3b6b068f6600e79a584f8a67 100644 +index fefcacf27d71c67403555502685a992a5a706099..267e1baeaaed83befc7f6d6445a9416f7b8dfc0f 100644 --- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java +++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java -@@ -2,6 +2,7 @@ package net.minecraft.network.protocol.game; +@@ -3,6 +3,7 @@ package net.minecraft.network.protocol.game; import java.io.IOException; import java.util.UUID; @@ -16,7 +16,7 @@ index d4cf5536883192c49636177cb782a9a2f514cd87..2203a3d89a3d9f9b3b6b068f6600e79a import net.minecraft.network.PacketDataSerializer; import net.minecraft.network.chat.ChatMessageType; import net.minecraft.network.chat.IChatBaseComponent; -@@ -20,7 +21,7 @@ public class PacketPlayOutChat implements Packet { +@@ -21,7 +22,7 @@ public class PacketPlayOutChat implements Packet { public PacketPlayOutChat(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype, UUID uuid) { this.a = ichatbasecomponent; this.b = chatmessagetype; diff --git a/Spigot-Server-Patches/0517-Remove-some-streams-from-structures.patch b/Spigot-Server-Patches/0517-Remove-some-streams-from-structures.patch index 3daaa3172..67b43bca1 100644 --- a/Spigot-Server-Patches/0517-Remove-some-streams-from-structures.patch +++ b/Spigot-Server-Patches/0517-Remove-some-streams-from-structures.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Remove some streams from structures This showed up a lot in the spark profiler, should have a low-medium performance improvement. diff --git a/src/main/java/net/minecraft/world/level/StructureManager.java b/src/main/java/net/minecraft/world/level/StructureManager.java -index a6a3bd3d60c30859b5a59e057d430c826d93e83c..1077f988e16688f74c9e40d6da517c954cb06ecb 100644 +index 6fe276b29aa9fe1b312ef2773484fa780506fded..07dcfd56af1014ad159828dd9ee2d89c2010b9f4 100644 --- a/src/main/java/net/minecraft/world/level/StructureManager.java +++ b/src/main/java/net/minecraft/world/level/StructureManager.java -@@ -1,6 +1,7 @@ +@@ -2,6 +2,7 @@ package net.minecraft.world.level; import com.mojang.datafixers.DataFixUtils; @@ -17,7 +17,7 @@ index a6a3bd3d60c30859b5a59e057d430c826d93e83c..1077f988e16688f74c9e40d6da517c95 import java.util.stream.Stream; import javax.annotation.Nullable; import net.minecraft.core.BaseBlockPosition; -@@ -11,11 +12,12 @@ import net.minecraft.world.level.chunk.ChunkStatus; +@@ -12,11 +13,12 @@ import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.IStructureAccess; import net.minecraft.world.level.levelgen.GeneratorSettings; import net.minecraft.world.level.levelgen.feature.StructureGenerator; @@ -31,7 +31,7 @@ index a6a3bd3d60c30859b5a59e057d430c826d93e83c..1077f988e16688f74c9e40d6da517c95 private final GeneratorSettings b; public StructureManager(GeneratorAccess generatoraccess, GeneratorSettings generatorsettings) { -@@ -41,6 +43,20 @@ public class StructureManager { +@@ -42,6 +44,20 @@ public class StructureManager { }); } @@ -52,7 +52,7 @@ index a6a3bd3d60c30859b5a59e057d430c826d93e83c..1077f988e16688f74c9e40d6da517c95 @Nullable public StructureStart a(SectionPosition sectionposition, StructureGenerator structuregenerator, IStructureAccess istructureaccess) { return istructureaccess.a(structuregenerator); -@@ -59,13 +75,21 @@ public class StructureManager { +@@ -60,13 +76,21 @@ public class StructureManager { } public StructureStart a(BlockPosition blockposition, boolean flag, StructureGenerator structuregenerator) { diff --git a/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch index 2eda283a6..5407e8094 100644 --- a/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch +++ b/Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index e7cebe1277cb8fc54a080b93b34a66a2e962119b..ea6f7397add28e87d60834495420e52920d6e95c 100644 +index 1a7d06d8a3d1fe0a2a943eae5efd23d28fe4bd62..246708808cbcd9a5c1b8690c869a514d02fddb5c 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1986,12 +1986,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1988,12 +1988,14 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // Paper end diff --git a/Spigot-Server-Patches/0562-PortalCreateEvent-needs-to-know-its-entity.patch b/Spigot-Server-Patches/0562-PortalCreateEvent-needs-to-know-its-entity.patch index f390de071..51e748ada 100644 --- a/Spigot-Server-Patches/0562-PortalCreateEvent-needs-to-know-its-entity.patch +++ b/Spigot-Server-Patches/0562-PortalCreateEvent-needs-to-know-its-entity.patch @@ -75,10 +75,10 @@ index b86513497b7ca8bde84176f5228ef9c479a73abb..02047bf07c2008c7de8daf3d76b660e2 } } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 1fcbb2e78904aa9f6ab870d7e2bc95ae25fbd33a..07985725b6edb0a1a4c2b5c64e947ff2a0121e72 100644 +index 2a785ea58a7bdc80c703a60bc6ed602dc8040aa0..9af91784544dbb0555824a91088257659bdf2c3d 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -31,6 +31,7 @@ import net.minecraft.world.item.EnumColor; +@@ -32,6 +32,7 @@ import net.minecraft.world.item.EnumColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockActionContext; @@ -86,7 +86,7 @@ index 1fcbb2e78904aa9f6ab870d7e2bc95ae25fbd33a..07985725b6edb0a1a4c2b5c64e947ff2 import net.minecraft.world.level.BlockAccessAir; import net.minecraft.world.level.GeneratorAccess; import net.minecraft.world.level.IBlockAccess; -@@ -119,6 +120,12 @@ public abstract class BlockBase { +@@ -120,6 +121,12 @@ public abstract class BlockBase { PacketDebug.a(world, blockposition); } diff --git a/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch b/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch index cca4bb25e..e37eac5da 100644 --- a/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch @@ -33,7 +33,7 @@ index 831bc83cdbf15f08961cc8703be348b458d47fd3..5974cc9f895478eebd4922faa26d5a94 // Drop event experience if (flag && event != null) { diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ea6f7397add28e87d60834495420e52920d6e95c..1a2fc4883ed16c98a2c96881bfee7e744feb24fc 100644 +index 246708808cbcd9a5c1b8690c869a514d02fddb5c..4a87b9ebc2a584d8a2fca874342057e81fbbc1c6 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java @@ -99,6 +99,7 @@ import net.minecraft.world.entity.animal.EntityWaterAnimal; @@ -44,7 +44,7 @@ index ea6f7397add28e87d60834495420e52920d6e95c..1a2fc4883ed16c98a2c96881bfee7e74 import net.minecraft.world.entity.npc.NPC; import net.minecraft.world.entity.player.EntityHuman; import net.minecraft.world.entity.raid.PersistentRaid; -@@ -1288,6 +1289,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1290,6 +1291,13 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else if (this.isUUIDTaken(entity)) { return false; } else { diff --git a/Spigot-Server-Patches/0584-Improve-inlinig-for-some-hot-IBlockData-methods.patch b/Spigot-Server-Patches/0584-Improve-inlinig-for-some-hot-IBlockData-methods.patch index 99a3ee2f6..124a856cd 100644 --- a/Spigot-Server-Patches/0584-Improve-inlinig-for-some-hot-IBlockData-methods.patch +++ b/Spigot-Server-Patches/0584-Improve-inlinig-for-some-hot-IBlockData-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Improve inlinig for some hot IBlockData methods diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -index 07985725b6edb0a1a4c2b5c64e947ff2a0121e72..ac3709c8158d42ccafd457cfa44a16dc8c9eb949 100644 +index 9af91784544dbb0555824a91088257659bdf2c3d..3fdafc0ff0c4148ec844dbdc1455d17cdcb4a75a 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java -@@ -390,7 +390,14 @@ public abstract class BlockBase { +@@ -391,7 +391,14 @@ public abstract class BlockBase { } // Paper end @@ -23,7 +23,7 @@ index 07985725b6edb0a1a4c2b5c64e947ff2a0121e72..ac3709c8158d42ccafd457cfa44a16dc if (!this.getBlock().o()) { this.a = new BlockBase.BlockData.Cache(this.p()); } -@@ -429,19 +436,19 @@ public abstract class BlockBase { +@@ -430,19 +437,19 @@ public abstract class BlockBase { return this.getBlock().d(this.p(), iblockaccess, blockposition); } @@ -47,7 +47,7 @@ index 07985725b6edb0a1a4c2b5c64e947ff2a0121e72..ac3709c8158d42ccafd457cfa44a16dc return this.f; } -@@ -507,7 +514,7 @@ public abstract class BlockBase { +@@ -508,7 +515,7 @@ public abstract class BlockBase { } } @@ -56,7 +56,7 @@ index 07985725b6edb0a1a4c2b5c64e947ff2a0121e72..ac3709c8158d42ccafd457cfa44a16dc return this.k; } -@@ -679,12 +686,12 @@ public abstract class BlockBase { +@@ -680,12 +687,12 @@ public abstract class BlockBase { return this.getBlock().a(block); } diff --git a/Spigot-Server-Patches/0646-Remove-stale-POIs.patch b/Spigot-Server-Patches/0646-Remove-stale-POIs.patch index 1532b6344..0984ac192 100644 --- a/Spigot-Server-Patches/0646-Remove-stale-POIs.patch +++ b/Spigot-Server-Patches/0646-Remove-stale-POIs.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stale POIs diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index 1a2fc4883ed16c98a2c96881bfee7e744feb24fc..066897256ebe0927b5c62c1d096df74e81aa0363 100644 +index 4a87b9ebc2a584d8a2fca874342057e81fbbc1c6..bf9bf8368b345bf0ac3b14a08e8342f7bd63dead 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -2065,8 +2065,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2067,8 +2067,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { Optional optional = VillagePlaceType.b(iblockdata); Optional optional1 = VillagePlaceType.b(iblockdata1); @@ -26,7 +26,7 @@ index 1a2fc4883ed16c98a2c96881bfee7e744feb24fc..066897256ebe0927b5c62c1d096df74e optional.ifPresent((villageplacetype) -> { this.getMinecraftServer().execute(() -> { -@@ -2083,6 +2091,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2085,6 +2093,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } diff --git a/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch b/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch index 4dbeae0b9..a23610ad9 100644 --- a/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch +++ b/Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch @@ -19,10 +19,10 @@ index 1ceacb6bbfe99069763845a8aef48a3fb4841e32..d2f6e1308a4dfec663770e2c7f4de0cf + } } diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java -index ebb785df8c98e053f4e60f7fc7f216ea935cc541..492b57395cd51e39e1d88b193399ce02be378658 100644 +index be7f210bd8be1e393c0c449274ff1a1b030d660e..ef9b08df58d9d28df6b8ade076d95bf7e5cb1b18 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java -@@ -1683,6 +1683,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1685,6 +1685,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { @Override public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) { this.getChunkProvider().flagDirty(blockposition); @@ -30,7 +30,7 @@ index ebb785df8c98e053f4e60f7fc7f216ea935cc541..492b57395cd51e39e1d88b193399ce02 VoxelShape voxelshape = iblockdata.getCollisionShape(this, blockposition); VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); -@@ -1711,6 +1712,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1713,6 +1714,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.tickingEntities = wasTicking; // Paper } diff --git a/Spigot-Server-Patches/0685-fix-converting-txt-to-json-file.patch b/Spigot-Server-Patches/0685-fix-converting-txt-to-json-file.patch index 012889fee..7dfa73f6b 100644 --- a/Spigot-Server-Patches/0685-fix-converting-txt-to-json-file.patch +++ b/Spigot-Server-Patches/0685-fix-converting-txt-to-json-file.patch @@ -61,10 +61,10 @@ index 24b3a893a2b76a4ecfbc6b2cc1eac242e5c6e9d6..92ed4938d5fe6b76e3a9ac5491d6e9c0 public void a(NetworkManager networkmanager, EntityPlayer entityplayer) { EntityPlayer prev = pendingPlayers.put(entityplayer.getUniqueID(), entityplayer);// Paper diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java -index e3801a4a13d0bac7816a1350d3799a9815481c4b..74b024a51f6c3ee88db730cbf97a24af66fa332b 100644 +index e17927ecc3ad3e27e436082ac94e3772d7311725..e813d4dd1a46734d16b42905808caa889811afcc 100644 --- a/src/main/java/net/minecraft/server/players/UserCache.java +++ b/src/main/java/net/minecraft/server/players/UserCache.java -@@ -241,6 +241,7 @@ public class UserCache { +@@ -242,6 +242,7 @@ public class UserCache { return arraylist; } diff --git a/work/CraftBukkit b/work/CraftBukkit index 0791e54ab..221aed6cf 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 0791e54abfeb31efdfb5cd2fc738508d5c0890d2 +Subproject commit 221aed6cf5b07b1454cf60231f40a7831ce519e9 diff --git a/work/Spigot b/work/Spigot index 1ad83543c..a25e8ed26 160000 --- a/work/Spigot +++ b/work/Spigot @@ -1 +1 @@ -Subproject commit 1ad83543c04b26f4da8a2b7cf206b41ad8028063 +Subproject commit a25e8ed26cbca903b4d6ee3823d1b9f4f5d06cc3