diff --git a/gradle.properties b/gradle.properties index 23343ca0c..9b1e255c4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21.3-R0.1-SNAPSHOT mcVersion = 1.21.3 -paperCommit = ce0a0419476d1072ca739a0e8f22d8a358c1c1a2 +paperCommit = fcb6c72bc95ff62b9cd78dec457f485dafcc70a4 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index 9013013a4..d38dd8a04 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -79,10 +79,10 @@ index b5d5dbc50a7b8c40739a15f164ffd08fdc534f9c..5d322e613a0116057373a3c9d7125620 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 341c324d15996a74b113f8879d7da737a1be86a1..1d23428d23c1281eea456fe6175e050826246848 100644 +index a0876d3f88620bb24ef69101fc67b0dcd5dca0d2..5263f97db83626096b1c4fef415a2fbf41bc9ce7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -383,7 +383,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private final Set tags; private final double[] pistonDeltas; private long pistonDeltasGameTime; @@ -91,7 +91,7 @@ index 341c324d15996a74b113f8879d7da737a1be86a1..1d23428d23c1281eea456fe6175e0508 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -3329,6 +3329,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3330,6 +3330,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index 341c324d15996a74b113f8879d7da737a1be86a1..1d23428d23c1281eea456fe6175e0508 this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); } } -@@ -3368,6 +3375,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3369,6 +3376,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return false; } // CraftBukkit end @@ -120,7 +120,7 @@ index 341c324d15996a74b113f8879d7da737a1be86a1..1d23428d23c1281eea456fe6175e0508 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -5331,4 +5346,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -5361,4 +5376,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end - Expose entity id counter @@ -190,7 +190,7 @@ index b851c3ee1426bc0a259bf6c4a662af0c9883dd71..7c11b5e73d4f3c0be7c467f7522c2d97 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9c61225a728a2ca91a1c71dead75fc7cd93668b6..e8c1ffe30e0f211ae563e28afa2101e51a122777 100644 +index e86314de8d908a0c3e9f17d3e163c11180cf3f59..b8303404f8a81e2b446a9a40861787ca786aad47 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -248,9 +248,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -223,7 +223,7 @@ index 9c61225a728a2ca91a1c71dead75fc7cd93668b6..e8c1ffe30e0f211ae563e28afa2101e5 @Override protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) { -@@ -3669,8 +3670,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3670,8 +3671,10 @@ public abstract class LivingEntity extends Entity implements Attackable { this.pushEntities(); gameprofilerfiller.pop(); // Paper start - Add EntityMoveEvent @@ -236,7 +236,7 @@ index 9c61225a728a2ca91a1c71dead75fc7cd93668b6..e8c1ffe30e0f211ae563e28afa2101e5 Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone()); -@@ -3680,6 +3683,21 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3681,6 +3684,21 @@ public abstract class LivingEntity extends Entity implements Attackable { this.absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch()); } } diff --git a/patches/server/0008-Configurable-entity-base-attributes.patch b/patches/server/0008-Configurable-entity-base-attributes.patch index e6f0e7cd4..d13898a4e 100644 --- a/patches/server/0008-Configurable-entity-base-attributes.patch +++ b/patches/server/0008-Configurable-entity-base-attributes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index aa73875d8cb701d233ffa79c9bda4b7b474ba667..90434afec7a896473624901c6b00bf7c81572930 100644 +index 5263f97db83626096b1c4fef415a2fbf41bc9ce7..0360d3a4e7f291e3528a0debe4909e774e8c8b91 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -176,7 +176,7 @@ import org.bukkit.plugin.PluginManager; +@@ -177,7 +177,7 @@ import org.bukkit.plugin.PluginManager; // CraftBukkit end public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess, ScoreHolder, ca.spottedleaf.moonrise.patches.chunk_system.entity.ChunkSystemEntity, ca.spottedleaf.moonrise.patches.entity_tracker.EntityTrackerEntity { // Paper - rewrite chunk system // Paper - optimise entity tracker @@ -34,7 +34,7 @@ index 7c11b5e73d4f3c0be7c467f7522c2d974ab330f3..27aee968718af1ae78e2076ddc890114 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 56613c25850f89d125cb213d37fd5fed9deee7f7..0b1d31bcbe398ecd2e1ddd881c2f602a1a4f73d9 100644 +index b8303404f8a81e2b446a9a40861787ca786aad47..5eb5976a0fbe1959f9015734cc0b31503604649d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -326,6 +326,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0011-AFK-API.patch b/patches/server/0011-AFK-API.patch index 45676b034..6e5b27857 100644 --- a/patches/server/0011-AFK-API.patch +++ b/patches/server/0011-AFK-API.patch @@ -317,10 +317,10 @@ index 65cbd35892ab48fccda9bccf2b4dd66be5c84a0d..42bff6f2d864a31dcb1c0087a4e0c902 public boolean untamedTamablesAreRidable = true; public boolean useNightVisionWhenRiding = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 133bcf639a45bd7fa1a2d02410ea3e8568265007..b7df4f62eb5f128ef6202b30ed2ffdea10e8a241 100644 +index bd7c37123c70d2afdef252f39548725d4ef318ed..2812fa381a2d91a4638583a43556a7eef2b3d298 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -198,6 +198,8 @@ public class ActivationRange +@@ -199,6 +199,8 @@ public class ActivationRange continue; } diff --git a/patches/server/0031-Add-option-to-set-armorstand-step-height.patch b/patches/server/0031-Add-option-to-set-armorstand-step-height.patch index 61ec96bfb..5d3a0a89c 100644 --- a/patches/server/0031-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0031-Add-option-to-set-armorstand-step-height.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to set armorstand step height diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 07808cd73e800917228b3baebabdb9361f211958..a76c75e73c0bb060ad170b9d0981493dfdd28ddd 100644 +index 0360d3a4e7f291e3528a0debe4909e774e8c8b91..2750f1f0d572f7c4f8b855c32bd1946c2de1bc00 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -343,6 +343,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -344,6 +344,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public double xOld; public double yOld; public double zOld; @@ -16,7 +16,7 @@ index 07808cd73e800917228b3baebabdb9361f211958..a76c75e73c0bb060ad170b9d0981493d public boolean noPhysics; private boolean wasOnFire; public final RandomSource random; -@@ -5145,7 +5146,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -5175,7 +5176,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public float maxUpStep() { diff --git a/patches/server/0039-Minecart-settings-and-WASD-controls.patch b/patches/server/0039-Minecart-settings-and-WASD-controls.patch index 7f11b5c5e..a0a488a9d 100644 --- a/patches/server/0039-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0039-Minecart-settings-and-WASD-controls.patch @@ -17,13 +17,13 @@ index a9228aa69e31b0e69f0b07170de0ac99b64fe0fe..b5054c762382bb81fa83069a97467af0 if (!flag && this.spawnInvulnerableTime > 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) { diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index d277f56fef882313d6d21f636fafae2f26630ad7..a1593297b6764ba0229cc1c8f5a55aef107ff9df 100644 +index ce91809d66007def728a127a0a9d33f6235cc94d..bd4e4f03c4b70247c7fc887854e0aa01a8af81c6 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -92,6 +92,7 @@ public abstract class AbstractMinecart extends VehicleEntity { private double flyingY = 0.95; private double flyingZ = 0.95; - public double maxSpeed = 0.4D; + public Double maxSpeed; + public double storedMaxSpeed; // Purpur // CraftBukkit end public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API diff --git a/patches/server/0048-Allow-leashing-villagers.patch b/patches/server/0048-Allow-leashing-villagers.patch index 2fa53de44..89cbc5c3c 100644 --- a/patches/server/0048-Allow-leashing-villagers.patch +++ b/patches/server/0048-Allow-leashing-villagers.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index db6feb93b43be183700337d1470eab9127e620f3..907d4661f123ae04c06c9fff8ebdf0b528ed21ba 100644 +index 2750f1f0d572f7c4f8b855c32bd1946c2de1bc00..45e53779e30763077b5374680a63cc277715500c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3125,6 +3125,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3126,6 +3126,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess if (this.isAlive() && this instanceof Leashable leashable) { if (leashable.getLeashHolder() == player) { if (!this.level().isClientSide()) { diff --git a/patches/server/0053-Add-canSaveToDisk-to-Entity.patch b/patches/server/0053-Add-canSaveToDisk-to-Entity.patch index 76dc37931..bcdcbb3dd 100644 --- a/patches/server/0053-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0053-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 907d4661f123ae04c06c9fff8ebdf0b528ed21ba..863780d37c804fc7a085f540af2b70491c570877 100644 +index 45e53779e30763077b5374680a63cc277715500c..66685c9233b423ec3cd328bd58f4694a62045a2c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -611,6 +611,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -612,6 +612,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } } // Paper end - optimise entity tracker diff --git a/patches/server/0054-Dispenser-curse-of-binding-protection.patch b/patches/server/0054-Dispenser-curse-of-binding-protection.patch index 26855e0aa..a472ce910 100644 --- a/patches/server/0054-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0054-Dispenser-curse-of-binding-protection.patch @@ -18,10 +18,10 @@ index bf8c511739265c6a9cd277752e844481598f8966..ffe2399ab6b1f311536475d8216238b5 // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 85e0464199145b769beea337b3f7cdcb3e658eb7..b19d76ddb99f67c3bff08cc22b195ab08b4e5902 100644 +index 1420a435463d69f4f811dd4e47a8ae7da48f1339..e14533a047acaf4c1178f0b23427b23179334b88 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4669,7 +4669,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4670,7 +4670,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (equippable != null && equippable.dispensable()) { EquipmentSlot enumitemslot = equippable.slot(); @@ -30,7 +30,7 @@ index 85e0464199145b769beea337b3f7cdcb3e658eb7..b19d76ddb99f67c3bff08cc22b195ab0 } else { return false; } -@@ -4694,6 +4694,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4695,6 +4695,12 @@ public abstract class LivingEntity extends Entity implements Attackable { return equippable == null ? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND) : slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType()); } diff --git a/patches/server/0058-Implement-elytra-settings.patch b/patches/server/0058-Implement-elytra-settings.patch index 6c2a88093..4d796a7f5 100644 --- a/patches/server/0058-Implement-elytra-settings.patch +++ b/patches/server/0058-Implement-elytra-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b19d76ddb99f67c3bff08cc22b195ab08b4e5902..66ae89ade2bb19b0a8498573f8c0c68ff0628594 100644 +index e14533a047acaf4c1178f0b23427b23179334b88..585cda7afc6532196ddbd53b9d4ff3215afb67da 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3738,7 +3738,17 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3739,7 +3739,17 @@ public abstract class LivingEntity extends Entity implements Attackable { }).toList(); EquipmentSlot enumitemslot = (EquipmentSlot) Util.getRandom(list, this.random); @@ -27,7 +27,7 @@ index b19d76ddb99f67c3bff08cc22b195ab08b4e5902..66ae89ade2bb19b0a8498573f8c0c68f } this.gameEvent(GameEvent.ELYTRA_GLIDE); -@@ -3747,7 +3757,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3748,7 +3758,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } diff --git a/patches/server/0072-Squid-EAR-immunity.patch b/patches/server/0072-Squid-EAR-immunity.patch index f7589199f..6af57efd9 100644 --- a/patches/server/0072-Squid-EAR-immunity.patch +++ b/patches/server/0072-Squid-EAR-immunity.patch @@ -25,14 +25,14 @@ index 89151a9538e22941ad55aab1807d6871a852364c..30c0c6d582069c6a01b033bb9707f4fa public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index b7df4f62eb5f128ef6202b30ed2ffdea10e8a241..66e7b1966602f6d9f5978d66df7cb81b8c89e75b 100644 +index 2812fa381a2d91a4638583a43556a7eef2b3d298..e047c0a4a8638588b4ac0d47c4c96899fac4abb7 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -377,6 +377,7 @@ public class ActivationRange +@@ -378,6 +378,7 @@ public class ActivationRange */ public static boolean checkIfActive(Entity entity) { + if (entity.level().purpurConfig.squidImmuneToEAR && entity instanceof net.minecraft.world.entity.animal.Squid) return true; // Purpur - // Never safe to skip fireworks or entities not yet added to chunk - if ( entity instanceof FireworkRocketEntity ) { + // Never safe to skip fireworks or item gravity + if (entity instanceof FireworkRocketEntity || (entity instanceof ItemEntity && (entity.tickCount + entity.getId()) % 4 == 0)) { // Paper - Needed for item gravity, see ItemEntity tick return true; diff --git a/patches/server/0082-Stop-squids-floating-on-top-of-water.patch b/patches/server/0082-Stop-squids-floating-on-top-of-water.patch index 49d3a7bd0..ba0646795 100644 --- a/patches/server/0082-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0082-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 863780d37c804fc7a085f540af2b70491c570877..3d25c9ec52dfcd85ab7220c5b2f760f31b564724 100644 +index 66685c9233b423ec3cd328bd58f4694a62045a2c..2128d55f921e15402cd3d38a5e60b5fae3d6b5e6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4751,6 +4751,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4781,6 +4781,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return Mth.lerp(delta, this.yRotO, this.yRot); } diff --git a/patches/server/0084-Entities-can-use-portals.patch b/patches/server/0084-Entities-can-use-portals.patch index eee6244c4..8a0bf160b 100644 --- a/patches/server/0084-Entities-can-use-portals.patch +++ b/patches/server/0084-Entities-can-use-portals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3d25c9ec52dfcd85ab7220c5b2f760f31b564724..ebffeb41944df4e097fad259f48b2d18941e55b3 100644 +index 2128d55f921e15402cd3d38a5e60b5fae3d6b5e6..c98083c33458c506f045ff6f2f7bd5956a2b44df 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3473,7 +3473,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3474,7 +3474,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public void setAsInsidePortal(Portal portal, BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index 3d25c9ec52dfcd85ab7220c5b2f760f31b564724..ebffeb41944df4e097fad259f48b2d18 if (this.portalProcess != null && this.portalProcess.isSamePortal(portal)) { if (!this.portalProcess.isInsidePortalThisTick()) { this.portalProcess.updateEntryPosition(pos.immutable()); -@@ -4192,7 +4192,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4193,7 +4193,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit end public boolean canUsePortal(boolean allowVehicles) { diff --git a/patches/server/0120-Movement-options-for-armor-stands.patch b/patches/server/0120-Movement-options-for-armor-stands.patch index 2939568e9..4cb27fa63 100644 --- a/patches/server/0120-Movement-options-for-armor-stands.patch +++ b/patches/server/0120-Movement-options-for-armor-stands.patch @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ebffeb41944df4e097fad259f48b2d18941e55b3..106dadefc463ba1f59e89e9c5d1386b0eda40d48 100644 +index c98083c33458c506f045ff6f2f7bd5956a2b44df..8a8676424d2b87542e583040fc0b5b1c8ccd91ca 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2049,7 +2049,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2050,7 +2050,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return this.isInWater() || flag; } diff --git a/patches/server/0121-Fix-stuck-in-portals.patch b/patches/server/0121-Fix-stuck-in-portals.patch index bc81272d1..8f9c398e7 100644 --- a/patches/server/0121-Fix-stuck-in-portals.patch +++ b/patches/server/0121-Fix-stuck-in-portals.patch @@ -17,10 +17,10 @@ index 976dfffac3895015d0eb00bab0ea93f9e5cc27a2..430ea84cbca69b6d119c2739bed9de37 this.connection.internalTeleport(PositionMoveRotation.of(teleportTarget), teleportTarget.relatives()); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 106dadefc463ba1f59e89e9c5d1386b0eda40d48..93468974af35aa2f4f72d80b72aabe2dc8519f9e 100644 +index 8a8676424d2b87542e583040fc0b5b1c8ccd91ca..4971daaad718e1f37fb72c2d1a00dcb7cdf70af0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3470,14 +3470,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3471,14 +3471,17 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return Vec3.directionFromRotation(this.getRotationVector()); } diff --git a/patches/server/0140-Drowning-Settings.patch b/patches/server/0140-Drowning-Settings.patch index a9c064fd1..b84f55d80 100644 --- a/patches/server/0140-Drowning-Settings.patch +++ b/patches/server/0140-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 93468974af35aa2f4f72d80b72aabe2dc8519f9e..96f49fd358ee0cc1c45573638343a1492b32eb83 100644 +index 4971daaad718e1f37fb72c2d1a00dcb7cdf70af0..20df4a12d8e5fd5c167f03403d1331d2a0974c00 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3697,7 +3697,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3698,7 +3698,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public int getMaxAirSupply() { @@ -18,7 +18,7 @@ index 93468974af35aa2f4f72d80b72aabe2dc8519f9e..96f49fd358ee0cc1c45573638343a149 public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a7a6f8b7b1dfa2002f57fb6e0aaae376357dd5b4..6b14d6b605c4a5f3f9965f0e2f146290a3b1e89a 100644 +index b9038151cb69d018b89d65ab3af9f64447e6df8c..9777719cae27035bdf0c81e5f866dae96095a9c4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -491,7 +491,7 @@ public abstract class LivingEntity extends Entity implements Attackable { diff --git a/patches/server/0166-API-for-any-mob-to-burn-daylight.patch b/patches/server/0166-API-for-any-mob-to-burn-daylight.patch index e4653c771..cfa199194 100644 --- a/patches/server/0166-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0166-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 96f49fd358ee0cc1c45573638343a1492b32eb83..7b1a5d7a84690865d7263f5c6cd1393d5cc9495e 100644 +index 20df4a12d8e5fd5c167f03403d1331d2a0974c00..a78b6d453e59947a70e1c27e1d62efe68d912f88 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -617,6 +617,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -618,6 +618,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Purpur end @@ -33,7 +33,7 @@ index 96f49fd358ee0cc1c45573638343a1492b32eb83..7b1a5d7a84690865d7263f5c6cd1393d this.id = Entity.ENTITY_COUNTER.incrementAndGet(); this.passengers = ImmutableList.of(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ab28b28118810a4d55300d5b5590016e318a9720..4c5f573594c53edee96b498fa0852a3dee59cef8 100644 +index 305f6bea2ac00b7587091ee10bfd2deca1034412..543eef5062fb77c880905b9b550e5be75893d2db 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -297,6 +297,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -64,7 +64,7 @@ index ab28b28118810a4d55300d5b5590016e318a9720..4c5f573594c53edee96b498fa0852a3d } // CraftBukkit start -@@ -3754,6 +3761,34 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3755,6 +3762,34 @@ public abstract class LivingEntity extends Entity implements Attackable { } } diff --git a/patches/server/0188-Toggle-for-kinetic-damage.patch b/patches/server/0188-Toggle-for-kinetic-damage.patch index e6f83c5c8..e6a2c72f7 100644 --- a/patches/server/0188-Toggle-for-kinetic-damage.patch +++ b/patches/server/0188-Toggle-for-kinetic-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for kinetic damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 4c5f573594c53edee96b498fa0852a3dee59cef8..fd18e01249d9b9958200ee16efaeeaf11360bafe 100644 +index 543eef5062fb77c880905b9b550e5be75893d2db..328ce5ec4375a14a8ede632a9975b9871c2eab8b 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3178,6 +3178,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3179,6 +3179,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (f > 0.0F) { this.playSound(this.getFallDamageSound((int) f), 1.0F, 1.0F); diff --git a/patches/server/0248-Add-toggle-for-RNG-manipulation.patch b/patches/server/0248-Add-toggle-for-RNG-manipulation.patch index 03a1c9b65..1d4de1de9 100644 --- a/patches/server/0248-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0248-Add-toggle-for-RNG-manipulation.patch @@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7b1a5d7a84690865d7263f5c6cd1393d5cc9495e..d55668d897912991f3995d911bf5d22a4254aff9 100644 +index a78b6d453e59947a70e1c27e1d62efe68d912f88..71955ce4bb2e4870a6e38ff989a11254fc37b096 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -640,7 +640,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -641,7 +641,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; diff --git a/patches/server/0264-Fire-Immunity-API.patch b/patches/server/0264-Fire-Immunity-API.patch index 194daca5e..e5a627474 100644 --- a/patches/server/0264-Fire-Immunity-API.patch +++ b/patches/server/0264-Fire-Immunity-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d55668d897912991f3995d911bf5d22a4254aff9..dec1189caed215269f0a148954dad23e2260d81d 100644 +index 71955ce4bb2e4870a6e38ff989a11254fc37b096..98dc80f5b42b7f930747134e60d118596a73901a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -432,6 +432,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -433,6 +433,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private UUID originWorld; public boolean freezeLocked = false; // Paper - Freeze Tick Lock API public boolean fixedPose = false; // Paper - Expand Pose API @@ -16,7 +16,7 @@ index d55668d897912991f3995d911bf5d22a4254aff9..dec1189caed215269f0a148954dad23e public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -1992,7 +1993,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1993,7 +1994,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean fireImmune() { @@ -25,7 +25,7 @@ index d55668d897912991f3995d911bf5d22a4254aff9..dec1189caed215269f0a148954dad23e } public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2747,6 +2748,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2748,6 +2749,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -37,7 +37,7 @@ index d55668d897912991f3995d911bf5d22a4254aff9..dec1189caed215269f0a148954dad23e return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2895,6 +2901,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2896,6 +2902,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end diff --git a/patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 1a6da032a..13820c706 100644 --- a/patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0265-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index dec1189caed215269f0a148954dad23e2260d81d..1230b058d2ea791bebb0e05eabe4e789a93448af 100644 +index 98dc80f5b42b7f930747134e60d118596a73901a..07f806e28feb126879868ff128fde132f8bd0355 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1032,6 +1032,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1033,6 +1033,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end - Configurable nether ceiling damage