aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Spigot-Server-Patches/0003-MC-Dev-fixes.patch12
-rw-r--r--Spigot-Server-Patches/0004-MC-Utils.patch16
-rw-r--r--Spigot-Server-Patches/0009-Timings-v2.patch18
-rw-r--r--Spigot-Server-Patches/0010-Adventure.patch10
-rw-r--r--Spigot-Server-Patches/0026-Entity-Origin-API.patch6
-rw-r--r--Spigot-Server-Patches/0035-Disable-thunder.patch4
-rw-r--r--Spigot-Server-Patches/0036-Disable-ice-and-snow.patch4
-rw-r--r--Spigot-Server-Patches/0055-Add-exception-reporting-event.patch6
-rw-r--r--Spigot-Server-Patches/0056-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch4
-rw-r--r--Spigot-Server-Patches/0060-Chunk-Save-Reattempt.patch4
-rw-r--r--Spigot-Server-Patches/0070-Configurable-spawn-chances-for-skeleton-horses.patch4
-rw-r--r--Spigot-Server-Patches/0073-Entity-AddTo-RemoveFrom-World-Events.patch6
-rw-r--r--Spigot-Server-Patches/0085-Remove-unused-World-Tile-Entity-List.patch8
-rw-r--r--Spigot-Server-Patches/0086-Don-t-tick-Skulls-unused-code.patch6
-rw-r--r--Spigot-Server-Patches/0095-Improve-Maps-in-item-frames-performance-and-bug-fixe.patch4
-rw-r--r--Spigot-Server-Patches/0099-Optimize-UserCache-Thread-Safe.patch18
-rw-r--r--Spigot-Server-Patches/0105-Fix-Double-World-Add-issues.patch4
-rw-r--r--Spigot-Server-Patches/0107-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch4
-rw-r--r--Spigot-Server-Patches/0112-Chunk-registration-fixes.patch4
-rw-r--r--Spigot-Server-Patches/0152-Basic-PlayerProfile-API.patch10
-rw-r--r--Spigot-Server-Patches/0172-Expose-client-protocol-version-and-virtual-host.patch4
-rw-r--r--Spigot-Server-Patches/0185-Make-max-squid-spawn-height-configurable.patch4
-rw-r--r--Spigot-Server-Patches/0213-Expand-World.spawnParticle-API-and-add-Builder.patch4
-rw-r--r--Spigot-Server-Patches/0234-InventoryCloseEvent-Reason-API.patch10
-rw-r--r--Spigot-Server-Patches/0237-Don-t-change-the-Entity-Random-seed-for-squids.patch4
-rw-r--r--Spigot-Server-Patches/0238-Re-add-vanilla-entity-warnings-for-duplicates.patch4
-rw-r--r--Spigot-Server-Patches/0242-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch8
-rw-r--r--Spigot-Server-Patches/0248-Vanished-players-don-t-have-rights.patch6
-rw-r--r--Spigot-Server-Patches/0252-Prevent-Saving-Bad-entities-to-chunks.patch6
-rw-r--r--Spigot-Server-Patches/0254-Ignore-Dead-Entities-in-entityList-iteration.patch8
-rw-r--r--Spigot-Server-Patches/0259-Add-hand-to-bucket-events.patch6
-rw-r--r--Spigot-Server-Patches/0261-Fix-client-rendering-skulls-from-same-user.patch6
-rw-r--r--Spigot-Server-Patches/0272-Optimize-CraftBlockData-Creation.patch4
-rw-r--r--Spigot-Server-Patches/0333-Allow-Saving-of-Oversized-Chunks.patch16
-rw-r--r--Spigot-Server-Patches/0336-Use-proper-max-length-when-serialising-BungeeCord-te.patch6
-rw-r--r--Spigot-Server-Patches/0337-Entity-getEntitySpawnReason.patch4
-rw-r--r--Spigot-Server-Patches/0350-Fix-issues-with-entity-loss-due-to-unloaded-chunks.patch6
-rw-r--r--Spigot-Server-Patches/0351-Duplicate-UUID-Resolve-Option.patch4
-rw-r--r--Spigot-Server-Patches/0353-Configurable-Keep-Spawn-Loaded-range-per-world.patch4
-rw-r--r--Spigot-Server-Patches/0359-Fix-World-isChunkGenerated-calls.patch10
-rw-r--r--Spigot-Server-Patches/0362-incremental-chunk-saving.patch6
-rw-r--r--Spigot-Server-Patches/0366-Mark-entities-as-being-ticked-when-notifying-navigat.patch6
-rw-r--r--Spigot-Server-Patches/0369-Asynchronous-chunk-IO-and-loading.patch20
-rw-r--r--Spigot-Server-Patches/0402-Entity-Activation-Range-2.0.patch16
-rw-r--r--Spigot-Server-Patches/0408-Optimise-random-block-ticking.patch8
-rw-r--r--Spigot-Server-Patches/0418-Optimise-TickListServer-by-rewriting-it.patch4
-rw-r--r--Spigot-Server-Patches/0420-Ensure-Entity-is-never-double-registered.patch10
-rw-r--r--Spigot-Server-Patches/0421-Fix-unregistering-entities-from-unloading-chunks.patch4
-rw-r--r--Spigot-Server-Patches/0424-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch6
-rw-r--r--Spigot-Server-Patches/0430-Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch10
-rw-r--r--Spigot-Server-Patches/0434-Add-Raw-Byte-ItemStack-Serialization.patch8
-rw-r--r--Spigot-Server-Patches/0436-Delay-unsafe-actions-until-after-entity-ticking-is-d.patch4
-rw-r--r--Spigot-Server-Patches/0478-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch8
-rw-r--r--Spigot-Server-Patches/0479-Optimize-NibbleArray-to-use-pooled-buffers.patch9
-rw-r--r--Spigot-Server-Patches/0491-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch4
-rw-r--r--Spigot-Server-Patches/0493-Optimize-Light-Engine.patch4
-rw-r--r--Spigot-Server-Patches/0512-Don-t-allow-null-UUID-s-for-chat.patch6
-rw-r--r--Spigot-Server-Patches/0517-Remove-some-streams-from-structures.patch10
-rw-r--r--Spigot-Server-Patches/0554-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch4
-rw-r--r--Spigot-Server-Patches/0562-PortalCreateEvent-needs-to-know-its-entity.patch6
-rw-r--r--Spigot-Server-Patches/0571-Extend-block-drop-capture-to-capture-all-items-added.patch4
-rw-r--r--Spigot-Server-Patches/0584-Improve-inlinig-for-some-hot-IBlockData-methods.patch10
-rw-r--r--Spigot-Server-Patches/0646-Remove-stale-POIs.patch6
-rw-r--r--Spigot-Server-Patches/0668-added-option-to-disable-pathfinding-updates-on-block.patch6
-rw-r--r--Spigot-Server-Patches/0685-fix-converting-txt-to-json-file.patch4
m---------work/CraftBukkit0
m---------work/Spigot0
67 files changed, 230 insertions, 229 deletions
diff --git a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch
index 884320a1fe..1365396127 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 22194308d0..5678863c7e 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 <T> TicketType<T> a(String s, Comparator<T> 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 0ee785f8e4..94708649b0 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 e5aec1548c..227543e39d 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<PacketListenerPlayOut> {
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<PacketListenerPlayOut> {
+@@ -32,6 +33,11 @@ public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
@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 a40fb5e2ca..60fd7b5fbe 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 daa8dd7fb4..9887bf87d8 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 0ce0ca17b3..911b86d032 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 74ea309c98..fdfb729b2e 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 08ec688be1..e8a68b30bb 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<PacketListenerPlayOut> {
+@@ -40,7 +40,14 @@ public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
// 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 6cf26b30df..03f01b1583 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 f87fe58b3c..a0c1e7b121 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 f26860a90a..e910aa110a 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 cff05cecd4..56289f6932 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 d284e13870..26489896ab 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 9216681020..73619accb6 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 143884b0ab..bd7185774f 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 0f4e3cf1fd..d3f7911b35 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 3df71abbfd..60ded56167 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 b154250016..b6399aa64e 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 a04012c287..177be589bb 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<UUID, UserCache.UserCacheEntry> 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 26cabb6886..3f282910be 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<PacketHandshakingI
+@@ -39,6 +39,7 @@ public class PacketHandshakingInSetProtocol implements Packet<PacketHandshakingI
return this.d;
}
diff --git a/Spigot-Server-Patches/0185-Make-max-squid-spawn-height-configurable.patch b/Spigot-Server-Patches/0185-Make-max-squid-spawn-height-configurable.patch
index 5de8db480c..d6706377d7 100644
--- a/Spigot-Server-Patches/0185-Make-max-squid-spawn-height-configurable.patch
+++ b/Spigot-Server-Patches/0185-Make-max-squid-spawn-height-configurable.patch
@@ -21,10 +21,10 @@ index 6c692e58cde22003ecbf6dc5695799147c39905a..3c39f1bb3d88baaaed4dd43c51faeef8
+ }
}
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 f1eb2d7d226048bd02e091a376461fd7099d676e..2d9ac7baa924e6558727d58d43dbf6667f4f84a9 100644
+index 3cc9af925aaf116140d5f36cfc56aa001ffb4e35..7ce5e2597b34d3a4d2a79d73c15e893c064fc88c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/EntitySquid.java
-@@ -195,7 +195,8 @@ public class EntitySquid extends EntityWaterAnimal {
+@@ -196,7 +196,8 @@ public class EntitySquid extends EntityWaterAnimal {
}
public static boolean b(EntityTypes<EntitySquid> 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 07a1047045..485911c0ad 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 <T extends ParticleParam> 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 de6e636359..9740425422 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 e00010f9a0..7640438b07 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<? extends EntitySquid> 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 f3c28e7f60..9a588302c8 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 b6cf01775e..b18cb85569 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 9892a1b936..190e494a49 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 547315f0bb..d16a82a8f8 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<Entity> 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 ef440ea746..4a53bdbde4 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<Integer, Map<ChunkCoordIntPair, Integer>> 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 baabf8474c..70503203af 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 97e95497b3..192b8c8a60 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 0edba12deb..727414b274 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 be548e855e..56fb7e5bc7 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 b46ce70f11..b9eefdc882 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<PacketListenerPlayOut> {
@@ -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<PacketListenerPlayOut> {
+@@ -43,9 +43,9 @@ public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
//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 4cebbb7d19..4523ff9267 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 b79ebc2d62..fcbd18cfef 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 b5241bf306..3bb620b1f5 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<Either<List<IChunkAccess>, 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 5f22a742a9..f7756392ca 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 bb4d406988..d573142966 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 875707df07..0209e596bb 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 c98ba61e51..6e29d9d66f 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 0c3210bf1f..bff57d4fca 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 <T> TicketType<T> a(String s, Comparator<T> 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 118ae7433c..8b4f3d20dd 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 798698c445..340a9f9e53 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 88e22f5116..69a2d46d75 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 39ea97d5a5..d92d3aaeba 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 1b480d89a0..26ec699415 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 b9885b71f3..ccc10756ca 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 ca67ac4ff7..72bf19f161 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 6fc1485673..99f307baf1 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 ae2e586009..ace543ae0c 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 23ea26bd65..c5742080fb 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 ebb1afc548..0b519eafdf 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 103f8f2479..8e7eb59958 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 f0edd65ee7..6136fa5c24 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 5479393854..b5584efc91 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<PacketListenerPlayOut> {
+@@ -21,7 +22,7 @@ public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
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 3daaa31723..67b43bca11 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 2eda283a6c..5407e8094f 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 f390de071d..51e748ada1 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 cca4bb25e5..e37eac5da5 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 99a3ee2f6e..124a856cdf 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 1532b6344b..0984ac1923 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<VillagePlaceType> optional = VillagePlaceType.b(iblockdata);
Optional<VillagePlaceType> 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 4dbeae0b9d..a23610ad94 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 012889fee3..7dfa73f6ba 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
-Subproject 0791e54abfeb31efdfb5cd2fc738508d5c0890d
+Subproject 221aed6cf5b07b1454cf60231f40a7831ce519e
diff --git a/work/Spigot b/work/Spigot
-Subproject 1ad83543c04b26f4da8a2b7cf206b41ad802806
+Subproject a25e8ed26cbca903b4d6ee3823d1b9f4f5d06cc