diff --git a/gradle.properties b/gradle.properties
index f4b2c5203..73f00f866 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
version = 1.21.1-R0.1-SNAPSHOT
mcVersion = 1.21.1
-paperCommit = 2fdb2e9dcdfb127cb99134f9bec60dcc2a6954d2
+paperCommit = 789a267e93240f9e918014dd88bab89fe50a64d3
org.gradle.caching = true
org.gradle.parallel = true
diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch
index 7d93840b8..ba04eeb2a 100644
--- a/patches/server/0001-Pufferfish-Server-Changes.patch
+++ b/patches/server/0001-Pufferfish-Server-Changes.patch
@@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
diff --git a/build.gradle.kts b/build.gradle.kts
-index 421f6b3dc8890d63d2e7aa774d0bf8f7e15890ab..fd1ac5dbc39068d4332fd264f3359e4845e529e1 100644
+index 3588770a9ea6ee0a9508b218758650f43d994715..181784e18cd321f959845abdc0982e934f67a702 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -1425,7 +1425,7 @@ index b13057c0792067cc6b0abdf0d64a9be2cc9389a4..427ac2a5e90ad80328a07af27552b6b3
final io.papermc.paper.configuration.type.number.IntOr.Disabled pageMax = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
if (!this.cserver.isPrimaryThread() && pageMax.enabled()) {
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 490ee48346395fcbaf2eb0151e9248f18974fea6..3f7812c55dae82433336d6e091aa83434615fa04 100644
+index e0827d8bb3fa17d4f590a5342ff41a514f623e68..de5276b9ba5b3cd2f565714995e86edd4447c1ca 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -429,6 +429,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1634,7 +1634,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..ce0d28cafcae0b7edc861749a1652ecc
if (this.isSpectator()) {
return false;
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index f36a814bfd90af6457171512c131601b19905737..16fbbfd47c494d9fdea844cdb767dd9f6fe5e171 100644
+index 763abeea3f14f15c27d600e0bdae44b387687bb4..1f3a55d34f58964fb1f642ad59c9d7b7aa6fa4ff 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -232,14 +232,16 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1656,7 +1656,7 @@ index f36a814bfd90af6457171512c131601b19905737..16fbbfd47c494d9fdea844cdb767dd9f
this.targetSelector.tick();
}
}
-@@ -932,16 +934,20 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -929,16 +931,20 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
if (i % 2 != 0 && this.tickCount > 1) {
gameprofilerfiller.push("targetSelector");
diff --git a/patches/server/0009-Ridables.patch b/patches/server/0009-Ridables.patch
index 08eb9388e..0a472af58 100644
--- a/patches/server/0009-Ridables.patch
+++ b/patches/server/0009-Ridables.patch
@@ -79,7 +79,7 @@ index 427ac2a5e90ad80328a07af27552b6b380c8f3f1..8345c9b767d9dabbaeb8bcc09cefd3a2
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 9dd838972d83196dfda620b223ea17fbf7c125a4..5d2d310da657963b830efa7de2486180736613f0 100644
+index e2907879dbe758ffe728d77ebde434b1e7382a96..cdd289a8a7e2560765c2e873e9d7eb698c9df273 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
@@ -259,7 +259,7 @@ index ce0d28cafcae0b7edc861749a1652ecc08d298b5..e7b9f129a31c57df65e9be082de1d2f3
// Paper end - Add EntityMoveEvent
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 16fbbfd47c494d9fdea844cdb767dd9f6fe5e171..b45cefa0455ee5634b0b719bf93f7ab728d63eb0 100644
+index 1f3a55d34f58964fb1f642ad59c9d7b7aa6fa4ff..ebf2541c0d17c0940d78162a4015145bbebc51cf 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -160,8 +160,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -273,7 +273,7 @@ index 16fbbfd47c494d9fdea844cdb767dd9f6fe5e171..b45cefa0455ee5634b0b719bf93f7ab7
this.jumpControl = new JumpControl(this);
this.bodyRotationControl = this.createBodyControl();
this.navigation = this.createNavigation(world);
-@@ -1517,7 +1517,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -1514,7 +1514,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -282,7 +282,7 @@ index 16fbbfd47c494d9fdea844cdb767dd9f6fe5e171..b45cefa0455ee5634b0b719bf93f7ab7
}
public boolean isWithinRestriction() {
-@@ -1815,4 +1815,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -1812,4 +1812,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
}
diff --git a/patches/server/0072-Entity-lifespan.patch b/patches/server/0072-Entity-lifespan.patch
index 765edaabf..d5f36e87d 100644
--- a/patches/server/0072-Entity-lifespan.patch
+++ b/patches/server/0072-Entity-lifespan.patch
@@ -17,7 +17,7 @@ index 24507ece498ccaa2bed7b4ab53ae9c90e734ad54..cc770ba7f87fcb1e9027b4f120210809
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index b45cefa0455ee5634b0b719bf93f7ab728d63eb0..349e9121d72f572e3e54e98aea50489f02fa4522 100644
+index ebf2541c0d17c0940d78162a4015145bbebc51cf..0d93a8cbf15fa84f422d61adddb420ba5dcb226a 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -146,6 +146,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -85,7 +85,7 @@ index b45cefa0455ee5634b0b719bf93f7ab728d63eb0..349e9121d72f572e3e54e98aea50489f
}
@Override
-@@ -1756,6 +1784,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -1753,6 +1781,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
this.playAttackSound();
}
diff --git a/patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch
index 66c757843..1e88b4720 100644
--- a/patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch
+++ b/patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 349e9121d72f572e3e54e98aea50489f02fa4522..175da1a128f9b53c6d61e936a18299a9fa2b9c29 100644
+index 0d93a8cbf15fa84f422d61adddb420ba5dcb226a..d9743c9e0026d1f858aacc6a78dc39f144360b96 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1444,7 +1444,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -1441,7 +1441,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
attributemodifiable.addPermanentModifier(new AttributeModifier(Mob.RANDOM_SPAWN_BONUS_ID, randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE));
}
diff --git a/patches/server/0169-API-for-any-mob-to-burn-daylight.patch b/patches/server/0169-API-for-any-mob-to-burn-daylight.patch
index 15344979a..a14ac70e7 100644
--- a/patches/server/0169-API-for-any-mob-to-burn-daylight.patch
+++ b/patches/server/0169-API-for-any-mob-to-burn-daylight.patch
@@ -6,7 +6,7 @@ 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 cc4bb21903a44a7a06176274bfdaddd3626f78c7..543fc2aeee9fa16a5493b947e49d37ff678935df 100644
+index 4bdfeb5756b31cfadb505228fc4f9f01fb0c2441..13c3217a4cfa1c528947cfed642028fae2922f34 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -559,6 +559,22 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -100,10 +100,10 @@ index 3c7331f3e5fa62e880a09a5d37c4bf041a8ae943..1602b6f4bc7766b3316e68287bbf549b
public boolean isSensitiveToWater() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 5b082de9dc36eeb6d4432d00803880983b2dac5d..3150041b72d3a4fe01a0ca6f2ddb3003f4edfff4 100644
+index 70ace6f2a42c0d4181cb22a08dd923bd77c08295..518968c03e4e7ae99c2e40f6164c89ad27bad697 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1791,17 +1791,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -1788,17 +1788,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void playAttackSound() {}
public boolean isSunBurnTick() {
diff --git a/patches/server/0254-Remove-Mojang-Profiler.patch b/patches/server/0254-Remove-Mojang-Profiler.patch
index c3d8bddcc..411395b43 100644
--- a/patches/server/0254-Remove-Mojang-Profiler.patch
+++ b/patches/server/0254-Remove-Mojang-Profiler.patch
@@ -1073,7 +1073,7 @@ index a715ecf4a8ac91d3e5e5c6269d89e54b2c1cd279..223c3665126c576eddb1a8f7c9f5bc60
};
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 74c5b87a2a382e37db7e4c12470badcf9e07cf54..9911d937ddaa456157aeacfe3178ab7d10fa5a3b 100644
+index e0a461b84ac51910a1ede99d162e9674f4899b79..61f193c17d08ba5cdfb653b8f2488c8fca069854 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -889,7 +889,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -1289,7 +1289,7 @@ index 273ba284ef4f515ac7ca276264e17e04cdbe5b2e..943b4e93d1cfbb6b5d933851b2494fb6
// Purpur start
if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 3150041b72d3a4fe01a0ca6f2ddb3003f4edfff4..f17127b92115ed08ad5936d0be10ab8dd5b9bffb 100644
+index 518968c03e4e7ae99c2e40f6164c89ad27bad697..4b4bdaf8c43e15ba953c160a003a719aaf730318 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -370,13 +370,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1326,7 +1326,7 @@ index 3150041b72d3a4fe01a0ca6f2ddb3003f4edfff4..f17127b92115ed08ad5936d0be10ab8d
}
protected Vec3i getPickupReach() {
-@@ -953,48 +953,48 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
+@@ -950,48 +950,48 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
return;
}
// Paper end - Allow nerfed mobs to jump and float