aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server')
-rw-r--r--patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch44
-rw-r--r--patches/server/0675-Fix-falling-block-spawn-methods.patch6
-rw-r--r--patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch16
-rw-r--r--patches/server/0860-Bandaid-fix-for-Effect.patch4
-rw-r--r--patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch8
-rw-r--r--patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch4
-rw-r--r--patches/server/0914-Add-Structure-check-API.patch4
-rw-r--r--patches/server/0942-More-Raid-API.patch4
-rw-r--r--patches/server/0988-Moonrise-optimisation-patches.patch16
-rw-r--r--patches/server/0999-Anti-Xray.patch6
-rw-r--r--patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch4
11 files changed, 75 insertions, 41 deletions
diff --git a/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index f60291ba01..1fc592f8ed 100644
--- a/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0650-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -17,6 +17,19 @@ index 6ad7c34513034c87059f8a0790aea3231dd0d2a9..188b1844ca6ee5a97f7a588121255417
if (biomeProvider == null && gen != null) {
biomeProvider = gen.getDefaultBiomeProvider(worldInfo);
}
+diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
+index 3c947dc0aea06d66a00aeca51355ea41e8d98f88..60a77bd04489ee592ec61d3d739cb3062c1eefbb 100644
+--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
+@@ -369,7 +369,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+ this.serverLevelData.setWorld(this);
+
+ if (biomeProvider != null) {
+- BiomeSource worldChunkManager = new CustomWorldChunkManager(this.getWorld(), biomeProvider, this.server.registryAccess().registryOrThrow(Registries.BIOME));
++ BiomeSource worldChunkManager = new CustomWorldChunkManager(this.getWorld(), biomeProvider, this.server.registryAccess().registryOrThrow(Registries.BIOME), chunkgenerator.getBiomeSource()); // Paper - add vanillaBiomeProvider
+ if (chunkgenerator instanceof NoiseBasedChunkGenerator cga) {
+ chunkgenerator = new NoiseBasedChunkGenerator(worldChunkManager, cga.settings);
+ } else if (chunkgenerator instanceof FlatLevelSource cpf) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 9707b24da58fdc56732d6372038055e8676e9e0d..05dbcff299d42dc05e3a8db0265fb607197731e7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -31,10 +44,10 @@ index 9707b24da58fdc56732d6372038055e8676e9e0d..05dbcff299d42dc05e3a8db0265fb607
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 0c2734c1d06b6c5dff383f9c6139c0389f220a76..8670f660d599b2265b4b7e56102b7cfc0c58bd72 100644
+index 0c2734c1d06b6c5dff383f9c6139c0389f220a76..110a5d92d6154bc39c1916006a5cb74798092445 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -212,6 +212,35 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -212,6 +212,39 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public int getPlayerCount() {
return world.players().size();
}
@@ -44,21 +57,25 @@ index 0c2734c1d06b6c5dff383f9c6139c0389f220a76..8670f660d599b2265b4b7e56102b7cfc
+ net.minecraft.server.level.ServerChunkCache serverCache = this.getHandle().chunkSource;
+
+ final net.minecraft.world.level.chunk.ChunkGenerator gen = serverCache.getGenerator();
-+ final net.minecraft.world.level.biome.BiomeSource biomeSource;
++ net.minecraft.world.level.biome.BiomeSource biomeSource;
+ if (gen instanceof org.bukkit.craftbukkit.generator.CustomChunkGenerator custom) {
+ biomeSource = custom.getDelegate().getBiomeSource();
+ } else {
+ biomeSource = gen.getBiomeSource();
+ }
++ if (biomeSource instanceof org.bukkit.craftbukkit.generator.CustomWorldChunkManager customBiomeSource) {
++ biomeSource = customBiomeSource.vanillaBiomeSource;
++ }
++ final net.minecraft.world.level.biome.BiomeSource finalBiomeSource = biomeSource;
+ final net.minecraft.world.level.biome.Climate.Sampler sampler = serverCache.randomState().sampler();
+
-+ final List<Biome> possibleBiomes = biomeSource.possibleBiomes().stream()
++ final List<Biome> possibleBiomes = finalBiomeSource.possibleBiomes().stream()
+ .map(CraftBiome::minecraftHolderToBukkit)
+ .toList();
+ return new BiomeProvider() {
+ @Override
+ public Biome getBiome(final org.bukkit.generator.WorldInfo worldInfo, final int x, final int y, final int z) {
-+ return CraftBiome.minecraftHolderToBukkit(biomeSource.getNoiseBiome(x >> 2, y >> 2, z >> 2, sampler));
++ return CraftBiome.minecraftHolderToBukkit(finalBiomeSource.getNoiseBiome(x >> 2, y >> 2, z >> 2, sampler));
+ }
+
+ @Override
@@ -141,3 +158,20 @@ index 5d655d6cd3e23e0287069f8bdf77601487e862fd..cf57c6e9ce63f7b1d95d91ead2453409
+ }
+ // Paper end
}
+diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomWorldChunkManager.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomWorldChunkManager.java
+index 0063c4c17d05a77adf81164fb9307a29860cbe12..0bac128d6faff0063b03f595b82deea78d1ae161 100644
+--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomWorldChunkManager.java
++++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomWorldChunkManager.java
+@@ -31,7 +31,11 @@ public class CustomWorldChunkManager extends BiomeSource {
+ return biomeBases;
+ }
+
+- public CustomWorldChunkManager(WorldInfo worldInfo, BiomeProvider biomeProvider, Registry<net.minecraft.world.level.biome.Biome> registry) {
++ // Paper start - add vanillaBiomeProvider
++ public final BiomeSource vanillaBiomeSource;
++ public CustomWorldChunkManager(WorldInfo worldInfo, BiomeProvider biomeProvider, Registry<net.minecraft.world.level.biome.Biome> registry, BiomeSource vanillaBiomeSource) {
++ this.vanillaBiomeSource = vanillaBiomeSource;
++ // Paper end - add vanillaBiomeProvider
+ this.worldInfo = worldInfo;
+ this.biomeProvider = biomeProvider;
+ this.registry = registry;
diff --git a/patches/server/0675-Fix-falling-block-spawn-methods.patch b/patches/server/0675-Fix-falling-block-spawn-methods.patch
index f281704362..978a204209 100644
--- a/patches/server/0675-Fix-falling-block-spawn-methods.patch
+++ b/patches/server/0675-Fix-falling-block-spawn-methods.patch
@@ -11,10 +11,10 @@ Restores the API behavior from previous versions of the server
public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 8670f660d599b2265b4b7e56102b7cfc0c58bd72..780a9f0220018eda9e67f0ce9f27adea643f3f82 100644
+index 110a5d92d6154bc39c1916006a5cb74798092445..a1912eb5fd26898d7e9848ffb2052fce2fa10868 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1389,7 +1389,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1393,7 +1393,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
Preconditions.checkArgument(material != null, "Material cannot be null");
Preconditions.checkArgument(material.isBlock(), "Material.%s must be a block", material);
@@ -28,7 +28,7 @@ index 8670f660d599b2265b4b7e56102b7cfc0c58bd72..780a9f0220018eda9e67f0ce9f27adea
return (FallingBlock) entity.getBukkitEntity();
}
-@@ -1398,7 +1403,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1402,7 +1407,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
Preconditions.checkArgument(location != null, "Location cannot be null");
Preconditions.checkArgument(data != null, "BlockData cannot be null");
diff --git a/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch
index af6e2a5b7a..a0023ba6e1 100644
--- a/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0729-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -18,10 +18,10 @@ index b4111bcc6a676dc42b233761aa667708669c2ab8..cc92d2e8b77c75da1d8b850c3bc251e8
private static boolean isOutsideSpawnableHeight(int y) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be058823a5aa25 100644
+index a1912eb5fd26898d7e9848ffb2052fce2fa10868..cb28a7504e809a8b1e8ab6e34e14e414c542055f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -301,9 +301,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -305,9 +305,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public boolean setSpawnLocation(int x, int y, int z) {
return this.setSpawnLocation(x, y, z, 0.0F);
}
@@ -46,7 +46,7 @@ index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be0588
// Paper start - add ticket to hold chunk for a little while longer if plugin accesses it
net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkSource().getChunkAtIfLoadedImmediately(x, z);
if (chunk == null) {
-@@ -409,6 +424,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -413,6 +428,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
if (!unloadChunk0(x, z, false)) {
return false;
}
@@ -54,7 +54,7 @@ index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be0588
final long chunkKey = ChunkCoordIntPair.pair(x, z);
world.getChunkProvider().unloadQueue.remove(chunkKey);
-@@ -482,6 +498,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -486,6 +502,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
@@ -62,7 +62,7 @@ index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be0588
ChunkAccess chunk = this.world.getChunkSource().getChunk(x, z, generate || isChunkGenerated(x, z) ? ChunkStatus.FULL : ChunkStatus.EMPTY, true); // Paper
// If generate = false, but the chunk already exists, we will get this back.
-@@ -514,6 +531,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -518,6 +535,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean addPluginChunkTicket(int x, int z, Plugin plugin) {
@@ -70,7 +70,7 @@ index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be0588
Preconditions.checkArgument(plugin != null, "null plugin");
Preconditions.checkArgument(plugin.isEnabled(), "plugin is not enabled");
-@@ -614,6 +632,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -618,6 +636,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setChunkForceLoaded(int x, int z, boolean forced) {
@@ -78,7 +78,7 @@ index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be0588
this.getHandle().setChunkForced(x, z, forced);
}
-@@ -942,6 +961,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -946,6 +965,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public int getHighestBlockYAt(int x, int z, org.bukkit.HeightMap heightMap) {
@@ -86,7 +86,7 @@ index 780a9f0220018eda9e67f0ce9f27adea643f3f82..3e083ba67d0a89dd1aef5d06f7be0588
// Transient load for this tick
return this.world.getChunk(x >> 4, z >> 4).getHeight(CraftHeightMap.toNMS(heightMap), x, z);
}
-@@ -2339,6 +2359,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2343,6 +2363,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot end
// Paper start
public java.util.concurrent.CompletableFuture<Chunk> getChunkAtAsync(int x, int z, boolean gen, boolean urgent) {
diff --git a/patches/server/0860-Bandaid-fix-for-Effect.patch b/patches/server/0860-Bandaid-fix-for-Effect.patch
index 57d3e5e746..c26c05a460 100644
--- a/patches/server/0860-Bandaid-fix-for-Effect.patch
+++ b/patches/server/0860-Bandaid-fix-for-Effect.patch
@@ -68,10 +68,10 @@ index 71733f918ed84b9879ac1b142ef6205c5e768a9c..c856384019eff2f2d0bb831ebe1ccb0f
break;
case BONE_MEAL_USE:
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 3e083ba67d0a89dd1aef5d06f7be058823a5aa25..d5f4b9ddb5c95b2a62ece8c2f148f8146838c027 100644
+index cb28a7504e809a8b1e8ab6e34e14e414c542055f..28458a499702989d640d88de8fa7e8861be95189 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1366,7 +1366,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1370,7 +1370,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public <T> void playEffect(Location loc, Effect effect, T data, int radius) {
if (data != null) {
Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect);
diff --git a/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch
index 90b7ac4253..43a753b5c2 100644
--- a/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch
+++ b/patches/server/0904-Add-predicate-for-blocks-when-raytracing.patch
@@ -47,10 +47,10 @@ index c978f3b2d42f512e982f289e76c2422e41b7eec6..bb8e962e63c7a2d931f9bd7f7c002aa3
Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo());
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d5f4b9ddb5c95b2a62ece8c2f148f8146838c027..d0b25eb17cb66406bdc9c3696f3b2a63d4a9317e 100644
+index 28458a499702989d640d88de8fa7e8861be95189..166458785b507208caa7ecf8ee8b60650ca3523a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1100,9 +1100,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1104,9 +1104,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public RayTraceResult rayTraceEntities(Location start, Vector direction, double maxDistance, double raySize, Predicate<? super Entity> filter) {
@@ -68,7 +68,7 @@ index d5f4b9ddb5c95b2a62ece8c2f148f8146838c027..d0b25eb17cb66406bdc9c3696f3b2a63
Preconditions.checkArgument(direction != null, "Vector direction cannot be null");
direction.checkFinite();
-@@ -1152,9 +1158,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1156,9 +1162,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public RayTraceResult rayTraceBlocks(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode, boolean ignorePassableBlocks) {
@@ -87,7 +87,7 @@ index d5f4b9ddb5c95b2a62ece8c2f148f8146838c027..d0b25eb17cb66406bdc9c3696f3b2a63
Preconditions.checkArgument(direction != null, "Vector direction cannot be null");
direction.checkFinite();
-@@ -1167,16 +1180,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1171,16 +1184,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
Vector dir = direction.clone().normalize().multiply(maxDistance);
diff --git a/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
index 06ff5afa20..da48750747 100644
--- a/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
+++ b/patches/server/0907-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
@@ -45,10 +45,10 @@ index 0471d9c85af02133f99cca4e181b83b58a3f1abc..4f701788bd21b61cad251a3a88f9bc41
BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d0b25eb17cb66406bdc9c3696f3b2a63d4a9317e..daaae014bb34c07771fb530d40cff6baabcd4bcf 100644
+index 166458785b507208caa7ecf8ee8b60650ca3523a..7200c336de27ffd4d37231768ff5192956ede972 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -732,7 +732,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -736,7 +736,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
LightningBolt lightning = EntityType.LIGHTNING_BOLT.create(this.world);
lightning.moveTo(loc.getX(), loc.getY(), loc.getZ());
diff --git a/patches/server/0914-Add-Structure-check-API.patch b/patches/server/0914-Add-Structure-check-API.patch
index f6a44beef8..9e629d82cc 100644
--- a/patches/server/0914-Add-Structure-check-API.patch
+++ b/patches/server/0914-Add-Structure-check-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Structure check API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index daaae014bb34c07771fb530d40cff6baabcd4bcf..c2a267c6f5b7b3a49c1adb1ef5742025d9a4962b 100644
+index 7200c336de27ffd4d37231768ff5192956ede972..ca77f47c86a264a89c04ec1799315e4d17237de7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -242,6 +242,20 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -246,6 +246,20 @@ public class CraftWorld extends CraftRegionAccessor implements World {
};
}
// Paper end
diff --git a/patches/server/0942-More-Raid-API.patch b/patches/server/0942-More-Raid-API.patch
index c408d68c4a..22b3d277cb 100644
--- a/patches/server/0942-More-Raid-API.patch
+++ b/patches/server/0942-More-Raid-API.patch
@@ -86,10 +86,10 @@ index b8ce1c1c2447f9cff1717bfcfd6eb911ade0d4b3..51f21af9d75769abdcba713b9aa33392
+ // Paper end - more Raid API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c2a267c6f5b7b3a49c1adb1ef5742025d9a4962b..f9d38c5cbb7e0d609b83948d3f76a2debb822a53 100644
+index ca77f47c86a264a89c04ec1799315e4d17237de7..5b596dcc6e49369fb37e976cfb8b331c18ad535f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -2312,6 +2312,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2316,6 +2316,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (raid == null) ? null : new CraftRaid(raid);
}
diff --git a/patches/server/0988-Moonrise-optimisation-patches.patch b/patches/server/0988-Moonrise-optimisation-patches.patch
index afc78211ab..61d170ab03 100644
--- a/patches/server/0988-Moonrise-optimisation-patches.patch
+++ b/patches/server/0988-Moonrise-optimisation-patches.patch
@@ -25579,7 +25579,7 @@ index 1d849ce4e2c85f149af25318b8ffb6dcef6c6788..12d86f27d04bffed8c3844e36b42fbc2
if (!list.equals(this.lastPassengers)) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index c97292f22a3402dbd59cef4af554954dc1d4f91a..c759555241649cf5b355268066375341a54477f2 100644
+index 81f0a0dfefd9e1698548a68679dab0974921c37a..0d880ad0f480cccf73b30ec2295d5109be3389f0 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -184,7 +184,7 @@ import org.bukkit.event.weather.LightningStrikeEvent;
@@ -32714,10 +32714,10 @@ index 6321ae23f07bc3e07577914e6cf035e0c2cd4992..cc1f3c7fec4fa794da0b19f44ced9fd4
// Paper start - Adventure
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index f9d38c5cbb7e0d609b83948d3f76a2debb822a53..848acade140c7876e6e7788db4716319cf74c792 100644
+index 5b596dcc6e49369fb37e976cfb8b331c18ad535f..26a1b9f1ae0490e8110fbb7a4a99100da5701c33 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -462,10 +462,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -466,10 +466,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
ChunkHolder playerChunk = this.world.getChunkSource().chunkMap.getVisibleChunkIfPresent(ChunkPos.asLong(x, z));
if (playerChunk == null) return false;
@@ -32735,7 +32735,7 @@ index f9d38c5cbb7e0d609b83948d3f76a2debb822a53..848acade140c7876e6e7788db4716319
ClientboundLevelChunkWithLightPacket refreshPacket = new ClientboundLevelChunkWithLightPacket(chunk, this.world.getLightEngine(), null, null);
for (ServerPlayer player : playersInRange) {
-@@ -473,8 +477,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -477,8 +481,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
player.connection.send(refreshPacket);
}
@@ -32745,7 +32745,7 @@ index f9d38c5cbb7e0d609b83948d3f76a2debb822a53..848acade140c7876e6e7788db4716319
return true;
}
-@@ -578,20 +581,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -582,20 +585,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Collection<Plugin> getPluginChunkTickets(int x, int z) {
DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager;
@@ -32767,7 +32767,7 @@ index f9d38c5cbb7e0d609b83948d3f76a2debb822a53..848acade140c7876e6e7788db4716319
}
@Override
-@@ -599,7 +590,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -603,7 +594,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
Map<Plugin, ImmutableList.Builder<Chunk>> ret = new HashMap<>();
DistanceManager chunkDistanceManager = this.world.getChunkSource().chunkMap.distanceManager;
@@ -32776,7 +32776,7 @@ index f9d38c5cbb7e0d609b83948d3f76a2debb822a53..848acade140c7876e6e7788db4716319
long chunkKey = chunkTickets.getLongKey();
SortedArraySet<Ticket<?>> tickets = chunkTickets.getValue();
-@@ -1296,12 +1287,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1300,12 +1291,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public int getViewDistance() {
@@ -32791,7 +32791,7 @@ index f9d38c5cbb7e0d609b83948d3f76a2debb822a53..848acade140c7876e6e7788db4716319
}
public BlockMetadataStore getBlockMetadata() {
-@@ -2439,17 +2430,20 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2443,17 +2434,20 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void setSimulationDistance(final int simulationDistance) {
diff --git a/patches/server/0999-Anti-Xray.patch b/patches/server/0999-Anti-Xray.patch
index e4d6d35866..dfb8be66dd 100644
--- a/patches/server/0999-Anti-Xray.patch
+++ b/patches/server/0999-Anti-Xray.patch
@@ -1104,7 +1104,7 @@ index 183b2191fa1c1b27adedf39593e1b5a223fb1279..8ead66c134688b11dca15f6509147e72
private ClientboundLevelChunkWithLightPacket(RegistryFriendlyByteBuf buf) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 1196eb573317ad01b6df0ae2d38aa17a72da2535..a5320b96148d79f8d2493060718688786466e6dd 100644
+index c3acadabd4f2b835a3e2bc8e6ba18434a28ac232..8c6c087bdcdf3d95254c0ed4c56451bec8706cd9 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -534,7 +534,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
@@ -1587,10 +1587,10 @@ index cc1f3c7fec4fa794da0b19f44ced9fd482dfdfc7..3a91faeb6957e4e783b1de3e1145e7d1
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 848acade140c7876e6e7788db4716319cf74c792..0494bbb4c5cd9b2c9d5f58c6f4890625ef0d6c25 100644
+index 26a1b9f1ae0490e8110fbb7a4a99100da5701c33..3d2e060eefe1e4b902c3d2338f65f63b053d962d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -471,11 +471,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -475,11 +475,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
List<ServerPlayer> playersInRange = playerChunk.playerProvider.getPlayers(playerChunk.getPos(), false);
if (playersInRange.isEmpty()) return true; // Paper - chunk system
diff --git a/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch b/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch
index 0bae935890..4b5e38bce7 100644
--- a/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch
+++ b/patches/server/1029-Fix-CraftWorld-isChunkGenerated.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix CraftWorld#isChunkGenerated
The upstream implementation is returning true for non-full chunks.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 0494bbb4c5cd9b2c9d5f58c6f4890625ef0d6c25..5e1e5a311f01cfaf33230789aa18af89b9422411 100644
+index 3d2e060eefe1e4b902c3d2338f65f63b053d962d..a1dd48991e716a583ba4d46ea3d074d10dfdeec9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -373,11 +373,28 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -377,11 +377,28 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean isChunkGenerated(int x, int z) {