From f1ac58c04aff9b1d2548f771fa786bdc3c3abd7d Mon Sep 17 00:00:00 2001 From: Samsuik Date: Thu, 13 Feb 2025 21:17:17 +0000 Subject: [PATCH] Keep the bukkitEntity around after changing the handle --- .../server/0016-Merge-Cannon-Entities.patch | 9 ++++--- ...0020-Optimise-cannon-entity-movement.patch | 6 ++--- .../0021-Entity-pushed-by-fluid-API.patch | 6 ++--- .../0024-Optimise-TNT-fluid-state.patch | 4 +-- ...-Configure-cannon-physics-by-version.patch | 26 +++++++++---------- ...imise-check-inside-blocks-and-fluids.patch | 8 +++--- ...59-Add-entity-travel-distance-limits.patch | 8 +++--- ...e-left-shooting-and-adjusting-limits.patch | 8 +++--- 8 files changed, 38 insertions(+), 37 deletions(-) diff --git a/patches/server/0016-Merge-Cannon-Entities.patch b/patches/server/0016-Merge-Cannon-Entities.patch index 1edf1ca..21dad32 100644 --- a/patches/server/0016-Merge-Cannon-Entities.patch +++ b/patches/server/0016-Merge-Cannon-Entities.patch @@ -445,10 +445,10 @@ index b120d32a37ea577d56783066a58ea4a407769753..c245760718be113128739101b8038471 this.guardEntityTick(this::tickNonPassenger, entity); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 04ff913f304c7b70b5fcbf866984cb0a91c2b05c..a636c0331b6c963224727eaaed9c09d29ba9d2d7 100644 +index 04ff913f304c7b70b5fcbf866984cb0a91c2b05c..8fbfe63b560a4ce0ae22a95c6e08a501e4e088fd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -586,6 +586,23 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -586,6 +586,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return to.entityState() != null && to.entityState().isCurrentState(this); } // Sakura end - store entity data/state @@ -456,8 +456,9 @@ index 04ff913f304c7b70b5fcbf866984cb0a91c2b05c..a636c0331b6c963224727eaaed9c09d2 + public final void updateBukkitHandle(Entity entity) { + if (this.bukkitEntity != null) { + this.bukkitEntity.setHandle(entity); ++ } else { ++ this.bukkitEntity = entity.getBukkitEntity(); + } -+ this.bukkitEntity = entity.getBukkitEntity(); + } + + public final long getPackedOriginPosition() { @@ -472,7 +473,7 @@ index 04ff913f304c7b70b5fcbf866984cb0a91c2b05c..a636c0331b6c963224727eaaed9c09d2 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -4878,6 +4895,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4878,6 +4896,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.removalReason != Entity.RemovalReason.UNLOADED_TO_CHUNK) { this.getPassengers().forEach(Entity::stopRiding); } // Paper - rewrite chunk system this.levelCallback.onRemove(entity_removalreason); diff --git a/patches/server/0020-Optimise-cannon-entity-movement.patch b/patches/server/0020-Optimise-cannon-entity-movement.patch index 0bc96bc..ea1cd38 100644 --- a/patches/server/0020-Optimise-cannon-entity-movement.patch +++ b/patches/server/0020-Optimise-cannon-entity-movement.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise cannon entity movement diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a636c0331b6c963224727eaaed9c09d29ba9d2d7..ccbe81eb8df2406554c34e771b16855136db111c 100644 +index 8fbfe63b560a4ce0ae22a95c6e08a501e4e088fd..2cf205393896fa12a1f745f2423a4045842a9b72 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1166,6 +1166,93 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1167,6 +1167,93 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.moveStartZ; } // Paper end - detailed watchdog information @@ -102,7 +102,7 @@ index a636c0331b6c963224727eaaed9c09d29ba9d2d7..ccbe81eb8df2406554c34e771b168551 public void move(MoverType movementType, Vec3 movement) { final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity -@@ -1510,6 +1597,104 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1511,6 +1598,104 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return offsetFactor; } diff --git a/patches/server/0021-Entity-pushed-by-fluid-API.patch b/patches/server/0021-Entity-pushed-by-fluid-API.patch index 874f8d4..6f45423 100644 --- a/patches/server/0021-Entity-pushed-by-fluid-API.patch +++ b/patches/server/0021-Entity-pushed-by-fluid-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity pushed by fluid API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ccbe81eb8df2406554c34e771b16855136db111c..33027663cd43f2a56b9cf09f280a277149aad427 100644 +index 2cf205393896fa12a1f745f2423a4045842a9b72..35d3be126ee12c884ad19911bf7554a3a96646c0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -603,6 +603,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -604,6 +604,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } // Sakura end - merge cannon entities @@ -16,7 +16,7 @@ index ccbe81eb8df2406554c34e771b16855136db111c..33027663cd43f2a56b9cf09f280a2771 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -4180,7 +4181,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4181,7 +4182,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean isPushedByFluid() { diff --git a/patches/server/0024-Optimise-TNT-fluid-state.patch b/patches/server/0024-Optimise-TNT-fluid-state.patch index 81d823c..1fc9dde 100644 --- a/patches/server/0024-Optimise-TNT-fluid-state.patch +++ b/patches/server/0024-Optimise-TNT-fluid-state.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise TNT fluid state diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 33027663cd43f2a56b9cf09f280a277149aad427..c1c1737bc7f57b7112567fe22a31c964cf4d10f7 100644 +index 35d3be126ee12c884ad19911bf7554a3a96646c0..aeee8079382ac374edc556ebb0ac51067e30cdfd 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2162,7 +2162,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2163,7 +2163,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.isInWater() || flag; } diff --git a/patches/server/0038-Configure-cannon-physics-by-version.patch b/patches/server/0038-Configure-cannon-physics-by-version.patch index 1feb972..9c1e090 100644 --- a/patches/server/0038-Configure-cannon-physics-by-version.patch +++ b/patches/server/0038-Configure-cannon-physics-by-version.patch @@ -106,7 +106,7 @@ index a5d13c6b0d8765e4a65b43f5835fd907738e1da4..19f0d8cf94a60b66cead3c129ded69fc protected int getExplosionCount() { if (this.cause.getMergeEntityData().getMergeLevel() == MergeLevel.NONE) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e178064a42e71 100644 +index aeee8079382ac374edc556ebb0ac51067e30cdfd..33cb52d93806a291403c496ce7f4a8964be3b28f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -118,7 +118,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 public boolean isInPowderSnow; public boolean wasInPowderSnow; public boolean wasOnFire; -@@ -604,6 +604,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -605,6 +605,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Sakura end - merge cannon entities public boolean pushedByFluid = true; // Sakura - entity pushed by fluid api @@ -132,7 +132,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -1113,7 +1120,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1114,7 +1121,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) { @@ -141,7 +141,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 AABB axisalignedbb = this.getBoundingBox(); AABB axisalignedbb1 = new AABB(axisalignedbb.minX, axisalignedbb.minY - 1.0E-6D, axisalignedbb.minZ, axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ); Optional optional = this.level.findSupportingBlock(this, axisalignedbb1); -@@ -1173,7 +1180,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1174,7 +1181,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.noPhysics) { this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { @@ -150,7 +150,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 movement = this.limitPistonMovement(movement); if (movement.equals(Vec3.ZERO)) { return; -@@ -1191,10 +1198,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1192,10 +1199,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess Vec3 vec3d1 = this.sakura_collide(movement); double d0 = vec3d1.lengthSqr(); @@ -164,7 +164,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this)); if (movingobjectpositionblock.getType() != HitResult.Type.MISS) { -@@ -1230,6 +1237,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1231,6 +1238,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); @@ -176,7 +176,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z); } -@@ -1271,7 +1283,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1272,7 +1284,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z); } else { this.wasOnFire = this.isOnFire(); @@ -185,7 +185,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 this.activatedTick = Math.max(this.activatedTick, MinecraftServer.currentTick + 20); // Paper this.activatedImmunityTick = Math.max(this.activatedImmunityTick, MinecraftServer.currentTick + 20); // Paper movement = this.limitPistonMovement(movement); -@@ -1298,8 +1310,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1299,8 +1311,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess Vec3 vec3d1 = this.collide(movement); double d0 = vec3d1.lengthSqr(); @@ -196,7 +196,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this)); if (movingobjectpositionblock.getType() != HitResult.Type.MISS) { -@@ -1335,6 +1347,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1336,6 +1348,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); @@ -208,7 +208,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z); } -@@ -1627,7 +1644,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1628,7 +1645,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess bb = currBoundingBox.expandTowards(movement.x, movement.y, movement.z); } this.collectCollisions(bb, voxelList, bbList); @@ -217,7 +217,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 } private Vec3 collideAxisScan(Vec3 movement, AABB currBoundingBox, List voxelList, List bbList) { -@@ -1635,7 +1652,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1636,7 +1653,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess double y = movement.y; double z = movement.z; @@ -229,7 +229,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 if (y != 0.0) { y = this.scanY(currBoundingBox, y, voxelList, bbList); -@@ -1748,7 +1768,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1749,7 +1769,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return movement; } @@ -238,7 +238,7 @@ index c1c1737bc7f57b7112567fe22a31c964cf4d10f7..ba94f23803adc9b83e46a7ed936e1780 if (stepHeight > 0.0 && (onGround || (limitedMoveVector.y != movement.y && movement.y < 0.0)) -@@ -1899,8 +1919,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1900,8 +1920,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess protected void checkInsideBlocks() { AABB axisalignedbb = this.getBoundingBox(); diff --git a/patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch b/patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch index 70e5546..6a34d34 100644 --- a/patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch +++ b/patches/server/0055-Optimise-check-inside-blocks-and-fluids.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise check inside blocks and fluids diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6591dc7d43c0f2086328c8704b130ccca8e097cc..1a873b14ccf65a62ed5f6fe41e281bda1a799636 100644 +index b30371a91a42fea32e26266b0bea96b09bd785b0..159820643b916cac3c7b5f567b0885be50dc879c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1933,18 +1933,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1934,18 +1934,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess BlockPos blockposition1 = BlockPos.containing(axisalignedbb.maxX - offset, axisalignedbb.maxY - offset, axisalignedbb.maxZ - offset); // Sakura end - physics version api @@ -50,7 +50,7 @@ index 6591dc7d43c0f2086328c8704b130ccca8e097cc..1a873b14ccf65a62ed5f6fe41e281bda try { iblockdata.entityInside(this.level(), blockposition_mutableblockposition, this); -@@ -4723,7 +4742,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4724,7 +4743,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -59,7 +59,7 @@ index 6591dc7d43c0f2086328c8704b130ccca8e097cc..1a873b14ccf65a62ed5f6fe41e281bda return false; } else { AABB axisalignedbb = this.getBoundingBox().deflate(0.001D); -@@ -4740,11 +4759,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4741,11 +4760,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); diff --git a/patches/server/0059-Add-entity-travel-distance-limits.patch b/patches/server/0059-Add-entity-travel-distance-limits.patch index 4a22d7c..e5a3a00 100644 --- a/patches/server/0059-Add-entity-travel-distance-limits.patch +++ b/patches/server/0059-Add-entity-travel-distance-limits.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add entity travel distance limits diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index d9495f6585c13ed2b1cdbe971a721d5b717920aa..2eb0d27a9fa7795f5b0973179a23a3edb61ef75a 100644 +index d03c700fffb7b854b3aae08d50419ae406c2ea70..f5368edd88408a2bfe070aa1418ffe90293e215f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1256,6 +1256,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -21,10 +21,10 @@ index d9495f6585c13ed2b1cdbe971a721d5b717920aa..2eb0d27a9fa7795f5b0973179a23a3ed } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 38bd2af86bf1c15bb8d062630e9853dea9d32deb..33ba8ba3168425268825c24f0d9b7c9778b5b292 100644 +index 159820643b916cac3c7b5f567b0885be50dc879c..9b418c1f65a8352fa2f608a2d95e0a0551866c7c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -619,6 +619,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -620,6 +620,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.physics; } // Sakura end - physics version api @@ -44,7 +44,7 @@ index 38bd2af86bf1c15bb8d062630e9853dea9d32deb..33ba8ba3168425268825c24f0d9b7c97 public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -668,6 +681,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -669,6 +682,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.entityData = datawatcher_a.build(); this.setPos(0.0D, 0.0D, 0.0D); this.eyeHeight = this.dimensions.eyeHeight(); diff --git a/patches/server/0076-Configurable-left-shooting-and-adjusting-limits.patch b/patches/server/0076-Configurable-left-shooting-and-adjusting-limits.patch index d185567..119f794 100644 --- a/patches/server/0076-Configurable-left-shooting-and-adjusting-limits.patch +++ b/patches/server/0076-Configurable-left-shooting-and-adjusting-limits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable left shooting and adjusting limits diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 11c91e62ad71fbe8b22e417c6d942c8d0849a863..2201bd3639482ec0e6f01b4f991bb4abfb5b9da6 100644 +index 9b418c1f65a8352fa2f608a2d95e0a0551866c7c..0453c40a2b39a478cf1615eb55e21a93ba780770 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -632,6 +632,46 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -633,6 +633,46 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return Math.max(x, z) >= this.travelDistanceLimit; } // Sakura end - entity travel distance limits @@ -55,7 +55,7 @@ index 11c91e62ad71fbe8b22e417c6d942c8d0849a863..2201bd3639482ec0e6f01b4f991bb4ab public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -1687,6 +1727,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1688,6 +1728,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } if (xSmaller && z != 0.0) { @@ -63,7 +63,7 @@ index 11c91e62ad71fbe8b22e417c6d942c8d0849a863..2201bd3639482ec0e6f01b4f991bb4ab z = this.scanZ(currBoundingBox, z, voxelList, bbList); if (z != 0.0) { currBoundingBox = ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.offsetZ(currBoundingBox, z); -@@ -1694,6 +1735,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1695,6 +1736,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } if (x != 0.0) {