Skip to content

Commit a3781ff

Browse files
authored
Separate tick count to ensure vanilla parity (#12077)
1 parent b9023b5 commit a3781ff

File tree

8 files changed

+54
-46
lines changed

8 files changed

+54
-46
lines changed

paper-server/patches/features/0003-Entity-Activation-Range-2.0.patch

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ index d95413af04121fe91ca0f3b0c70025b9808acef9..ad665c7535c615d2b03a3e7864be435f
366366
import org.slf4j.Logger;
367367

368368
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
369-
index 79d23c3403efc6dbef2381a3fa5946023f862452..3b19229427d83290bba1431bee5357e2ced34f94 100644
369+
index 8204528c26456929fdec0d8ba7a5a52128409097..01bc2d1639be9f04afc63e5841c5c99730ea37d8 100644
370370
--- a/net/minecraft/server/level/ServerLevel.java
371371
+++ b/net/minecraft/server/level/ServerLevel.java
372372
@@ -551,6 +551,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -377,8 +377,8 @@ index 79d23c3403efc6dbef2381a3fa5946023f862452..3b19229427d83290bba1431bee5357e2
377377
this.entityTickList
378378
.forEach(
379379
entity -> {
380-
@@ -979,12 +980,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
381-
entity.tickCount++;
380+
@@ -980,12 +981,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
381+
entity.totalEntityAge++; // Paper - age-like counter for all entities
382382
profilerFiller.push(() -> BuiltInRegistries.ENTITY_TYPE.getKey(entity.getType()).toString());
383383
profilerFiller.incrementCounter("tickNonPassenger");
384384
+ final boolean isActive = io.papermc.paper.entity.activation.ActivationRange.checkIfActive(entity); // Paper - EAR 2
@@ -394,7 +394,7 @@ index 79d23c3403efc6dbef2381a3fa5946023f862452..3b19229427d83290bba1431bee5357e2
394394
}
395395
// Paper start - log detailed entity tick information
396396
} finally {
397-
@@ -995,7 +999,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
397+
@@ -996,7 +1000,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
398398
// Paper end - log detailed entity tick information
399399
}
400400

@@ -403,7 +403,7 @@ index 79d23c3403efc6dbef2381a3fa5946023f862452..3b19229427d83290bba1431bee5357e2
403403
if (passengerEntity.isRemoved() || passengerEntity.getVehicle() != ridingEntity) {
404404
passengerEntity.stopRiding();
405405
} else if (passengerEntity instanceof Player || this.entityTickList.contains(passengerEntity)) {
406-
@@ -1004,12 +1008,21 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
406+
@@ -1006,12 +1010,21 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
407407
ProfilerFiller profilerFiller = Profiler.get();
408408
profilerFiller.push(() -> BuiltInRegistries.ENTITY_TYPE.getKey(passengerEntity.getType()).toString());
409409
profilerFiller.incrementCounter("tickPassenger");
@@ -476,12 +476,12 @@ index 24735284fda151414d99faad401d25ba60995f9a..23b342cc31c7e72ade0e1ccad86a9ccf
476476
public void tick() {
477477
super.tick();
478478
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
479-
index bf5f2b753e3cbe3dfa8ad86df06718fbc1fbcbc4..988e5740b86c7768fee7391dc7e2900305a51be9 100644
479+
index b15420ffa1432d49aec8e91e917598bde4e94337..054ece1d539d69a4b7eec57e681179343c7e75c3 100644
480480
--- a/net/minecraft/world/entity/Entity.java
481481
+++ b/net/minecraft/world/entity/Entity.java
482-
@@ -380,6 +380,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
483-
public boolean fixedPose = false; // Paper - Expand Pose API
482+
@@ -381,6 +381,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
484483
private final int despawnTime; // Paper - entity despawn time limit
484+
public int totalEntityAge; // Paper - age-like counter for all entities
485485
public final io.papermc.paper.entity.activation.ActivationType activationType = io.papermc.paper.entity.activation.ActivationType.activationTypeFor(this); // Paper - EAR 2/tracking ranges
486486
+ // Paper start - EAR 2
487487
+ public final boolean defaultActivationState;
@@ -495,7 +495,7 @@ index bf5f2b753e3cbe3dfa8ad86df06718fbc1fbcbc4..988e5740b86c7768fee7391dc7e29003
495495

496496
public void setOrigin(@javax.annotation.Nonnull org.bukkit.Location location) {
497497
this.origin = location.toVector();
498-
@@ -413,6 +422,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
498+
@@ -414,6 +423,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
499499
this.position = Vec3.ZERO;
500500
this.blockPosition = BlockPos.ZERO;
501501
this.chunkPosition = ChunkPos.ZERO;
@@ -509,7 +509,7 @@ index bf5f2b753e3cbe3dfa8ad86df06718fbc1fbcbc4..988e5740b86c7768fee7391dc7e29003
509509
SynchedEntityData.Builder builder = new SynchedEntityData.Builder(this);
510510
builder.define(DATA_SHARED_FLAGS_ID, (byte)0);
511511
builder.define(DATA_AIR_SUPPLY_ID, this.getMaxAirSupply());
512-
@@ -977,6 +993,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
512+
@@ -978,6 +994,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
513513
} else {
514514
this.wasOnFire = this.isOnFire();
515515
if (type == MoverType.PISTON) {
@@ -518,7 +518,7 @@ index bf5f2b753e3cbe3dfa8ad86df06718fbc1fbcbc4..988e5740b86c7768fee7391dc7e29003
518518
movement = this.limitPistonMovement(movement);
519519
if (movement.equals(Vec3.ZERO)) {
520520
return;
521-
@@ -990,6 +1008,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
521+
@@ -991,6 +1009,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
522522
this.stuckSpeedMultiplier = Vec3.ZERO;
523523
this.setDeltaMovement(Vec3.ZERO);
524524
}
@@ -845,7 +845,7 @@ index 32f184288f6065259c921293922c1b0163df4dc4..0f346faa82b988e86834c38837f6f11b
845845
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
846846
// Paper start - add paper world config
847847
diff --git a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
848-
index 754cfdcd5a28287aa3545aaffdce1e391cbefc1e..1e6e940fca9d96ef410c7bf05524bd9b24db4a79 100644
848+
index ce880bd45fbda4829d17de8507034b3a39c68cbb..ee2f8e8deb35059824b5730a1442f383dc79f01c 100644
849849
--- a/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
850850
+++ b/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java
851851
@@ -149,6 +149,10 @@ public class PistonMovingBlockEntity extends BlockEntity {

paper-server/patches/features/0006-Optimize-Collision-to-not-load-chunks.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ movement will load only the chunk the player enters anyways and avoids loading
1414
massive amounts of surrounding chunks due to large AABB lookups.
1515

1616
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
17-
index 334859c5ff7023c730513301cc11c9837b2c7823..45f69a914d5a0565196c4105d61541047301470f 100644
17+
index 054ece1d539d69a4b7eec57e681179343c7e75c3..6f35067c64f378e955261e763f2bda9a0a6d0153 100644
1818
--- a/net/minecraft/world/entity/Entity.java
1919
+++ b/net/minecraft/world/entity/Entity.java
2020
@@ -218,6 +218,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess

paper-server/patches/features/0016-Moonrise-optimisation-patches.patch

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26735,7 +26735,7 @@ index da793ad12565c36fffb26eb771ff68c76632caf7..db06f966077928419bfe469260f04d7d
2673526735
if (!passengers.equals(this.lastPassengers)) {
2673626736
this.broadcastAndSend(new ClientboundSetPassengersPacket(this.entity)); // CraftBukkit
2673726737
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
26738-
index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c639223f09 100644
26738+
index 4a521a37e5fa0250d2cb7b4bc061d309c977e034..fc4a1efaa1f0005237340a236a231d8d3fec8d84 100644
2673926739
--- a/net/minecraft/server/level/ServerLevel.java
2674026740
+++ b/net/minecraft/server/level/ServerLevel.java
2674126741
@@ -170,7 +170,7 @@ import net.minecraft.world.phys.shapes.VoxelShape;
@@ -27305,7 +27305,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2730527305
}
2730627306

2730727307
// Paper start - log detailed entity tick information
27308-
@@ -1033,6 +1316,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27308+
@@ -1035,6 +1318,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2730927309
}
2731027310

2731127311
public void save(@Nullable ProgressListener progress, boolean flush, boolean skipSave) {
@@ -27317,7 +27317,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2731727317
ServerChunkCache chunkSource = this.getChunkSource();
2731827318
if (!skipSave) {
2731927319
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit
27320-
@@ -1045,13 +1333,18 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27320+
@@ -1047,13 +1335,18 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2732127321
progress.progressStage(Component.translatable("menu.savingChunks"));
2732227322
}
2732327323

@@ -27341,7 +27341,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2734127341

2734227342
// CraftBukkit start - moved from MinecraftServer.saveChunks
2734327343
ServerLevel worldserver1 = this;
27344-
@@ -1182,7 +1475,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27344+
@@ -1184,7 +1477,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2734527345
this.removePlayerImmediately((ServerPlayer)entity, Entity.RemovalReason.DISCARDED);
2734627346
}
2734727347

@@ -27350,7 +27350,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2735027350
}
2735127351

2735227352
// CraftBukkit start
27353-
@@ -1213,7 +1506,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27353+
@@ -1215,7 +1508,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2735427354
}
2735527355
// CraftBukkit end
2735627356

@@ -27359,7 +27359,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2735927359
}
2736027360
}
2736127361

27362-
@@ -1224,7 +1517,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27362+
@@ -1226,7 +1519,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2736327363

2736427364
public boolean tryAddFreshEntityWithPassengers(Entity entity, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) {
2736527365
// CraftBukkit end
@@ -27368,7 +27368,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2736827368
return false;
2736927369
} else {
2737027370
this.addFreshEntityWithPassengers(entity, reason); // CraftBukkit
27371-
@@ -1959,7 +2252,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27371+
@@ -1961,7 +2254,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2737227372
}
2737327373
}
2737427374

