aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-05-21 13:24:56 -0700
committerJake Potrebic <[email protected]>2024-06-12 15:23:00 -0700
commit3693757283d1ad5264d9114faf999866d60f86d7 (patch)
tree3b902f575ea53e7e1f0894333899863d8006214b
parent906df69f05d0779906377abb809bfec9fc3c3546 (diff)
downloadPaper-3693757283d1ad5264d9114faf999866d60f86d7.tar.gz
Paper-3693757283d1ad5264d9114faf999866d60f86d7.zip
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: def44cbf SPIGOT-7669: Fix typo in ProjectileHitEvent#getHitBlockFace documentation 53fa4f72 PR-1011: Throw an exception if a RecipeChoice is ever supplied air CraftBukkit Changes: 87d0a3368 SPIGOT-7668: Move NONE Registry updater to FieldRename to avoid some class loader issues 2ea1e7ac2 PR-1399: Fix regression preventing positive .setDamage value from causing knockback for 0 damage events ba2d49d21 Increase outdated build delay Spigot Changes: 342f4939 SPIGOT-7661: Add experimental unload-frozen-chunks option
-rw-r--r--patches/api/0165-Add-ItemStack-Recipe-API-helper-methods.patch4
-rw-r--r--patches/api/0477-Fix-issues-with-recipe-API.patch12
-rw-r--r--patches/server/0003-Build-system-changes.patch4
-rw-r--r--patches/server/0023-Timings-v2.patch28
-rw-r--r--patches/server/0034-Expose-server-build-information.patch4
-rw-r--r--patches/server/0075-Custom-replacement-for-eaten-items.patch8
-rw-r--r--patches/server/0076-handle-NaN-health-absorb-values-and-repair-bad-data.patch6
-rw-r--r--patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch4
-rw-r--r--patches/server/0128-Cap-Entity-Collisions.patch4
-rw-r--r--patches/server/0148-Fix-this-stupid-bullshit.patch4
-rw-r--r--patches/server/0158-Add-PlayerArmorChangeEvent.patch4
-rw-r--r--patches/server/0201-Make-shield-blocking-delay-configurable.patch4
-rw-r--r--patches/server/0204-Add-entity-knockback-events.patch8
-rw-r--r--patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch4
-rw-r--r--patches/server/0245-Improve-death-events.patch16
-rw-r--r--patches/server/0255-Add-LivingEntity-getTargetEntity.patch4
-rw-r--r--patches/server/0271-force-entity-dismount-during-teleportation.patch4
-rw-r--r--patches/server/0301-Prevent-consuming-the-wrong-itemstack.patch8
-rw-r--r--patches/server/0322-Entity-Jump-API.patch4
-rw-r--r--patches/server/0345-Don-t-run-entity-collision-code-if-not-needed.patch4
-rw-r--r--patches/server/0350-Add-PlayerAttackEntityCooldownResetEvent.patch4
-rw-r--r--patches/server/0353-Fix-item-duplication-and-teleport-issues.patch6
-rw-r--r--patches/server/0390-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch4
-rw-r--r--patches/server/0448-Climbing-should-not-bypass-cramming-gamerule.patch6
-rw-r--r--patches/server/0481-Add-RegistryAccess-for-managing-Registries.patch32
-rw-r--r--patches/server/0495-Add-EntityMoveEvent.patch4
-rw-r--r--patches/server/0518-Fix-PlayerItemConsumeEvent-cancelling-properly.patch4
-rw-r--r--patches/server/0564-Line-Of-Sight-Changes.patch4
-rw-r--r--patches/server/0595-Add-missing-team-sidebar-display-slots.patch6
-rw-r--r--patches/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch4
-rw-r--r--patches/server/0670-Freeze-Tick-Lock-API.patch4
-rw-r--r--patches/server/0715-Add-PlayerStopUsingItemEvent.patch4
-rw-r--r--patches/server/0751-Stop-large-look-changes-from-crashing-the-server.patch4
-rw-r--r--patches/server/0786-check-global-player-list-where-appropriate.patch4
-rw-r--r--patches/server/0810-Correctly-shrink-items-during-EntityResurrectEvent.patch2
-rw-r--r--patches/server/0820-Fix-advancement-triggers-for-entity-damage.patch6
-rw-r--r--patches/server/0921-Broadcast-take-item-packets-with-collector-as-source.patch4
-rw-r--r--patches/server/0935-Improve-Registry.patch8
-rw-r--r--patches/server/0936-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch4
-rw-r--r--patches/server/0942-Fixup-NamespacedKey-handling.patch4
-rw-r--r--patches/server/0980-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch4
-rw-r--r--patches/server/1000-Improve-boat-collision-performance.patch6
-rw-r--r--patches/server/1014-Properly-resend-entities.patch4
-rw-r--r--patches/server/1019-Lag-compensation-ticks.patch12
-rw-r--r--patches/server/1028-Fix-shield-disable-inconsistency.patch4
-rw-r--r--patches/server/1035-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch8
-rw-r--r--patches/server/1047-Prevent-sending-oversized-item-data-in-equipment-and.patch4
m---------work/Bukkit0
m---------work/CraftBukkit0
m---------work/Spigot0
50 files changed, 149 insertions, 149 deletions
diff --git a/patches/api/0165-Add-ItemStack-Recipe-API-helper-methods.patch b/patches/api/0165-Add-ItemStack-Recipe-API-helper-methods.patch
index 61a45e967f..4b94ef3083 100644
--- a/patches/api/0165-Add-ItemStack-Recipe-API-helper-methods.patch
+++ b/patches/api/0165-Add-ItemStack-Recipe-API-helper-methods.patch
@@ -9,10 +9,10 @@ Redirects some of upstream's APIs to these new methods to avoid
usage of magic values and the deprecated RecipeChoice#getItemStack
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
-index 6734bc9d7a6eee8ee40419ae3fe245b67eabaca6..db8bcc66bdc4bedfffb4705db6338eda4c0ad29a 100644
+index 5b7ddf5f3e4083b5289944e8adf13f4c41142f39..ce34dcadcf069a9dc375bef821bc7dd79bcd630d 100644
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
-@@ -146,8 +146,6 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
+@@ -148,8 +148,6 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
/**
* Represents a choice that will be valid only if one of the stacks is
* exactly matched (aside from stack size).
diff --git a/patches/api/0477-Fix-issues-with-recipe-API.patch b/patches/api/0477-Fix-issues-with-recipe-API.patch
index d9f853e3e4..35d6d006ef 100644
--- a/patches/api/0477-Fix-issues-with-recipe-API.patch
+++ b/patches/api/0477-Fix-issues-with-recipe-API.patch
@@ -126,10 +126,10 @@ index 39f9766a03d420340d79841197f75c8b1dd49f4a..4e59f5176fd6cf92457ad750081c253a
}
}
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
-index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..1cd6601c9d2e86ef850011fcb9e59811207b4af7 100644
+index ce34dcadcf069a9dc375bef821bc7dd79bcd630d..3a9a7b6495d516e0ea1d2c61bd37a59ea49be289 100644
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
-@@ -19,6 +19,19 @@ import org.jetbrains.annotations.NotNull;
+@@ -20,6 +20,19 @@ import org.jetbrains.annotations.NotNull;
*/
public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
@@ -149,7 +149,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..1cd6601c9d2e86ef850011fcb9e59811
/**
* Gets a single item stack representative of this stack choice.
*
-@@ -35,6 +48,13 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
+@@ -36,6 +49,13 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
@Override
boolean test(@NotNull ItemStack itemStack);
@@ -163,7 +163,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..1cd6601c9d2e86ef850011fcb9e59811
/**
* Represents a choice of multiple matching Materials.
*/
-@@ -141,6 +161,16 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
+@@ -143,6 +163,16 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
public String toString() {
return "MaterialChoice{" + "choices=" + choices + '}';
}
@@ -180,7 +180,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..1cd6601c9d2e86ef850011fcb9e59811
}
/**
-@@ -185,7 +215,12 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
+@@ -188,7 +218,12 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
public ExactChoice clone() {
try {
ExactChoice clone = (ExactChoice) super.clone();
@@ -194,7 +194,7 @@ index db8bcc66bdc4bedfffb4705db6338eda4c0ad29a..1cd6601c9d2e86ef850011fcb9e59811
return clone;
} catch (CloneNotSupportedException ex) {
throw new AssertionError(ex);
-@@ -232,5 +267,15 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
+@@ -235,5 +270,15 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
public String toString() {
return "ExactChoice{" + "choices=" + choices + '}';
}
diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch
index 4cc0854c31..d797657544 100644
--- a/patches/server/0003-Build-system-changes.patch
+++ b/patches/server/0003-Build-system-changes.patch
@@ -131,7 +131,7 @@ index a5e8713bc0fefae455b666ebf13c9529e7ba94e6..1a528e1aa7b12f8b8cffce6c7bc4b5d5
public static PackRepository createPackRepository(Path dataPacksPath, DirectoryValidator symlinkFinder) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 5595eb892fa868508c45448942da65d7c11d49fd..4b8602b168f9dd386aa72b4e5d189c441c93542e 100644
+index 9c232b6eb11d87420fb24a668a2043581cca3bd2..5f73afa688fd1c83af17e6f566862cd5e2603ff3 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -210,7 +210,7 @@ public class Main {
@@ -142,7 +142,7 @@ index 5595eb892fa868508c45448942da65d7c11d49fd..4b8602b168f9dd386aa72b4e5d189c44
+ Date buildDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").parse(Main.class.getPackage().getImplementationVendor()); // Paper
Calendar deadline = Calendar.getInstance();
- deadline.add(Calendar.DAY_OF_YEAR, -3);
+ deadline.add(Calendar.DAY_OF_YEAR, -7);
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed43495be17 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
diff --git a/patches/server/0023-Timings-v2.patch b/patches/server/0023-Timings-v2.patch
index 31a2c10e53..4cb3f25a60 100644
--- a/patches/server/0023-Timings-v2.patch
+++ b/patches/server/0023-Timings-v2.patch
@@ -714,7 +714,7 @@ index 73e7bb59596600df1b1953175f6da17bee54a65c..e161ad0f53a21a68e8c78575ba5d3cdb
} catch (Exception exception) {
if (exception instanceof ReportedException) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
-index c836204a04ca050988057dcc92c7a1fbcc02ef34..c91eb69bbab3ca563d77de7165d5ef39f0a6b532 100644
+index cbbd9aaeb0d87aae72edc7fb5aa10920834de8bf..37b3460fab8cdfe841af20d960d5740a8f875150 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -190,7 +190,7 @@ import org.bukkit.craftbukkit.Main;
@@ -1019,7 +1019,7 @@ index e53b68f91183c8abcc9a0f7d97adfc212aec02c6..15c9f4822d1d11d05de6c2d6797ee3e8
}
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
-index 23c39b78486b018e222af489c8edbf4e749abff6..3f60a3289ec58d5eb3c0c5634ca62ef2fa287ce7 100644
+index 712670230b6b881101b4128c1d275f2559fa705a..c4c85ba56c52a00e10e61fe0954d7fb8de471bdd 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -268,13 +268,15 @@ public class ServerChunkCache extends ChunkSource {
@@ -1379,7 +1379,7 @@ index 1099a85ab7e98d8652cdd1c318f269ca31f4d783..606dbc398745b689f957e62ebd9eaa56
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca8effd43e 100644
+index a3ebdbb231fb7bc6ed24747105ef02bb0ea9770e..ddf4a7bc19ba358364ea4517ce941e63ec4d26a0 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -149,7 +149,7 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -1391,7 +1391,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
public abstract class LivingEntity extends Entity implements Attackable {
-@@ -2951,7 +2951,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2945,7 +2945,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Override
public void tick() {
@@ -1399,7 +1399,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
super.tick();
this.updatingUsingItem();
this.updateSwimAmount();
-@@ -2993,9 +2992,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2987,9 +2986,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (!this.isRemoved()) {
@@ -1409,7 +1409,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
}
double d0 = this.getX() - this.xo;
-@@ -3086,7 +3083,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3080,7 +3077,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.refreshDimensions();
}
@@ -1417,7 +1417,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
}
public void detectEquipmentUpdatesPublic() { // CraftBukkit
-@@ -3285,7 +3281,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3279,7 +3275,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.setDeltaMovement(d0, d1, d2);
this.level().getProfiler().push("ai");
@@ -1425,7 +1425,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
if (this.isImmobile()) {
this.jumping = false;
this.xxa = 0.0F;
-@@ -3295,7 +3290,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3289,7 +3284,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.serverAiStep();
this.level().getProfiler().pop();
}
@@ -1433,7 +1433,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
this.level().getProfiler().pop();
this.level().getProfiler().push("jump");
-@@ -3335,7 +3329,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3329,7 +3323,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.resetFallDistance();
}
@@ -1441,7 +1441,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
label104:
{
LivingEntity entityliving = this.getControllingPassenger();
-@@ -3349,7 +3342,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3343,7 +3336,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.travel(vec3d1);
}
@@ -1449,7 +1449,7 @@ index d2f75ced3ad4ccb9d1d44307bfc98e69e5fc8c6f..856fb1a15279efc1e24a93fa289ca1ca
this.level().getProfiler().pop();
this.level().getProfiler().push("freezing");
-@@ -3376,9 +3368,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3370,9 +3362,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.checkAutoSpinAttack(axisalignedbb, this.getBoundingBox());
}
@@ -1591,7 +1591,7 @@ index 8199fd0a50e0f7d2e1f2a14ac525bc6bd9feeac4..b0518725a2e145d29bd5bc0aa7e6998a
};
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index b34b3008b4330103b3ed835e962d7c05cbe5b688..b1605bcb0379f4b274db4c7aac50e1dae5bdc831 100644
+index 950ad0a46cadc11554b9cde84e633df7cc447dcd..e1df3d9db435dc6e17da097e55c548b34420f830 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -371,7 +371,7 @@ public final class CraftServer implements Server {
@@ -1805,7 +1805,7 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 1c1f1db8cb8beff850103d998561d333823fe611..34fe109e3ab1e72b278218fad93c2de6b809020c 100644
+index 4d1e8a9211462444543b4a16cefe369245e71b2f..2640180b82df08384e11ee9eca480bb1359b19c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2759,6 +2759,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2005,7 +2005,7 @@ index f97eccb6a17c7876e1e002d798eb67bbe80571a0..76effc345d362047e64d064eb64a5222
+ } // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 73616ac642c67d4591775fdef08e720c1ab612a4..e7b98cefde1e0ecfbd151ef968062a774a6ebf55 100644
+index 8e816466a6e4c1025cab450bdbdf9276f10c324f..983660c1cc4df5ec6f08ab7363a1bb5d47af9f19 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -216,6 +216,12 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/patches/server/0034-Expose-server-build-information.patch b/patches/server/0034-Expose-server-build-information.patch
index 44620f57a0..8676375303 100644
--- a/patches/server/0034-Expose-server-build-information.patch
+++ b/patches/server/0034-Expose-server-build-information.patch
@@ -598,7 +598,7 @@ index b32ae5b9c232e5d9b3bd89303db3d2cc6258ea29..4d31fb8bc8bf285720a9d5828325d712
public List<CraftPlayer> getOnlinePlayers() {
return this.playerView;
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index bc664b090e16ed27ba795c204dc5639679e6eee8..9dc72b01092783c436bc1fa8ce29ff7cdaa39b19 100644
+index bd21da04390e486731a260f8fb0c70921320198e..14f63c179428bee61d3b931ea309f4c94b89a6cc 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -15,6 +15,7 @@ import joptsimple.OptionSet;
@@ -610,7 +610,7 @@ index bc664b090e16ed27ba795c204dc5639679e6eee8..9dc72b01092783c436bc1fa8ce29ff7c
public static boolean useConsole = true;
@@ -252,13 +253,26 @@ public class Main {
- deadline.add(Calendar.DAY_OF_YEAR, -3);
+ deadline.add(Calendar.DAY_OF_YEAR, -7);
if (buildDate.before(deadline.getTime())) {
System.err.println("*** Error, this build is outdated ***");
- System.err.println("*** Please download a new build as per instructions from https://www.spigotmc.org/go/outdated-spigot ***");
diff --git a/patches/server/0075-Custom-replacement-for-eaten-items.patch b/patches/server/0075-Custom-replacement-for-eaten-items.patch
index b619a02688..374c70131a 100644
--- a/patches/server/0075-Custom-replacement-for-eaten-items.patch
+++ b/patches/server/0075-Custom-replacement-for-eaten-items.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Custom replacement for eaten items
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index e0ad0e242181261adccdec9c006a9937ac4a24e6..d710e20447df4767e10f9250ce91dcd3141eaab0 100644
+index 878a8b7e1b0551d7b749cacce7ae63bc5349b5f3..1a8316cb8cfb5efe19b68eb93fef317c6774325d 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3808,10 +3808,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3802,10 +3802,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.triggerItemUseEffects(this.useItem, 16);
// CraftBukkit start - fire PlayerItemConsumeEvent
ItemStack itemstack;
@@ -21,7 +21,7 @@ index e0ad0e242181261adccdec9c006a9937ac4a24e6..d710e20447df4767e10f9250ce91dcd3
this.level().getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
-@@ -3825,6 +3826,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3819,6 +3820,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
} else {
itemstack = this.useItem.finishUsingItem(this.level(), this);
}
@@ -34,7 +34,7 @@ index e0ad0e242181261adccdec9c006a9937ac4a24e6..d710e20447df4767e10f9250ce91dcd3
// CraftBukkit end
if (itemstack != this.useItem) {
-@@ -3832,6 +3839,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3826,6 +3833,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.stopUsingItem();
diff --git a/patches/server/0076-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0076-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index e36d19f9b0..b694e74946 100644
--- a/patches/server/0076-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0076-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] handle NaN health/absorb values and repair bad data
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index d710e20447df4767e10f9250ce91dcd3141eaab0..e1d34c666f88bdbead59aff0d349a49608a7b8cd 100644
+index 1a8316cb8cfb5efe19b68eb93fef317c6774325d..b59f48771aaad9429bd7078c6ecddf4f46d08cef 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -833,7 +833,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -34,7 +34,7 @@ index d710e20447df4767e10f9250ce91dcd3141eaab0..e1d34c666f88bdbead59aff0d349a496
// CraftBukkit start - Handle scaled health
if (this instanceof ServerPlayer) {
org.bukkit.craftbukkit.entity.CraftPlayer player = ((ServerPlayer) this).getBukkitEntity();
-@@ -3643,7 +3653,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3637,7 +3647,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public final void setAbsorptionAmount(float absorptionAmount) {
@@ -44,7 +44,7 @@ index d710e20447df4767e10f9250ce91dcd3141eaab0..e1d34c666f88bdbead59aff0d349a496
protected void internalSetAbsorptionAmount(float absorptionAmount) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 155f7053504874758d8d25a21f0ac613f81ca7d1..4923e6bba9eb95c3e7f6fafef63961cec091e1f8 100644
+index 03dc8bced6c54b7a5e7e2be0102f6dd3225fd1d7..00a76f70440887a0398e172657bf29c15e6d3bc9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2324,6 +2324,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index 0cc89fc8b8..270d30624c 100644
--- a/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/patches/server/0127-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
@@ -127,10 +127,10 @@ index 1f29ed95ef3d1904a014715028d9d591fe39231f..1a829f79e6f9e03ead745e13ece4d1b5
@Override
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 19dbfbef6d008ba858ab37fb6d5139b0846ef95f..1379f0ba7cf99e7829aaaca62ac4c56c359f6bf0 100644
+index 51f6b7be6b8e65dbd8700ba2d7a40760b229f512..3cb452003cffd02a1ef88b0cb512a5c66d4e078b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1819,7 +1819,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1813,7 +1813,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected void dropExperience() {
// CraftBukkit start - Update getExpReward() above if the removed if() changes!
if (true && !(this instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon)) { // CraftBukkit - SPIGOT-2420: Special case ender dragon will drop the xp over time
diff --git a/patches/server/0128-Cap-Entity-Collisions.patch b/patches/server/0128-Cap-Entity-Collisions.patch
index 132f91a901..fc5bd3f9ff 100644
--- a/patches/server/0128-Cap-Entity-Collisions.patch
+++ b/patches/server/0128-Cap-Entity-Collisions.patch
@@ -24,10 +24,10 @@ index 2fcdd61e9669904756aa33b1ff8ab7160ea5e371..660a210c363fcb42145b273ea6b977ce
@javax.annotation.Nullable
private org.bukkit.util.Vector origin;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 1379f0ba7cf99e7829aaaca62ac4c56c359f6bf0..894772009bd3ca2615297b6ca856a9ffe23f3c42 100644
+index 3cb452003cffd02a1ef88b0cb512a5c66d4e078b..eafbe6fd829c2067b1e81ea8aad77fe3ba3df82f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3460,10 +3460,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3454,10 +3454,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
Iterator iterator1 = list.iterator();
diff --git a/patches/server/0148-Fix-this-stupid-bullshit.patch b/patches/server/0148-Fix-this-stupid-bullshit.patch
index bef52e1305..0d659ebe58 100644
--- a/patches/server/0148-Fix-this-stupid-bullshit.patch
+++ b/patches/server/0148-Fix-this-stupid-bullshit.patch
@@ -31,12 +31,12 @@ index 26892378d27dadce25c178333188ba093dc1617b..a3a2097716430b30c9bac2581b9f67fe
Bootstrap.isBootstrapped = true;
Instant instant = Instant.now();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
-index 9515a6f72b54bc8926f10182143b2aa9b684a341..faa228698c7dd60bde0f3767cc27957ece04b8be 100644
+index 75a3c7ed5500f0451c9c1efdfc3cb809445c8acf..8245b38d37b4cee6f4e7b61d7af40a18e54a3f43 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -260,10 +260,12 @@ public class Main {
Calendar deadline = Calendar.getInstance();
- deadline.add(Calendar.DAY_OF_YEAR, -3);
+ deadline.add(Calendar.DAY_OF_YEAR, -7);
if (buildDate.before(deadline.getTime())) {
- System.err.println("*** Error, this build is outdated ***");
+ // Paper start - This is some stupid bullshit
diff --git a/patches/server/0158-Add-PlayerArmorChangeEvent.patch b/patches/server/0158-Add-PlayerArmorChangeEvent.patch
index 0856677995..3242378947 100644
--- a/patches/server/0158-Add-PlayerArmorChangeEvent.patch
+++ b/patches/server/0158-Add-PlayerArmorChangeEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerArmorChangeEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 894772009bd3ca2615297b6ca856a9ffe23f3c42..72c5da58cc13ff7dc33159073b92c8e8fbb5bb28 100644
+index eafbe6fd829c2067b1e81ea8aad77fe3ba3df82f..2bb22c70c52a98abc0f4839ae67e9d27c320251a 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3143,6 +3143,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3137,6 +3137,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
ItemStack itemstack2 = this.getItemBySlot(enumitemslot);
if (this.equipmentHasChanged(itemstack1, itemstack2)) {
diff --git a/patches/server/0201-Make-shield-blocking-delay-configurable.patch b/patches/server/0201-Make-shield-blocking-delay-configurable.patch
index b154ac1a9e..e245965720 100644
--- a/patches/server/0201-Make-shield-blocking-delay-configurable.patch
+++ b/patches/server/0201-Make-shield-blocking-delay-configurable.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Make shield blocking delay configurable
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 72c5da58cc13ff7dc33159073b92c8e8fbb5bb28..b10d532d81efa8330f363f86d5a19e8847b90ba0 100644
+index 2bb22c70c52a98abc0f4839ae67e9d27c320251a..249b73a3d794a7bb84e3fdd85ef6c8725d7adae1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3917,12 +3917,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3911,12 +3911,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (this.isUsingItem() && !this.useItem.isEmpty()) {
Item item = this.useItem.getItem();
diff --git a/patches/server/0204-Add-entity-knockback-events.patch b/patches/server/0204-Add-entity-knockback-events.patch
index 7733d53d02..d32c88f03f 100644
--- a/patches/server/0204-Add-entity-knockback-events.patch
+++ b/patches/server/0204-Add-entity-knockback-events.patch
@@ -40,10 +40,10 @@ index 655ce0b58cc327a8dac1b006bec7dcb34964da0a..afc2e4a3eda78a47209581307c100663
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index b10d532d81efa8330f363f86d5a19e8847b90ba0..6cc1a7ea24ebd32b898d440abf5c1f6121239ec8 100644
+index 249b73a3d794a7bb84e3fdd85ef6c8725d7adae1..a2fd82e4ff315d462f2da8cf572825c7b4058186 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1540,7 +1540,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1534,7 +1534,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
d0 = (Math.random() - Math.random()) * 0.01D;
}
@@ -52,7 +52,7 @@ index b10d532d81efa8330f363f86d5a19e8847b90ba0..6cc1a7ea24ebd32b898d440abf5c1f61
if (!flag) {
this.indicateDamage(d0, d1);
}
-@@ -1593,7 +1593,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1587,7 +1587,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
protected void blockedByShield(LivingEntity target) {
@@ -61,7 +61,7 @@ index b10d532d81efa8330f363f86d5a19e8847b90ba0..6cc1a7ea24ebd32b898d440abf5c1f61
}
private boolean checkTotemDeathProtection(DamageSource source) {
-@@ -1853,23 +1853,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1847,23 +1847,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
public void knockback(double strength, double x, double z) {
// CraftBukkit start - EntityKnockbackEvent
diff --git a/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch
index faa84ce4e6..4b34786ed4 100644
--- a/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch
+++ b/patches/server/0243-Add-ray-tracing-methods-to-LivingEntity.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add ray tracing methods to LivingEntity
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6cc1a7ea24ebd32b898d440abf5c1f6121239ec8..7fffb8ee4474a4a39e77350e5b49feb8dac08cc6 100644
+index a2fd82e4ff315d462f2da8cf572825c7b4058186..1a64ea5e875fe0d362d3e76cf9d112b238b67bbe 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3928,6 +3928,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3922,6 +3922,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
// Paper start - Make shield blocking delay configurable
diff --git a/patches/server/0245-Improve-death-events.patch b/patches/server/0245-Improve-death-events.patch
index 0a2d60f7ee..9e0e09e41c 100644
--- a/patches/server/0245-Improve-death-events.patch
+++ b/patches/server/0245-Improve-death-events.patch
@@ -80,7 +80,7 @@ index c96e761dd29dbad42d590a88f1742c9a494eebfc..a0801437d631b148d435b3700e60f97f
}
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e288fb8fec 100644
+index 5583c67f093a68cc6727cf03ce3e98559bbf3b49..69ffb72df34454b601d58af624594f410e5ea8df 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -271,6 +271,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -91,7 +91,7 @@ index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e2
@Override
public float getBukkitYaw() {
-@@ -1549,11 +1550,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1543,11 +1544,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (this.isDeadOrDying()) {
if (!this.checkTotemDeathProtection(source)) {
@@ -107,7 +107,7 @@ index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e2
}
} else if (flag1) {
this.playHurtSound(source);
-@@ -1712,6 +1714,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1706,6 +1708,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
Entity entity = damageSource.getEntity();
LivingEntity entityliving = this.getKillCredit();
@@ -115,7 +115,7 @@ index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e2
if (this.deathScore >= 0 && entityliving != null) {
entityliving.awardKillScore(this, this.deathScore, damageSource);
}
-@@ -1723,24 +1726,59 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1717,24 +1720,59 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!this.level().isClientSide && this.hasCustomName()) {
if (org.spigotmc.SpigotConfig.logNamedDeaths) LivingEntity.LOGGER.info("Named entity {} died: {}", this, this.getCombatTracker().getDeathMessage().getString()); // Spigot
}
@@ -180,7 +180,7 @@ index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e2
}
}
-@@ -1748,7 +1786,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1742,7 +1780,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!this.level().isClientSide) {
boolean flag = false;
@@ -189,7 +189,7 @@ index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e2
if (this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
BlockPos blockposition = this.blockPosition();
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
-@@ -1777,7 +1815,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1771,7 +1809,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}
@@ -202,7 +202,7 @@ index 12e205a01366a5825fd1b99097f1cef75dc0408e..3b9bd1e1043d7388c03936d5b131e9e2
Entity entity = source.getEntity();
int i;
-@@ -1792,18 +1834,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1786,18 +1828,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.dropEquipment(); // CraftBukkit - from below
if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
this.dropFromLootTable(source, flag);
@@ -426,7 +426,7 @@ index b1867bb5c07b70b1cc8e5d3065a78b37c235a11e..029d5756f424dba57b4a974b09453c2f
// CraftBukkit end
this.gameEvent(GameEvent.ENTITY_DIE);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a787be4cc43a01c7a6d66fe507df2ab2b63019a0..3f8135387474c7fb2a7ceefff8dc213ea841a57d 100644
+index bd151c63a957b0540051aeb60be63c234c6d27bb..f113add7e0ff9301b8ca1feeef1cc4e2899f7c04 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2499,7 +2499,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0255-Add-LivingEntity-getTargetEntity.patch b/patches/server/0255-Add-LivingEntity-getTargetEntity.patch
index 47d0a5915c..e9a04e18f4 100644
--- a/patches/server/0255-Add-LivingEntity-getTargetEntity.patch
+++ b/patches/server/0255-Add-LivingEntity-getTargetEntity.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index a4118a6109154b7d9c21023ac6bb10e521fe368d..4f63352f9f96b104e3a01929d96ee33dcd01ab7d 100644
+index 59a1cdbfdde5bc167d46eeb86cf2f54f9d0d8404..7217cf55beb26823ca9c2eb97dc0af4ff456da08 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -121,6 +121,7 @@ import net.minecraft.world.level.storage.loot.LootTable;
@@ -16,7 +16,7 @@ index a4118a6109154b7d9c21023ac6bb10e521fe368d..4f63352f9f96b104e3a01929d96ee33d
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.scores.PlayerTeam;
-@@ -3992,6 +3993,38 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3986,6 +3987,38 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.level().clip(raytrace);
}
diff --git a/patches/server/0271-force-entity-dismount-during-teleportation.patch b/patches/server/0271-force-entity-dismount-during-teleportation.patch
index 15629559e6..046d16ac21 100644
--- a/patches/server/0271-force-entity-dismount-during-teleportation.patch
+++ b/patches/server/0271-force-entity-dismount-during-teleportation.patch
@@ -106,10 +106,10 @@ index 1f28f466aab3d829fe719878faee40f35320163b..ea8abc813809360b51cd67072d12efa0
if (this.valid) {
Bukkit.getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 4f63352f9f96b104e3a01929d96ee33dcd01ab7d..cc5cafa8388d96e18494d3c89f36d1654ea44f7d 100644
+index 7217cf55beb26823ca9c2eb97dc0af4ff456da08..7a9e6671ac38a3473d5562b0eb1de9eecc95c6c5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3575,9 +3575,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3569,9 +3569,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Override
public void stopRiding() {
diff --git a/patches/server/0301-Prevent-consuming-the-wrong-itemstack.patch b/patches/server/0301-Prevent-consuming-the-wrong-itemstack.patch
index 4e1c08cde3..bb9605ca50 100644
--- a/patches/server/0301-Prevent-consuming-the-wrong-itemstack.patch
+++ b/patches/server/0301-Prevent-consuming-the-wrong-itemstack.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent consuming the wrong itemstack
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index cc5cafa8388d96e18494d3c89f36d1654ea44f7d..58dacb52494972698b2d3740ed1cbe53e5264771 100644
+index 7a9e6671ac38a3473d5562b0eb1de9eecc95c6c5..73738ef71f2698a6116cd5371f80c26a97c0a77c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3811,9 +3811,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3805,9 +3805,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public void startUsingItem(InteractionHand hand) {
@@ -24,7 +24,7 @@ index cc5cafa8388d96e18494d3c89f36d1654ea44f7d..58dacb52494972698b2d3740ed1cbe53
this.useItem = itemstack;
this.useItemRemaining = itemstack.getUseDuration();
if (!this.level().isClientSide) {
-@@ -3893,6 +3898,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3887,6 +3892,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.releaseUsingItem();
} else {
if (!this.useItem.isEmpty() && this.isUsingItem()) {
@@ -32,7 +32,7 @@ index cc5cafa8388d96e18494d3c89f36d1654ea44f7d..58dacb52494972698b2d3740ed1cbe53
this.triggerItemUseEffects(this.useItem, 16);
// CraftBukkit start - fire PlayerItemConsumeEvent
ItemStack itemstack;
-@@ -3927,8 +3933,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3921,8 +3927,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.stopUsingItem();
diff --git a/patches/server/0322-Entity-Jump-API.patch b/patches/server/0322-Entity-Jump-API.patch
index a0abb6fad2..84c5b56ab1 100644
--- a/patches/server/0322-Entity-Jump-API.patch
+++ b/patches/server/0322-Entity-Jump-API.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Entity Jump API
public net.minecraft.world.entity.LivingEntity jumping
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 58dacb52494972698b2d3740ed1cbe53e5264771..575f6b542a7c5c9a3f96a0e4e78f75f7dc060cd7 100644
+index 73738ef71f2698a6116cd5371f80c26a97c0a77c..639357aa6335b96da3723973a754db763ecbc0f8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3391,8 +3391,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3385,8 +3385,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
} else if (this.isInLava() && (!this.onGround() || d3 > d4)) {
this.jumpInLiquid(FluidTags.LAVA);
} else if ((this.onGround() || flag && d3 <= d4) && this.noJumpDelay == 0) {
diff --git a/patches/server/0345-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0345-Don-t-run-entity-collision-code-if-not-needed.patch
index 98ca03dc3f..21bdee9ee5 100644
--- a/patches/server/0345-Don-t-run-entity-collision-code-if-not-needed.patch
+++ b/patches/server/0345-Don-t-run-entity-collision-code-if-not-needed.patch
@@ -12,10 +12,10 @@ The entity's current team collision rule causes them to NEVER collide.
Co-authored-by: Owen1212055 <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 575f6b542a7c5c9a3f96a0e4e78f75f7dc060cd7..8c95f08302439c7bd36ae9834ea991b29c435cfa 100644
+index 639357aa6335b96da3723973a754db763ecbc0f8..2b38a9d88b459674b1b8d667c4e02b93ad7290b4 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3502,10 +3502,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3496,10 +3496,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (this.level().isClientSide()) {
this.level().getEntities(EntityTypeTest.forClass(net.minecraft.world.entity.player.Player.class), this.getBoundingBox(), EntitySelector.pushableBy(this)).forEach(this::doPush);
} else {
diff --git a/patches/server/0350-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0350-Add-PlayerAttackEntityCooldownResetEvent.patch
index 10c16af7b7..1013713e9f 100644
--- a/patches/server/0350-Add-PlayerAttackEntityCooldownResetEvent.patch
+++ b/patches/server/0350-Add-PlayerAttackEntityCooldownResetEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 8c95f08302439c7bd36ae9834ea991b29c435cfa..166502bdeb4e20a122c023935f48047debc69bbd 100644
+index 2b38a9d88b459674b1b8d667c4e02b93ad7290b4..accb574f961114f225596a633b36a91e3009ed87 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2254,7 +2254,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2248,7 +2248,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
EntityDamageEvent event = CraftEventFactory.handleLivingEntityDamageEvent(this, damagesource, originalDamage, hardHatModifier, blockingModifier, armorModifier, resistanceModifier, magicModifier, absorptionModifier, hardHat, blocking, armor, resistance, magic, absorption);
if (damagesource.getEntity() instanceof net.minecraft.world.entity.player.Player) {
diff --git a/patches/server/0353-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0353-Fix-item-duplication-and-teleport-issues.patch
index d2efb522e5..8c46843ec9 100644
--- a/patches/server/0353-Fix-item-duplication-and-teleport-issues.patch
+++ b/patches/server/0353-Fix-item-duplication-and-teleport-issues.patch
@@ -80,10 +80,10 @@ index b93185f50bd87d070ef08b9c6a714a065dd714d8..996ca6762fe45ee1c2fa2392ed6a050b
public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index dfe327a17ec97d9317e451303721c7fea5268d2f..5280bae3ad8f9c137e58add8a8d056df81de9928 100644
+index bff839920bdac3e5d31fe411bda6ec6cbfc1303a..26affae253104122531ebac4358412c992db3a76 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1740,9 +1740,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1734,9 +1734,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
// Paper start
org.bukkit.event.entity.EntityDeathEvent deathEvent = this.dropAllDeathLoot(damageSource);
if (deathEvent == null || !deathEvent.isCancelled()) {
@@ -96,7 +96,7 @@ index dfe327a17ec97d9317e451303721c7fea5268d2f..5280bae3ad8f9c137e58add8a8d056df
// Paper start - clear equipment if event is not cancelled
if (this instanceof Mob) {
for (EquipmentSlot slot : this.clearedEquipmentSlots) {
-@@ -1843,8 +1843,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1837,8 +1837,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.dropCustomDeathLoot(source, i, flag);
this.clearEquipmentSlots = prev; // Paper
}
diff --git a/patches/server/0390-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0390-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
index 4cfe33fde0..f000d8d820 100644
--- a/patches/server/0390-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
+++ b/patches/server/0390-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't check chunk for portal on world gen entity add
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 4b64e3575302fb7238bd647af409b85d69f4798a..34e89959a1ec8d391709373e02e7da928ca69770 100644
+index a4d5e0ffbdade4e1b15d30de6e60feddda697c24..dd5a32360f4b49e9544009d3874da3f4af7b386a 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3614,7 +3614,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3608,7 +3608,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
Entity entity = this.getVehicle();
super.stopRiding(suppressCancellation); // Paper - Force entity dismount during teleportation
diff --git a/patches/server/0448-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0448-Climbing-should-not-bypass-cramming-gamerule.patch
index a581aee283..cc3c81d97c 100644
--- a/patches/server/0448-Climbing-should-not-bypass-cramming-gamerule.patch
+++ b/patches/server/0448-Climbing-should-not-bypass-cramming-gamerule.patch
@@ -44,10 +44,10 @@ index ee4495b67c46cf1282cdd6ad15b224b0b7b10bfb..e382a29b441b656f35bc24cb90f95cb4
} else if (entity.level().isClientSide && (!(entity1 instanceof Player) || !((Player) entity1).isLocalPlayer())) {
return false;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 34e89959a1ec8d391709373e02e7da928ca69770..784aea6bddd4f8c71733549d0d7b7643becde9de 100644
+index dd5a32360f4b49e9544009d3874da3f4af7b386a..e2cd1097756832a2bb60cdd73fdd05d1c64e38d0 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3530,7 +3530,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3524,7 +3524,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
return;
}
// Paper end - don't run getEntities if we're not going to use its result
@@ -56,7 +56,7 @@ index 34e89959a1ec8d391709373e02e7da928ca69770..784aea6bddd4f8c71733549d0d7b7643
if (!list.isEmpty()) {
// Paper - don't run getEntities if we're not going to use its result; moved up
-@@ -3720,9 +3720,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3714,9 +3714,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
return !this.isRemoved() && this.collides; // CraftBukkit
}
diff --git a/patches/server/0481-Add-RegistryAccess-for-managing-Registries.patch b/patches/server/0481-Add-RegistryAccess-for-managing-Registries.patch
index c06dec8fbe..6b41862cf4 100644
--- a/patches/server/0481-Add-RegistryAccess-for-managing-Registries.patch
+++ b/patches/server/0481-Add-RegistryAccess-for-managing-Registries.patch
@@ -706,10 +706,10 @@ index cf08819dd7ef6db807053a52aaf66a7fdea18ab6..69682d7be64a2163d574de939f5146f5
SimpleJsonResourceReloadListener.scanDirectory(resourceManager, type.directory(), GSON, map);
map.forEach(
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index 7c1304b42c6692cf66613fb2cf851b9df17f21e5..0b19ddf411933240f3cdc6b4e9ce3817c8d45af1 100644
+index 107734d32d8bb6384b96e11d99d36cb9a203750f..a644309edb612d97da290f86a1ef6fe597c7d85d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -111,57 +111,12 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -110,57 +110,12 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+ ", this can happen if a plugin creates its own registry entry with out properly registering it.");
}
@@ -725,37 +725,37 @@ index 7c1304b42c6692cf66613fb2cf851b9df17f21e5..0b19ddf411933240f3cdc6b4e9ce3817
- return new CraftRegistry<>(Enchantment.class, registryHolder.registryOrThrow(Registries.ENCHANTMENT), CraftEnchantment::new, FieldRename.ENCHANTMENT_RENAME);
- }
- if (bukkitClass == GameEvent.class) {
-- return new CraftRegistry<>(GameEvent.class, registryHolder.registryOrThrow(Registries.GAME_EVENT), CraftGameEvent::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(GameEvent.class, registryHolder.registryOrThrow(Registries.GAME_EVENT), CraftGameEvent::new, FieldRename.NONE);
- }
- if (bukkitClass == MusicInstrument.class) {
-- return new CraftRegistry<>(MusicInstrument.class, registryHolder.registryOrThrow(Registries.INSTRUMENT), CraftMusicInstrument::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(MusicInstrument.class, registryHolder.registryOrThrow(Registries.INSTRUMENT), CraftMusicInstrument::new, FieldRename.NONE);
- }
- if (bukkitClass == PotionEffectType.class) {
-- return new CraftRegistry<>(PotionEffectType.class, registryHolder.registryOrThrow(Registries.MOB_EFFECT), CraftPotionEffectType::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(PotionEffectType.class, registryHolder.registryOrThrow(Registries.MOB_EFFECT), CraftPotionEffectType::new, FieldRename.NONE);
- }
- if (bukkitClass == Structure.class) {
-- return new CraftRegistry<>(Structure.class, registryHolder.registryOrThrow(Registries.STRUCTURE), CraftStructure::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(Structure.class, registryHolder.registryOrThrow(Registries.STRUCTURE), CraftStructure::new, FieldRename.NONE);
- }
- if (bukkitClass == StructureType.class) {
-- return new CraftRegistry<>(StructureType.class, BuiltInRegistries.STRUCTURE_TYPE, CraftStructureType::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(StructureType.class, BuiltInRegistries.STRUCTURE_TYPE, CraftStructureType::new, FieldRename.NONE);
- }
- if (bukkitClass == TrimMaterial.class) {
-- return new CraftRegistry<>(TrimMaterial.class, registryHolder.registryOrThrow(Registries.TRIM_MATERIAL), CraftTrimMaterial::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(TrimMaterial.class, registryHolder.registryOrThrow(Registries.TRIM_MATERIAL), CraftTrimMaterial::new, FieldRename.NONE);
- }
- if (bukkitClass == TrimPattern.class) {
-- return new CraftRegistry<>(TrimPattern.class, registryHolder.registryOrThrow(Registries.TRIM_PATTERN), CraftTrimPattern::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(TrimPattern.class, registryHolder.registryOrThrow(Registries.TRIM_PATTERN), CraftTrimPattern::new, FieldRename.NONE);
- }
- if (bukkitClass == DamageType.class) {
-- return new CraftRegistry<>(DamageType.class, registryHolder.registryOrThrow(Registries.DAMAGE_TYPE), CraftDamageType::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(DamageType.class, registryHolder.registryOrThrow(Registries.DAMAGE_TYPE), CraftDamageType::new, FieldRename.NONE);
- }
- if (bukkitClass == Wolf.Variant.class) {
-- return new CraftRegistry<>(Wolf.Variant.class, registryHolder.registryOrThrow(Registries.WOLF_VARIANT), CraftWolf.CraftVariant::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(Wolf.Variant.class, registryHolder.registryOrThrow(Registries.WOLF_VARIANT), CraftWolf.CraftVariant::new, FieldRename.NONE);
- }
- if (bukkitClass == BlockType.class) {
-- return new CraftRegistry<>(BlockType.class, registryHolder.registryOrThrow(Registries.BLOCK), CraftBlockType::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(BlockType.class, registryHolder.registryOrThrow(Registries.BLOCK), CraftBlockType::new, FieldRename.NONE);
- }
- if (bukkitClass == ItemType.class) {
-- return new CraftRegistry<>(ItemType.class, registryHolder.registryOrThrow(Registries.ITEM), CraftItemType::new, CraftRegistry.NONE);
+- return new CraftRegistry<>(ItemType.class, registryHolder.registryOrThrow(Registries.ITEM), CraftItemType::new, FieldRename.NONE);
- }
-
- return null;
@@ -770,7 +770,7 @@ index 7c1304b42c6692cf66613fb2cf851b9df17f21e5..0b19ddf411933240f3cdc6b4e9ce3817
}
if (bukkit instanceof Registry.SimpleRegistry<?> simple) {
-@@ -187,23 +142,21 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -186,23 +141,21 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
return bukkit.get(namespacedKey);
}
@@ -822,10 +822,10 @@ index 756fb2613c2cca9ff937a770b1e35c499fcb97a1..c18515e56a8ac010897e3e2f65b2b285
@Deprecated
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
-index d3c9b5b6651be7474f91c99fd31140f9641e579b..43d9f70769be4be6c07b0a3d689e43e9f6805a19 100644
+index e8bb2d1d39ad572d62e9a526e5ac9bcb562018a6..f56560eabd9f3cf44b73f155d2a61d0e957d9787 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
-@@ -53,10 +53,13 @@ public class FieldRename {
+@@ -55,10 +55,13 @@ public class FieldRename {
return Enum.valueOf(enumClass, FieldRename.rename(apiVersion, enumClass.getName().replace('.', '/'), name));
}
diff --git a/patches/server/0495-Add-EntityMoveEvent.patch b/patches/server/0495-Add-EntityMoveEvent.patch
index 047207b6b3..84155124a4 100644
--- a/patches/server/0495-Add-EntityMoveEvent.patch
+++ b/patches/server/0495-Add-EntityMoveEvent.patch
@@ -29,10 +29,10 @@ index a9a39c99874001f1024f71bfc97130e8c9a507e7..19333b61bcb50f2171ac2c75d7f4ca4f
public LevelChunk getChunkIfLoaded(int x, int z) {
return this.chunkSource.getChunk(x, z, false);
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 784aea6bddd4f8c71733549d0d7b7643becde9de..cff15c86d693835eb85272efcdeeef778cbd6c8d 100644
+index e2cd1097756832a2bb60cdd73fdd05d1c64e38d0..ab220fcc5301e91e76671c5a11ddbbc9ac604bf9 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3467,6 +3467,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3461,6 +3461,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.pushEntities();
this.level().getProfiler().pop();
diff --git a/patches/server/0518-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0518-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
index 2f802d4685..2ffc95c97c 100644
--- a/patches/server/0518-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
+++ b/patches/server/0518-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
@@ -9,10 +9,10 @@ till their item is switched.
This patch clears the active item when the event is cancelled
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index cff15c86d693835eb85272efcdeeef778cbd6c8d..9c8e7dfef41f2559de77b79a93fbb3da827ec4fa 100644
+index ab220fcc5301e91e76671c5a11ddbbc9ac604bf9..5b03665a04a68dc49fb0100b58148ffa2d8f6000 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3961,6 +3961,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3955,6 +3955,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
diff --git a/patches/server/0564-Line-Of-Sight-Changes.patch b/patches/server/0564-Line-Of-Sight-Changes.patch
index 5fe8214f18..d319362af2 100644
--- a/patches/server/0564-Line-Of-Sight-Changes.patch
+++ b/patches/server/0564-Line-Of-Sight-Changes.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Line Of Sight Changes
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 9c8e7dfef41f2559de77b79a93fbb3da827ec4fa..6fbfa08afc40e51af1110b5c7357a0c6089ff9a5 100644
+index 5b03665a04a68dc49fb0100b58148ffa2d8f6000..f6febeb8f24b227520cda80efac7e43c023f1b10 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3710,7 +3710,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3704,7 +3704,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
Vec3 vec3d = new Vec3(this.getX(), this.getEyeY(), this.getZ());
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());
diff --git a/patches/server/0595-Add-missing-team-sidebar-display-slots.patch b/patches/server/0595-Add-missing-team-sidebar-display-slots.patch
index 3095722a10..6d1fae1d81 100644
--- a/patches/server/0595-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0595-Add-missing-team-sidebar-display-slots.patch
@@ -9,10 +9,10 @@ public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations toBukkitSlo
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations fromBukkitSlot(Lorg/bukkit/scoreboard/DisplaySlot;)Lnet/minecraft/world/scores/DisplaySlot;
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
-index 43d9f70769be4be6c07b0a3d689e43e9f6805a19..e809d2506d27b62d74f2f255a75a923aaf590d9c 100644
+index f56560eabd9f3cf44b73f155d2a61d0e957d9787..e62e8589e5693a2a6e30b0b40d24a36047df0595 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
-@@ -32,6 +32,7 @@ public class FieldRename {
+@@ -34,6 +34,7 @@ public class FieldRename {
}
return switch (owner) {
@@ -20,7 +20,7 @@ index 43d9f70769be4be6c07b0a3d689e43e9f6805a19..e809d2506d27b62d74f2f255a75a923a
case "org/bukkit/block/banner/PatternType" -> FieldRename.convertPatternTypeName(apiVersion, from);
case "org/bukkit/enchantments/Enchantment" -> FieldRename.convertEnchantmentName(apiVersion, from);
case "org/bukkit/block/Biome" -> FieldRename.convertBiomeName(apiVersion, from);
-@@ -61,6 +62,16 @@ public class FieldRename {
+@@ -63,6 +64,16 @@ public class FieldRename {
// }
// Paper end
diff --git a/patches/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch
index 0ad285e8c5..cfe01e4c50 100644
--- a/patches/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index e75da895d4e050a775d77966c5007487c2617fdc..cd0c949eb76814829e8554977358f8f818f33b20 100644
+index a44b48bbb736e7efb04061f302bbb61015284bcb..0fe6b9f4376d2b852f6f23e31848cd9236577bdf 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2744,16 +2744,28 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2738,16 +2738,28 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.hasEffect(MobEffects.JUMP) ? 0.1F * ((float) this.getEffect(MobEffects.JUMP).getAmplifier() + 1.0F) : 0.0F;
}
diff --git a/patches/server/0670-Freeze-Tick-Lock-API.patch b/patches/server/0670-Freeze-Tick-Lock-API.patch
index 2cab4cdb25..14da0abad5 100644
--- a/patches/server/0670-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0670-Freeze-Tick-Lock-API.patch
@@ -46,10 +46,10 @@ index 1632b2231e20901ce8498f3a0442e9ea54fcc068..6025b45d1c247941d83cd9c2d516c14a
} catch (Throwable throwable) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index cd0c949eb76814829e8554977358f8f818f33b20..81017788a4b08c9cb0fe7a1a9a99e13d903a55d8 100644
+index 0fe6b9f4376d2b852f6f23e31848cd9236577bdf..8aae4dacb85f67ea5f67e1143f2094851d40e85e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3454,7 +3454,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3448,7 +3448,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getProfiler().pop();
this.level().getProfiler().push("freezing");
diff --git a/patches/server/0715-Add-PlayerStopUsingItemEvent.patch b/patches/server/0715-Add-PlayerStopUsingItemEvent.patch
index 898abd4689..0820442cea 100644
--- a/patches/server/0715-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/server/0715-Add-PlayerStopUsingItemEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerStopUsingItemEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 81017788a4b08c9cb0fe7a1a9a99e13d903a55d8..4e25c8b48425777474fb22483f9e5e03a9d42178 100644
+index 8aae4dacb85f67ea5f67e1143f2094851d40e85e..e98ece3b5af0d1ffe6dddce4e342cd2858166ba3 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -4023,6 +4023,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4017,6 +4017,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
public void releaseUsingItem() {
if (!this.useItem.isEmpty()) {
diff --git a/patches/server/0751-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0751-Stop-large-look-changes-from-crashing-the-server.patch
index e9789cbb48..c3dc67de59 100644
--- a/patches/server/0751-Stop-large-look-changes-from-crashing-the-server.patch
+++ b/patches/server/0751-Stop-large-look-changes-from-crashing-the-server.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Stop large look changes from crashing the server
Co-authored-by: Jaren Knodel <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 4e25c8b48425777474fb22483f9e5e03a9d42178..0a0a3e4c03e86a11430811c4934742122391687e 100644
+index e98ece3b5af0d1ffe6dddce4e342cd2858166ba3..160347d036d6c8eaf48082c1155234e1a8df54c3 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3132,37 +3132,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3126,37 +3126,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getProfiler().pop();
this.level().getProfiler().push("rangeChecks");
diff --git a/patches/server/0786-check-global-player-list-where-appropriate.patch b/patches/server/0786-check-global-player-list-where-appropriate.patch
index a0fda4b200..1dc849b82f 100644
--- a/patches/server/0786-check-global-player-list-where-appropriate.patch
+++ b/patches/server/0786-check-global-player-list-where-appropriate.patch
@@ -24,10 +24,10 @@ index 9f7088691c3ab848c5095b6109d14eae947ace99..1e122d5b49aa7f6a626e781e53de53be
+ // Paper end - check global player list where appropriate
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 0a0a3e4c03e86a11430811c4934742122391687e..d736a53a6ea2a20a950096cd89df178864e644f4 100644
+index 160347d036d6c8eaf48082c1155234e1a8df54c3..947bccb93f2a5baa6236e1da1a7ec0b27c072a14 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3678,7 +3678,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3672,7 +3672,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public void onItemPickup(ItemEntity item) {
diff --git a/patches/server/0810-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0810-Correctly-shrink-items-during-EntityResurrectEvent.patch
index f604d274b1..f6e4b8d537 100644
--- a/patches/server/0810-Correctly-shrink-items-during-EntityResurrectEvent.patch
+++ b/patches/server/0810-Correctly-shrink-items-during-EntityResurrectEvent.patch
@@ -25,7 +25,7 @@ diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/ma
index 8a4977bf4d5b87ca30e048d749b6a878b1a17911..6c502f67234eee9c1446d490acde1dbe6f34119e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1644,7 +1644,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1638,7 +1638,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getCraftServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
diff --git a/patches/server/0820-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0820-Fix-advancement-triggers-for-entity-damage.patch
index 8785d0343c..db5a4dafcb 100644
--- a/patches/server/0820-Fix-advancement-triggers-for-entity-damage.patch
+++ b/patches/server/0820-Fix-advancement-triggers-for-entity-damage.patch
@@ -23,10 +23,10 @@ index 2ebbf7954dc5e0d6c9d53327d05b725eec310086..c5bd2e90ad74ba08910f65a2e07b6f76
return !this.getResponse();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 1a891485933c81e0b80c8a193db5eca9208cbb18..e69a71595abbbf963e91995e5bbc91d1e509748b 100644
+index ca5dd07e74d1ecf303091faeb4d7796bbc7a57c8..d314d5f9f66a86376d66cd607e3545c5d95fd12e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2365,7 +2365,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2359,7 +2359,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
// Duplicate triggers if blocking
if (event.getDamage(DamageModifier.BLOCKING) < 0) {
if (this instanceof ServerPlayer) {
@@ -35,7 +35,7 @@ index 1a891485933c81e0b80c8a193db5eca9208cbb18..e69a71595abbbf963e91995e5bbc91d1
f2 = (float) -event.getDamage(DamageModifier.BLOCKING);
if (f2 > 0.0F && f2 < 3.4028235E37F) {
((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F));
-@@ -2373,7 +2373,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2367,7 +2367,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (damagesource.getEntity() instanceof ServerPlayer) {
diff --git a/patches/server/0921-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0921-Broadcast-take-item-packets-with-collector-as-source.patch
index 0ade840984..417584532d 100644
--- a/patches/server/0921-Broadcast-take-item-packets-with-collector-as-source.patch
+++ b/patches/server/0921-Broadcast-take-item-packets-with-collector-as-source.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Broadcast take item packets with collector as source
This fixes players (which can't view the collector) seeing item pickups with themselves as the target.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index e69a71595abbbf963e91995e5bbc91d1e509748b..33c3c6ac66842735b06c078821930767386c7fd7 100644
+index d314d5f9f66a86376d66cd607e3545c5d95fd12e..844da8d55e43607239b54c7cb823cf26f2b04ed1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3704,7 +3704,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3698,7 +3698,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
public void take(Entity item, int count) {
if (!item.isRemoved() && !this.level().isClientSide && (item instanceof ItemEntity || item instanceof AbstractArrow || item instanceof ExperienceOrb)) {
diff --git a/patches/server/0935-Improve-Registry.patch b/patches/server/0935-Improve-Registry.patch
index 966048fae0..5aa02530f0 100644
--- a/patches/server/0935-Improve-Registry.patch
+++ b/patches/server/0935-Improve-Registry.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Improve Registry
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index 0b19ddf411933240f3cdc6b4e9ce3817c8d45af1..5c725faae98a126ee0e34eea53cfa484d2315709 100644
+index a644309edb612d97da290f86a1ef6fe597c7d85d..3adf18d5e736abff701a4866ee1f8403aeafca84 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -144,6 +144,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -143,6 +143,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
private final Class<?> bukkitClass; // Paper - relax preload class
private final Map<NamespacedKey, B> cache = new HashMap<>();
@@ -16,7 +16,7 @@ index 0b19ddf411933240f3cdc6b4e9ce3817c8d45af1..5c725faae98a126ee0e34eea53cfa484
private final net.minecraft.core.Registry<M> minecraftRegistry;
private final BiFunction<NamespacedKey, M, B> minecraftToBukkit;
private final BiFunction<NamespacedKey, ApiVersion, NamespacedKey> serializationUpdater; // Paper - rename to make it *clear* what it is *only* for
-@@ -192,6 +193,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -191,6 +192,7 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
}
this.cache.put(namespacedKey, bukkit);
@@ -24,7 +24,7 @@ index 0b19ddf411933240f3cdc6b4e9ce3817c8d45af1..5c725faae98a126ee0e34eea53cfa484
return bukkit;
}
-@@ -214,4 +216,11 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -213,4 +215,11 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
return this.minecraftToBukkit.apply(namespacedKey, minecraft);
}
diff --git a/patches/server/0936-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0936-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
index e7255bf7b2..ce326110a4 100644
--- a/patches/server/0936-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
+++ b/patches/server/0936-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
@@ -26,10 +26,10 @@ index a306b30af19277386a2f3e560b4902a8b5796f2a..54851f6cc0d5fddb32a9a1e84a4f5ae4
x = to.getX();
y = to.getY();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index c2a4c4607ccbbcabde66d7a92fe6c9010263225d..9b72443d98525b860e1ceae9f9c20b4ef7d8dd90 100644
+index cb07999629ba2d56602b3ae06ef06e350a8d1fb1..b7af45eac986097ef53fa90bb4edd67f8829f13c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -4179,7 +4179,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4173,7 +4173,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!(this instanceof ServerPlayer)) {
EntityTeleportEvent teleport = new EntityTeleportEvent(this.getBukkitEntity(), new Location(this.level().getWorld(), d3, d4, d5), new Location(this.level().getWorld(), d0, d6, d2));
this.level().getCraftServer().getPluginManager().callEvent(teleport);
diff --git a/patches/server/0942-Fixup-NamespacedKey-handling.patch b/patches/server/0942-Fixup-NamespacedKey-handling.patch
index 138131931b..3be8da25c8 100644
--- a/patches/server/0942-Fixup-NamespacedKey-handling.patch
+++ b/patches/server/0942-Fixup-NamespacedKey-handling.patch
@@ -52,10 +52,10 @@ index 209c6b64e79c29ea3bb84ddbe89a8bff66f81d0f..1f90f4b3f310b8cf5750c3a581be178f
public static NamespacedKey minecraftToBukkitKey(ResourceKey<LootTable> minecraft) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-index 5c725faae98a126ee0e34eea53cfa484d2315709..d41b502eb451ec11dade2b987aee621511312ac6 100644
+index 3adf18d5e736abff701a4866ee1f8403aeafca84..4a5778d1751b774c825bbce0e870e2998278afe3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
-@@ -111,6 +111,16 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+@@ -110,6 +110,16 @@ public class CraftRegistry<B extends Keyed, M> implements Registry<B> {
+ ", this can happen if a plugin creates its own registry entry with out properly registering it.");
}
diff --git a/patches/server/0980-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0980-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
index 1563b50f08..0eb75c8acd 100644
--- a/patches/server/0980-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
+++ b/patches/server/0980-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
@@ -26,10 +26,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6c2e9654f853cb821f77e67dacf225ddb7f22271..5bc16477729412e6252384e0ea58699ee08f7313 100644
+index 958b25e62b040943c346114ef19d56104ae0a844..56351d5c2b4ea2c1b335253153cedafdf058d9ae 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3726,7 +3726,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3720,7 +3720,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());
// Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists
diff --git a/patches/server/1000-Improve-boat-collision-performance.patch b/patches/server/1000-Improve-boat-collision-performance.patch
index aeb4085233..ee5adde385 100644
--- a/patches/server/1000-Improve-boat-collision-performance.patch
+++ b/patches/server/1000-Improve-boat-collision-performance.patch
@@ -17,7 +17,7 @@ index 2cd0a4dc4f0baa08bd7f5a053303bb63733f0bab..0bd367235f80c1f0d319a6aa5130d82a
};
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 5bc16477729412e6252384e0ea58699ee08f7313..5161fdef2f0ebeb1943f30df5452875f09a45f32 100644
+index 56351d5c2b4ea2c1b335253153cedafdf058d9ae..9601d3def5e4ac0650bae42a1da2a64ab1e5aef7 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1459,7 +1459,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -29,7 +29,7 @@ index 5bc16477729412e6252384e0ea58699ee08f7313..5161fdef2f0ebeb1943f30df5452875f
LivingEntity entityliving = (LivingEntity) entity;
this.blockUsingShield(entityliving);
-@@ -1559,11 +1559,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1553,11 +1553,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (entity1 != null && !source.is(DamageTypeTags.NO_KNOCKBACK)) {
@@ -44,7 +44,7 @@ index 5bc16477729412e6252384e0ea58699ee08f7313..5161fdef2f0ebeb1943f30df5452875f
d0 = (Math.random() - Math.random()) * 0.01D;
}
-@@ -2330,7 +2331,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2324,7 +2325,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.hurtCurrentlyUsedShield((float) -event.getDamage(DamageModifier.BLOCKING));
Entity entity = damagesource.getDirectEntity();
diff --git a/patches/server/1014-Properly-resend-entities.patch b/patches/server/1014-Properly-resend-entities.patch
index 449d9840cb..8bba132319 100644
--- a/patches/server/1014-Properly-resend-entities.patch
+++ b/patches/server/1014-Properly-resend-entities.patch
@@ -166,10 +166,10 @@ index 9153c15cd2b8a3811d5f1c16ac2221aea7c3aacd..7ef9f67d27cc240191dd5d07e8dcf5fb
public boolean equals(Object object) {
return object instanceof Entity ? ((Entity) object).id == this.id : false;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 5161fdef2f0ebeb1943f30df5452875f09a45f32..8ffbc96af09288d6a81ff597a205df0f2d59bf43 100644
+index 9601d3def5e4ac0650bae42a1da2a64ab1e5aef7..81a8296e25275639718e0839888ac6a900b54bf3 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3824,6 +3824,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3818,6 +3818,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND;
}
diff --git a/patches/server/1019-Lag-compensation-ticks.patch b/patches/server/1019-Lag-compensation-ticks.patch
index b93ebb322a..fdc2829e61 100644
--- a/patches/server/1019-Lag-compensation-ticks.patch
+++ b/patches/server/1019-Lag-compensation-ticks.patch
@@ -63,10 +63,10 @@ index c7efde4e2b87b14e768429748b01c1bce659682b..1047027610624c9ba4bb5afd5d7f0714
if (this.hasDelayedDestroy) {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 8ffbc96af09288d6a81ff597a205df0f2d59bf43..f26f05f8ab0d60c3a3668db63a01cc16a947a4b2 100644
+index 81a8296e25275639718e0839888ac6a900b54bf3..4928dc3c879ddad0fe8c377b1b26e543a1c40cca 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3829,6 +3829,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3823,6 +3823,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.resendPossiblyDesyncedDataValues(java.util.List.of(DATA_LIVING_ENTITY_FLAGS), serverPlayer);
}
// Paper end - Properly cancel usable items
@@ -77,7 +77,7 @@ index 8ffbc96af09288d6a81ff597a205df0f2d59bf43..f26f05f8ab0d60c3a3668db63a01cc16
private void updatingUsingItem() {
if (this.isUsingItem()) {
if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) {
-@@ -3847,7 +3851,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3841,7 +3845,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.triggerItemUseEffects(stack, 5);
}
@@ -91,7 +91,7 @@ index 8ffbc96af09288d6a81ff597a205df0f2d59bf43..f26f05f8ab0d60c3a3668db63a01cc16
this.completeUsingItem();
}
-@@ -3893,7 +3902,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3887,7 +3896,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack
this.useItem = itemstack;
@@ -103,7 +103,7 @@ index 8ffbc96af09288d6a81ff597a205df0f2d59bf43..f26f05f8ab0d60c3a3668db63a01cc16
if (!this.level().isClientSide) {
this.setLivingEntityFlag(1, true);
this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND);
-@@ -3918,7 +3930,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3912,7 +3924,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
} else if (!this.isUsingItem() && !this.useItem.isEmpty()) {
this.useItem = ItemStack.EMPTY;
@@ -115,7 +115,7 @@ index 8ffbc96af09288d6a81ff597a205df0f2d59bf43..f26f05f8ab0d60c3a3668db63a01cc16
}
}
-@@ -4053,7 +4068,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4047,7 +4062,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.useItem = ItemStack.EMPTY;
diff --git a/patches/server/1028-Fix-shield-disable-inconsistency.patch b/patches/server/1028-Fix-shield-disable-inconsistency.patch
index 50bebb3f59..7d1573c1b0 100644
--- a/patches/server/1028-Fix-shield-disable-inconsistency.patch
+++ b/patches/server/1028-Fix-shield-disable-inconsistency.patch
@@ -8,10 +8,10 @@ it will not disable the shield if the attacker is holding
an axe item.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f26f05f8ab0d60c3a3668db63a01cc16a947a4b2..3276ea59999e76c2a2b0c82b96e0e91865e96a98 100644
+index 4928dc3c879ddad0fe8c377b1b26e543a1c40cca..6118de380a95b0c927a239ac3e288780f114289e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2331,7 +2331,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2325,7 +2325,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.hurtCurrentlyUsedShield((float) -event.getDamage(DamageModifier.BLOCKING));
Entity entity = damagesource.getDirectEntity();
diff --git a/patches/server/1035-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch b/patches/server/1035-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
index 35e3cc3234..dbc57ee0c9 100644
--- a/patches/server/1035-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
+++ b/patches/server/1035-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Revert to vanilla handling of LivingEntity#actuallyHurt
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 3276ea59999e76c2a2b0c82b96e0e91865e96a98..6b447cdf5b14deb26e0454f9f731724c89f2d498 100644
+index 6118de380a95b0c927a239ac3e288780f114289e..d0b6ade676d94e768c92432dc6cee9f200acf5f2 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2216,7 +2216,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2210,7 +2210,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
// CraftBukkit start
@@ -17,11 +17,11 @@ index 3276ea59999e76c2a2b0c82b96e0e91865e96a98..6b447cdf5b14deb26e0454f9f731724c
if (!this.isInvulnerableTo(damagesource)) {
final boolean human = this instanceof net.minecraft.world.entity.player.Player;
float originalDamage = f;
-@@ -2388,12 +2388,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2382,12 +2382,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
return true;
} else {
-- return originalDamage >= 0;
+- return originalDamage > 0;
+ return true; // Paper - return false ONLY if event was cancelled
}
// CraftBukkit end
diff --git a/patches/server/1047-Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/1047-Prevent-sending-oversized-item-data-in-equipment-and.patch
index 97cb93893e..ed2e9d9dd8 100644
--- a/patches/server/1047-Prevent-sending-oversized-item-data-in-equipment-and.patch
+++ b/patches/server/1047-Prevent-sending-oversized-item-data-in-equipment-and.patch
@@ -214,10 +214,10 @@ index b9b3277c8ed94e0cd30b20b9c00a33eaad48e5ac..c450447585af4c8cdc87abe871c229ff
}
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6b447cdf5b14deb26e0454f9f731724c89f2d498..ce01fe82dc1eaaf06ca317ddbc62b7d1b87a48b2 100644
+index d0b6ade676d94e768c92432dc6cee9f200acf5f2..21e61bb75ac7ce468bc757633ce678b21bcb9deb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3308,7 +3308,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3302,7 +3302,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
});
diff --git a/work/Bukkit b/work/Bukkit
-Subproject fa99e752ae28e0a294b2def5955645ad74a8a2d
+Subproject def44cbfddacebb1c5c729446264380a0097b2c
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 4af0f22e8a2ce40afd554a3d60da4fe093c7deb
+Subproject 87d0a3368a66c112f5b328ef49fe2e333671dca
diff --git a/work/Spigot b/work/Spigot
-Subproject e2c1eee02c2e00f71d78c56d6439dafc3af7dfa
+Subproject 342f4939f5e80bdeaba2c5303efc80261b8658c