@@ -27377,7 +27377,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2737727377
bufferedWriter.write(String.format(Locale.ROOT, "block_entity_tickers: %d\n", this.blockEntityTickers.size()));
2737827378
bufferedWriter.write(String.format(Locale.ROOT, "block_ticks: %d\n", this.getBlockTicks().count()));
2737927379
bufferedWriter.write(String.format(Locale.ROOT, "fluid_ticks: %d\n", this.getFluidTicks().count()));
27380-
@@ -1977,13 +2270,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27380+
@@ -1979,13 +2272,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2738127381
Path path1 = path.resolve("chunks.csv");
2738227382

2738327383
try (Writer bufferedWriter2 = Files.newBufferedWriter(path1)) {
@@ -27393,7 +27393,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2739327393
}
2739427394

2739527395
Path path3 = path.resolve("entities.csv");
27396-
@@ -2092,8 +2385,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27396+
@@ -2094,8 +2387,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2739727397
Locale.ROOT,
2739827398
"players: %s, entities: %s [%s], block_entities: %d [%s], block_ticks: %d, fluid_ticks: %d, chunk_source: %s",
2739927399
this.players.size(),
@@ -27404,7 +27404,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2740427404
this.blockEntityTickers.size(),
2740527405
getTypeCount(this.blockEntityTickers, TickingBlockEntity::getType),
2740627406
this.getBlockTicks().count(),
27407-
@@ -2125,15 +2418,25 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27407+
@@ -2127,15 +2420,25 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2740827408
@Override
2740927409
public LevelEntityGetter<Entity> getEntities() {
2741027410
org.spigotmc.AsyncCatcher.catchOp("Chunk getEntities call"); // Spigot
@@ -27433,7 +27433,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2743327433
}
2743427434

2743527435
public void startTickingChunk(LevelChunk chunk) {
27436-
@@ -2151,32 +2454,45 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27436+
@@ -2153,32 +2456,45 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2743727437
@Override
2743827438
public void close() throws IOException {
2743927439
super.close();
@@ -27486,7 +27486,7 @@ index b851520559b83c800eb240cebced0c40f1b8a66c..a293d1481b5f4a1d18addc3e518486c6
2748627486
}
2748727487

2748827488
@Override
27489-
@@ -2230,7 +2546,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
27489+
@@ -2232,7 +2548,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2749027490
@Override
2749127491
public CrashReportCategory fillReportDetails(CrashReport report) {
2749227492
CrashReportCategory crashReportCategory = super.fillReportDetails(report);
@@ -28466,7 +28466,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2846628466
}
2846728467
// Paper end - Share random for entities to make them more random
2846828468
public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason; // Paper - Entity#getEntitySpawnReason
28469-
@@ -415,6 +371,156 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
28469+
@@ -416,6 +372,156 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2847028470
return this.dimensions.makeBoundingBox(x, y, z);
2847128471
}
2847228472
// Paper end
@@ -28623,7 +28623,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2862328623

2862428624
public Entity(EntityType<?> entityType, Level level) {
2862528625
this.type = entityType;
28626-
@@ -1323,35 +1429,77 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
28626+
@@ -1324,35 +1430,77 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2862728627
return distance;
2862828628
}
2862928629

@@ -28725,7 +28725,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2872528725
}
2872628726

2872728727
private static float[] collectCandidateStepUpHeights(AABB box, List<VoxelShape> colliders, float deltaY, float maxUpStep) {
28728-
@@ -2658,23 +2806,110 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
28728+
@@ -2659,23 +2807,110 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2872928729
}
2873028730

2873128731
public boolean isInWall() {
@@ -28849,7 +28849,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2884928849
}
2885028850

2885128851
public InteractionResult interact(Player player, InteractionHand hand) {
28852-
@@ -4098,15 +4333,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
28852+
@@ -4099,15 +4334,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2885328853
}
2885428854

2885528855
public Iterable<Entity> getIndirectPassengers() {
@@ -28875,7 +28875,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2887528875
}
2887628876

2887728877
public int countPlayerPassengers() {
28878-
@@ -4244,77 +4481,136 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
28878+
@@ -4245,77 +4482,136 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2887928879
return Mth.lerp(partialTick, this.yRotO, this.yRot);
2888028880
}
2888128881

@@ -29066,7 +29066,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2906629066

2906729067
public boolean touchingUnloadedChunk() {
2906829068
AABB aabb = this.getBoundingBox().inflate(1.0);
29069-
@@ -4467,6 +4763,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
29069+
@@ -4468,6 +4764,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2907029070
this.setPosRaw(x, y, z, false);
2907129071
}
2907229072
public final void setPosRaw(double x, double y, double z, boolean forceBoundingBoxUpdate) {
@@ -29082,7 +29082,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2908229082
if (!checkPosition(this, x, y, z)) {
2908329083
return;
2908429084
}
29085-
@@ -4597,6 +4902,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
29085+
@@ -4598,6 +4903,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2908629086

2908729087
@Override
2908829088
public final void setRemoved(Entity.RemovalReason removalReason, org.bukkit.event.entity.EntityRemoveEvent.Cause cause) {
@@ -29095,7 +29095,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2909529095
org.bukkit.craftbukkit.event.CraftEventFactory.callEntityRemoveEvent(this, cause);
2909629096
// CraftBukkit end
2909729097
final boolean alreadyRemoved = this.removalReason != null; // Paper - Folia schedulers
29098-
@@ -4608,7 +4919,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
29098+
@@ -4609,7 +4920,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2909929099
this.stopRiding();
2910029100
}
2910129101

@@ -29104,7 +29104,7 @@ index 19e4576b4b3be92961e993a8b14c8368789c692e..216482b4bb705520411bdeaa58f6044d
2910429104
this.levelCallback.onRemove(removalReason);
2910529105
this.onRemoval(removalReason);
2910629106
// Paper start - Folia schedulers
29107-
@@ -4642,7 +4953,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
29107+
@@ -4643,7 +4954,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2910829108
public boolean shouldBeSaved() {
2910929109
return (this.removalReason == null || this.removalReason.shouldSave())
2911029110
&& !this.isPassenger()

paper-server/patches/features/0019-Add-Alternate-Current-redstone-implementation.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2337,7 +2337,7 @@ index a293d1481b5f4a1d18addc3e518486c639223f09..5bf38ab129451e867b638cfbd2d7be59
23372337

23382338
public LevelChunk getChunkIfLoaded(int x, int z) {
23392339
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
2340-
@@ -2555,6 +2556,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
2340+
@@ -2557,6 +2558,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
23412341
return this.chunkSource.getGenerator().getSeaLevel();
23422342
}
23432343

0 commit comments

Comments
 (0)