aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-04-27 18:00:01 -0700
committerJake Potrebic <[email protected]>2024-04-27 18:00:01 -0700
commit3e90a1918392a435cbfe40eea6f077076faf275a (patch)
tree38708c74d12698274d2632efd230ab024e4d77de
parentd964c15e15bff629b4999fbf3df09c5b1e6e2049 (diff)
downloadPaper-3e90a1918392a435cbfe40eea6f077076faf275a.tar.gz
Paper-3e90a1918392a435cbfe40eea6f077076faf275a.zip
Updated Upstream (Bukkit/CraftBukkit)
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: 304e83eb PR-1002: Improve documentation and implementation of getMaxStackSize e8215ea2 SPIGOT-7638: Library loader does not seem to resolve every dependency 79c595c0 SPIGOT-7637: Bad logic in checking nullability of AttributeModifier slots CraftBukkit Changes: 91b1fc3f1 SPIGOT-7644: Fix ItemMeta#getAsString 4e77a81e1 SPIGOT-7615: PlayerLeashEntityEvent cancelled eats lead 996f660f3 Do not remove leash knot if leasing to an existing leash knot gets cancelled f70367d42 SPIGOT-7643: Fix inverted leash event cancelled usage and remove leash knot if no entity gets leashed 7ddb48294 SPIGOT-7640: Abnormal jumping height of wind charge 080c8711e SPIGOT-7639: Incoming plugin channels not working ad549847e Open a direct connection instead of pinging mojang server to check if it is reachable 38e2926c5 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime
-rw-r--r--gradle.properties2
-rw-r--r--paper-api-generator/build.gradle.kts1
-rw-r--r--patches/api/0006-Adventure.patch4
-rw-r--r--patches/api/0009-Paper-Plugins.patch6
-rw-r--r--patches/api/0066-Add-getI18NDisplayName-API.patch4
-rw-r--r--patches/api/0067-ensureServerConversions-API.patch6
-rw-r--r--patches/api/0108-ItemStack-getMaxItemUseDuration.patch4
-rw-r--r--patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch4
-rw-r--r--patches/api/0152-Material-API-additions.patch6
-rw-r--r--patches/api/0172-Fix-Spigot-annotation-mistakes.patch12
-rw-r--r--patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch4
-rw-r--r--patches/api/0209-Add-methods-to-get-translation-keys.patch14
-rw-r--r--patches/api/0256-Cache-the-result-of-Material-isBlock.patch8
-rw-r--r--patches/api/0262-Improve-Item-Rarity-API.patch8
-rw-r--r--patches/api/0280-ItemStack-repair-check-API.patch4
-rw-r--r--patches/api/0283-ItemStack-editMeta.patch4
-rw-r--r--patches/api/0285-Attributes-API-for-item-defaults.patch4
-rw-r--r--patches/api/0317-Add-isCollidable-methods-to-various-places.patch4
-rw-r--r--patches/api/0349-Add-enchantWithLevels-API.patch4
-rw-r--r--patches/api/0376-Add-EquipmentSlot-convenience-methods.patch6
-rw-r--r--patches/api/0385-ItemStack-damage-API.patch4
-rw-r--r--patches/api/0432-Allow-proper-checking-of-empty-item-stacks.patch4
-rw-r--r--patches/api/0440-Remove-unnecessary-durability-check-in-ItemStack-isS.patch4
-rw-r--r--patches/api/0442-add-missing-Experimental-annotations.patch30
-rw-r--r--patches/api/0456-ItemStack-Tooltip-API.patch4
-rw-r--r--patches/api/0466-Deprecate-ItemStack-setType.patch2
-rw-r--r--patches/api/0472-Fix-ItemFlags.patch4
-rw-r--r--patches/server/0009-MC-Utils.patch10
-rw-r--r--patches/server/0010-Adventure.patch20
-rw-r--r--patches/server/0023-Timings-v2.patch20
-rw-r--r--patches/server/0027-Support-components-in-ItemMeta.patch4
-rw-r--r--patches/server/0031-Allow-nerfed-mobs-to-jump.patch2
-rw-r--r--patches/server/0032-Add-configurable-entity-despawn-distances.patch2
-rw-r--r--patches/server/0037-Player-affects-spawning-API.patch2
-rw-r--r--patches/server/0044-Configurable-end-credits.patch4
-rw-r--r--patches/server/0045-Fix-lag-from-explosions-processing-dead-entities.patch2
-rw-r--r--patches/server/0046-Optimize-explosions.patch4
-rw-r--r--patches/server/0047-Disable-explosion-knockback.patch4
-rw-r--r--patches/server/0051-Implement-PlayerLocaleChangeEvent.patch8
-rw-r--r--patches/server/0053-Configurable-container-update-tick-rate.patch6
-rw-r--r--patches/server/0058-Improve-Player-chat-API-handling.patch2
-rw-r--r--patches/server/0067-Disable-Scoreboards-for-non-players-by-default.patch2
-rw-r--r--patches/server/0074-Handle-Item-Meta-Inconsistencies.patch6
-rw-r--r--patches/server/0077-Custom-replacement-for-eaten-items.patch8
-rw-r--r--patches/server/0078-handle-NaN-health-absorb-values-and-repair-bad-data.patch4
-rw-r--r--patches/server/0087-Add-PlayerUseUnknownEntityEvent.patch2
-rw-r--r--patches/server/0095-EntityRegainHealthEvent-isFastRegen-API.patch2
-rw-r--r--patches/server/0110-Configurable-packet-in-spam-threshold.patch2
-rw-r--r--patches/server/0111-Configurable-flying-kick-messages.patch2
-rw-r--r--patches/server/0124-Properly-fix-item-duplication-bug.patch4
-rw-r--r--patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch4
-rw-r--r--patches/server/0130-Cap-Entity-Collisions.patch4
-rw-r--r--patches/server/0133-Add-option-to-make-parrots-stay-on-shoulders-despite.patch2
-rw-r--r--patches/server/0136-Item-canEntityPickup.patch2
-rw-r--r--patches/server/0155-Add-PlayerJumpEvent.patch2
-rw-r--r--patches/server/0160-Add-PlayerArmorChangeEvent.patch4
-rw-r--r--patches/server/0165-AsyncTabCompleteEvent.patch2
-rw-r--r--patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch4
-rw-r--r--patches/server/0180-Player.setPlayerProfile-API.patch2
-rw-r--r--patches/server/0203-Make-shield-blocking-delay-configurable.patch4
-rw-r--r--patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch20
-rw-r--r--patches/server/0212-InventoryCloseEvent-Reason-API.patch12
-rw-r--r--patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch2
-rw-r--r--patches/server/0227-Break-up-and-make-tab-spam-limits-configurable.patch2
-rw-r--r--patches/server/0245-Add-ray-tracing-methods-to-LivingEntity.patch4
-rw-r--r--patches/server/0247-Improve-death-events.patch26
-rw-r--r--patches/server/0257-Add-LivingEntity-getTargetEntity.patch4
-rw-r--r--patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch4
-rw-r--r--patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch2
-rw-r--r--patches/server/0265-Reset-players-airTicks-on-respawn.patch4
-rw-r--r--patches/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch2
-rw-r--r--patches/server/0273-force-entity-dismount-during-teleportation.patch4
-rw-r--r--patches/server/0275-Book-Size-Limits.patch2
-rw-r--r--patches/server/0277-Replace-OfflinePlayer-getLastPlayed.patch4
-rw-r--r--patches/server/0278-Workaround-for-vehicle-tracking-issue-on-disconnect.patch4
-rw-r--r--patches/server/0282-Brigadier-Mojang-API.patch2
-rw-r--r--patches/server/0284-Limit-Client-Sign-length-more.patch2
-rw-r--r--patches/server/0291-PlayerDeathEvent-getItemsToKeep.patch6
-rw-r--r--patches/server/0303-Prevent-consuming-the-wrong-itemstack.patch8
-rw-r--r--patches/server/0309-PlayerDeathEvent-shouldDropExperience.patch4
-rw-r--r--patches/server/0314-Optimize-call-to-getFluid-for-explosions.patch2
-rw-r--r--patches/server/0324-Entity-Jump-API.patch4
-rw-r--r--patches/server/0336-Pillager-patrol-spawn-settings-and-per-player-option.patch4
-rw-r--r--patches/server/0340-Don-t-tick-dead-players.patch4
-rw-r--r--patches/server/0342-Don-t-move-existing-players-to-world-spawn.patch6
-rw-r--r--patches/server/0346-Prevent-opening-inventories-when-frozen.patch6
-rw-r--r--patches/server/0347-Don-t-run-entity-collision-code-if-not-needed.patch4
-rw-r--r--patches/server/0348-Implement-Player-Client-Options-API.patch8
-rw-r--r--patches/server/0350-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch4
-rw-r--r--patches/server/0352-Add-PlayerAttackEntityCooldownResetEvent.patch4
-rw-r--r--patches/server/0355-Fix-item-duplication-and-teleport-issues.patch6
-rw-r--r--patches/server/0357-Validate-PickItem-Packet-and-kick-for-invalid.patch2
-rw-r--r--patches/server/0361-Prevent-teleporting-dead-entities.patch2
-rw-r--r--patches/server/0378-Prevent-position-desync-causing-tp-exploit.patch2
-rw-r--r--patches/server/0380-Add-PlayerRecipeBookClickEvent.patch2
-rw-r--r--patches/server/0382-Add-permission-for-command-blocks.patch2
-rw-r--r--patches/server/0384-Fix-Per-World-Difficulty-Remembering-Difficulty.patch6
-rw-r--r--patches/server/0389-Convert-legacy-attributes-in-Item-Meta.patch2
-rw-r--r--patches/server/0390-Do-not-accept-invalid-client-settings.patch2
-rw-r--r--patches/server/0394-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch4
-rw-r--r--patches/server/0404-Brand-support.patch4
-rw-r--r--patches/server/0410-Prevent-headless-pistons-from-being-created.patch2
-rw-r--r--patches/server/0420-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch2
-rw-r--r--patches/server/0430-Fix-for-large-move-vectors-crashing-server.patch2
-rw-r--r--patches/server/0443-Add-API-for-quit-reason.patch4
-rw-r--r--patches/server/0452-Climbing-should-not-bypass-cramming-gamerule.patch6
-rw-r--r--patches/server/0455-Limit-recipe-packets.patch2
-rw-r--r--patches/server/0470-Fix-interact-event-not-being-called-sometimes.patch2
-rw-r--r--patches/server/0496-Expand-EntityUnleashEvent.patch12
-rw-r--r--patches/server/0497-Reset-shield-blocking-on-dimension-change.patch4
-rw-r--r--patches/server/0499-Add-EntityMoveEvent.patch4
-rw-r--r--patches/server/0514-Allow-using-signs-inside-spawn-protection.patch2
-rw-r--r--patches/server/0519-Don-t-ignore-result-of-PlayerEditBookEvent.patch2
-rw-r--r--patches/server/0522-Fix-PlayerItemConsumeEvent-cancelling-properly.patch4
-rw-r--r--patches/server/0529-fix-PlayerItemHeldEvent-firing-twice.patch2
-rw-r--r--patches/server/0534-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch2
-rw-r--r--patches/server/0546-Expand-PlayerGameModeChangeEvent.patch10
-rw-r--r--patches/server/0549-Move-range-check-for-block-placing-up.patch2
-rw-r--r--patches/server/0552-Add-Unix-domain-socket-support.patch2
-rw-r--r--patches/server/0558-Add-PlayerKickEvent-causes.patch2
-rw-r--r--patches/server/0568-Line-Of-Sight-Changes.patch4
-rw-r--r--patches/server/0572-Fix-PlayerDropItemEvent-using-wrong-item.patch4
-rw-r--r--patches/server/0574-Ensure-disconnect-for-book-edit-is-called-on-main.patch2
-rw-r--r--patches/server/0578-Add-PlayerArmSwingEvent.patch2
-rw-r--r--patches/server/0579-Fix-kick-event-leave-message-not-being-sent.patch6
-rw-r--r--patches/server/0580-Don-t-apply-cramming-damage-to-players.patch4
-rw-r--r--patches/server/0585-Prevent-AFK-kick-while-watching-end-credits.patch2
-rw-r--r--patches/server/0587-Add-PlayerSetSpawnEvent.patch8
-rw-r--r--patches/server/0613-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch4
-rw-r--r--patches/server/0615-Improve-and-expand-AsyncCatcher.patch4
-rw-r--r--patches/server/0629-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch2
-rw-r--r--patches/server/0632-Ensure-valid-vehicle-status.patch4
-rw-r--r--patches/server/0645-Prevent-excessive-velocity-through-repeated-crits.patch4
-rw-r--r--patches/server/0674-Freeze-Tick-Lock-API.patch4
-rw-r--r--patches/server/0697-Don-t-allow-vehicle-movement-from-players-while-tele.patch2
-rw-r--r--patches/server/0705-fix-player-loottables-running-when-mob-loot-gamerule.patch4
-rw-r--r--patches/server/0710-Prevent-tile-entity-copies-loading-chunks.patch2
-rw-r--r--patches/server/0719-Add-PlayerStopUsingItemEvent.patch4
-rw-r--r--patches/server/0731-Add-option-for-strict-advancement-dimension-checks.patch4
-rw-r--r--patches/server/0741-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch2
-rw-r--r--patches/server/0742-More-Teleport-API.patch2
-rw-r--r--patches/server/0745-Send-block-entities-after-destroy-prediction.patch2
-rw-r--r--patches/server/0755-Stop-large-look-changes-from-crashing-the-server.patch4
-rw-r--r--patches/server/0767-Fix-a-bunch-of-vanilla-bugs.patch4
-rw-r--r--patches/server/0772-Add-PlayerInventorySlotChangeEvent.patch4
-rw-r--r--patches/server/0790-check-global-player-list-where-appropriate.patch4
-rw-r--r--patches/server/0793-Friction-API.patch2
-rw-r--r--patches/server/0796-Sync-offhand-slot-in-menus.patch4
-rw-r--r--patches/server/0805-Improve-logging-and-errors.patch2
-rw-r--r--patches/server/0808-Add-missing-SpigotConfig-logCommands-check.patch2
-rw-r--r--patches/server/0811-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch4
-rw-r--r--patches/server/0814-Use-single-player-info-update-packet-on-join.patch2
-rw-r--r--patches/server/0815-Correctly-shrink-items-during-EntityResurrectEvent.patch4
-rw-r--r--patches/server/0825-Fix-advancement-triggers-for-entity-damage.patch8
-rw-r--r--patches/server/0831-Treat-sequence-violations-like-they-should-be.patch2
-rw-r--r--patches/server/0833-Prevent-causing-expired-keys-from-impacting-new-join.patch2
-rw-r--r--patches/server/0869-Implement-PlayerFailMoveEvent.patch4
-rw-r--r--patches/server/0885-Don-t-tab-complete-namespaced-commands-if-send-names.patch2
-rw-r--r--patches/server/0895-Add-PlayerPickItemEvent.patch2
-rw-r--r--patches/server/0900-Fix-inventory-desync.patch6
-rw-r--r--patches/server/0901-Add-titleOverride-to-InventoryOpenEvent.patch6
-rw-r--r--patches/server/0905-Add-slot-sanity-checks-in-container-clicks.patch2
-rw-r--r--patches/server/0908-Fix-silent-equipment-change-for-mobs.patch2
-rw-r--r--patches/server/0926-Broadcast-take-item-packets-with-collector-as-source.patch4
-rw-r--r--patches/server/0934-Don-t-fire-sync-events-during-worldgen.patch2
-rw-r--r--patches/server/0936-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch2
-rw-r--r--patches/server/0937-Restore-vanilla-entity-drops-behavior.patch8
-rw-r--r--patches/server/0941-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch4
-rw-r--r--patches/server/0945-Validate-ResourceLocation-in-NBT-reading.patch4
-rw-r--r--patches/server/0962-Add-CartographyItemEvent.patch2
-rw-r--r--patches/server/0969-Fix-DamageSource-API.patch2
-rw-r--r--patches/server/0972-Improve-tag-parser-handling.patch2
-rw-r--r--patches/server/0981-Rewrite-chunk-system.patch4
-rw-r--r--patches/server/0982-incremental-chunk-and-player-saving.patch4
-rw-r--r--patches/server/0985-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch4
-rw-r--r--patches/server/0990-Entity-Activation-Range-2.0.patch2
-rw-r--r--patches/server/0991-Optional-per-player-mob-spawns.patch4
-rw-r--r--patches/server/0993-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch4
-rw-r--r--patches/server/0999-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch2
-rw-r--r--patches/server/1005-Improve-boat-collision-performance.patch6
-rw-r--r--patches/server/1013-Collision-optimisations.patch6
-rw-r--r--patches/server/1014-Optimise-collision-checking-in-player-move-packet-ha.patch2
-rw-r--r--patches/server/1019-Properly-resend-entities.patch6
-rw-r--r--patches/server/1022-Actually-optimise-explosions.patch6
-rw-r--r--patches/server/1023-Optimise-chunk-tick-iteration.patch4
-rw-r--r--patches/server/1024-Lag-compensation-ticks.patch12
-rw-r--r--patches/server/1031-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch2
-rw-r--r--patches/server/1032-handle-converting-old-serialized-names-to-new-names.patch2
-rw-r--r--patches/server/1034-Deep-clone-nbt-tags-in-PDC.patch4
-rw-r--r--patches/server/1036-Fix-shield-disable-inconsistency.patch4
-rw-r--r--patches/server/1038-Don-t-lose-removed-data-components-in-ItemMeta.patch2
-rw-r--r--patches/server/1041-Fix-ItemFlags.patch14
-rw-r--r--patches/server/1043-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch15
-rw-r--r--patches/server/1044-improve-checking-handled-tags-in-itemmeta.patch4
m---------work/Bukkit0
m---------work/CraftBukkit0
196 files changed, 433 insertions, 437 deletions
diff --git a/gradle.properties b/gradle.properties
index 06573bcbf9..744935f5ac 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -3,7 +3,7 @@ version=1.20.5-R0.1-SNAPSHOT
mcVersion=1.20.5
# Set to true while updating Minecraft version
-updatingMinecraft=true
+updatingMinecraft=false
org.gradle.caching=true
org.gradle.parallel=true
diff --git a/paper-api-generator/build.gradle.kts b/paper-api-generator/build.gradle.kts
index c3deae7adb..05d16d0b95 100644
--- a/paper-api-generator/build.gradle.kts
+++ b/paper-api-generator/build.gradle.kts
@@ -21,6 +21,7 @@ dependencies {
}
tasks.register<JavaExec>("generate") {
+ dependsOn(tasks.check)
mainClass.set("io.papermc.generator.Main")
classpath(sourceSets.main.map { it.runtimeClasspath })
args(projectDir.toPath().resolve("generated").toString())
diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch
index 8219ab4a68..e991609a01 100644
--- a/patches/api/0006-Adventure.patch
+++ b/patches/api/0006-Adventure.patch
@@ -4323,7 +4323,7 @@ index 60ebfab9596f26cfd2d75a43f3f88f2dd56575f3..dbaf54018a7dd392378869a5a302a880
+ // Paper end - Adventure
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index cf1733bc76d1e29ad0f533f6e49818f83e8e3358..f2a6f62f0344684668febc0999b81748c6737826 100644
+index 257b5db1aa58d57cfbf5bd1f17f9df6c509bef90..53cc84d1ef6e281e8637ec7406236e1185ad7d82 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -23,7 +23,7 @@ import org.jetbrains.annotations.Nullable;
@@ -4335,7 +4335,7 @@ index cf1733bc76d1e29ad0f533f6e49818f83e8e3358..f2a6f62f0344684668febc0999b81748
private Material type = Material.AIR;
private int amount = 0;
private MaterialData data = null;
-@@ -614,4 +614,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -617,4 +617,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public String getTranslationKey() {
return Bukkit.getUnsafe().getTranslationKey(this);
}
diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch
index 7344dee5ae..41dcaf4cf1 100644
--- a/patches/api/0009-Paper-Plugins.patch
+++ b/patches/api/0009-Paper-Plugins.patch
@@ -2062,7 +2062,7 @@ index 047c0304fd617cec990f80815b43916c6ef5a94c..ab04ffe4cd05315a2ee0f64c553b4c67
throw ex;
} catch (Throwable ex) {
diff --git a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
-index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..653135352c104a6ddeb74a1b6d4916c6952d6271 100644
+index 160f8c348271154c672adf936b358ffeb3b63e69..f4d655a158410039305ac68cebe0d79000f73df8 100644
--- a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
@@ -36,7 +36,10 @@ import org.eclipse.aether.transport.http.HttpTransporterFactory;
@@ -2085,7 +2085,7 @@ index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..653135352c104a6ddeb74a1b6d4916c6
session.setChecksumPolicy( RepositoryPolicy.CHECKSUM_POLICY_FAIL );
session.setLocalRepositoryManager( repository.newLocalRepositoryManager( session, new LocalRepository( "libraries" ) ) );
session.setTransferListener( new AbstractTransferListener()
-@@ -79,7 +83,7 @@ class LibraryLoader
+@@ -84,7 +88,7 @@ class LibraryLoader
}
logger.log( Level.INFO, "[{0}] Loading {1} libraries... please wait", new Object[]
{
@@ -2094,7 +2094,7 @@ index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..653135352c104a6ddeb74a1b6d4916c6
} );
List<Dependency> dependencies = new ArrayList<>();
-@@ -117,7 +121,7 @@ class LibraryLoader
+@@ -122,7 +126,7 @@ class LibraryLoader
jarFiles.add( url );
logger.log( Level.INFO, "[{0}] Loaded library {1}", new Object[]
{
diff --git a/patches/api/0066-Add-getI18NDisplayName-API.patch b/patches/api/0066-Add-getI18NDisplayName-API.patch
index f83aa42ec2..fcb5e4ceb1 100644
--- a/patches/api/0066-Add-getI18NDisplayName-API.patch
+++ b/patches/api/0066-Add-getI18NDisplayName-API.patch
@@ -33,10 +33,10 @@ index dbaf54018a7dd392378869a5a302a880c7a56338..213e3f3de731d85f788a4bfa8d912e1b
+ // Paper end - add getI18NDisplayName
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index f2a6f62f0344684668febc0999b81748c6737826..d1bce73317fa1dfd35c8b3f94415ba8721c758d6 100644
+index 53cc84d1ef6e281e8637ec7406236e1185ad7d82..22bb39a8f124d55b1dce1bcb981a94d763959e59 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -630,5 +630,20 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -633,5 +633,20 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public net.kyori.adventure.text.@NotNull Component displayName() {
return Bukkit.getServer().getItemFactory().displayName(this);
}
diff --git a/patches/api/0067-ensureServerConversions-API.patch b/patches/api/0067-ensureServerConversions-API.patch
index 38050bb0c5..411fc2d532 100644
--- a/patches/api/0067-ensureServerConversions-API.patch
+++ b/patches/api/0067-ensureServerConversions-API.patch
@@ -30,10 +30,10 @@ index 213e3f3de731d85f788a4bfa8d912e1b59c3c045..898c256140cc7fee2c0cc65cca33a0e8
+ // Paper end - ensure server conversions API
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index d1bce73317fa1dfd35c8b3f94415ba8721c758d6..a71b7f418ca3edb4695b57e5021732c591cfb13f 100644
+index 22bb39a8f124d55b1dce1bcb981a94d763959e59..0586a64b780f0dee9899a42ca4ee28d12efd749a 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -549,7 +549,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -552,7 +552,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
}
}
@@ -42,7 +42,7 @@ index d1bce73317fa1dfd35c8b3f94415ba8721c758d6..a71b7f418ca3edb4695b57e5021732c5
}
/**
-@@ -631,6 +631,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -634,6 +634,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return Bukkit.getServer().getItemFactory().displayName(this);
}
diff --git a/patches/api/0108-ItemStack-getMaxItemUseDuration.patch b/patches/api/0108-ItemStack-getMaxItemUseDuration.patch
index 04e59af1f7..8252cb46b2 100644
--- a/patches/api/0108-ItemStack-getMaxItemUseDuration.patch
+++ b/patches/api/0108-ItemStack-getMaxItemUseDuration.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] ItemStack#getMaxItemUseDuration
Allows you to determine how long it takes to use a usable/consumable item
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index a71b7f418ca3edb4695b57e5021732c591cfb13f..7afb1b4fde29d09ad2289956531daded56b02147 100644
+index 0586a64b780f0dee9899a42ca4ee28d12efd749a..b92a86e9d128b1ce6f02962574e30ced74e44bc8 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -658,5 +658,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -661,5 +661,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public String getI18NDisplayName() {
return Bukkit.getServer().getItemFactory().getI18NDisplayName(this);
}
diff --git a/patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch b/patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch
index bb7ff028ad..44ecc5cfdc 100644
--- a/patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch
+++ b/patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] ItemStack API additions for quantity/flags/lore
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 7afb1b4fde29d09ad2289956531daded56b02147..c1e64e09d792da7c7918e401b306f8945a0ff32d 100644
+index b92a86e9d128b1ce6f02962574e30ced74e44bc8..e388239d6d960af2102111d2ae90b2a655b2a94a 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -3,6 +3,7 @@ package org.bukkit.inventory;
@@ -16,7 +16,7 @@ index 7afb1b4fde29d09ad2289956531daded56b02147..c1e64e09d792da7c7918e401b306f894
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.Material;
-@@ -666,5 +667,185 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -669,5 +670,185 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
// Requires access to NMS
return ensureServerConversions().getMaxItemUseDuration();
}
diff --git a/patches/api/0152-Material-API-additions.patch b/patches/api/0152-Material-API-additions.patch
index 38c9fe7eec..9405b650d1 100644
--- a/patches/api/0152-Material-API-additions.patch
+++ b/patches/api/0152-Material-API-additions.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Material API additions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index fe9c5ccdbaf4a83367f2d1c9c18044665eadf81d..ab4c1d853ed030c6cf2945793e7655509c954f0b 100644
+index 2750e143a3ac20797e16a15b687952157197d562..c2808db693647bdf3b9617cb6c665e8499874485 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -123,6 +123,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -125,6 +125,7 @@ import org.jetbrains.annotations.Nullable;
/**
* An enum of all material IDs accepted by the official server and client
*/
@@ -16,7 +16,7 @@ index fe9c5ccdbaf4a83367f2d1c9c18044665eadf81d..ab4c1d853ed030c6cf2945793e765550
public enum Material implements Keyed, Translatable {
//<editor-fold desc="Materials" defaultstate="collapsed">
AIR(9648, 0),
-@@ -4723,6 +4724,22 @@ public enum Material implements Keyed, Translatable {
+@@ -4725,6 +4726,22 @@ public enum Material implements Keyed, Translatable {
}
}
diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
index 2c1b71987a..c28ec02eed 100644
--- a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0172-Fix-Spigot-annotation-mistakes.patch
@@ -300,10 +300,10 @@ index 02b4ffa6b918269bd64f7c518fcceef1f6990737..f0878c7539696cc0676e6010e88914d3
if (this.world == null) {
return null;
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index ab4c1d853ed030c6cf2945793e7655509c954f0b..22459bc96a97734b06985dc3a8ff4358f280f505 100644
+index c2808db693647bdf3b9617cb6c665e8499874485..c605da711c032f7091390e50b4a5d332c992d3d1 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4744,20 +4744,20 @@ public enum Material implements Keyed, Translatable {
+@@ -4746,20 +4746,20 @@ public enum Material implements Keyed, Translatable {
* Do not use for any reason.
*
* @return ID of this material
@@ -328,7 +328,7 @@ index ab4c1d853ed030c6cf2945793e7655509c954f0b..22459bc96a97734b06985dc3a8ff4358
public boolean isLegacy() {
return legacy;
}
-@@ -4828,8 +4828,10 @@ public enum Material implements Keyed, Translatable {
+@@ -4835,8 +4835,10 @@ public enum Material implements Keyed, Translatable {
* Gets the MaterialData class associated with this Material
*
* @return MaterialData associated with this Material
@@ -339,7 +339,7 @@ index ab4c1d853ed030c6cf2945793e7655509c954f0b..22459bc96a97734b06985dc3a8ff4358
public Class<? extends MaterialData> getData() {
Preconditions.checkArgument(legacy, "Cannot get data class of Modern Material");
return ctor.getDeclaringClass();
-@@ -9096,7 +9098,11 @@ public enum Material implements Keyed, Translatable {
+@@ -9103,7 +9105,11 @@ public enum Material implements Keyed, Translatable {
* material.
*
* @return true if this material can be interacted with.
@@ -1412,7 +1412,7 @@ index 898c256140cc7fee2c0cc65cca33a0e86275f115..e34c89a945a0f12cdc4be8cc232c8de9
/**
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index c1e64e09d792da7c7918e401b306f8945a0ff32d..aa8c6a57fb78fcb2e5ecff01f5d2f5871ac4161a 100644
+index e388239d6d960af2102111d2ae90b2a655b2a94a..276cfd52817115981fe7dc46363278f8b8c5aee3 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -8,6 +8,7 @@ import java.util.Map;
@@ -1444,7 +1444,7 @@ index c1e64e09d792da7c7918e401b306f8945a0ff32d..aa8c6a57fb78fcb2e5ecff01f5d2f587
public void setData(@Nullable MaterialData data) {
if (data == null) {
this.data = data;
-@@ -558,7 +563,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -561,7 +566,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*
* @return a copy of the current ItemStack's ItemData
*/
diff --git a/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch
index 0efa0d0fb1..dc654da7f0 100644
--- a/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch
@@ -20,10 +20,10 @@ index d69e5fa40702c283c370a2f712b51dc2ea3a1fa0..30d869a7c4bba79b4c05de7860b31c14
// Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index aa8c6a57fb78fcb2e5ecff01f5d2f5871ac4161a..65fc0bca47ea32069ddc6e838a0db28f13638390 100644
+index 276cfd52817115981fe7dc46363278f8b8c5aee3..e82eeadc7cb53572351670761c4e592a33345c6b 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -650,6 +650,30 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -653,6 +653,30 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return Bukkit.getServer().getItemFactory().ensureServerConversions(this);
}
diff --git a/patches/api/0209-Add-methods-to-get-translation-keys.patch b/patches/api/0209-Add-methods-to-get-translation-keys.patch
index 3043b37760..282a4c0520 100644
--- a/patches/api/0209-Add-methods-to-get-translation-keys.patch
+++ b/patches/api/0209-Add-methods-to-get-translation-keys.patch
@@ -144,10 +144,10 @@ index dc66bd69646ac949d1386ce8f6ff913e9475439d..4482e8f2c617c2f51b2b53762e775d11
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 22459bc96a97734b06985dc3a8ff4358f280f505..afdd4288b0df3e4d89ed4701ea9ec742028fc956 100644
+index c605da711c032f7091390e50b4a5d332c992d3d1..61e0739f002a949a204c7591dfa3074560d1459e 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -124,7 +124,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -126,7 +126,7 @@ import org.jetbrains.annotations.Nullable;
* An enum of all material IDs accepted by the official server and client
*/
@SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper
@@ -156,7 +156,7 @@ index 22459bc96a97734b06985dc3a8ff4358f280f505..afdd4288b0df3e4d89ed4701ea9ec742
//<editor-fold desc="Materials" defaultstate="collapsed">
AIR(9648, 0),
STONE(22948),
-@@ -4738,6 +4738,15 @@ public enum Material implements Keyed, Translatable {
+@@ -4740,6 +4740,15 @@ public enum Material implements Keyed, Translatable {
}
return false;
}
@@ -172,7 +172,7 @@ index 22459bc96a97734b06985dc3a8ff4358f280f505..afdd4288b0df3e4d89ed4701ea9ec742
// Paper end
/**
-@@ -11474,9 +11483,11 @@ public enum Material implements Keyed, Translatable {
+@@ -11481,9 +11490,11 @@ public enum Material implements Keyed, Translatable {
* material
* @see #getBlockTranslationKey()
* @see #getItemTranslationKey()
@@ -480,7 +480,7 @@ index 5bd252c0ae3b09fe141d131360c67bb9bfbf5422..78587d9fabe6371a23a7963917b054db
+
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 65fc0bca47ea32069ddc6e838a0db28f13638390..96b6052c198454f06f877fc7cda85a98c0ddba7c 100644
+index e82eeadc7cb53572351670761c4e592a33345c6b..645cff10eef90826bb44bbe937b141289f182cde 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullable;
@@ -492,7 +492,7 @@ index 65fc0bca47ea32069ddc6e838a0db28f13638390..96b6052c198454f06f877fc7cda85a98
private Material type = Material.AIR;
private int amount = 0;
private MaterialData data = null;
-@@ -617,6 +617,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -620,6 +620,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
@Override
@NotNull
@@ -500,7 +500,7 @@ index 65fc0bca47ea32069ddc6e838a0db28f13638390..96b6052c198454f06f877fc7cda85a98
public String getTranslationKey() {
return Bukkit.getUnsafe().getTranslationKey(this);
}
-@@ -876,5 +877,16 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -879,5 +880,16 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
ItemMeta itemMeta = getItemMeta();
return itemMeta != null && itemMeta.hasItemFlag(flag);
}
diff --git a/patches/api/0256-Cache-the-result-of-Material-isBlock.patch b/patches/api/0256-Cache-the-result-of-Material-isBlock.patch
index 97d6387d88..b2322c2c4a 100644
--- a/patches/api/0256-Cache-the-result-of-Material-isBlock.patch
+++ b/patches/api/0256-Cache-the-result-of-Material-isBlock.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Cache the result of Material#isBlock
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index afdd4288b0df3e4d89ed4701ea9ec742028fc956..3ee36de0ee975dc300e594b17d0dc2c06edf2a16 100644
+index 61e0739f002a949a204c7591dfa3074560d1459e..5aa595860c73e78cf3c9f2a8984c62744cfe5612 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4682,6 +4682,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4684,6 +4684,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public final Class<?> data;
private final boolean legacy;
private final NamespacedKey key;
@@ -16,7 +16,7 @@ index afdd4288b0df3e4d89ed4701ea9ec742028fc956..3ee36de0ee975dc300e594b17d0dc2c0
private Material(final int id) {
this(id, 64);
-@@ -4880,6 +4881,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4887,6 +4888,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* @return true if this material is a block
*/
public boolean isBlock() {
@@ -28,7 +28,7 @@ index afdd4288b0df3e4d89ed4701ea9ec742028fc956..3ee36de0ee975dc300e594b17d0dc2c0
switch (this) {
//<editor-fold defaultstate="collapsed" desc="isBlock">
case ACACIA_BUTTON:
-@@ -6124,6 +6130,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -6131,6 +6137,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
static {
for (Material material : values()) {
BY_NAME.put(material.name(), material);
diff --git a/patches/api/0262-Improve-Item-Rarity-API.patch b/patches/api/0262-Improve-Item-Rarity-API.patch
index 539f61725e..6080352888 100644
--- a/patches/api/0262-Improve-Item-Rarity-API.patch
+++ b/patches/api/0262-Improve-Item-Rarity-API.patch
@@ -43,10 +43,10 @@ index 0000000000000000000000000000000000000000..f1cd5a4f37eee8975ac3d0421b524afc
+ }
+}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 3ee36de0ee975dc300e594b17d0dc2c06edf2a16..2ce1d9239d08c799d53873563646f933211a902e 100644
+index 5aa595860c73e78cf3c9f2a8984c62744cfe5612..1e4ebe9bdc6aadf18029377e7ce70ca0d88bd1a1 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4748,6 +4748,19 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4750,6 +4750,19 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
return Bukkit.getUnsafe().getBlockTranslationKey(this);
}
}
@@ -108,10 +108,10 @@ index e7931f73f10fe35ebd5fe4a04b036d53bb117ebd..cbce835ed6d44e5b8c9aaae4e36a77f8
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 96b6052c198454f06f877fc7cda85a98c0ddba7c..f9b0b463f9920524eab7f328bc456a30eebc6910 100644
+index 645cff10eef90826bb44bbe937b141289f182cde..a92421bbf0ee40ecbe4f272459c6a918dc45344c 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -888,5 +888,17 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -891,5 +891,17 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public @NotNull String translationKey() {
return Bukkit.getUnsafe().getTranslationKey(this);
}
diff --git a/patches/api/0280-ItemStack-repair-check-API.patch b/patches/api/0280-ItemStack-repair-check-API.patch
index 95046ce219..eff25d7f58 100644
--- a/patches/api/0280-ItemStack-repair-check-API.patch
+++ b/patches/api/0280-ItemStack-repair-check-API.patch
@@ -25,10 +25,10 @@ index a874faec93468c83fc475b60629fc36f933bd11c..4130481843c9e0b847bd656622b0c110
// Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index f9b0b463f9920524eab7f328bc456a30eebc6910..2fb521dc2b4d991f56288e2faba978d9d7d29a0b 100644
+index a92421bbf0ee40ecbe4f272459c6a918dc45344c..04ff6579282708c48edee419381c698707fe0a3b 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -900,5 +900,27 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -903,5 +903,27 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public io.papermc.paper.inventory.ItemRarity getRarity() {
return io.papermc.paper.inventory.ItemRarity.valueOf(this.getItemMeta().getRarity().name());
}
diff --git a/patches/api/0283-ItemStack-editMeta.patch b/patches/api/0283-ItemStack-editMeta.patch
index 5d71277d19..d2c36b432c 100644
--- a/patches/api/0283-ItemStack-editMeta.patch
+++ b/patches/api/0283-ItemStack-editMeta.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack#editMeta
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 2fb521dc2b4d991f56288e2faba978d9d7d29a0b..455e633edc19d29559e66b1d52c532ef1a0fa8df 100644
+index 04ff6579282708c48edee419381c698707fe0a3b..351f5c0feec38377fccf09bfc1cef2df88fc2dcd 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -558,6 +558,50 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -561,6 +561,50 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return result.ensureServerConversions(); // Paper
}
diff --git a/patches/api/0285-Attributes-API-for-item-defaults.patch b/patches/api/0285-Attributes-API-for-item-defaults.patch
index 947bae94d8..db30aff62c 100644
--- a/patches/api/0285-Attributes-API-for-item-defaults.patch
+++ b/patches/api/0285-Attributes-API-for-item-defaults.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Attributes API for item defaults
(Now replaced by upstream's API)
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 2ce1d9239d08c799d53873563646f933211a902e..401645f5e0dfe6c9a0d082b5a76112a882b058ee 100644
+index 1e4ebe9bdc6aadf18029377e7ce70ca0d88bd1a1..3cb658023d738617a310099fa3759af253a9f4c2 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4761,6 +4761,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4763,6 +4763,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public io.papermc.paper.inventory.ItemRarity getItemRarity() {
return new org.bukkit.inventory.ItemStack(this).getRarity();
}
diff --git a/patches/api/0317-Add-isCollidable-methods-to-various-places.patch b/patches/api/0317-Add-isCollidable-methods-to-various-places.patch
index d4627b4000..0c56af5c5d 100644
--- a/patches/api/0317-Add-isCollidable-methods-to-various-places.patch
+++ b/patches/api/0317-Add-isCollidable-methods-to-various-places.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add isCollidable methods to various places
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 401645f5e0dfe6c9a0d082b5a76112a882b058ee..8283eccf2578bae50a4c6fd86318e0d5f7cf09df 100644
+index 3cb658023d738617a310099fa3759af253a9f4c2..1ca448c9e3a3178663a033617d9414ec085c246a 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4776,6 +4776,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4778,6 +4778,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public Multimap<Attribute, AttributeModifier> getItemAttributes(@NotNull EquipmentSlot equipmentSlot) {
return this.getDefaultAttributeModifiers(equipmentSlot);
}
diff --git a/patches/api/0349-Add-enchantWithLevels-API.patch b/patches/api/0349-Add-enchantWithLevels-API.patch
index 021eefa1f3..02d301e15a 100644
--- a/patches/api/0349-Add-enchantWithLevels-API.patch
+++ b/patches/api/0349-Add-enchantWithLevels-API.patch
@@ -70,10 +70,10 @@ index dbebaf8172ec6872f56958b9583affde4f8400a4..98a970a6582dca22e719a31559c7bece
+ // Paper end - enchantWithLevels API
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 455e633edc19d29559e66b1d52c532ef1a0fa8df..637b9067973aadece2806cc2b6200a4d3b8d97a1 100644
+index 351f5c0feec38377fccf09bfc1cef2df88fc2dcd..7eb4cf0b2f162d650252d81e9d38393f69a69046 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -667,6 +667,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -670,6 +670,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
}
// Paper start
diff --git a/patches/api/0376-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0376-Add-EquipmentSlot-convenience-methods.patch
index 64857c2af9..fc2c0fcc98 100644
--- a/patches/api/0376-Add-EquipmentSlot-convenience-methods.patch
+++ b/patches/api/0376-Add-EquipmentSlot-convenience-methods.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Add EquipmentSlot convenience methods
diff --git a/src/main/java/org/bukkit/inventory/EquipmentSlot.java b/src/main/java/org/bukkit/inventory/EquipmentSlot.java
-index d776a0c183737efcaf94f0911f3a8c1adc2c5ada..e19e708e9bda10e99c07763d162cb140d0189147 100644
+index 5642d8af60b6649497aba9b0f6ab7bba7702b9ee..adf0a94f98eb66b3957d4009d83ad5f741e0aa79 100644
--- a/src/main/java/org/bukkit/inventory/EquipmentSlot.java
+++ b/src/main/java/org/bukkit/inventory/EquipmentSlot.java
-@@ -32,4 +32,27 @@ public enum EquipmentSlot {
+@@ -33,4 +33,27 @@ public enum EquipmentSlot {
public EquipmentSlotGroup getGroup() {
- return group;
+ return group.get();
}
+ // Paper start
+ /**
diff --git a/patches/api/0385-ItemStack-damage-API.patch b/patches/api/0385-ItemStack-damage-API.patch
index bd1863d99b..ba61a1c399 100644
--- a/patches/api/0385-ItemStack-damage-API.patch
+++ b/patches/api/0385-ItemStack-damage-API.patch
@@ -66,10 +66,10 @@ index 6bfc8a2148f504370df938447f4f6b757f1a516b..208bab1f5a3200f54141c38ee4272629
+ // Paper end - ItemStack damage API
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 637b9067973aadece2806cc2b6200a4d3b8d97a1..d2162e53cefb8f9dc5c52bc1904e860066f43a41 100644
+index 7eb4cf0b2f162d650252d81e9d38393f69a69046..6195ac25e7a46542659a263c85f7adac745c2ce4 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -984,5 +984,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -987,5 +987,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public boolean canRepair(@NotNull ItemStack toBeRepaired) {
return Bukkit.getUnsafe().isValidRepairItemStack(toBeRepaired, this);
}
diff --git a/patches/api/0432-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0432-Allow-proper-checking-of-empty-item-stacks.patch
index 5d980f4398..4b2d49be32 100644
--- a/patches/api/0432-Allow-proper-checking-of-empty-item-stacks.patch
+++ b/patches/api/0432-Allow-proper-checking-of-empty-item-stacks.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow proper checking of empty item stacks
This adds a method to check if an item stack is empty or not. This mirrors vanilla's implementation of the same method.
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index d2162e53cefb8f9dc5c52bc1904e860066f43a41..db02c04a8e9a0b8e1e4518a629d5703398d4ef72 100644
+index 6195ac25e7a46542659a263c85f7adac745c2ce4..7cecb04de7d55dcdec1fa3dd255c844e92b1abdb 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -998,5 +998,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -1001,5 +1001,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public @NotNull ItemStack damage(int amount, @NotNull org.bukkit.entity.LivingEntity livingEntity) {
return livingEntity.damageItemStack(this, amount);
}
diff --git a/patches/api/0440-Remove-unnecessary-durability-check-in-ItemStack-isS.patch b/patches/api/0440-Remove-unnecessary-durability-check-in-ItemStack-isS.patch
index 1617e84222..4974a88a57 100644
--- a/patches/api/0440-Remove-unnecessary-durability-check-in-ItemStack-isS.patch
+++ b/patches/api/0440-Remove-unnecessary-durability-check-in-ItemStack-isS.patch
@@ -9,10 +9,10 @@ By removing this check we avoid unnecessarily allocating useless `ItemMeta` obje
This is a leftover from when checking for the item's durability was "free" because the durability was stored in the `ItemStack` itself, this [was changed in Minecraft 1.13](https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/commits/f8b2086d60942eb2cd7ac25a2a1408cb790c222c#src/main/java/org/bukkit/inventory/ItemStack.java).
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index db02c04a8e9a0b8e1e4518a629d5703398d4ef72..0611f19bcdd8230b439b5055713221318dce98e2 100644
+index 7cecb04de7d55dcdec1fa3dd255c844e92b1abdb..a1d0e479b9f28378f858f86ba8b0e9b7ddf71446 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -295,7 +295,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -298,7 +298,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return true;
}
Material comparisonType = (this.type.isLegacy()) ? Bukkit.getUnsafe().fromLegacy(this.getData(), true) : this.type; // This may be called from legacy item stacks, try to get the right material
diff --git a/patches/api/0442-add-missing-Experimental-annotations.patch b/patches/api/0442-add-missing-Experimental-annotations.patch
index 89d99d97d4..9bda404f5d 100644
--- a/patches/api/0442-add-missing-Experimental-annotations.patch
+++ b/patches/api/0442-add-missing-Experimental-annotations.patch
@@ -27,10 +27,10 @@ index 6b68c92ec894451d99ded3e3df5965cb31d68ed2..fd5e433f930963c102c9c977523a0036
public static final FeatureFlag UPDATE_121 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_21"));
}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0aa99af28d 100644
+index 1ca448c9e3a3178663a033617d9414ec085c246a..82d009c0bbe4b3026a535e02d6e0ed20c7bd525d 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -146,54 +146,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -148,54 +148,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Slab}
*/
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -98,7 +98,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
CHISELED_TUFF_BRICKS(8601),
DRIPSTONE_BLOCK(26227),
/**
-@@ -300,6 +313,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -302,6 +315,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Waterlogged}
*/
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -106,7 +106,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
HEAVY_CORE(15788, Waterlogged.class),
AMETHYST_BLOCK(18919),
BUDDING_AMETHYST(13963),
-@@ -312,12 +326,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -314,12 +328,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
WEATHERED_COPPER(19699),
OXIDIZED_COPPER(19490),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -123,7 +123,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
OXIDIZED_CHISELED_COPPER(27719),
CUT_COPPER(32519),
EXPOSED_CUT_COPPER(18000),
-@@ -360,12 +378,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -362,12 +380,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
WAXED_WEATHERED_COPPER(5960),
WAXED_OXIDIZED_COPPER(25626),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -140,7 +140,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
WAXED_OXIDIZED_CHISELED_COPPER(7735),
WAXED_CUT_COPPER(11030),
WAXED_EXPOSED_CUT_COPPER(30043),
-@@ -2107,41 +2129,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2109,41 +2131,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Door}
*/
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -190,7 +190,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
WAXED_OXIDIZED_COPPER_DOOR(23888, Door.class),
/**
* BlockData: {@link TrapDoor}
-@@ -2195,41 +2225,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2197,41 +2227,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link TrapDoor}
*/
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -240,7 +240,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class),
/**
* BlockData: {@link Gate}
-@@ -2531,6 +2569,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2533,6 +2571,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
EGG(21603, 16),
COMPASS(24139),
RECOVERY_COMPASS(12710),
@@ -249,7 +249,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
BUNDLE(16835, 1),
FISHING_ROD(4167, 1, 64),
CLOCK(14980),
-@@ -2637,6 +2677,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2639,6 +2679,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Crafter}
*/
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -257,7 +257,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
CRAFTER(25243, Crafter.class),
FILLED_MAP(23504),
SHEARS(27971, 1, 238),
-@@ -2677,8 +2718,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2679,8 +2720,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
BEE_SPAWN_EGG(22924),
BLAZE_SPAWN_EGG(4759),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -268,7 +268,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
BREEZE_SPAWN_EGG(7580),
CAT_SPAWN_EGG(29583),
CAMEL_SPAWN_EGG(14760),
-@@ -2755,10 +2798,12 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2757,10 +2800,12 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
EXPERIENCE_BOTTLE(12858),
FIRE_CHARGE(4842),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -281,7 +281,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
MACE(4771, 1, 250),
ITEM_FRAME(27318),
GLOW_ITEM_FRAME(26473),
-@@ -3157,8 +3202,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3159,8 +3204,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116),
HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -292,7 +292,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
BOLT_ARMOR_TRIM_SMITHING_TEMPLATE(9698),
ANGLER_POTTERY_SHERD(9952),
ARCHER_POTTERY_SHERD(21629),
-@@ -3169,9 +3216,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3171,9 +3218,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
DANGER_POTTERY_SHERD(30506),
EXPLORER_POTTERY_SHERD(5124),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -304,7 +304,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
GUSTER_POTTERY_SHERD(28193),
HEART_POTTERY_SHERD(17607),
HEARTBREAK_POTTERY_SHERD(21108),
-@@ -3181,6 +3230,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3183,6 +3232,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
PLENTY_POTTERY_SHERD(28236),
PRIZE_POTTERY_SHERD(4341),
@MinecraftExperimental(Requires.UPDATE_1_21)
@@ -312,7 +312,7 @@ index 8283eccf2578bae50a4c6fd86318e0d5f7cf09df..c892610f2127f7415c287fa007ddda0a
SCRAPE_POTTERY_SHERD(30034),
SHEAF_POTTERY_SHERD(23652),
SHELTER_POTTERY_SHERD(28390),
-@@ -3190,99 +3240,121 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3192,99 +3242,121 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Waterlogged}
*/
@MinecraftExperimental(Requires.UPDATE_1_21)
diff --git a/patches/api/0456-ItemStack-Tooltip-API.patch b/patches/api/0456-ItemStack-Tooltip-API.patch
index 7eb3a41ef5..aa6b6ddd15 100644
--- a/patches/api/0456-ItemStack-Tooltip-API.patch
+++ b/patches/api/0456-ItemStack-Tooltip-API.patch
@@ -119,10 +119,10 @@ index 7e6bdf3333537491b3421d196779a4eb502f7314..a3ba9249e636d1fb8dad98fab4134360
+ @NotNull java.util.List<net.kyori.adventure.text.Component> computeTooltipLines(@NotNull ItemStack itemStack, @NotNull io.papermc.paper.inventory.tooltip.TooltipContext tooltipContext, @Nullable org.bukkit.entity.Player player); // Paper - expose itemstack tooltip lines
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 0611f19bcdd8230b439b5055713221318dce98e2..9440cffffa1d7e75d2d76d55d5608bafd69b645b 100644
+index a1d0e479b9f28378f858f86ba8b0e9b7ddf71446..b669df4bd1ff0ecba575d42415973e81bccddbbe 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -1018,4 +1018,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -1021,4 +1021,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return type.isAir() || amount <= 0;
}
// Paper end
diff --git a/patches/api/0466-Deprecate-ItemStack-setType.patch b/patches/api/0466-Deprecate-ItemStack-setType.patch
index 2c0996f9a1..9f21ce5142 100644
--- a/patches/api/0466-Deprecate-ItemStack-setType.patch
+++ b/patches/api/0466-Deprecate-ItemStack-setType.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate ItemStack#setType
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 9440cffffa1d7e75d2d76d55d5608bafd69b645b..91083a135a7e979e32cbb3531b5ef69b7a28f305 100644
+index b669df4bd1ff0ecba575d42415973e81bccddbbe..1294f7ce50977dfe72daf535b611386844c205e0 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -134,8 +134,18 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0472-Fix-ItemFlags.patch b/patches/api/0472-Fix-ItemFlags.patch
index 2ca79093d4..007e003bc3 100644
--- a/patches/api/0472-Fix-ItemFlags.patch
+++ b/patches/api/0472-Fix-ItemFlags.patch
@@ -47,10 +47,10 @@ index a435f6c8947e4ac50b8c04f37b107055970937dd..92e30c281eab4801298b280bd388a039
/**
* Setting to show/hide item-specific information, including, but not limited to:
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 91083a135a7e979e32cbb3531b5ef69b7a28f305..2b465bd3264cccd5203775e1aa99dcfa6226368d 100644
+index 1294f7ce50977dfe72daf535b611386844c205e0..84a7bf0936d35bf42b5ed038d295d5c31740f472 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -572,6 +572,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -575,6 +575,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
Object raw = args.get("meta");
if (raw instanceof ItemMeta) {
((ItemMeta) raw).setVersion(version);
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index ee3ac63479..eb822ff0c4 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -6950,10 +6950,10 @@ index c4bd9be9d1884be1f5040ff1417f44f8ac4b655f..319cb644c0a42e9cc0d3ce9d1cbaa93b
public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<Level> resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List<CustomSpawner> list, boolean flag1, @Nullable RandomSequences randomsequences, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) {
// IRegistryCustom.Dimension iregistrycustom_dimension = minecraftserver.registryAccess(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index bc263349531d70886d5eee37a196c78dd70c9b30..5631621f16fdda723cb3e1de7d3a6646d768a863 100644
+index 374db2337574f8b799c1a6ffef1cf62a82c0f802..240d7831d7f05e245e4103ec22f4967657e1040b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -275,6 +275,8 @@ public class ServerPlayer extends Player {
+@@ -276,6 +276,8 @@ public class ServerPlayer extends Player {
public boolean sentListPacket = false;
public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent
// CraftBukkit end
@@ -6962,7 +6962,7 @@ index bc263349531d70886d5eee37a196c78dd70c9b30..5631621f16fdda723cb3e1de7d3a6646
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
-@@ -343,6 +345,8 @@ public class ServerPlayer extends Player {
+@@ -344,6 +346,8 @@ public class ServerPlayer extends Player {
this.updateOptions(clientOptions);
this.object = null;
@@ -7061,7 +7061,7 @@ index 803f8e80d616ac7f9a51e4cdd6a7a3ce690b791e..9c54bc3897d1fa3c88a5a7d55224eb4c
public Entity(EntityType<?> type, Level world) {
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 09a3d06f1c613662283eb6688bf2c3eeb4778208..dcf53dbecc1873994b171cfd1eb313545d6cfdcd 100644
+index 24368386db4c4eb1f6b83730570146f50d6b389b..c675fe1c2363248b034bdc27bb3a6a0e65adf19c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -270,6 +270,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -7073,7 +7073,7 @@ index 09a3d06f1c613662283eb6688bf2c3eeb4778208..dcf53dbecc1873994b171cfd1eb31354
@Override
public float getBukkitYaw() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 113440cd203c1273934b9b7ad7a0fe36f44d0c88..2e83e5779d5bdfc150257d3394669d53eba5c5c3 100644
+index 04d9e3aced11c54b8f464ae7faba1b4aaf81e093..39e71ff8528622f640950d1a9b33483a7eb68957 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -287,6 +287,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 3d107842eb..37b65b0ca7 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -2682,10 +2682,10 @@ index 977275f767c374a1be9055e4aa9e124025d55828..953e28f0cf60412a4ec9e311daa98f9d
public boolean logIPs() {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b26016bccd7c 100644
+index 240d7831d7f05e245e4103ec22f4967657e1040b..8292f45aa100e2788584f568430d76560c2fa9a8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -169,6 +169,7 @@ import net.minecraft.world.damagesource.CombatTracker;
+@@ -170,6 +170,7 @@ import net.minecraft.world.damagesource.CombatTracker;
import net.minecraft.world.scores.Scoreboard;
import net.minecraft.world.scores.Team;
import net.minecraft.world.scores.criteria.ObjectiveCriteria;
@@ -2693,7 +2693,7 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.WeatherType;
-@@ -232,6 +233,7 @@ public class ServerPlayer extends Player {
+@@ -233,6 +234,7 @@ public class ServerPlayer extends Player {
private boolean disconnected;
private int requestedViewDistance;
public String language = "en_us"; // CraftBukkit - default
@@ -2701,7 +2701,7 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
@Nullable
private Vec3 startingToFallPosition;
@Nullable
-@@ -264,6 +266,7 @@ public class ServerPlayer extends Player {
+@@ -265,6 +267,7 @@ public class ServerPlayer extends Player {
// CraftBukkit start
public CraftPlayer.TransferCookieConnection transferCookieConnection;
public String displayName;
@@ -2709,7 +2709,7 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
public Component listName;
public org.bukkit.Location compassTarget;
public int newExp = 0;
-@@ -349,6 +352,7 @@ public class ServerPlayer extends Player {
+@@ -350,6 +353,7 @@ public class ServerPlayer extends Player {
// CraftBukkit start
this.displayName = this.getScoreboardName();
@@ -2717,7 +2717,7 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
this.bukkitPickUpLoot = true;
this.maxHealthCache = this.getMaxHealth();
}
-@@ -893,22 +897,17 @@ public class ServerPlayer extends Player {
+@@ -903,22 +907,17 @@ public class ServerPlayer extends Player {
String deathmessage = defaultMessage.getString();
this.keepLevel = keepInventory; // SPIGOT-2222: pre-set keepLevel
@@ -2744,7 +2744,7 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
this.connection.send(new ClientboundPlayerCombatKillPacket(this.getId(), ichatbasecomponent), PacketSendListener.exceptionallySend(() -> {
boolean flag1 = true;
-@@ -1975,8 +1974,13 @@ public class ServerPlayer extends Player {
+@@ -1985,8 +1984,13 @@ public class ServerPlayer extends Player {
}
public void sendChatMessage(OutgoingChatMessage message, boolean filterMaskEnabled, ChatType.Bound params) {
@@ -2759,7 +2759,7 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
}
}
-@@ -2003,6 +2007,7 @@ public class ServerPlayer extends Player {
+@@ -2013,6 +2017,7 @@ public class ServerPlayer extends Player {
}
// CraftBukkit end
this.language = clientOptions.language();
@@ -2872,7 +2872,7 @@ index bd7107279ca004f35c932e5d6e82f8302ec781ae..970d1ddf0a014b47b0ac974404897061
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d17358e391060c674d0b83b1619e0de8190c6791..86d0207a36df67bf0554193bf050e035aeecc5c9 100644
+index dfeb64d614e0da9f1bc0df9dcae71b509cf4178f..97b5e3cc18dbf712f5f60d92a4f9beabd90f2e0f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -44,6 +44,7 @@ import net.minecraft.core.registries.Registries;
@@ -5141,7 +5141,7 @@ index 9c57b883783145ad4483481a2c2e7f0f188cd174..b653c2c80e8e8524ea6d7625c6a86f82
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 2a0803ed63be1adafec3e6e1cf57a84c867d0b57..6b63fec6bc646b6faf2151a786ef47c87848520e 100644
+index 7a5110efc5af1be6644b7afecd6ac025c20e6794..3cb5685a97f67d759537fc92bb4cb376bb2905a7 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -843,6 +843,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
diff --git a/patches/server/0023-Timings-v2.patch b/patches/server/0023-Timings-v2.patch
index e4fc7060f8..95b3510486 100644
--- a/patches/server/0023-Timings-v2.patch
+++ b/patches/server/0023-Timings-v2.patch
@@ -1230,7 +1230,7 @@ index 319cb644c0a42e9cc0d3ce9d1cbaa93b9c3dcd5b..a6e78b8a6ced8ec84273e2c5d18ffcca
this.entityManager.saveAll();
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 86d0207a36df67bf0554193bf050e035aeecc5c9..e63aadfe5209978f5d515ef9c37df01e08cd8fdb 100644
+index 97b5e3cc18dbf712f5f60d92a4f9beabd90f2e0f..72f3717d931a6635d991d93619c9896ea22e1912 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -330,7 +330,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -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 dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd036c8f7c2d 100644
+index c675fe1c2363248b034bdc27bb3a6a0e65adf19c..a2cbe1fd8aef67cc9c71ef22bf4c7efd9d8d6a95 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 dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
public abstract class LivingEntity extends Entity implements Attackable {
-@@ -2945,7 +2945,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2951,7 +2951,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Override
public void tick() {
@@ -1399,7 +1399,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
super.tick();
this.updatingUsingItem();
this.updateSwimAmount();
-@@ -2987,9 +2986,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2993,9 +2992,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (!this.isRemoved()) {
@@ -1409,7 +1409,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
}
double d0 = this.getX() - this.xo;
-@@ -3080,7 +3077,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3086,7 +3083,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.refreshDimensions();
}
@@ -1417,7 +1417,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
}
public void detectEquipmentUpdatesPublic() { // CraftBukkit
-@@ -3279,7 +3275,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3285,7 +3281,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.setDeltaMovement(d0, d1, d2);
this.level().getProfiler().push("ai");
@@ -1425,7 +1425,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
if (this.isImmobile()) {
this.jumping = false;
this.xxa = 0.0F;
-@@ -3289,7 +3284,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3295,7 +3290,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.serverAiStep();
this.level().getProfiler().pop();
}
@@ -1433,7 +1433,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
this.level().getProfiler().pop();
this.level().getProfiler().push("jump");
-@@ -3329,7 +3323,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3335,7 +3329,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.resetFallDistance();
}
@@ -1441,7 +1441,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
label104:
{
LivingEntity entityliving = this.getControllingPassenger();
-@@ -3343,7 +3336,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3349,7 +3342,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.travel(vec3d1);
}
@@ -1449,7 +1449,7 @@ index dcf53dbecc1873994b171cfd1eb313545d6cfdcd..e72ca3af948aa223e6ef31bb0972dd03
this.level().getProfiler().pop();
this.level().getProfiler().push("freezing");
-@@ -3370,9 +3362,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3376,9 +3368,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.checkAutoSpinAttack(axisalignedbb, this.getBoundingBox());
}
diff --git a/patches/server/0027-Support-components-in-ItemMeta.patch b/patches/server/0027-Support-components-in-ItemMeta.patch
index 479f83f898..55ba44e2da 100644
--- a/patches/server/0027-Support-components-in-ItemMeta.patch
+++ b/patches/server/0027-Support-components-in-ItemMeta.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Support components in ItemMeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 6b63fec6bc646b6faf2151a786ef47c87848520e..d8804be1f36872d12484d9b4327d669d19e7c573 100644
+index 3cb5685a97f67d759537fc92bb4cb376bb2905a7..e967d6b32d9538d8456d73a67a73e3d3ea16b831 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -860,11 +860,23 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -69,7 +69,7 @@ index 6b63fec6bc646b6faf2151a786ef47c87848520e..d8804be1f36872d12484d9b4327d669d
@Override
public boolean hasCustomModelData() {
return this.customModelData != null;
-@@ -1661,6 +1696,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1663,6 +1698,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
for (Object object : addFrom) {
diff --git a/patches/server/0031-Allow-nerfed-mobs-to-jump.patch b/patches/server/0031-Allow-nerfed-mobs-to-jump.patch
index 3eaa6a63ec..d4ae242d75 100644
--- a/patches/server/0031-Allow-nerfed-mobs-to-jump.patch
+++ b/patches/server/0031-Allow-nerfed-mobs-to-jump.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow nerfed mobs to jump
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 2e83e5779d5bdfc150257d3394669d53eba5c5c3..895971f238b693afbf382d9951adb636d1efef2d 100644
+index 39e71ff8528622f640950d1a9b33483a7eb68957..17c9f99e777e211437cb5d693fe247a22ae51c7d 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -126,6 +126,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0032-Add-configurable-entity-despawn-distances.patch b/patches/server/0032-Add-configurable-entity-despawn-distances.patch
index a737ffb819..4a3938bdf2 100644
--- a/patches/server/0032-Add-configurable-entity-despawn-distances.patch
+++ b/patches/server/0032-Add-configurable-entity-despawn-distances.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable entity despawn distances
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 895971f238b693afbf382d9951adb636d1efef2d..a61f25425893024571a85cf563ec41cfc7b52325 100644
+index 17c9f99e777e211437cb5d693fe247a22ae51c7d..c8ff4b01186f924473b9ffde948d7f0573e8d56f 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -911,14 +911,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0037-Player-affects-spawning-API.patch b/patches/server/0037-Player-affects-spawning-API.patch
index da0e19a5dc..63452c1938 100644
--- a/patches/server/0037-Player-affects-spawning-API.patch
+++ b/patches/server/0037-Player-affects-spawning-API.patch
@@ -21,7 +21,7 @@ index 3126e8cab3c40e3af47f4c8925e1c6a9523309ba..3207166061bf9c4d7bf3f38e5a9f7aff
public static Predicate<Entity> withinDistance(double x, double y, double z, double max) {
double d4 = max * max;
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index a61f25425893024571a85cf563ec41cfc7b52325..0e88a2212435ff70b5ee661de3977df2b456b29b 100644
+index c8ff4b01186f924473b9ffde948d7f0573e8d56f..426fa1798087ab1fb4198bd036f498606dce7c3f 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -907,7 +907,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0044-Configurable-end-credits.patch b/patches/server/0044-Configurable-end-credits.patch
index 3229c1d2a5..4c53dd9e33 100644
--- a/patches/server/0044-Configurable-end-credits.patch
+++ b/patches/server/0044-Configurable-end-credits.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable end credits
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 4277f7c477efe01d4ef917515178b26016bccd7c..d75c3c10dcbd777796e479b9538e5254857ac07c 100644
+index 8292f45aa100e2788584f568430d76560c2fa9a8..244be33d0000189556ce7c6714e5a9768c16ba6b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1097,6 +1097,7 @@ public class ServerPlayer extends Player {
+@@ -1107,6 +1107,7 @@ public class ServerPlayer extends Player {
this.unRide();
this.serverLevel().removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
if (!this.wonGame) {
diff --git a/patches/server/0045-Fix-lag-from-explosions-processing-dead-entities.patch b/patches/server/0045-Fix-lag-from-explosions-processing-dead-entities.patch
index d1713bcbc2..7dd0adcea0 100644
--- a/patches/server/0045-Fix-lag-from-explosions-processing-dead-entities.patch
+++ b/patches/server/0045-Fix-lag-from-explosions-processing-dead-entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix lag from explosions processing dead entities
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 230bd20a7a8923f4a4bd4023aeac91ea5908ccd4..cd6d831d8519b406571e6f626053afb662799ad9 100644
+index 73cc11cf4732ede545e924d07480cae14c3ef226..8307c3e77ddc80a02f420503d67ae06fb973dc09 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -226,7 +226,7 @@ public class Explosion {
diff --git a/patches/server/0046-Optimize-explosions.patch b/patches/server/0046-Optimize-explosions.patch
index 3a77d7f327..09b16b2e38 100644
--- a/patches/server/0046-Optimize-explosions.patch
+++ b/patches/server/0046-Optimize-explosions.patch
@@ -22,7 +22,7 @@ index fcb2d06f088a938b5bb76e6b42581d8f292d2eaf..231fba80a25601cdfba4f6f44ac7c288
this.profiler.popPush("connection");
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index cd6d831d8519b406571e6f626053afb662799ad9..8a4c086d7ac4bf59f39ab37e583b0e8d6dba6bf4 100644
+index 8307c3e77ddc80a02f420503d67ae06fb973dc09..c769da15f1d0bdbd2bce412aa9fae6d10d1177f7 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -278,7 +278,7 @@ public class Explosion {
@@ -34,7 +34,7 @@ index cd6d831d8519b406571e6f626053afb662799ad9..8a4c086d7ac4bf59f39ab37e583b0e8d
double d13;
if (entity instanceof LivingEntity) {
-@@ -529,4 +529,84 @@ public class Explosion {
+@@ -532,4 +532,84 @@ public class Explosion {
private BlockInteraction() {}
}
diff --git a/patches/server/0047-Disable-explosion-knockback.patch b/patches/server/0047-Disable-explosion-knockback.patch
index b9a0b33b6c..5f8f4d41c0 100644
--- a/patches/server/0047-Disable-explosion-knockback.patch
+++ b/patches/server/0047-Disable-explosion-knockback.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Disable explosion knockback
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 8a4c086d7ac4bf59f39ab37e583b0e8d6dba6bf4..111e6a7ab25e5513154984545c1737d2f7fd7d5f 100644
+index c769da15f1d0bdbd2bce412aa9fae6d10d1177f7..94f72ff58ac5206878a81e89d32e81c17b1bd1fb 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -284,7 +284,7 @@ public class Explosion {
@@ -17,7 +17,7 @@ index 8a4c086d7ac4bf59f39ab37e583b0e8d6dba6bf4..111e6a7ab25e5513154984545c1737d2
} else {
d13 = d12;
}
-@@ -306,7 +306,7 @@ public class Explosion {
+@@ -309,7 +309,7 @@ public class Explosion {
if (entity instanceof Player) {
Player entityhuman = (Player) entity;
diff --git a/patches/server/0051-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0051-Implement-PlayerLocaleChangeEvent.patch
index 039776ed1c..9695c37f76 100644
--- a/patches/server/0051-Implement-PlayerLocaleChangeEvent.patch
+++ b/patches/server/0051-Implement-PlayerLocaleChangeEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement PlayerLocaleChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index d75c3c10dcbd777796e479b9538e5254857ac07c..ab2336a30c1ffc1698c327c031a648d4121c116e 100644
+index 244be33d0000189556ce7c6714e5a9768c16ba6b..abc8c7928eed1ba385e9ebb0b0cd059c9048d439 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -232,7 +232,7 @@ public class ServerPlayer extends Player {
+@@ -233,7 +233,7 @@ public class ServerPlayer extends Player {
private int levitationStartTime;
private boolean disconnected;
private int requestedViewDistance;
@@ -17,7 +17,7 @@ index d75c3c10dcbd777796e479b9538e5254857ac07c..ab2336a30c1ffc1698c327c031a648d4
public java.util.Locale adventure$locale = java.util.Locale.US; // Paper
@Nullable
private Vec3 startingToFallPosition;
-@@ -288,7 +288,7 @@ public class ServerPlayer extends Player {
+@@ -289,7 +289,7 @@ public class ServerPlayer extends Player {
this.lastActionTime = Util.getMillis();
this.recipeBook = new ServerRecipeBook();
this.requestedViewDistance = 2;
@@ -26,7 +26,7 @@ index d75c3c10dcbd777796e479b9538e5254857ac07c..ab2336a30c1ffc1698c327c031a648d4
this.lastSectionPos = SectionPos.of(0, 0, 0);
this.chunkTrackingView = ChunkTrackingView.EMPTY;
this.respawnDimension = Level.OVERWORLD;
-@@ -2002,9 +2002,10 @@ public class ServerPlayer extends Player {
+@@ -2012,9 +2012,10 @@ public class ServerPlayer extends Player {
PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), this.getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT);
this.server.server.getPluginManager().callEvent(event);
}
diff --git a/patches/server/0053-Configurable-container-update-tick-rate.patch b/patches/server/0053-Configurable-container-update-tick-rate.patch
index 715ffa53d4..22abc975b7 100644
--- a/patches/server/0053-Configurable-container-update-tick-rate.patch
+++ b/patches/server/0053-Configurable-container-update-tick-rate.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable container update tick rate
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index ab2336a30c1ffc1698c327c031a648d4121c116e..532282ba4432f55596337f7a0898ecc3d5dc2148 100644
+index abc8c7928eed1ba385e9ebb0b0cd059c9048d439..1cda7166fe8974f05d20fdbfbced72f101663d56 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -262,6 +262,7 @@ public class ServerPlayer extends Player {
+@@ -263,6 +263,7 @@ public class ServerPlayer extends Player {
public final Object object;
private int containerCounter;
public boolean wonGame;
@@ -16,7 +16,7 @@ index ab2336a30c1ffc1698c327c031a648d4121c116e..532282ba4432f55596337f7a0898ecc3
// CraftBukkit start
public CraftPlayer.TransferCookieConnection transferCookieConnection;
-@@ -679,7 +680,12 @@ public class ServerPlayer extends Player {
+@@ -689,7 +690,12 @@ public class ServerPlayer extends Player {
--this.invulnerableTime;
}
diff --git a/patches/server/0058-Improve-Player-chat-API-handling.patch b/patches/server/0058-Improve-Player-chat-API-handling.patch
index 9f73bcc555..e8b9474487 100644
--- a/patches/server/0058-Improve-Player-chat-API-handling.patch
+++ b/patches/server/0058-Improve-Player-chat-API-handling.patch
@@ -17,7 +17,7 @@ Co-authored-by: Jake Potrebic <[email protected]>
Co-authored-by: SoSeDiK <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e63aadfe5209978f5d515ef9c37df01e08cd8fdb..84c53376312e5f2253521ce2fcac756bc1e5365f 100644
+index 72f3717d931a6635d991d93619c9896ea22e1912..255d39a57e6b440317cb885c1c40f3b116d916ed 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1996,7 +1996,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0067-Disable-Scoreboards-for-non-players-by-default.patch b/patches/server/0067-Disable-Scoreboards-for-non-players-by-default.patch
index 65cd7d8a7a..492c8f6fe9 100644
--- a/patches/server/0067-Disable-Scoreboards-for-non-players-by-default.patch
+++ b/patches/server/0067-Disable-Scoreboards-for-non-players-by-default.patch
@@ -23,7 +23,7 @@ index 406d69220b315b47bd3d03a0dacc39addaaf9294..1cd40266418a3805f05b09c554d561e2
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index e72ca3af948aa223e6ef31bb0972dd036c8f7c2d..70ac2c957341b363246a9165804471d2668e6492 100644
+index a2cbe1fd8aef67cc9c71ef22bf4c7efd9d8d6a95..8f13f53b14209542283586c437e5cbf549ec8e46 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -873,6 +873,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0074-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0074-Handle-Item-Meta-Inconsistencies.patch
index ef76b801d9..53759073e9 100644
--- a/patches/server/0074-Handle-Item-Meta-Inconsistencies.patch
+++ b/patches/server/0074-Handle-Item-Meta-Inconsistencies.patch
@@ -150,7 +150,7 @@ index b6521462d193bff83ace1dc694c6d957a7173969..d302767e8f01fdfcba9c22e2e35677af
static Map<Enchantment, Integer> getEnchantments(net.minecraft.world.item.ItemStack item) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index d8804be1f36872d12484d9b4327d669d19e7c573..122142125dcba97572b1e0b9195e534a0e2257d9 100644
+index e967d6b32d9538d8456d73a67a73e3d3ea16b831..e88364dfe067c605856390d2cce07ba320632df9 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList;
@@ -239,7 +239,7 @@ index d8804be1f36872d12484d9b4327d669d19e7c573..122142125dcba97572b1e0b9195e534a
}
if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) {
-@@ -1492,7 +1495,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1494,7 +1497,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.customModelData = this.customModelData;
clone.blockData = this.blockData;
if (this.enchantments != null) {
@@ -248,7 +248,7 @@ index d8804be1f36872d12484d9b4327d669d19e7c573..122142125dcba97572b1e0b9195e534a
}
if (this.hasAttributeModifiers()) {
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
-@@ -1812,4 +1815,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1814,4 +1817,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return (result != null) ? result : Optional.empty();
}
diff --git a/patches/server/0077-Custom-replacement-for-eaten-items.patch b/patches/server/0077-Custom-replacement-for-eaten-items.patch
index 46944191ba..5aa65e4e45 100644
--- a/patches/server/0077-Custom-replacement-for-eaten-items.patch
+++ b/patches/server/0077-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 70ac2c957341b363246a9165804471d2668e6492..53da8935e076d56f0a5423e5c1bdcdddc7cbd882 100644
+index 8f13f53b14209542283586c437e5cbf549ec8e46..801577d2c9e6eacd8e3038f5b3cdb026c62a5d09 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3802,10 +3802,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3808,10 +3808,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 70ac2c957341b363246a9165804471d2668e6492..53da8935e076d56f0a5423e5c1bdcddd
this.level().getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
-@@ -3819,6 +3820,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3825,6 +3826,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
} else {
itemstack = this.useItem.finishUsingItem(this.level(), this);
}
@@ -34,7 +34,7 @@ index 70ac2c957341b363246a9165804471d2668e6492..53da8935e076d56f0a5423e5c1bdcddd
// CraftBukkit end
if (itemstack != this.useItem) {
-@@ -3826,6 +3833,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3832,6 +3839,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.stopUsingItem();
diff --git a/patches/server/0078-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0078-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index 56e384c127..bb5ee99fa0 100644
--- a/patches/server/0078-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0078-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 53da8935e076d56f0a5423e5c1bdcdddc7cbd882..f02b12f3853bf4bf29b59a505f06cb98bddb40ff 100644
+index 801577d2c9e6eacd8e3038f5b3cdb026c62a5d09..24e6d6c356cccf656cd20bcea069f5fdf123e4c8 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 53da8935e076d56f0a5423e5c1bdcdddc7cbd882..f02b12f3853bf4bf29b59a505f06cb98
// CraftBukkit start - Handle scaled health
if (this instanceof ServerPlayer) {
org.bukkit.craftbukkit.entity.CraftPlayer player = ((ServerPlayer) this).getBukkitEntity();
-@@ -3637,7 +3647,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3643,7 +3653,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public final void setAbsorptionAmount(float absorptionAmount) {
diff --git a/patches/server/0087-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0087-Add-PlayerUseUnknownEntityEvent.patch
index e4e640e70c..94a03303d5 100644
--- a/patches/server/0087-Add-PlayerUseUnknownEntityEvent.patch
+++ b/patches/server/0087-Add-PlayerUseUnknownEntityEvent.patch
@@ -28,7 +28,7 @@ index 1e9c68cd1868d083e6a790d56006dd4aa432010a..8a0ee9564fc36a2badf1357f7e6c47b5
+ // Paper end - PlayerUseUnknownEntityEvent
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 84c53376312e5f2253521ce2fcac756bc1e5365f..444c3d396c117be4de314aafa1625ef69fabf601 100644
+index 255d39a57e6b440317cb885c1c40f3b116d916ed..0d0bc67bd019c6a203cdb46a778d2963359e43f7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2480,7 +2480,26 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0095-EntityRegainHealthEvent-isFastRegen-API.patch b/patches/server/0095-EntityRegainHealthEvent-isFastRegen-API.patch
index 7876757aed..a6481fa8df 100644
--- a/patches/server/0095-EntityRegainHealthEvent-isFastRegen-API.patch
+++ b/patches/server/0095-EntityRegainHealthEvent-isFastRegen-API.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] EntityRegainHealthEvent isFastRegen API
Don't even get me started
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f02b12f3853bf4bf29b59a505f06cb98bddb40ff..399c12a2b14df4786c8e13484a54a73ad8571410 100644
+index 24e6d6c356cccf656cd20bcea069f5fdf123e4c8..7ac642aaf39a73f18c89be2b0c412b57a96e99d9 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1344,10 +1344,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0110-Configurable-packet-in-spam-threshold.patch b/patches/server/0110-Configurable-packet-in-spam-threshold.patch
index ca7788bafa..cb3dbe2ee5 100644
--- a/patches/server/0110-Configurable-packet-in-spam-threshold.patch
+++ b/patches/server/0110-Configurable-packet-in-spam-threshold.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable packet in spam threshold
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 444c3d396c117be4de314aafa1625ef69fabf601..e95251f21dd500850767a9bd3e9512c87bdaaec2 100644
+index 0d0bc67bd019c6a203cdb46a778d2963359e43f7..5af3e01efd4176c828043ffaba341ae21fad3a73 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1522,13 +1522,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0111-Configurable-flying-kick-messages.patch b/patches/server/0111-Configurable-flying-kick-messages.patch
index c398b0d327..d8a269459b 100644
--- a/patches/server/0111-Configurable-flying-kick-messages.patch
+++ b/patches/server/0111-Configurable-flying-kick-messages.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable flying kick messages
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index e95251f21dd500850767a9bd3e9512c87bdaaec2..f75216148bc8b3e357111ff624d8b43592d5d16b 100644
+index 5af3e01efd4176c828043ffaba341ae21fad3a73..31ccca2a4e94cb1b3f43de38907634f7e6e18aa5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -346,7 +346,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0124-Properly-fix-item-duplication-bug.patch b/patches/server/0124-Properly-fix-item-duplication-bug.patch
index 7879e5309a..7e73626956 100644
--- a/patches/server/0124-Properly-fix-item-duplication-bug.patch
+++ b/patches/server/0124-Properly-fix-item-duplication-bug.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Properly fix item duplication bug
Credit to prplz for figuring out the real issue
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 532282ba4432f55596337f7a0898ecc3d5dc2148..82498ec7f0de4c1b82c7882824587ed3ba7fd5d6 100644
+index 1cda7166fe8974f05d20fdbfbced72f101663d56..a5122de4602db3b93a9221e1a9a33bcb73dbe771 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -2549,7 +2549,7 @@ public class ServerPlayer extends Player {
+@@ -2559,7 +2559,7 @@ public class ServerPlayer extends Player {
@Override
public boolean isImmobile() {
diff --git a/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
index 5a6cb6d9be..98bbd87f00 100644
--- a/patches/server/0129-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
+++ b/patches/server/0129-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 399c12a2b14df4786c8e13484a54a73ad8571410..b51f4172b7135689fcd99b380f1a78bf8e723cfa 100644
+index 7ac642aaf39a73f18c89be2b0c412b57a96e99d9..c6e666f57c199b4408b32e076622ba05b42fcea9 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1813,7 +1813,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1819,7 +1819,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/0130-Cap-Entity-Collisions.patch b/patches/server/0130-Cap-Entity-Collisions.patch
index 3178a0a8f1..3fefadf5a6 100644
--- a/patches/server/0130-Cap-Entity-Collisions.patch
+++ b/patches/server/0130-Cap-Entity-Collisions.patch
@@ -24,10 +24,10 @@ index 10687787a5fd1a81ad5a625848db4649381eab67..9f906e51f236e84f6cee8eba4b7587ed
@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 b51f4172b7135689fcd99b380f1a78bf8e723cfa..177ad43b62c6e1efc0ae6298e464debdf66b1055 100644
+index c6e666f57c199b4408b32e076622ba05b42fcea9..134106c7c98c87e593157a794287973327d055fc 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3454,10 +3454,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3460,10 +3460,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
Iterator iterator1 = list.iterator();
diff --git a/patches/server/0133-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/server/0133-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
index afefe47c9c..26653206d0 100644
--- a/patches/server/0133-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
+++ b/patches/server/0133-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
@@ -14,7 +14,7 @@ To be converted into a Paper-API event at some point in the future?
public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f75216148bc8b3e357111ff624d8b43592d5d16b..9e26cd52dfe77049019a417cd3999103647c037f 100644
+index 31ccca2a4e94cb1b3f43de38907634f7e6e18aa5..385dd65af8b526d128ac4c99cecdb69aad9f9a07 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2242,6 +2242,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0136-Item-canEntityPickup.patch b/patches/server/0136-Item-canEntityPickup.patch
index 4b622591cc..d38a9da345 100644
--- a/patches/server/0136-Item-canEntityPickup.patch
+++ b/patches/server/0136-Item-canEntityPickup.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Item#canEntityPickup
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 0e88a2212435ff70b5ee661de3977df2b456b29b..2f33036a78a120898b18301bae1585c65fdb69dc 100644
+index 426fa1798087ab1fb4198bd036f498606dce7c3f..e159da8a8dcff686e93d09a15141233915c264bf 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -715,6 +715,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0155-Add-PlayerJumpEvent.patch b/patches/server/0155-Add-PlayerJumpEvent.patch
index e9c26db028..df545a0e0c 100644
--- a/patches/server/0155-Add-PlayerJumpEvent.patch
+++ b/patches/server/0155-Add-PlayerJumpEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerJumpEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 9e26cd52dfe77049019a417cd3999103647c037f..f6019435a90979ed6f966cc6e8288f05ff889d5e 100644
+index 385dd65af8b526d128ac4c99cecdb69aad9f9a07..74c7a690f654558baf12ba2085d0e897a45c0baa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1204,7 +1204,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0160-Add-PlayerArmorChangeEvent.patch b/patches/server/0160-Add-PlayerArmorChangeEvent.patch
index b06adec4a2..e99409e6ec 100644
--- a/patches/server/0160-Add-PlayerArmorChangeEvent.patch
+++ b/patches/server/0160-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 177ad43b62c6e1efc0ae6298e464debdf66b1055..45eef550358b0f3e6780d98c43c5856ff44ae313 100644
+index 134106c7c98c87e593157a794287973327d055fc..4f742679669aea2a19267f3774da1f8b094a45cf 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3137,6 +3137,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3143,6 +3143,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
ItemStack itemstack2 = this.getItemBySlot(enumitemslot);
if (this.equipmentHasChanged(itemstack1, itemstack2)) {
diff --git a/patches/server/0165-AsyncTabCompleteEvent.patch b/patches/server/0165-AsyncTabCompleteEvent.patch
index f90e0edaae..3ee3add615 100644
--- a/patches/server/0165-AsyncTabCompleteEvent.patch
+++ b/patches/server/0165-AsyncTabCompleteEvent.patch
@@ -16,7 +16,7 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent
Co-authored-by: Aikar <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f6019435a90979ed6f966cc6e8288f05ff889d5e..ae0e3694f3971908cb472b1165d2649265e1bdca 100644
+index 74c7a690f654558baf12ba2085d0e897a45c0baa..1b563aa6be76286c49ad3f037cb70b01d33c4458 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -708,21 +708,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch
index a022415f3d..e8b8f3b1e7 100644
--- a/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch
+++ b/patches/server/0168-PlayerNaturallySpawnCreaturesEvent.patch
@@ -60,10 +60,10 @@ index 3f60a3289ec58d5eb3c0c5634ca62ef2fa287ce7..bc81649b09c39188697b8851abedafca
boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getLevelData().getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
Iterator iterator1 = list.iterator();
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 82498ec7f0de4c1b82c7882824587ed3ba7fd5d6..84e8ab9bdd4911412732e490ff8d10ba93d67f45 100644
+index a5122de4602db3b93a9221e1a9a33bcb73dbe771..785c7e56a053acffa79fb11a32849d99961e35a4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -281,6 +281,7 @@ public class ServerPlayer extends Player {
+@@ -282,6 +282,7 @@ public class ServerPlayer extends Player {
// CraftBukkit end
public boolean isRealPlayer; // Paper
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/patches/server/0180-Player.setPlayerProfile-API.patch b/patches/server/0180-Player.setPlayerProfile-API.patch
index 9c4d661771..df4d417358 100644
--- a/patches/server/0180-Player.setPlayerProfile-API.patch
+++ b/patches/server/0180-Player.setPlayerProfile-API.patch
@@ -9,7 +9,7 @@ This can be useful for changing name or skins after a player has logged in.
public-f net.minecraft.world.entity.player.Player gameProfile
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ae0e3694f3971908cb472b1165d2649265e1bdca..66ca4d1f28143d1e4ce99532c6c2bd64cde67024 100644
+index 1b563aa6be76286c49ad3f037cb70b01d33c4458..c3bd22a0a4220d14aaad3821ffc920001c0b290b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1459,7 +1459,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0203-Make-shield-blocking-delay-configurable.patch b/patches/server/0203-Make-shield-blocking-delay-configurable.patch
index df30f32224..1615b19324 100644
--- a/patches/server/0203-Make-shield-blocking-delay-configurable.patch
+++ b/patches/server/0203-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 45eef550358b0f3e6780d98c43c5856ff44ae313..dce35cc6f81440cd7c6af330d5dc5416e6faf179 100644
+index 4f742679669aea2a19267f3774da1f8b094a45cf..3f50533b89345a74392e0e6ef0407e6aa544876e 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3911,12 +3911,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3917,12 +3917,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/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch
index fb37d7ab55..424865e8cf 100644
--- a/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch
+++ b/patches/server/0206-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch
@@ -39,10 +39,10 @@ index e612921a7fb68dd74d8fd4084a8beccc299ff6ea..49b100e2cf9868c4f06aae0bf538fcd4
protected void markHurt() {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index dce35cc6f81440cd7c6af330d5dc5416e6faf179..7d44d4563e39f279cf335f307a4d84d0758858ee 100644
+index 3f50533b89345a74392e0e6ef0407e6aa544876e..b153247b4be38e8ecaf3df64db55df88b7501cfd 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1587,7 +1587,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1593,7 +1593,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
protected void blockedByShield(LivingEntity target) {
@@ -51,7 +51,7 @@ index dce35cc6f81440cd7c6af330d5dc5416e6faf179..7d44d4563e39f279cf335f307a4d84d0
}
private boolean checkTotemDeathProtection(DamageSource source) {
-@@ -1850,7 +1850,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1856,7 +1856,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.knockback(strength, x, z, null, EntityKnockbackEvent.KnockbackCause.UNKNOWN);
}
@@ -60,7 +60,7 @@ index dce35cc6f81440cd7c6af330d5dc5416e6faf179..7d44d4563e39f279cf335f307a4d84d0
d0 *= 1.0D - this.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE);
if (true || d0 > 0.0D) { // CraftBukkit - Call event even when force is 0
//this.hasImpulse = true; // CraftBukkit - Move down
-@@ -1862,8 +1862,22 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1868,8 +1868,22 @@ public abstract class LivingEntity extends Entity implements Attackable {
return;
}
@@ -218,16 +218,14 @@ index 9f9b7373c9a714597858ddcd8932e31b902cf5a1..f7f26d595072372004143c4e26506ed5
public abstract void explode();
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 111e6a7ab25e5513154984545c1737d2f7fd7d5f..146f5a33e1d538e46e4f7034a498d30f742a96f7 100644
+index 94f72ff58ac5206878a81e89d32e81c17b1bd1fb..b5b29210d9a6125d98e7dd737ca25f40545e512b 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
-@@ -299,7 +299,17 @@ public class Explosion {
- Vec3 result = entity.getDeltaMovement().add(vec3d1);
- org.bukkit.event.entity.EntityKnockbackEvent event = CraftEventFactory.callEntityKnockbackEvent((org.bukkit.craftbukkit.entity.CraftLivingEntity) entity.getBukkitEntity(), this.source, org.bukkit.event.entity.EntityKnockbackEvent.KnockbackCause.EXPLOSION, d13, vec3d1, result.x, result.y, result.z);
-
-- vec3d1 = (event.isCancelled()) ? Vec3.ZERO : new Vec3(event.getFinalKnockback().getX(), event.getFinalKnockback().getY(), event.getFinalKnockback().getZ());
+@@ -303,6 +303,16 @@ public class Explosion {
+ // since the code below (the setDeltaMovement call as well as the hitPlayers map)
+ // want the vector to be the relative velocity will the event provides the absolute velocity
+ vec3d1 = (event.isCancelled()) ? Vec3.ZERO : new Vec3(event.getFinalKnockback().getX(), event.getFinalKnockback().getY(), event.getFinalKnockback().getZ()).subtract(entity.getDeltaMovement());
+ // Paper start - call EntityKnockbackByEntityEvent for explosions
-+ vec3d1 = (event.isCancelled()) ? Vec3.ZERO : new Vec3(event.getFinalKnockback().getX(), event.getFinalKnockback().getY(), event.getFinalKnockback().getZ()).subtract(entity.getDeltaMovement()); // changes on this line fix a bug where vec3d1 wasn't reassigned with the "change", but instead the final deltaMovement
+ if (this.damageSource.getEntity() != null || this.source != null) {
+ final org.bukkit.entity.Entity hitBy = this.damageSource.getEntity() != null ? this.damageSource.getEntity().getBukkitEntity() : this.source.getBukkitEntity();
+ com.destroystokyo.paper.event.entity.EntityKnockbackByEntityEvent paperEvent = new com.destroystokyo.paper.event.entity.EntityKnockbackByEntityEvent(((LivingEntity) entity).getBukkitLivingEntity(), hitBy, (float) event.getForce(), org.bukkit.craftbukkit.util.CraftVector.toBukkit(vec3d1));
diff --git a/patches/server/0212-InventoryCloseEvent-Reason-API.patch b/patches/server/0212-InventoryCloseEvent-Reason-API.patch
index 64b3489350..a1467b88e7 100644
--- a/patches/server/0212-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0212-InventoryCloseEvent-Reason-API.patch
@@ -29,10 +29,10 @@ index 82947c9743433df9c03732e0a3229563de0ab53c..6f2e316480c4cd1ffb32e8d01009a18c
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 84e8ab9bdd4911412732e490ff8d10ba93d67f45..e073b48ed6cbefc503216615f54d09b309217d80 100644
+index 785c7e56a053acffa79fb11a32849d99961e35a4..c8084bdb20f1f21efc713c58d441096a31d79988 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -688,7 +688,7 @@ public class ServerPlayer extends Player {
+@@ -698,7 +698,7 @@ public class ServerPlayer extends Player {
}
// Paper end - Configurable container update tick rate
if (!this.level().isClientSide && !this.containerMenu.stillValid(this)) {
@@ -41,7 +41,7 @@ index 84e8ab9bdd4911412732e490ff8d10ba93d67f45..e073b48ed6cbefc503216615f54d09b3
this.containerMenu = this.inventoryMenu;
}
-@@ -908,7 +908,7 @@ public class ServerPlayer extends Player {
+@@ -918,7 +918,7 @@ public class ServerPlayer extends Player {
// SPIGOT-943 - only call if they have an inventory open
if (this.containerMenu != this.inventoryMenu) {
@@ -50,7 +50,7 @@ index 84e8ab9bdd4911412732e490ff8d10ba93d67f45..e073b48ed6cbefc503216615f54d09b3
}
net.kyori.adventure.text.Component deathMessage = event.deathMessage() != null ? event.deathMessage() : net.kyori.adventure.text.Component.empty(); // Paper - Adventure
-@@ -1549,7 +1549,7 @@ public class ServerPlayer extends Player {
+@@ -1559,7 +1559,7 @@ public class ServerPlayer extends Player {
}
// CraftBukkit end
if (this.containerMenu != this.inventoryMenu) {
@@ -59,7 +59,7 @@ index 84e8ab9bdd4911412732e490ff8d10ba93d67f45..e073b48ed6cbefc503216615f54d09b3
}
// this.nextContainerCounter(); // CraftBukkit - moved up
-@@ -1577,7 +1577,13 @@ public class ServerPlayer extends Player {
+@@ -1587,7 +1587,13 @@ public class ServerPlayer extends Player {
@Override
public void closeContainer() {
@@ -75,7 +75,7 @@ index 84e8ab9bdd4911412732e490ff8d10ba93d67f45..e073b48ed6cbefc503216615f54d09b3
this.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 66ca4d1f28143d1e4ce99532c6c2bd64cde67024..18a0dc407331cc3c85dc84580419e0c241e72435 100644
+index c3bd22a0a4220d14aaad3821ffc920001c0b290b..b0066e5ccd5b11a3a31c41dce513905c23459088 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2606,10 +2606,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index 2cb488e718..38847f0bec 100644
--- a/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/patches/server/0214-Refresh-player-inventory-when-cancelling-PlayerInter.patch
@@ -16,7 +16,7 @@ Refresh the player inventory when PlayerInteractEntityEvent is
cancelled to avoid this problem.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 18a0dc407331cc3c85dc84580419e0c241e72435..6755bc8f53253e5fcaaa94f7b505cdbe82d43a57 100644
+index b0066e5ccd5b11a3a31c41dce513905c23459088..a8c48cc286807a742838d372dc6dc2d2bb843f89 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2483,6 +2483,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0227-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0227-Break-up-and-make-tab-spam-limits-configurable.patch
index 444c042a87..70d25047c5 100644
--- a/patches/server/0227-Break-up-and-make-tab-spam-limits-configurable.patch
+++ b/patches/server/0227-Break-up-and-make-tab-spam-limits-configurable.patch
@@ -22,7 +22,7 @@ to take the burden of this into their own hand without having to rely on
plugins doing unsafe things.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6755bc8f53253e5fcaaa94f7b505cdbe82d43a57..dfaed8544c84f00d6092f7acab2193ee0228f9cf 100644
+index a8c48cc286807a742838d372dc6dc2d2bb843f89..b74bee4fa7bd222e5bb707f00aebe437dfa0886a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -265,6 +265,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0245-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/server/0245-Add-ray-tracing-methods-to-LivingEntity.patch
index 6059533369..262e7ecb7c 100644
--- a/patches/server/0245-Add-ray-tracing-methods-to-LivingEntity.patch
+++ b/patches/server/0245-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 7d44d4563e39f279cf335f307a4d84d0758858ee..67ba23c66e253d3a96f6b08a5580387859652aa2 100644
+index b153247b4be38e8ecaf3df64db55df88b7501cfd..337fda9f87ece1fc2264ae6a2af2b7abbb23d788 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3932,6 +3932,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3938,6 +3938,19 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
// Paper start - Make shield blocking delay configurable
diff --git a/patches/server/0247-Improve-death-events.patch b/patches/server/0247-Improve-death-events.patch
index 5bb85c8f53..20e3960aea 100644
--- a/patches/server/0247-Improve-death-events.patch
+++ b/patches/server/0247-Improve-death-events.patch
@@ -19,10 +19,10 @@ public net.minecraft.world.entity.LivingEntity getDeathSound()Lnet/minecraft/sou
public net.minecraft.world.entity.LivingEntity getSoundVolume()F
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e073b48ed6cbefc503216615f54d09b309217d80..c97410f580f31389987ef944fc410e44459a4693 100644
+index c8084bdb20f1f21efc713c58d441096a31d79988..4c0afa2589606d2748e54961f2a25e28a5309073 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -263,6 +263,10 @@ public class ServerPlayer extends Player {
+@@ -264,6 +264,10 @@ public class ServerPlayer extends Player {
private int containerCounter;
public boolean wonGame;
private int containerUpdateDelay; // Paper - Configurable container update tick rate
@@ -33,7 +33,7 @@ index e073b48ed6cbefc503216615f54d09b309217d80..c97410f580f31389987ef944fc410e44
// CraftBukkit start
public CraftPlayer.TransferCookieConnection transferCookieConnection;
-@@ -877,7 +881,7 @@ public class ServerPlayer extends Player {
+@@ -887,7 +891,7 @@ public class ServerPlayer extends Player {
@Override
public void die(DamageSource damageSource) {
@@ -42,7 +42,7 @@ index e073b48ed6cbefc503216615f54d09b309217d80..c97410f580f31389987ef944fc410e44
boolean flag = this.level().getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES);
// CraftBukkit start - fire PlayerDeathEvent
if (this.isRemoved()) {
-@@ -905,6 +909,16 @@ public class ServerPlayer extends Player {
+@@ -915,6 +919,16 @@ public class ServerPlayer extends Player {
String deathmessage = defaultMessage.getString();
this.keepLevel = keepInventory; // SPIGOT-2222: pre-set keepLevel
org.bukkit.event.entity.PlayerDeathEvent event = CraftEventFactory.callPlayerDeathEvent(this, loot, PaperAdventure.asAdventure(defaultMessage), keepInventory); // Paper - Adventure
@@ -59,7 +59,7 @@ index e073b48ed6cbefc503216615f54d09b309217d80..c97410f580f31389987ef944fc410e44
// SPIGOT-943 - only call if they have an inventory open
if (this.containerMenu != this.inventoryMenu) {
-@@ -1053,8 +1067,17 @@ public class ServerPlayer extends Player {
+@@ -1063,8 +1077,17 @@ public class ServerPlayer extends Player {
}
}
}
@@ -80,7 +80,7 @@ index e073b48ed6cbefc503216615f54d09b309217d80..c97410f580f31389987ef944fc410e44
}
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6e4cbb2cb 100644
+index 337fda9f87ece1fc2264ae6a2af2b7abbb23d788..21d2c43a97122025edd91662e39d44cc867593a3 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 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
@Override
public float getBukkitYaw() {
-@@ -1543,11 +1544,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1549,11 +1550,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (this.isDeadOrDying()) {
if (!this.checkTotemDeathProtection(source)) {
@@ -107,7 +107,7 @@ index 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
}
} else if (flag1) {
this.playHurtSound(source);
-@@ -1706,6 +1708,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1712,6 +1714,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
Entity entity = damageSource.getEntity();
LivingEntity entityliving = this.getKillCredit();
@@ -115,7 +115,7 @@ index 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
if (this.deathScore >= 0 && entityliving != null) {
entityliving.awardKillScore(this, this.deathScore, damageSource);
}
-@@ -1717,24 +1720,59 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1723,24 +1726,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 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
}
}
-@@ -1742,7 +1780,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1748,7 +1786,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (!this.level().isClientSide) {
boolean flag = false;
@@ -189,7 +189,7 @@ index 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
if (this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
BlockPos blockposition = this.blockPosition();
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
-@@ -1771,7 +1809,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1777,7 +1815,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}
@@ -202,7 +202,7 @@ index 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
Entity entity = source.getEntity();
int i;
-@@ -1786,18 +1828,27 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1792,18 +1834,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);
@@ -232,7 +232,7 @@ index 67ba23c66e253d3a96f6b08a5580387859652aa2..a770d2bda45cee739a5371119018e6f6
// CraftBukkit start
public int getExpReward() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 2f33036a78a120898b18301bae1585c65fdb69dc..f91d6cc59f203fc67e38ba92159dbae22b6dbfac 100644
+index e159da8a8dcff686e93d09a15141233915c264bf..4c0f7741e199e4bb03767effda669bbbc9f0d233 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1170,6 +1170,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0257-Add-LivingEntity-getTargetEntity.patch b/patches/server/0257-Add-LivingEntity-getTargetEntity.patch
index 44504af9dc..8f82d5749b 100644
--- a/patches/server/0257-Add-LivingEntity-getTargetEntity.patch
+++ b/patches/server/0257-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 a770d2bda45cee739a5371119018e6f6e4cbb2cb..9f97c1c18d7f7e084897f584be77b128c5cbfa13 100644
+index 21d2c43a97122025edd91662e39d44cc867593a3..bac78415e34d41e3a5de482b86185f2202ecf068 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 a770d2bda45cee739a5371119018e6f6e4cbb2cb..9f97c1c18d7f7e084897f584be77b128
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.scores.PlayerTeam;
-@@ -3996,6 +3997,38 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4002,6 +4003,38 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.level().clip(raytrace);
}
diff --git a/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch b/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch
index 6c50ec8023..d584dd8b7d 100644
--- a/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch
+++ b/patches/server/0261-Call-player-spectator-target-events-and-improve-impl.patch
@@ -19,10 +19,10 @@ spectate the target entity.
Co-authored-by: Spottedleaf <[email protected]>
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c97410f580f31389987ef944fc410e44459a4693..b331af6de6a23dedf6cd21b97cb81048db215f10 100644
+index 4c0afa2589606d2748e54961f2a25e28a5309073..bea2c72cf0f4bed73984cde8f7d06cef797cd769 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -2123,6 +2123,21 @@ public class ServerPlayer extends Player {
+@@ -2133,6 +2133,21 @@ public class ServerPlayer extends Player {
this.camera = (Entity) (entity == null ? this : entity);
if (entity1 != this.camera) {
diff --git a/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch
index 0c5151b43a..278991d650 100644
--- a/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch
+++ b/patches/server/0264-Add-option-to-prevent-players-from-moving-into-unloa.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add option to prevent players from moving into unloaded
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index dfaed8544c84f00d6092f7acab2193ee0228f9cf..edf138c1671592fecfbb532015cda3542dd3f690 100644
+index b74bee4fa7bd222e5bb707f00aebe437dfa0886a..2cfd937f30e481038483a6ba2c552f5da316c66e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -494,9 +494,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0265-Reset-players-airTicks-on-respawn.patch b/patches/server/0265-Reset-players-airTicks-on-respawn.patch
index 792f05094a..0754da0a5c 100644
--- a/patches/server/0265-Reset-players-airTicks-on-respawn.patch
+++ b/patches/server/0265-Reset-players-airTicks-on-respawn.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Reset players airTicks on respawn
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b331af6de6a23dedf6cd21b97cb81048db215f10..3b71ea8263b2049c54432a64c7f01aed3848d1c7 100644
+index bea2c72cf0f4bed73984cde8f7d06cef797cd769..91ce1788e2a019c15fba2daf9ee383618f874fd4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -2614,6 +2614,7 @@ public class ServerPlayer extends Player {
+@@ -2624,6 +2624,7 @@ public class ServerPlayer extends Player {
this.setHealth(this.getMaxHealth());
this.stopUsingItem(); // CraftBukkit - SPIGOT-6682: Clear active item on reset
diff --git a/patches/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch
index e7f3a33daa..fb98100e18 100644
--- a/patches/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch
+++ b/patches/server/0271-Don-t-allow-digging-into-unloaded-chunks.patch
@@ -59,7 +59,7 @@ index 5f2dec1917f1c1c3bb69446832321f3fc21dc129..cd6f34ee326228036f8c025e4e6d04e0
this.level.destroyBlockProgress(this.player.getId(), pos, -1);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index edf138c1671592fecfbb532015cda3542dd3f690..578d70b6962201237069aba1208923fb7465e388 100644
+index 2cfd937f30e481038483a6ba2c552f5da316c66e..b137faaf3a6f12b532555bfeebf245f0d6b38c59 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1583,6 +1583,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0273-force-entity-dismount-during-teleportation.patch b/patches/server/0273-force-entity-dismount-during-teleportation.patch
index 273b4e4634..b68fcb14b3 100644
--- a/patches/server/0273-force-entity-dismount-during-teleportation.patch
+++ b/patches/server/0273-force-entity-dismount-during-teleportation.patch
@@ -72,10 +72,10 @@ index d39aec1b3233e91aa5b953396d876e7466a9a5bc..28708e1e8ade8fbfec24120478d250dd
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 9f97c1c18d7f7e084897f584be77b128c5cbfa13..709bcc209299fcc5a593c1b4c93a179af2b5eff1 100644
+index bac78415e34d41e3a5de482b86185f2202ecf068..a4eee658ecfc0f25e854c17a7715cb16715859b1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3579,9 +3579,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3585,9 +3585,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Override
public void stopRiding() {
diff --git a/patches/server/0275-Book-Size-Limits.patch b/patches/server/0275-Book-Size-Limits.patch
index 2a4e92854c..1a377ffc13 100644
--- a/patches/server/0275-Book-Size-Limits.patch
+++ b/patches/server/0275-Book-Size-Limits.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Book Size Limits
Puts some limits on the size of books.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 578d70b6962201237069aba1208923fb7465e388..b277029f20f27431d62f05bf8fbd65095c5b15a8 100644
+index b137faaf3a6f12b532555bfeebf245f0d6b38c59..8892e4a7ba98421cc41d5cabdb45ff8de755a442 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1040,6 +1040,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0277-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0277-Replace-OfflinePlayer-getLastPlayed.patch
index aa6050d048..0ccff4ef31 100644
--- a/patches/server/0277-Replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0277-Replace-OfflinePlayer-getLastPlayed.patch
@@ -16,10 +16,10 @@ intent to remove) and replace it with two new methods, clearly named and
documented as to their purpose.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 3b71ea8263b2049c54432a64c7f01aed3848d1c7..05379ea4581db4277e6cc625ed0f3228bd0130fd 100644
+index 91ce1788e2a019c15fba2daf9ee383618f874fd4..74da4c332045cb749104f2bc573e3116df91d01f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -263,6 +263,7 @@ public class ServerPlayer extends Player {
+@@ -264,6 +264,7 @@ public class ServerPlayer extends Player {
private int containerCounter;
public boolean wonGame;
private int containerUpdateDelay; // Paper - Configurable container update tick rate
diff --git a/patches/server/0278-Workaround-for-vehicle-tracking-issue-on-disconnect.patch b/patches/server/0278-Workaround-for-vehicle-tracking-issue-on-disconnect.patch
index 0b04379c7c..8362051b8a 100644
--- a/patches/server/0278-Workaround-for-vehicle-tracking-issue-on-disconnect.patch
+++ b/patches/server/0278-Workaround-for-vehicle-tracking-issue-on-disconnect.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Workaround for vehicle tracking issue on disconnect
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 05379ea4581db4277e6cc625ed0f3228bd0130fd..e5d8384830c83694a3560fc743dc38e645cf9cfd 100644
+index 74da4c332045cb749104f2bc573e3116df91d01f..8fa241f2f229a8b0950bc1f8a7de61a02bc1020c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1789,6 +1789,13 @@ public class ServerPlayer extends Player {
+@@ -1799,6 +1799,13 @@ public class ServerPlayer extends Player {
public void disconnect() {
this.disconnected = true;
this.ejectPassengers();
diff --git a/patches/server/0282-Brigadier-Mojang-API.patch b/patches/server/0282-Brigadier-Mojang-API.patch
index 55b1c9b8a9..a406a36b20 100644
--- a/patches/server/0282-Brigadier-Mojang-API.patch
+++ b/patches/server/0282-Brigadier-Mojang-API.patch
@@ -131,7 +131,7 @@ index b754c0b3e2cd878fca5f702daca64f837ec83451..f15c388434a0a501f86868de35cc1387
if (commandnode2.canUse(source)) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b277029f20f27431d62f05bf8fbd65095c5b15a8..afe102a677546dd16b91433c7a50c62a05a00b20 100644
+index 8892e4a7ba98421cc41d5cabdb45ff8de755a442..e241e0cae476ba963aff70b4f7ab038f07207303 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -766,19 +766,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0284-Limit-Client-Sign-length-more.patch b/patches/server/0284-Limit-Client-Sign-length-more.patch
index 3d821a4879..4ebb76bc89 100644
--- a/patches/server/0284-Limit-Client-Sign-length-more.patch
+++ b/patches/server/0284-Limit-Client-Sign-length-more.patch
@@ -22,7 +22,7 @@ it only impacts data sent from the client.
Set -DPaper.maxSignLength=XX to change limit or -1 to disable
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index afe102a677546dd16b91433c7a50c62a05a00b20..4e649fe68c6d0cf42e35f821457064656410d823 100644
+index e241e0cae476ba963aff70b4f7ab038f07207303..fedc4654178a3771004394665914efd2b842432a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -299,6 +299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0291-PlayerDeathEvent-getItemsToKeep.patch b/patches/server/0291-PlayerDeathEvent-getItemsToKeep.patch
index b9fa9fdd39..ae34cde5f2 100644
--- a/patches/server/0291-PlayerDeathEvent-getItemsToKeep.patch
+++ b/patches/server/0291-PlayerDeathEvent-getItemsToKeep.patch
@@ -11,10 +11,10 @@ Example Usage: https://gist.github.com/aikar/5bb202de6057a051a950ce1f29feb0b4
public net.minecraft.world.entity.player.Inventory compartments
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e5d8384830c83694a3560fc743dc38e645cf9cfd..209d9f294a387e63b725be76cb645ca8925fa5a4 100644
+index 8fa241f2f229a8b0950bc1f8a7de61a02bc1020c..0fd8af120734973d425dbd286a59d2b9c1a05162 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -880,6 +880,46 @@ public class ServerPlayer extends Player {
+@@ -890,6 +890,46 @@ public class ServerPlayer extends Player {
});
}
@@ -61,7 +61,7 @@ index e5d8384830c83694a3560fc743dc38e645cf9cfd..209d9f294a387e63b725be76cb645ca8
@Override
public void die(DamageSource damageSource) {
// this.gameEvent(GameEvent.ENTITY_DIE); // Paper - move below event cancellation check
-@@ -964,7 +1004,12 @@ public class ServerPlayer extends Player {
+@@ -974,7 +1014,12 @@ public class ServerPlayer extends Player {
this.dropExperience();
// we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory.
if (!event.getKeepInventory()) {
diff --git a/patches/server/0303-Prevent-consuming-the-wrong-itemstack.patch b/patches/server/0303-Prevent-consuming-the-wrong-itemstack.patch
index b3336ee24c..2ff170a3bf 100644
--- a/patches/server/0303-Prevent-consuming-the-wrong-itemstack.patch
+++ b/patches/server/0303-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 709bcc209299fcc5a593c1b4c93a179af2b5eff1..ba18e2decde409b40ac73c66b015419e219c759a 100644
+index a4eee658ecfc0f25e854c17a7715cb16715859b1..d88b13be2d72cc40c5ca846a55eece1d9ca5fd37 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3815,9 +3815,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3821,9 +3821,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public void startUsingItem(InteractionHand hand) {
@@ -24,7 +24,7 @@ index 709bcc209299fcc5a593c1b4c93a179af2b5eff1..ba18e2decde409b40ac73c66b015419e
this.useItem = itemstack;
this.useItemRemaining = itemstack.getUseDuration();
if (!this.level().isClientSide) {
-@@ -3897,6 +3902,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3903,6 +3908,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.releaseUsingItem();
} else {
if (!this.useItem.isEmpty() && this.isUsingItem()) {
@@ -32,7 +32,7 @@ index 709bcc209299fcc5a593c1b4c93a179af2b5eff1..ba18e2decde409b40ac73c66b015419e
this.triggerItemUseEffects(this.useItem, 16);
// CraftBukkit start - fire PlayerItemConsumeEvent
ItemStack itemstack;
-@@ -3931,8 +3937,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3937,8 +3943,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.stopUsingItem();
diff --git a/patches/server/0309-PlayerDeathEvent-shouldDropExperience.patch b/patches/server/0309-PlayerDeathEvent-shouldDropExperience.patch
index 4a5a9b4d6c..371eaa1631 100644
--- a/patches/server/0309-PlayerDeathEvent-shouldDropExperience.patch
+++ b/patches/server/0309-PlayerDeathEvent-shouldDropExperience.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerDeathEvent#shouldDropExperience
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 209d9f294a387e63b725be76cb645ca8925fa5a4..9d08ff6024c6036dce57c833c1413033c8b2ef2c 100644
+index 0fd8af120734973d425dbd286a59d2b9c1a05162..760ec9a315ff254b4c1e44310e3c1e2f7ab57125 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1001,7 +1001,7 @@ public class ServerPlayer extends Player {
+@@ -1011,7 +1011,7 @@ public class ServerPlayer extends Player {
this.tellNeutralMobsThatIDied();
}
// SPIGOT-5478 must be called manually now
diff --git a/patches/server/0314-Optimize-call-to-getFluid-for-explosions.patch b/patches/server/0314-Optimize-call-to-getFluid-for-explosions.patch
index 311cde37d6..fae5cedf53 100644
--- a/patches/server/0314-Optimize-call-to-getFluid-for-explosions.patch
+++ b/patches/server/0314-Optimize-call-to-getFluid-for-explosions.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize call to getFluid for explosions
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 146f5a33e1d538e46e4f7034a498d30f742a96f7..b54a5c496ea7f1999c1b10219e72e9ce79921c99 100644
+index b5b29210d9a6125d98e7dd737ca25f40545e512b..30109db978563fab1a33b450f0ca82e176539703 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -192,7 +192,7 @@ public class Explosion {
diff --git a/patches/server/0324-Entity-Jump-API.patch b/patches/server/0324-Entity-Jump-API.patch
index 6debbbab6a..33973d1d65 100644
--- a/patches/server/0324-Entity-Jump-API.patch
+++ b/patches/server/0324-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 ba18e2decde409b40ac73c66b015419e219c759a..67aa02a223345a91fe0b30b36966995e304c82bb 100644
+index d88b13be2d72cc40c5ca846a55eece1d9ca5fd37..c2934dc1d87bd8211714ab8af8ddfc32695b7953 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3395,8 +3395,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3401,8 +3401,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/0336-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0336-Pillager-patrol-spawn-settings-and-per-player-option.patch
index 1e050126e8..95935c86fc 100644
--- a/patches/server/0336-Pillager-patrol-spawn-settings-and-per-player-option.patch
+++ b/patches/server/0336-Pillager-patrol-spawn-settings-and-per-player-option.patch
@@ -10,10 +10,10 @@ When not per player it will use the Vanilla mechanic of one delay per
world and the world age for the start day.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9d08ff6024c6036dce57c833c1413033c8b2ef2c..9f88d1771cefc4700911f1cd9841eb80fc7278a4 100644
+index 760ec9a315ff254b4c1e44310e3c1e2f7ab57125..2c9494fb52c39a6aacd4d1dd553ca08e96abca78 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -264,6 +264,7 @@ public class ServerPlayer extends Player {
+@@ -265,6 +265,7 @@ public class ServerPlayer extends Player {
public boolean wonGame;
private int containerUpdateDelay; // Paper - Configurable container update tick rate
public long loginTime; // Paper - Replace OfflinePlayer#getLastPlayed
diff --git a/patches/server/0340-Don-t-tick-dead-players.patch b/patches/server/0340-Don-t-tick-dead-players.patch
index 742fc27e78..52e63e2774 100644
--- a/patches/server/0340-Don-t-tick-dead-players.patch
+++ b/patches/server/0340-Don-t-tick-dead-players.patch
@@ -7,10 +7,10 @@ Causes sync chunk loads and who knows what all else.
This is safe because Spectators are skipped in unloaded chunks too in vanilla.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9f88d1771cefc4700911f1cd9841eb80fc7278a4..74e8aef45702eef0dcabc7841a7c7125cc066cbe 100644
+index 2c9494fb52c39a6aacd4d1dd553ca08e96abca78..4a9b5238cd1ab99920756d72c2ff32e04b35935a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -748,7 +748,7 @@ public class ServerPlayer extends Player {
+@@ -758,7 +758,7 @@ public class ServerPlayer extends Player {
public void doTick() {
try {
diff --git a/patches/server/0342-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0342-Don-t-move-existing-players-to-world-spawn.patch
index d81ed62207..781abaf10c 100644
--- a/patches/server/0342-Don-t-move-existing-players-to-world-spawn.patch
+++ b/patches/server/0342-Don-t-move-existing-players-to-world-spawn.patch
@@ -13,10 +13,10 @@ By skipping this, we avoid potential for a large spike on server start.
public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 74e8aef45702eef0dcabc7841a7c7125cc066cbe..618efe10752c968142fcc0f28a533d3515ef3367 100644
+index 4a9b5238cd1ab99920756d72c2ff32e04b35935a..af40929f5d90973d8e624b98d5059fcce237b659 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -352,7 +352,7 @@ public class ServerPlayer extends Player {
+@@ -353,7 +353,7 @@ public class ServerPlayer extends Player {
this.server = server;
this.stats = server.getPlayerList().getPlayerStats(this);
this.advancements = server.getPlayerList().getPlayerAdvancements(this);
@@ -25,7 +25,7 @@ index 74e8aef45702eef0dcabc7841a7c7125cc066cbe..618efe10752c968142fcc0f28a533d35
this.updateOptions(clientOptions);
this.object = null;
-@@ -611,7 +611,7 @@ public class ServerPlayer extends Player {
+@@ -621,7 +621,7 @@ public class ServerPlayer extends Player {
position = Vec3.atCenterOf(world.getSharedSpawnPos());
}
this.setLevel(world);
diff --git a/patches/server/0346-Prevent-opening-inventories-when-frozen.patch b/patches/server/0346-Prevent-opening-inventories-when-frozen.patch
index 3cd9a7bd13..574aa307db 100644
--- a/patches/server/0346-Prevent-opening-inventories-when-frozen.patch
+++ b/patches/server/0346-Prevent-opening-inventories-when-frozen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Prevent opening inventories when frozen
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 618efe10752c968142fcc0f28a533d3515ef3367..f6e4172f1c7ad38128e77e53f099e67a4c4be620 100644
+index af40929f5d90973d8e624b98d5059fcce237b659..4492d082b172a8bfc65405bfa73865237d02dd3f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -693,7 +693,7 @@ public class ServerPlayer extends Player {
+@@ -703,7 +703,7 @@ public class ServerPlayer extends Player {
containerUpdateDelay = this.level().paperConfig().tickRates.containerUpdate;
}
// Paper end - Configurable container update tick rate
@@ -17,7 +17,7 @@ index 618efe10752c968142fcc0f28a533d3515ef3367..f6e4172f1c7ad38128e77e53f099e67a
this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason
this.containerMenu = this.inventoryMenu;
}
-@@ -1592,7 +1592,7 @@ public class ServerPlayer extends Player {
+@@ -1602,7 +1602,7 @@ public class ServerPlayer extends Player {
} else {
// CraftBukkit start
this.containerMenu = container;
diff --git a/patches/server/0347-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0347-Don-t-run-entity-collision-code-if-not-needed.patch
index 9b172946c6..2da84f514d 100644
--- a/patches/server/0347-Don-t-run-entity-collision-code-if-not-needed.patch
+++ b/patches/server/0347-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 67aa02a223345a91fe0b30b36966995e304c82bb..bca65fe3b38da83ce5f8fe67867b7cf19d02adbb 100644
+index c2934dc1d87bd8211714ab8af8ddfc32695b7953..a54024b88555bd6a47314dcc42deae1252be7125 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3506,10 +3506,24 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3512,10 +3512,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/0348-Implement-Player-Client-Options-API.patch b/patches/server/0348-Implement-Player-Client-Options-API.patch
index cee4051d9c..48f83018f9 100644
--- a/patches/server/0348-Implement-Player-Client-Options-API.patch
+++ b/patches/server/0348-Implement-Player-Client-Options-API.patch
@@ -87,10 +87,10 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb
+ }
+}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index f6e4172f1c7ad38128e77e53f099e67a4c4be620..62bdc3016120271da2ca3a1f6ac46757e2e1dab4 100644
+index 4492d082b172a8bfc65405bfa73865237d02dd3f..9f74168b0dd9392d2f4164fc7011e98623e28882 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -353,7 +353,7 @@ public class ServerPlayer extends Player {
+@@ -354,7 +354,7 @@ public class ServerPlayer extends Player {
this.stats = server.getPlayerList().getPlayerStats(this);
this.advancements = server.getPlayerList().getPlayerAdvancements(this);
// this.fudgeSpawnLocation(world); // Paper - Don't move existing players to world spawn
@@ -99,7 +99,7 @@ index f6e4172f1c7ad38128e77e53f099e67a4c4be620..62bdc3016120271da2ca3a1f6ac46757
this.object = null;
this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
-@@ -2086,7 +2086,23 @@ public class ServerPlayer extends Player {
+@@ -2096,7 +2096,23 @@ public class ServerPlayer extends Player {
}
}
@@ -123,7 +123,7 @@ index f6e4172f1c7ad38128e77e53f099e67a4c4be620..62bdc3016120271da2ca3a1f6ac46757
// CraftBukkit start
if (this.getMainArm() != clientOptions.mainHand()) {
PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), this.getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT);
-@@ -2098,6 +2114,11 @@ public class ServerPlayer extends Player {
+@@ -2108,6 +2124,11 @@ public class ServerPlayer extends Player {
this.server.server.getPluginManager().callEvent(new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), this.language, clientOptions.language())); // Paper
}
// CraftBukkit end
diff --git a/patches/server/0350-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0350-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch
index 8125140964..f8725ebf87 100644
--- a/patches/server/0350-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch
+++ b/patches/server/0350-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch
@@ -43,10 +43,10 @@ index 66936834a80ef6b645ab44f3439defcb90237bfa..406c78dcb97d954f16f05d379d4dbf74
EntityType<?> entitytypes = entity.getType();
int i = entitytypes.clientTrackingRange() * 16;
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 62bdc3016120271da2ca3a1f6ac46757e2e1dab4..e3f73ccbc2d62eef386adc6c66428c6081a68b8b 100644
+index 9f74168b0dd9392d2f4164fc7011e98623e28882..a8c9a9cea8d527f2bb4393c0539b3c8f3b25e06e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -283,6 +283,7 @@ public class ServerPlayer extends Player {
+@@ -284,6 +284,7 @@ public class ServerPlayer extends Player {
public double maxHealthCache;
public boolean joining = true;
public boolean sentListPacket = false;
diff --git a/patches/server/0352-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0352-Add-PlayerAttackEntityCooldownResetEvent.patch
index 617252a191..e96017d4ce 100644
--- a/patches/server/0352-Add-PlayerAttackEntityCooldownResetEvent.patch
+++ b/patches/server/0352-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 bca65fe3b38da83ce5f8fe67867b7cf19d02adbb..10e337fc1fb23d9eaab54f92021a7d95a14468f8 100644
+index a54024b88555bd6a47314dcc42deae1252be7125..022ff3f125b7fe4f59b8c4bf75533d9b6cac4189 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2258,7 +2258,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2264,7 +2264,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/0355-Fix-item-duplication-and-teleport-issues.patch b/patches/server/0355-Fix-item-duplication-and-teleport-issues.patch
index e8784b4e33..e1d2d1f039 100644
--- a/patches/server/0355-Fix-item-duplication-and-teleport-issues.patch
+++ b/patches/server/0355-Fix-item-duplication-and-teleport-issues.patch
@@ -80,10 +80,10 @@ index 04bd6d6bc6af0e423f56329dc3554b04170932f9..af49ff55865b327c167efedcb7413c27
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 10e337fc1fb23d9eaab54f92021a7d95a14468f8..8daaadbc524ee8d7c4a4ddd1d2a822f3b697abd0 100644
+index 022ff3f125b7fe4f59b8c4bf75533d9b6cac4189..be1eff193cd0d581209d34e2ae81d1db67e5a153 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1734,9 +1734,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1740,9 +1740,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 10e337fc1fb23d9eaab54f92021a7d95a14468f8..8daaadbc524ee8d7c4a4ddd1d2a822f3
// Paper start - clear equipment if event is not cancelled
if (this instanceof Mob) {
for (EquipmentSlot slot : this.clearedEquipmentSlots) {
-@@ -1837,8 +1837,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1843,8 +1843,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.dropCustomDeathLoot(source, i, flag);
this.clearEquipmentSlots = prev; // Paper
}
diff --git a/patches/server/0357-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0357-Validate-PickItem-Packet-and-kick-for-invalid.patch
index 64608fdfdd..03ebc55195 100644
--- a/patches/server/0357-Validate-PickItem-Packet-and-kick-for-invalid.patch
+++ b/patches/server/0357-Validate-PickItem-Packet-and-kick-for-invalid.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4e649fe68c6d0cf42e35f821457064656410d823..997bf1c7bed5f78b017827acb6339f5e07791f7f 100644
+index fedc4654178a3771004394665914efd2b842432a..b3026d2c70419a9de11f5887cbc998f29b7820eb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -892,7 +892,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0361-Prevent-teleporting-dead-entities.patch b/patches/server/0361-Prevent-teleporting-dead-entities.patch
index fc30bb64c6..2820b8f349 100644
--- a/patches/server/0361-Prevent-teleporting-dead-entities.patch
+++ b/patches/server/0361-Prevent-teleporting-dead-entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent teleporting dead entities
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 997bf1c7bed5f78b017827acb6339f5e07791f7f..652e9e31cbda3551f6ddd5c697a0fa47ce1382b7 100644
+index b3026d2c70419a9de11f5887cbc998f29b7820eb..b715e7b3230dba24d10230d5e4d8dd5589f93018 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1540,6 +1540,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0378-Prevent-position-desync-causing-tp-exploit.patch b/patches/server/0378-Prevent-position-desync-causing-tp-exploit.patch
index cc71ab24de..f789abcfe7 100644
--- a/patches/server/0378-Prevent-position-desync-causing-tp-exploit.patch
+++ b/patches/server/0378-Prevent-position-desync-causing-tp-exploit.patch
@@ -13,7 +13,7 @@ behaviour, we need to move all of this dangerous logic outside
of the move call and into an appropriate place in the tick method.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 652e9e31cbda3551f6ddd5c697a0fa47ce1382b7..a8155150c75f17b56ab5ebdb435d61d2b0ee576f 100644
+index b715e7b3230dba24d10230d5e4d8dd5589f93018..2e27141c6cc2dec758f294381da39a683c4e194d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1355,6 +1355,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0380-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0380-Add-PlayerRecipeBookClickEvent.patch
index 7f2ad0e0dc..21e43aed85 100644
--- a/patches/server/0380-Add-PlayerRecipeBookClickEvent.patch
+++ b/patches/server/0380-Add-PlayerRecipeBookClickEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerRecipeBookClickEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a8155150c75f17b56ab5ebdb435d61d2b0ee576f..8cb7b1c6ce0d0cc5bbd9d373772ef3aae3f62c7f 100644
+index 2e27141c6cc2dec758f294381da39a683c4e194d..a6cd53e08a0770b93876f98efa7ebfe5b77a2f15 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3045,16 +3045,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0382-Add-permission-for-command-blocks.patch b/patches/server/0382-Add-permission-for-command-blocks.patch
index 56b93f4de8..ee751febd7 100644
--- a/patches/server/0382-Add-permission-for-command-blocks.patch
+++ b/patches/server/0382-Add-permission-for-command-blocks.patch
@@ -18,7 +18,7 @@ index cd6f34ee326228036f8c025e4e6d04e0c15ba06f..2f0d56c78584abe27ef050258827103f
return false;
} else if (this.player.blockActionRestricted(this.level, pos, this.gameModeForPlayer)) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8cb7b1c6ce0d0cc5bbd9d373772ef3aae3f62c7f..5bc22e58a6ddfc0a5459c68e99fdf1095f23f0d8 100644
+index a6cd53e08a0770b93876f98efa7ebfe5b77a2f15..8011266f5fe082c0a81a7a828fe2cf7445fba0f7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -803,7 +803,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0384-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0384-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index f9de6ceab3..5e0986e0dd 100644
--- a/patches/server/0384-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0384-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -76,10 +76,10 @@ index 3d33504eac6af17c8833de11226968d52f96232f..4d7c2832a9cd9a88b99c837a02df7fa9
@Override
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e3f73ccbc2d62eef386adc6c66428c6081a68b8b..0019e5313523521b4f1607dfc391d47c55961a48 100644
+index a8c9a9cea8d527f2bb4393c0539b3c8f3b25e06e..7ecd6707c1325afb9f9c01699badefb4ea059501 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1228,7 +1228,7 @@ public class ServerPlayer extends Player {
+@@ -1238,7 +1238,7 @@ public class ServerPlayer extends Player {
this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds
this.connection.send(new ClientboundRespawnPacket(this.createCommonSpawnInfo(worldserver), (byte) 3));
@@ -89,7 +89,7 @@ index e3f73ccbc2d62eef386adc6c66428c6081a68b8b..0019e5313523521b4f1607dfc391d47c
playerlist.sendPlayerPermissionLevel(this);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5bc22e58a6ddfc0a5459c68e99fdf1095f23f0d8..324229e960c6fdf3de2a8d5c0c5516e262985efc 100644
+index 8011266f5fe082c0a81a7a828fe2cf7445fba0f7..688579464e1f6e34f07e37f80efcd31a1a8a0538 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3248,7 +3248,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0389-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0389-Convert-legacy-attributes-in-Item-Meta.patch
index b412fb6983..56978470d7 100644
--- a/patches/server/0389-Convert-legacy-attributes-in-Item-Meta.patch
+++ b/patches/server/0389-Convert-legacy-attributes-in-Item-Meta.patch
@@ -30,7 +30,7 @@ index de40e522960469b98f987bd688489740446d9f85..a0a34f680e21007ebf2c2497d2e6505e
public CraftAttributeMap(AttributeMap handle) {
this.handle = handle;
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 122142125dcba97572b1e0b9195e534a0e2257d9..a3ae3203e04dfb791b8aa537a303f4a4bd6cbab6 100644
+index e88364dfe067c605856390d2cce07ba320632df9..069666c797c39b5119e41a3c18727f89fcc3b8c5 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -607,7 +607,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
diff --git a/patches/server/0390-Do-not-accept-invalid-client-settings.patch b/patches/server/0390-Do-not-accept-invalid-client-settings.patch
index ad0a7a55ea..4cc4ebcdec 100644
--- a/patches/server/0390-Do-not-accept-invalid-client-settings.patch
+++ b/patches/server/0390-Do-not-accept-invalid-client-settings.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Do not accept invalid client settings
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 324229e960c6fdf3de2a8d5c0c5516e262985efc..ec5e4e6eb1de7e134e30247a0c43e73af7263e47 100644
+index 688579464e1f6e34f07e37f80efcd31a1a8a0538..33c53c0b2dd755cb63288e9df5bb3dc11b3af55e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3240,6 +3240,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0394-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch b/patches/server/0394-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
index f671f9aab8..b7931f343c 100644
--- a/patches/server/0394-Don-t-check-chunk-for-portal-on-world-gen-entity-add.patch
+++ b/patches/server/0394-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 8daaadbc524ee8d7c4a4ddd1d2a822f3b697abd0..914c6499eb94665f0e3c4654dd05fc10d93f87d4 100644
+index be1eff193cd0d581209d34e2ae81d1db67e5a153..81838056cacb9f2fd2d3c05b125461ac3013e82b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3618,7 +3618,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3624,7 +3624,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/0404-Brand-support.patch b/patches/server/0404-Brand-support.patch
index 2622e64ecf..8d331cba7f 100644
--- a/patches/server/0404-Brand-support.patch
+++ b/patches/server/0404-Brand-support.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 0019e5313523521b4f1607dfc391d47c55961a48..a182ab1c06c4644e9c14d7a2eff2620d827dfb2c 100644
+index 7ecd6707c1325afb9f9c01699badefb4ea059501..4b07b5f7a92a7bfe74f157fd69ecd864df38c495 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -289,6 +289,7 @@ public class ServerPlayer extends Player {
+@@ -290,6 +290,7 @@ public class ServerPlayer extends Player {
public boolean isRealPlayer; // Paper
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
diff --git a/patches/server/0410-Prevent-headless-pistons-from-being-created.patch b/patches/server/0410-Prevent-headless-pistons-from-being-created.patch
index 4235450c0f..bc829f1c99 100644
--- a/patches/server/0410-Prevent-headless-pistons-from-being-created.patch
+++ b/patches/server/0410-Prevent-headless-pistons-from-being-created.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Prevent headless pistons from being created
Prevent headless pistons from being created by explosions or tree/mushroom growth.
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index b54a5c496ea7f1999c1b10219e72e9ce79921c99..aa81144975fa66bcdb3d107e2a461b6d62d8e59e 100644
+index 30109db978563fab1a33b450f0ca82e176539703..d29b4268431472c6132efdfcd305e9616c57da21 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -206,6 +206,15 @@ public class Explosion {
diff --git a/patches/server/0420-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0420-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index e275eb17f8..3df9c42e9a 100644
--- a/patches/server/0420-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0420-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -9,7 +9,7 @@ as this is how Vanilla teleports entities.
Cancel any pending motion when teleported.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ec5e4e6eb1de7e134e30247a0c43e73af7263e47..6d47fb4c90d506c72d111f66ee2c46ee74265a37 100644
+index 33c53c0b2dd755cb63288e9df5bb3dc11b3af55e..0583820095ab35c1083409f6f4a82adaa06c4574 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -676,7 +676,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0430-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0430-Fix-for-large-move-vectors-crashing-server.patch
index a80c955bab..d7ab320b2d 100644
--- a/patches/server/0430-Fix-for-large-move-vectors-crashing-server.patch
+++ b/patches/server/0430-Fix-for-large-move-vectors-crashing-server.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix for large move vectors crashing server
Check movement distance also based on current position.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6d47fb4c90d506c72d111f66ee2c46ee74265a37..132f28f5fdb08357f70270f0b4453597387c86ea 100644
+index 0583820095ab35c1083409f6f4a82adaa06c4574..4f7c15bf80092d91038b42d91fcd6634375d4446 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -492,9 +492,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0443-Add-API-for-quit-reason.patch b/patches/server/0443-Add-API-for-quit-reason.patch
index 7b73031464..2bcaaecee6 100644
--- a/patches/server/0443-Add-API-for-quit-reason.patch
+++ b/patches/server/0443-Add-API-for-quit-reason.patch
@@ -25,10 +25,10 @@ index 68d5be903a0d13e59c9e4bd6d85baaf0773547a0..fe89e8f509f3972ceb71c9aa6277524b
Connection.LOGGER.debug("Failed to sent packet", throwable);
if (this.getSending() == PacketFlow.CLIENTBOUND) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index a182ab1c06c4644e9c14d7a2eff2620d827dfb2c..edfcfb91d907d6e1837e5a5d0e7abb8c8f6bcb66 100644
+index 4b07b5f7a92a7bfe74f157fd69ecd864df38c495..c4ba4b378aee28e7479207aff46c27307bd6b105 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -290,6 +290,7 @@ public class ServerPlayer extends Player {
+@@ -291,6 +291,7 @@ public class ServerPlayer extends Player {
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
public @Nullable String clientBrandName = null; // Paper - Brand support
diff --git a/patches/server/0452-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0452-Climbing-should-not-bypass-cramming-gamerule.patch
index 0640edf4f3..c2f72432f5 100644
--- a/patches/server/0452-Climbing-should-not-bypass-cramming-gamerule.patch
+++ b/patches/server/0452-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 914c6499eb94665f0e3c4654dd05fc10d93f87d4..e38f0659836be4bebff06e8d8e7848abdcbda455 100644
+index 81838056cacb9f2fd2d3c05b125461ac3013e82b..636bef0624f71dea27cbab261c3072fdf73fbf4b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3534,7 +3534,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3540,7 +3540,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 914c6499eb94665f0e3c4654dd05fc10d93f87d4..e38f0659836be4bebff06e8d8e7848ab
if (!list.isEmpty()) {
// Paper - don't run getEntities if we're not going to use its result; moved up
-@@ -3724,9 +3724,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3730,9 +3730,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
return !this.isRemoved() && this.collides; // CraftBukkit
}
diff --git a/patches/server/0455-Limit-recipe-packets.patch b/patches/server/0455-Limit-recipe-packets.patch
index 31d5f14eec..6ec29c0b17 100644
--- a/patches/server/0455-Limit-recipe-packets.patch
+++ b/patches/server/0455-Limit-recipe-packets.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Limit recipe packets
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 132f28f5fdb08357f70270f0b4453597387c86ea..36ef3bbf70e71fd4712098bd1bd5af426e569fb5 100644
+index 4f7c15bf80092d91038b42d91fcd6634375d4446..7ea22e99de646f439ae738354c1336b11a4c542f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -266,6 +266,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0470-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0470-Fix-interact-event-not-being-called-sometimes.patch
index 61518602f2..7781f60252 100644
--- a/patches/server/0470-Fix-interact-event-not-being-called-sometimes.patch
+++ b/patches/server/0470-Fix-interact-event-not-being-called-sometimes.patch
@@ -11,7 +11,7 @@ Subject: [PATCH] Fix interact event not being called sometimes
Co-authored-by: Moulberry <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 36ef3bbf70e71fd4712098bd1bd5af426e569fb5..41b520fb63dbbcf144e99364d21592152145d578 100644
+index 7ea22e99de646f439ae738354c1336b11a4c542f..1d71aa9237ee17b009568f6d67f900ffe64ff301 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1759,7 +1759,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0496-Expand-EntityUnleashEvent.patch b/patches/server/0496-Expand-EntityUnleashEvent.patch
index d179143636..06754053fc 100644
--- a/patches/server/0496-Expand-EntityUnleashEvent.patch
+++ b/patches/server/0496-Expand-EntityUnleashEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand EntityUnleashEvent
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index f91d6cc59f203fc67e38ba92159dbae22b6dbfac..70a151c8d109780350423eba5a951733ac855f23 100644
+index 4c0f7741e199e4bb03767effda669bbbc9f0d233..7b10bb9cbf6f2b4a70ddaa0ba4bc7409a17f3f09 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1431,12 +1431,15 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
@@ -26,7 +26,7 @@ index f91d6cc59f203fc67e38ba92159dbae22b6dbfac..70a151c8d109780350423eba5a951733
this.gameEvent(GameEvent.ENTITY_INTERACT, player);
return InteractionResult.sidedSuccess(this.level().isClientSide);
} else {
-@@ -1604,8 +1607,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1605,8 +1608,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
if (this.leashHolder != null) {
if (!this.isAlive() || !this.leashHolder.isAlive()) {
@@ -40,7 +40,7 @@ index f91d6cc59f203fc67e38ba92159dbae22b6dbfac..70a151c8d109780350423eba5a951733
}
}
-@@ -1673,8 +1679,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1674,8 +1680,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
boolean flag1 = super.startRiding(entity, force);
if (flag1 && this.isLeashed()) {
@@ -54,7 +54,7 @@ index f91d6cc59f203fc67e38ba92159dbae22b6dbfac..70a151c8d109780350423eba5a951733
}
return flag1;
-@@ -1851,8 +1860,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1852,8 +1861,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
@Override
protected void removeAfterChangingDimensions() {
super.removeAfterChangingDimensions();
@@ -101,10 +101,10 @@ index e92831739603ef1b5678c9d44e85ab70d62be0e7..cdd07093342521ff9944bf7a342bbf14
} else if (f > 6.0F) {
double d0 = (entity.getX() - this.getX()) / (double) f;
diff --git a/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java b/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java
-index b43b1f81828bf1d57e98c52964053db7127519ad..952321d4e34a6524bbb494a56d7658068f74124c 100644
+index dfb0db42e335fd7334b752ac62f8adb7bffbb2ef..65d140a3e3c42763ce4d162f8c9f5b9d79d4e501 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/LeashFenceKnotEntity.java
-@@ -120,11 +120,14 @@ public class LeashFenceKnotEntity extends HangingEntity {
+@@ -121,11 +121,14 @@ public class LeashFenceKnotEntity extends HangingEntity {
if (entityinsentient1.isLeashed() && entityinsentient1.getLeashHolder() == this) {
// CraftBukkit start
diff --git a/patches/server/0497-Reset-shield-blocking-on-dimension-change.patch b/patches/server/0497-Reset-shield-blocking-on-dimension-change.patch
index 8d9b5e6d19..c33708022d 100644
--- a/patches/server/0497-Reset-shield-blocking-on-dimension-change.patch
+++ b/patches/server/0497-Reset-shield-blocking-on-dimension-change.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Reset shield blocking on dimension change
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index edfcfb91d907d6e1837e5a5d0e7abb8c8f6bcb66..2db78d991ef0595a0d8806414a959479e289c0fc 100644
+index c4ba4b378aee28e7479207aff46c27307bd6b105..7eab41ac49707a52adcfd6fb3c3d70cff3a4ad1b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1265,6 +1265,11 @@ public class ServerPlayer extends Player {
+@@ -1275,6 +1275,11 @@ public class ServerPlayer extends Player {
this.level().getCraftServer().getPluginManager().callEvent(changeEvent);
// CraftBukkit end
}
diff --git a/patches/server/0499-Add-EntityMoveEvent.patch b/patches/server/0499-Add-EntityMoveEvent.patch
index fdac2ac203..5f87e7e8ec 100644
--- a/patches/server/0499-Add-EntityMoveEvent.patch
+++ b/patches/server/0499-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 e38f0659836be4bebff06e8d8e7848abdcbda455..83730b9da452d27b420770adf6ff179b936f2bbd 100644
+index 636bef0624f71dea27cbab261c3072fdf73fbf4b..df0286a972dfa4e3b4c1898f8936062aaf3cdde6 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3471,6 +3471,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3477,6 +3477,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.pushEntities();
this.level().getProfiler().pop();
diff --git a/patches/server/0514-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0514-Allow-using-signs-inside-spawn-protection.patch
index f71bd69625..fba8a91080 100644
--- a/patches/server/0514-Allow-using-signs-inside-spawn-protection.patch
+++ b/patches/server/0514-Allow-using-signs-inside-spawn-protection.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow using signs inside spawn protection
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 41b520fb63dbbcf144e99364d21592152145d578..8689573179fdcc2751814e225743c16ce65ca8db 100644
+index 1d71aa9237ee17b009568f6d67f900ffe64ff301..e385bad877dd7ab529e67a7dced5b53a0f55d795 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1747,8 +1747,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0519-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0519-Don-t-ignore-result-of-PlayerEditBookEvent.patch
index df4031ea97..71bc52ad49 100644
--- a/patches/server/0519-Don-t-ignore-result-of-PlayerEditBookEvent.patch
+++ b/patches/server/0519-Don-t-ignore-result-of-PlayerEditBookEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't ignore result of PlayerEditBookEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8689573179fdcc2751814e225743c16ce65ca8db..5fede6095ff9dc85d2f7e1cb2f5acb7216d21940 100644
+index e385bad877dd7ab529e67a7dced5b53a0f55d795..8eef1b90b124d366970be0e90ff6c81581aaed29 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1152,7 +1152,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0522-Fix-PlayerItemConsumeEvent-cancelling-properly.patch b/patches/server/0522-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
index 36f12103c7..8ee954570b 100644
--- a/patches/server/0522-Fix-PlayerItemConsumeEvent-cancelling-properly.patch
+++ b/patches/server/0522-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 83730b9da452d27b420770adf6ff179b936f2bbd..75ed2ed9fa3e620e48216840bafd9bcfe7123901 100644
+index df0286a972dfa4e3b4c1898f8936062aaf3cdde6..541debdee83cbef985aafa0c3cb344a5bee18625 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3965,6 +3965,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3971,6 +3971,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
diff --git a/patches/server/0529-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0529-fix-PlayerItemHeldEvent-firing-twice.patch
index 3f974caf76..6506af4c0c 100644
--- a/patches/server/0529-fix-PlayerItemHeldEvent-firing-twice.patch
+++ b/patches/server/0529-fix-PlayerItemHeldEvent-firing-twice.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] fix PlayerItemHeldEvent firing twice
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 5fede6095ff9dc85d2f7e1cb2f5acb7216d21940..d57a7bca571c94e44b4d4aebaa26b568c5063f44 100644
+index 8eef1b90b124d366970be0e90ff6c81581aaed29..58853de5fda01114ddc7196c632d4daf5b59b6ce 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1917,6 +1917,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0534-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0534-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
index 048061b651..8fa5c39562 100644
--- a/patches/server/0534-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
+++ b/patches/server/0534-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expand PlayerRespawnEvent, fix passed parameter issues
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d57a7bca571c94e44b4d4aebaa26b568c5063f44..f84a6f1ec9d1081b05ab44dd99659918aa0f1874 100644
+index 58853de5fda01114ddc7196c632d4daf5b59b6ce..04dd8964a1e9ea2a14589b811fd9938249f94f82 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2710,7 +2710,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0546-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0546-Expand-PlayerGameModeChangeEvent.patch
index e8a43cf71d..f9a90cac58 100644
--- a/patches/server/0546-Expand-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0546-Expand-PlayerGameModeChangeEvent.patch
@@ -45,10 +45,10 @@ index 7f09119bc7d661e08a960dd2bd46006efe752d3e..d1da3600dc07107309b20ebe6e7c0c4d
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 2db78d991ef0595a0d8806414a959479e289c0fc..50c6b668a8e915081007dfd9c9fc1aae179e16c9 100644
+index 7eab41ac49707a52adcfd6fb3c3d70cff3a4ad1b..ef24112c5360ec329dc8a89546f64bad68d7fd8e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -2024,8 +2024,16 @@ public class ServerPlayer extends Player {
+@@ -2034,8 +2034,16 @@ public class ServerPlayer extends Player {
}
public boolean setGameMode(GameType gameMode) {
@@ -67,7 +67,7 @@ index 2db78d991ef0595a0d8806414a959479e289c0fc..50c6b668a8e915081007dfd9c9fc1aae
} else {
this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId()));
if (gameMode == GameType.SPECTATOR) {
-@@ -2037,7 +2045,7 @@ public class ServerPlayer extends Player {
+@@ -2047,7 +2055,7 @@ public class ServerPlayer extends Player {
this.onUpdateAbilities();
this.updateEffectVisibility();
@@ -76,7 +76,7 @@ index 2db78d991ef0595a0d8806414a959479e289c0fc..50c6b668a8e915081007dfd9c9fc1aae
}
}
-@@ -2447,6 +2455,16 @@ public class ServerPlayer extends Player {
+@@ -2457,6 +2465,16 @@ public class ServerPlayer extends Player {
}
public void loadGameTypes(@Nullable CompoundTag nbt) {
@@ -132,7 +132,7 @@ index 486d9c4dbe3ee23198eba7f34ea8b5f4e9048c0b..f080322bc766361b9d2d8b1214c3dff1
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f84a6f1ec9d1081b05ab44dd99659918aa0f1874..806f16a183ff1abae4cc21409bf8d26e0803483d 100644
+index 04dd8964a1e9ea2a14589b811fd9938249f94f82..3a6769fec9bae32209d2b126a10d99fd1b8dd4b7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2719,7 +2719,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0549-Move-range-check-for-block-placing-up.patch b/patches/server/0549-Move-range-check-for-block-placing-up.patch
index 3c66f1bf6a..ecccee748f 100644
--- a/patches/server/0549-Move-range-check-for-block-placing-up.patch
+++ b/patches/server/0549-Move-range-check-for-block-placing-up.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Move range check for block placing up
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 806f16a183ff1abae4cc21409bf8d26e0803483d..011b69407b56eaea3f373d6e438a4b2b222fcc03 100644
+index 3a6769fec9bae32209d2b126a10d99fd1b8dd4b7..a2a4f30ed2a524fc8b86e0ffbc9d6aa49e557e44 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1734,6 +1734,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0552-Add-Unix-domain-socket-support.patch b/patches/server/0552-Add-Unix-domain-socket-support.patch
index c289ae85a2..413dd25508 100644
--- a/patches/server/0552-Add-Unix-domain-socket-support.patch
+++ b/patches/server/0552-Add-Unix-domain-socket-support.patch
@@ -87,7 +87,7 @@ index d6d7f1c446ba5507f67038ff27775ba75156f4a7..c63c194c44646e6bc1a5942655278701
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 011b69407b56eaea3f373d6e438a4b2b222fcc03..210f98f45eaec9470c5e66b3990dc24ca167c0c0 100644
+index a2a4f30ed2a524fc8b86e0ffbc9d6aa49e557e44..1a6dd2cf5bd02c328fb9ac80ec74be97202a13a2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2538,6 +2538,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0558-Add-PlayerKickEvent-causes.patch b/patches/server/0558-Add-PlayerKickEvent-causes.patch
index cbba020ab8..d78dcaaee0 100644
--- a/patches/server/0558-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0558-Add-PlayerKickEvent-causes.patch
@@ -213,7 +213,7 @@ index 2872bef40440b11a206c3ec88e2c6d95cd1a72e9..0273998b72c9d8a1e7de4b1195c54700
if (this.cserver.getServer().isRunning()) {
this.cserver.getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 210f98f45eaec9470c5e66b3990dc24ca167c0c0..53b833753b73c27110fcfccf8f2dcdb9a11a3545 100644
+index 1a6dd2cf5bd02c328fb9ac80ec74be97202a13a2..972c7304f8623e4162dc805577106bdf9dac9928 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -349,7 +349,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0568-Line-Of-Sight-Changes.patch b/patches/server/0568-Line-Of-Sight-Changes.patch
index 6811307521..f0d5d6bd3e 100644
--- a/patches/server/0568-Line-Of-Sight-Changes.patch
+++ b/patches/server/0568-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 75ed2ed9fa3e620e48216840bafd9bcfe7123901..3541d5f4a0605415e1d7941fdf82e1ba3e5e2965 100644
+index 541debdee83cbef985aafa0c3cb344a5bee18625..5f9c39b18ab55c80e78ac578de6821fe282c04bb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3714,7 +3714,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3720,7 +3720,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/0572-Fix-PlayerDropItemEvent-using-wrong-item.patch b/patches/server/0572-Fix-PlayerDropItemEvent-using-wrong-item.patch
index ab0fe17dd5..7c8cf8059d 100644
--- a/patches/server/0572-Fix-PlayerDropItemEvent-using-wrong-item.patch
+++ b/patches/server/0572-Fix-PlayerDropItemEvent-using-wrong-item.patch
@@ -31,10 +31,10 @@ index c81fd3e1108fb0a02f9240263404af2b968c8494..0d9de4c61c7b26a6ff37c12fde629161
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 50c6b668a8e915081007dfd9c9fc1aae179e16c9..a9130dd3097c31d91baaf1405a369881393d42d5 100644
+index ef24112c5360ec329dc8a89546f64bad68d7fd8e..1ac19a789bee22fe512a019e618e2b99bb07f183 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -2424,7 +2424,7 @@ public class ServerPlayer extends Player {
+@@ -2434,7 +2434,7 @@ public class ServerPlayer extends Player {
if (retainOwnership) {
if (!itemstack1.isEmpty()) {
diff --git a/patches/server/0574-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0574-Ensure-disconnect-for-book-edit-is-called-on-main.patch
index 9af04f9803..ef18db22e4 100644
--- a/patches/server/0574-Ensure-disconnect-for-book-edit-is-called-on-main.patch
+++ b/patches/server/0574-Ensure-disconnect-for-book-edit-is-called-on-main.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Ensure disconnect for book edit is called on main
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 53b833753b73c27110fcfccf8f2dcdb9a11a3545..8f075a5fa487a8f2fcb905b9d32f97afa99b9bc3 100644
+index 972c7304f8623e4162dc805577106bdf9dac9928..cbcec968874cccf2488fdefa179a7b1ed0607c10 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1115,7 +1115,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0578-Add-PlayerArmSwingEvent.patch b/patches/server/0578-Add-PlayerArmSwingEvent.patch
index 14174822a6..a6cc51d98f 100644
--- a/patches/server/0578-Add-PlayerArmSwingEvent.patch
+++ b/patches/server/0578-Add-PlayerArmSwingEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmSwingEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 8f075a5fa487a8f2fcb905b9d32f97afa99b9bc3..ec5af252a470f23d11b3352fba0705dd2b648565 100644
+index cbcec968874cccf2488fdefa179a7b1ed0607c10..23e3df2eaecde15cf4726a5adc25c883cc0dca11 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2396,7 +2396,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0579-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0579-Fix-kick-event-leave-message-not-being-sent.patch
index 8d66d84399..09377dd14d 100644
--- a/patches/server/0579-Fix-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0579-Fix-kick-event-leave-message-not-being-sent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix kick event leave message not being sent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index a9130dd3097c31d91baaf1405a369881393d42d5..fccc62d601680f7ed2765bb331667baf82e75a26 100644
+index 1ac19a789bee22fe512a019e618e2b99bb07f183..d3f3eed67557b362c0f51a83967f60276283d3ea 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -284,7 +284,6 @@ public class ServerPlayer extends Player {
+@@ -285,7 +285,6 @@ public class ServerPlayer extends Player {
public boolean joining = true;
public boolean sentListPacket = false;
public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready
@@ -50,7 +50,7 @@ index 0273998b72c9d8a1e7de4b1195c547001922cb8e..802ea97fe03028cfe911aa4052d9c82a
MinecraftServer minecraftserver = this.server;
Connection networkmanager = this.connection;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ec5af252a470f23d11b3352fba0705dd2b648565..b71ca2aadfa2511371cc8032424c6771220c3605 100644
+index 23e3df2eaecde15cf4726a5adc25c883cc0dca11..f8a833ccae35db5e04871fa100ddc45044f4642a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1878,6 +1878,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0580-Don-t-apply-cramming-damage-to-players.patch b/patches/server/0580-Don-t-apply-cramming-damage-to-players.patch
index 04ae75c0ea..8a1b8eb465 100644
--- a/patches/server/0580-Don-t-apply-cramming-damage-to-players.patch
+++ b/patches/server/0580-Don-t-apply-cramming-damage-to-players.patch
@@ -11,7 +11,7 @@ It does not make a lot of sense to damage players if they get crammed,
For those who really want it a config option is provided.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index fccc62d601680f7ed2765bb331667baf82e75a26..b9aadb3eea0a8910f58fa747c50959ebcf89292a 100644
+index d3f3eed67557b362c0f51a83967f60276283d3ea..ff5d24f6afd224496dd1902497497483ec7fc24d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -98,6 +98,7 @@ import net.minecraft.util.Mth;
@@ -22,7 +22,7 @@ index fccc62d601680f7ed2765bb331667baf82e75a26..b9aadb3eea0a8910f58fa747c50959eb
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
-@@ -1497,7 +1498,7 @@ public class ServerPlayer extends Player {
+@@ -1507,7 +1508,7 @@ public class ServerPlayer extends Player {
@Override
public boolean isInvulnerableTo(DamageSource damageSource) {
diff --git a/patches/server/0585-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0585-Prevent-AFK-kick-while-watching-end-credits.patch
index af6da87145..c0ffba11ed 100644
--- a/patches/server/0585-Prevent-AFK-kick-while-watching-end-credits.patch
+++ b/patches/server/0585-Prevent-AFK-kick-while-watching-end-credits.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent AFK kick while watching end credits
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index b71ca2aadfa2511371cc8032424c6771220c3605..f828988421204673cfb80da550a7fc14f420e525 100644
+index f8a833ccae35db5e04871fa100ddc45044f4642a..8c44644a9118ef0a5013fb71031de82a43831911 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -397,7 +397,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0587-Add-PlayerSetSpawnEvent.patch b/patches/server/0587-Add-PlayerSetSpawnEvent.patch
index 5c81577101..2c3b96803d 100644
--- a/patches/server/0587-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0587-Add-PlayerSetSpawnEvent.patch
@@ -49,10 +49,10 @@ index a2d0699e8427b2262a2396495111125eccafbb66..15db9368227dbc29d07d74e85bd126b3
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b9aadb3eea0a8910f58fa747c50959ebcf89292a..36e3676d4a0725d5b55388367152c13c078b6abd 100644
+index ff5d24f6afd224496dd1902497497483ec7fc24d..22f9b40e2c9a71f8944b1738e91ee2e189a77cec 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1374,7 +1374,7 @@ public class ServerPlayer extends Player {
+@@ -1384,7 +1384,7 @@ public class ServerPlayer extends Player {
} else if (this.bedBlocked(blockposition, enumdirection)) {
return Either.left(Player.BedSleepingProblem.OBSTRUCTED);
} else {
@@ -61,7 +61,7 @@ index b9aadb3eea0a8910f58fa747c50959ebcf89292a..36e3676d4a0725d5b55388367152c13c
if (this.level().isDay()) {
return Either.left(Player.BedSleepingProblem.NOT_POSSIBLE_NOW);
} else {
-@@ -2344,44 +2344,50 @@ public class ServerPlayer extends Player {
+@@ -2354,44 +2354,50 @@ public class ServerPlayer extends Player {
return this.respawnForced;
}
@@ -145,7 +145,7 @@ index b9aadb3eea0a8910f58fa747c50959ebcf89292a..36e3676d4a0725d5b55388367152c13c
} else {
this.respawnPosition = null;
this.respawnDimension = Level.OVERWORLD;
-@@ -2389,6 +2395,7 @@ public class ServerPlayer extends Player {
+@@ -2399,6 +2405,7 @@ public class ServerPlayer extends Player {
this.respawnForced = false;
}
diff --git a/patches/server/0613-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0613-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index 96b92ceb04..cb9b1652bf 100644
--- a/patches/server/0613-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0613-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
@@ -28,10 +28,10 @@ index 1f556e53c4fa70c2ecab2181a655020ba7669624..efc246d405d58550104bb767a40d296e
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 36e3676d4a0725d5b55388367152c13c078b6abd..0b1114ade26f3f2280e4485a8260045a2b343c1b 100644
+index 22f9b40e2c9a71f8944b1738e91ee2e189a77cec..c3e8efd58c191ac8f479f8a979e73cc390e881a4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1665,6 +1665,18 @@ public class ServerPlayer extends Player {
+@@ -1675,6 +1675,18 @@ public class ServerPlayer extends Player {
this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId));
this.doCloseContainer();
}
diff --git a/patches/server/0615-Improve-and-expand-AsyncCatcher.patch b/patches/server/0615-Improve-and-expand-AsyncCatcher.patch
index 1e59e9e075..f248ef7a0f 100644
--- a/patches/server/0615-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0615-Improve-and-expand-AsyncCatcher.patch
@@ -17,7 +17,7 @@ Async catch modifications to critical entity state
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f828988421204673cfb80da550a7fc14f420e525..c0fd3f596384e6bb8aee0d6b33daecd7e5b33878 100644
+index 8c44644a9118ef0a5013fb71031de82a43831911..d5796e345b42c427e313130077092cf41c794eaa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1565,6 +1565,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -29,7 +29,7 @@ index f828988421204673cfb80da550a7fc14f420e525..c0fd3f596384e6bb8aee0d6b33daecd7
if (player.isRemoved()) {
LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName());
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 3541d5f4a0605415e1d7941fdf82e1ba3e5e2965..f5c18ac111188ae2397eaf41cac28edda98c1002 100644
+index 5f9c39b18ab55c80e78ac578de6821fe282c04bb..9cceee5f968d397f27b0618dcc5b5d97ac34b289 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1147,7 +1147,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0629-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0629-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index f426fa8333..17cdc399d8 100644
--- a/patches/server/0629-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0629-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c0fd3f596384e6bb8aee0d6b33daecd7e5b33878..a8c3a2988db845420b254729d125cc2c51660323 100644
+index d5796e345b42c427e313130077092cf41c794eaa..6cd4acac1c89035ece14f07784a439960ffcfcf5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -745,6 +745,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0632-Ensure-valid-vehicle-status.patch b/patches/server/0632-Ensure-valid-vehicle-status.patch
index 657d2eb9a7..948908a5db 100644
--- a/patches/server/0632-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0632-Ensure-valid-vehicle-status.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Ensure valid vehicle status
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 0b1114ade26f3f2280e4485a8260045a2b343c1b..3db8f376f3a73256d13fd778bb1c80606e6712d9 100644
+index c3e8efd58c191ac8f479f8a979e73cc390e881a4..e96bd37366ec80cb62a1a4f82c218498b98c9ed9 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -557,7 +557,7 @@ public class ServerPlayer extends Player {
+@@ -567,7 +567,7 @@ public class ServerPlayer extends Player {
}
}
diff --git a/patches/server/0645-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0645-Prevent-excessive-velocity-through-repeated-crits.patch
index 50956e86f7..c26ce6b90a 100644
--- a/patches/server/0645-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0645-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 f5c18ac111188ae2397eaf41cac28edda98c1002..be044167883611dde0665749d9e243b9c7b6fbd2 100644
+index 9cceee5f968d397f27b0618dcc5b5d97ac34b289..b73601d2903f327b4e7b82ccc6774731c832e941 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2748,16 +2748,28 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2754,16 +2754,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/0674-Freeze-Tick-Lock-API.patch b/patches/server/0674-Freeze-Tick-Lock-API.patch
index 4c0f4ccb90..80171b8e78 100644
--- a/patches/server/0674-Freeze-Tick-Lock-API.patch
+++ b/patches/server/0674-Freeze-Tick-Lock-API.patch
@@ -46,10 +46,10 @@ index 2e0dc24bf6732637b29e21c8817f0d3502a2a89a..8e09bfb7c1b4fb34e6615b0cf774bc8e
} 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 be044167883611dde0665749d9e243b9c7b6fbd2..7f8e82a1d5fa1ca665a66d2fb1342163f7c7a733 100644
+index b73601d2903f327b4e7b82ccc6774731c832e941..9e5d1ebcec91c036ab176161b13766ef44f41d59 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3458,7 +3458,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3464,7 +3464,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getProfiler().pop();
this.level().getProfiler().push("freezing");
diff --git a/patches/server/0697-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0697-Don-t-allow-vehicle-movement-from-players-while-tele.patch
index 70d82d0dce..f3a8cad2df 100644
--- a/patches/server/0697-Don-t-allow-vehicle-movement-from-players-while-tele.patch
+++ b/patches/server/0697-Don-t-allow-vehicle-movement-from-players-while-tele.patch
@@ -7,7 +7,7 @@ Bring the vehicle move packet behavior in line with the
regular player move packet.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index a8c3a2988db845420b254729d125cc2c51660323..d6f90c013ce5d7058ad1ca9357f5d2d7aab40cf6 100644
+index 6cd4acac1c89035ece14f07784a439960ffcfcf5..2eb69c7600a6a5e84b8f2a9bd9cc207c57459251 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -484,6 +484,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0705-fix-player-loottables-running-when-mob-loot-gamerule.patch b/patches/server/0705-fix-player-loottables-running-when-mob-loot-gamerule.patch
index 0f56e9ee1f..c0f0ba62ab 100644
--- a/patches/server/0705-fix-player-loottables-running-when-mob-loot-gamerule.patch
+++ b/patches/server/0705-fix-player-loottables-running-when-mob-loot-gamerule.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] fix player loottables running when mob loot gamerule is false
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 3db8f376f3a73256d13fd778bb1c80606e6712d9..c9c5e667c2aa26db1fb0038e40598d04a7c80889 100644
+index e96bd37366ec80cb62a1a4f82c218498b98c9ed9..00114ada4ad98e355e6c182fe49b6852bd9cf0c7 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -942,12 +942,14 @@ public class ServerPlayer extends Player {
+@@ -952,12 +952,14 @@ public class ServerPlayer extends Player {
}
}
}
diff --git a/patches/server/0710-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0710-Prevent-tile-entity-copies-loading-chunks.patch
index cc180d9fc6..a8ec237bcc 100644
--- a/patches/server/0710-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0710-Prevent-tile-entity-copies-loading-chunks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Prevent tile entity copies loading chunks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d6f90c013ce5d7058ad1ca9357f5d2d7aab40cf6..7e203542bde371a44294ace5bb1e3c8375b597ca 100644
+index 2eb69c7600a6a5e84b8f2a9bd9cc207c57459251..28c140d641244454d754770c06bc22d650cfcbfa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3189,7 +3189,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0719-Add-PlayerStopUsingItemEvent.patch b/patches/server/0719-Add-PlayerStopUsingItemEvent.patch
index f8544cd79c..fa87839c01 100644
--- a/patches/server/0719-Add-PlayerStopUsingItemEvent.patch
+++ b/patches/server/0719-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 7f8e82a1d5fa1ca665a66d2fb1342163f7c7a733..f3ca6f6c7a8f2dc51e263ee879412bf2806b0946 100644
+index 9e5d1ebcec91c036ab176161b13766ef44f41d59..44ce7ffd8304f0f295f632211931f5b9f6c72d17 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -4027,6 +4027,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4033,6 +4033,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
public void releaseUsingItem() {
if (!this.useItem.isEmpty()) {
diff --git a/patches/server/0731-Add-option-for-strict-advancement-dimension-checks.patch b/patches/server/0731-Add-option-for-strict-advancement-dimension-checks.patch
index 6fa3d4f18f..a6ef3a78f3 100644
--- a/patches/server/0731-Add-option-for-strict-advancement-dimension-checks.patch
+++ b/patches/server/0731-Add-option-for-strict-advancement-dimension-checks.patch
@@ -24,10 +24,10 @@ index 5be2d877162922d6f29592e723b7d5aff14e1515..37174de2319e353b2f989d8321758a08
} else {
BlockPos blockPos = BlockPos.containing(x, y, z);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c9c5e667c2aa26db1fb0038e40598d04a7c80889..22e9009e2943a70f21da6fa1ceefb5cfc9d20dab 100644
+index 00114ada4ad98e355e6c182fe49b6852bd9cf0c7..269c0f53d37e968ae25e38ef81a11c9d5284c494 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1339,6 +1339,12 @@ public class ServerPlayer extends Player {
+@@ -1349,6 +1349,12 @@ public class ServerPlayer extends Player {
ResourceKey<Level> maindimensionkey = CraftDimensionUtil.getMainDimensionKey(origin);
ResourceKey<Level> maindimensionkey1 = CraftDimensionUtil.getMainDimensionKey(this.level());
diff --git a/patches/server/0741-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0741-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index 67d2417c55..8d111565f9 100644
--- a/patches/server/0741-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0741-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Spigot Config not using commands.spam-exclusions
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 7e203542bde371a44294ace5bb1e3c8375b597ca..58da98b619b0f59a527d55d78e09c6c0ed676b7c 100644
+index 28c140d641244454d754770c06bc22d650cfcbfa..552220359917a8dfe77337122d65a3a43cfbdce5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2367,7 +2367,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0742-More-Teleport-API.patch b/patches/server/0742-More-Teleport-API.patch
index 9a4763b6fe..2f7a16ac49 100644
--- a/patches/server/0742-More-Teleport-API.patch
+++ b/patches/server/0742-More-Teleport-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] More Teleport API
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 58da98b619b0f59a527d55d78e09c6c0ed676b7c..83acd04bdcc7232934628c5d2cde987e410ee3aa 100644
+index 552220359917a8dfe77337122d65a3a43cfbdce5..0f7a9ffe56150b29867b9ca32ea6de5a1689a0f1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1553,11 +1553,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0745-Send-block-entities-after-destroy-prediction.patch b/patches/server/0745-Send-block-entities-after-destroy-prediction.patch
index 0a6e27c3c6..4516d3139c 100644
--- a/patches/server/0745-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0745-Send-block-entities-after-destroy-prediction.patch
@@ -57,7 +57,7 @@ index d8c5f8e584976a97bd909bfa20023993ab776952..77e78808171daac78502ef3fcc70f035
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 83acd04bdcc7232934628c5d2cde987e410ee3aa..96ef32b349f11ff747797c850c0e32bcb5e849b7 100644
+index 0f7a9ffe56150b29867b9ca32ea6de5a1689a0f1..c010d36d91066cb333f3360f278b775bacddd857 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1700,8 +1700,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0755-Stop-large-look-changes-from-crashing-the-server.patch b/patches/server/0755-Stop-large-look-changes-from-crashing-the-server.patch
index 4604a3c7d6..fdc94d50a1 100644
--- a/patches/server/0755-Stop-large-look-changes-from-crashing-the-server.patch
+++ b/patches/server/0755-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 f3ca6f6c7a8f2dc51e263ee879412bf2806b0946..4bda4252889cc42bb5a38c45d87f5ec0f2c281b3 100644
+index 44ce7ffd8304f0f295f632211931f5b9f6c72d17..33506e82025656df4a13aeacb788d73e5e5a4929 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3136,37 +3136,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3142,37 +3142,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getProfiler().pop();
this.level().getProfiler().push("rangeChecks");
diff --git a/patches/server/0767-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0767-Fix-a-bunch-of-vanilla-bugs.patch
index 81cd4525ce..45f93faf5c 100644
--- a/patches/server/0767-Fix-a-bunch-of-vanilla-bugs.patch
+++ b/patches/server/0767-Fix-a-bunch-of-vanilla-bugs.patch
@@ -130,10 +130,10 @@ index 23c9aca7c05a4457e357699c67c7780894ebe3de..ab31102de7c43a4fc923b26d90722424
if (!list.isEmpty()) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 22e9009e2943a70f21da6fa1ceefb5cfc9d20dab..9a56a019b604e95f9ce536333223fa058d2a6550 100644
+index 269c0f53d37e968ae25e38ef81a11c9d5284c494..a1636e09a7b46c333029bfdb7d1823d5dec83bbf 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -435,14 +435,14 @@ public class ServerPlayer extends Player {
+@@ -445,14 +445,14 @@ public class ServerPlayer extends Player {
BlockPos blockposition1 = PlayerRespawnLogic.getOverworldRespawnPos(world, blockposition.getX() + j2 - i, blockposition.getZ() + k2 - i);
if (blockposition1 != null) {
diff --git a/patches/server/0772-Add-PlayerInventorySlotChangeEvent.patch b/patches/server/0772-Add-PlayerInventorySlotChangeEvent.patch
index c9503fa774..40015b3b36 100644
--- a/patches/server/0772-Add-PlayerInventorySlotChangeEvent.patch
+++ b/patches/server/0772-Add-PlayerInventorySlotChangeEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerInventorySlotChangeEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 9a56a019b604e95f9ce536333223fa058d2a6550..15a00f156036ed364e05216cb34ad6556b0ba714 100644
+index a1636e09a7b46c333029bfdb7d1823d5dec83bbf..d139e9e8b83ee4f075228ef0d42786c470012c2d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -346,6 +346,25 @@ public class ServerPlayer extends Player {
+@@ -347,6 +347,25 @@ public class ServerPlayer extends Player {
}
}
diff --git a/patches/server/0790-check-global-player-list-where-appropriate.patch b/patches/server/0790-check-global-player-list-where-appropriate.patch
index a0e80701f5..56ca131550 100644
--- a/patches/server/0790-check-global-player-list-where-appropriate.patch
+++ b/patches/server/0790-check-global-player-list-where-appropriate.patch
@@ -24,10 +24,10 @@ index 93f6864c69761b70735795186cf118d1f091d092..3ce6604a74d7ab0b045901261d58736c
+ // 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 4bda4252889cc42bb5a38c45d87f5ec0f2c281b3..fdd0cf40b4e0df7d1987889c635fd90cd63727b6 100644
+index 33506e82025656df4a13aeacb788d73e5e5a4929..1a88c22e6f2e85e2cb87ae20a849ac594e9be1e0 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3682,7 +3682,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3688,7 +3688,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public void onItemPickup(ItemEntity item) {
diff --git a/patches/server/0793-Friction-API.patch b/patches/server/0793-Friction-API.patch
index d4359b9c85..8818e0e61b 100644
--- a/patches/server/0793-Friction-API.patch
+++ b/patches/server/0793-Friction-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Friction API
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index fdd0cf40b4e0df7d1987889c635fd90cd63727b6..6ac6848fe27336a96a813c84d7d797cc9bc4c297 100644
+index 1a88c22e6f2e85e2cb87ae20a849ac594e9be1e0..c5ebe3aec4f7ba484194c75f94600ba926b10abb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -273,6 +273,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0796-Sync-offhand-slot-in-menus.patch b/patches/server/0796-Sync-offhand-slot-in-menus.patch
index ca3c70a65a..2c88b798a8 100644
--- a/patches/server/0796-Sync-offhand-slot-in-menus.patch
+++ b/patches/server/0796-Sync-offhand-slot-in-menus.patch
@@ -8,10 +8,10 @@ offhand slot isn't sent. This is not correct because you *can* put stuff into th
by pressing the offhand swap item
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 15a00f156036ed364e05216cb34ad6556b0ba714..c70e1a17d855f2a9d160e8cd15a6a4bcf39b8945 100644
+index d139e9e8b83ee4f075228ef0d42786c470012c2d..992032821110fc658fecc09530097a526f20d74d 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -315,6 +315,13 @@ public class ServerPlayer extends Player {
+@@ -316,6 +316,13 @@ public class ServerPlayer extends Player {
}
diff --git a/patches/server/0805-Improve-logging-and-errors.patch b/patches/server/0805-Improve-logging-and-errors.patch
index 5fd0fba842..cb4ce73b0f 100644
--- a/patches/server/0805-Improve-logging-and-errors.patch
+++ b/patches/server/0805-Improve-logging-and-errors.patch
@@ -52,7 +52,7 @@ index fdff82ed5dbf5176d470b9b6c41acfe6b98c7039..00679b76715fde4b90a999fd11cca40d
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 96ef32b349f11ff747797c850c0e32bcb5e849b7..d8c9db7db74e71f37bd4f2bb8e25b27a46c8ac57 100644
+index c010d36d91066cb333f3360f278b775bacddd857..f8bfc87b044e538e068c021cfc3f8de43b15e84d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3387,7 +3387,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0808-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0808-Add-missing-SpigotConfig-logCommands-check.patch
index fca5a305ca..cffc70d916 100644
--- a/patches/server/0808-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0808-Add-missing-SpigotConfig-logCommands-check.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add missing SpigotConfig logCommands check
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index d8c9db7db74e71f37bd4f2bb8e25b27a46c8ac57..506d78925907de50a44a937cd6fd45c66af1d662 100644
+index f8bfc87b044e538e068c021cfc3f8de43b15e84d..a63a61852371df86f379effa5c9f127b3bcb347b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2081,7 +2081,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0811-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0811-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
index c966db60a9..62b06bc717 100644
--- a/patches/server/0811-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
+++ b/patches/server/0811-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
@@ -49,10 +49,10 @@ index 2f5591aa232b834bb9b69a2a349ce93d1a9c63fa..8ba60de95845f4d56f299c5f1b2b5163
public DamageSource outOfBorder() {
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index aa81144975fa66bcdb3d107e2a461b6d62d8e59e..fbd1f4f3a8c94a4842f91b7cc6c21f0cf7edd7ac 100644
+index d29b4268431472c6132efdfcd305e9616c57da21..0a8e46eef6df0bfda663758fc22b1eb4640aaf4e 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
-@@ -386,7 +386,7 @@ public class Explosion {
+@@ -389,7 +389,7 @@ public class Explosion {
bukkitBlocks = event.blockList();
this.yield = event.getYield();
} else {
diff --git a/patches/server/0814-Use-single-player-info-update-packet-on-join.patch b/patches/server/0814-Use-single-player-info-update-packet-on-join.patch
index be7116d308..c2d4b634f7 100644
--- a/patches/server/0814-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0814-Use-single-player-info-update-packet-on-join.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use single player info update packet on join
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 506d78925907de50a44a937cd6fd45c66af1d662..f4dc859a2bfe8c06f99ca6d2494fe1e90e4b6076 100644
+index a63a61852371df86f379effa5c9f127b3bcb347b..7c11e29378b1fd9535237e760384fa3904465056 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3423,7 +3423,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0815-Correctly-shrink-items-during-EntityResurrectEvent.patch b/patches/server/0815-Correctly-shrink-items-during-EntityResurrectEvent.patch
index d4dc43a7c7..aa171312b3 100644
--- a/patches/server/0815-Correctly-shrink-items-during-EntityResurrectEvent.patch
+++ b/patches/server/0815-Correctly-shrink-items-during-EntityResurrectEvent.patch
@@ -22,10 +22,10 @@ This patch corrects this behaviour by only shrinking the item if a totem
of undying was found and the event was called uncancelled.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 6ac6848fe27336a96a813c84d7d797cc9bc4c297..810e94674acff08eda6d98e91546a2338706ef42 100644
+index c5ebe3aec4f7ba484194c75f94600ba926b10abb..6ba7a7dd04e7a896f99ec6f7ff3749989d31bc0b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1638,7 +1638,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1644,7 +1644,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.level().getCraftServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
diff --git a/patches/server/0825-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0825-Fix-advancement-triggers-for-entity-damage.patch
index 2d24162670..f5cd8361e8 100644
--- a/patches/server/0825-Fix-advancement-triggers-for-entity-damage.patch
+++ b/patches/server/0825-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 810e94674acff08eda6d98e91546a2338706ef42..a356d0476e6ff9389809e8db1f584ac4bffe8be9 100644
+index 6ba7a7dd04e7a896f99ec6f7ff3749989d31bc0b..d84193a413fbdf76ddb70282d92e6d45b0424384 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2369,7 +2369,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2375,7 +2375,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 810e94674acff08eda6d98e91546a2338706ef42..a356d0476e6ff9389809e8db1f584ac4
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));
-@@ -2377,7 +2377,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2383,7 +2383,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (damagesource.getEntity() instanceof ServerPlayer) {
@@ -43,4 +43,4 @@ index 810e94674acff08eda6d98e91546a2338706ef42..a356d0476e6ff9389809e8db1f584ac4
+ CriteriaTriggers.PLAYER_HURT_ENTITY.trigger((ServerPlayer) damagesource.getEntity(), this, damagesource, originalDamage, f, true); // Paper - fix taken/dealt param order
}
- return false;
+ return true;
diff --git a/patches/server/0831-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0831-Treat-sequence-violations-like-they-should-be.patch
index 6a727c191f..b2b2aef8d8 100644
--- a/patches/server/0831-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0831-Treat-sequence-violations-like-they-should-be.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Treat sequence violations like they should be
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index f4dc859a2bfe8c06f99ca6d2494fe1e90e4b6076..321c1c6968fd52b1f3e11580b46a6be4368fb4ec 100644
+index 7c11e29378b1fd9535237e760384fa3904465056..7e800eadd7b7e39468f4c55830bf041ed99b92eb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1960,6 +1960,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0833-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0833-Prevent-causing-expired-keys-from-impacting-new-join.patch
index bf4d66e914..fdb8ee4768 100644
--- a/patches/server/0833-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0833-Prevent-causing-expired-keys-from-impacting-new-join.patch
@@ -26,7 +26,7 @@ index 68c062cbaa030d62d97c9c003651f8fc17a00a6b..6247a21c9c391abf1f6db3482c659593
UPDATE_GAME_MODE((serialized, buf) -> serialized.gameMode = GameType.byId(buf.readVarInt()), (buf, entry) -> buf.writeVarInt(entry.gameMode().getId())),
UPDATE_LISTED((serialized, buf) -> serialized.listed = buf.readBoolean(), (buf, entry) -> buf.writeBoolean(entry.listed())),
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 321c1c6968fd52b1f3e11580b46a6be4368fb4ec..9cbf1b7140fd7562a722fd93842bf1915682bb22 100644
+index 7e800eadd7b7e39468f4c55830bf041ed99b92eb..0b5a0784792814367c79cd5e0409443009e82b73 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -295,6 +295,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0869-Implement-PlayerFailMoveEvent.patch b/patches/server/0869-Implement-PlayerFailMoveEvent.patch
index a0afcbdacd..5be3895e6c 100644
--- a/patches/server/0869-Implement-PlayerFailMoveEvent.patch
+++ b/patches/server/0869-Implement-PlayerFailMoveEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerFailMoveEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 9cbf1b7140fd7562a722fd93842bf1915682bb22..699d8d4b2333da1b3e83e39167de44ab69ab9029 100644
+index 0b5a0784792814367c79cd5e0409443009e82b73..64c42e4ea8d17c8110f1df043cb3b7b3cbb52b8a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1266,8 +1266,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -91,7 +91,7 @@ index 9cbf1b7140fd7562a722fd93842bf1915682bb22..699d8d4b2333da1b3e83e39167de44ab
this.internalTeleport(d3, d4, d5, f, f1, Collections.emptySet()); // CraftBukkit - SPIGOT-1807: Don't call teleport event, when the client thinks the player is falling, because the chunks are not loaded on the client yet.
this.player.doCheckFallDamage(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5, packet.isOnGround());
} else {
-@@ -3450,4 +3480,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3452,4 +3482,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
InteractionResult run(ServerPlayer player, Entity entity, InteractionHand hand);
}
diff --git a/patches/server/0885-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0885-Don-t-tab-complete-namespaced-commands-if-send-names.patch
index f6d9c42ed2..ca6f261bbc 100644
--- a/patches/server/0885-Don-t-tab-complete-namespaced-commands-if-send-names.patch
+++ b/patches/server/0885-Don-t-tab-complete-namespaced-commands-if-send-names.patch
@@ -11,7 +11,7 @@ This patch prevents server from sending namespaced commands when player
requests tab-complete only commands.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 699d8d4b2333da1b3e83e39167de44ab69ab9029..6d5cf94979fba9d27f91b51682a3b7b3f67c07ea 100644
+index 64c42e4ea8d17c8110f1df043cb3b7b3cbb52b8a..0206521fff9c148e95cfb031b05511041af39746 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -817,6 +817,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0895-Add-PlayerPickItemEvent.patch b/patches/server/0895-Add-PlayerPickItemEvent.patch
index a611fad439..005f1da60d 100644
--- a/patches/server/0895-Add-PlayerPickItemEvent.patch
+++ b/patches/server/0895-Add-PlayerPickItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPickItemEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 6d5cf94979fba9d27f91b51682a3b7b3f67c07ea..cab3b97e1153362edf6c48bf30bf4035430e8bf3 100644
+index 0206521fff9c148e95cfb031b05511041af39746..ff8593b3835be310affc39cde964fabfcc105094 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -932,8 +932,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0900-Fix-inventory-desync.patch b/patches/server/0900-Fix-inventory-desync.patch
index 3381bed750..fce9f49abd 100644
--- a/patches/server/0900-Fix-inventory-desync.patch
+++ b/patches/server/0900-Fix-inventory-desync.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] Fix inventory desync
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 70a151c8d109780350423eba5a951733ac855f23..90cde88f0f1c2991354685c0423475b98e0c28e5 100644
+index 7b10bb9cbf6f2b4a70ddaa0ba4bc7409a17f3f09..66814adfb2cf92067702fc2695b083661cf859c0 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1467,6 +1467,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
- // CraftBukkit start - fire PlayerLeashEntityEvent
+@@ -1468,6 +1468,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
if (CraftEventFactory.callPlayerLeashEntityEvent(this, player, player, hand).isCancelled()) {
+ ((ServerPlayer) player).resendItemInHands(); // SPIGOT-7615: Resend to fix client desync with used item
((ServerPlayer) player).connection.send(new ClientboundSetEntityLinkPacket(this, this.getLeashHolder()));
+ player.containerMenu.sendAllDataToRemote(); // Paper - Fix inventory desync
return InteractionResult.PASS;
diff --git a/patches/server/0901-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/server/0901-Add-titleOverride-to-InventoryOpenEvent.patch
index c4903a4da6..157d433e22 100644
--- a/patches/server/0901-Add-titleOverride-to-InventoryOpenEvent.patch
+++ b/patches/server/0901-Add-titleOverride-to-InventoryOpenEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add titleOverride to InventoryOpenEvent
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index c70e1a17d855f2a9d160e8cd15a6a4bcf39b8945..b2bf086506ba7eda6ba6912ebf51a9da154cd414 100644
+index 992032821110fc658fecc09530097a526f20d74d..e447aa85b51c7e28fcd89bf8aa7602c88d599239 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1607,12 +1607,17 @@ public class ServerPlayer extends Player {
+@@ -1617,12 +1617,17 @@ public class ServerPlayer extends Player {
this.nextContainerCounter();
AbstractContainerMenu container = factory.createMenu(this.containerCounter, this.getInventory(), this);
@@ -27,7 +27,7 @@ index c70e1a17d855f2a9d160e8cd15a6a4bcf39b8945..b2bf086506ba7eda6ba6912ebf51a9da
if (container == null && !cancelled) { // Let pre-cancelled events fall through
// SPIGOT-5263 - close chest if cancelled
if (factory instanceof Container) {
-@@ -1634,7 +1639,7 @@ public class ServerPlayer extends Player {
+@@ -1644,7 +1649,7 @@ public class ServerPlayer extends Player {
} else {
// CraftBukkit start
this.containerMenu = container;
diff --git a/patches/server/0905-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0905-Add-slot-sanity-checks-in-container-clicks.patch
index 3ee111d847..ddbb17de53 100644
--- a/patches/server/0905-Add-slot-sanity-checks-in-container-clicks.patch
+++ b/patches/server/0905-Add-slot-sanity-checks-in-container-clicks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add slot sanity checks in container clicks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index cab3b97e1153362edf6c48bf30bf4035430e8bf3..4850971b46586cc6a4aeeba014bc6dcf6453d820 100644
+index ff8593b3835be310affc39cde964fabfcc105094..eebc68f55374d5763c77d1fbf884b17612fcd1fb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2972,6 +2972,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0908-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0908-Fix-silent-equipment-change-for-mobs.patch
index c75be4adb1..3ec68fbdbd 100644
--- a/patches/server/0908-Fix-silent-equipment-change-for-mobs.patch
+++ b/patches/server/0908-Fix-silent-equipment-change-for-mobs.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix silent equipment change for mobs
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 90cde88f0f1c2991354685c0423475b98e0c28e5..7f781afb996dee380487f5be77c2149525ef0cca 100644
+index 66814adfb2cf92067702fc2695b083661cf859c0..bca70fff39409617e9c2b8ea66c1de4b9376d261 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1153,19 +1153,26 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0926-Broadcast-take-item-packets-with-collector-as-source.patch b/patches/server/0926-Broadcast-take-item-packets-with-collector-as-source.patch
index a1301dea28..ba525debbf 100644
--- a/patches/server/0926-Broadcast-take-item-packets-with-collector-as-source.patch
+++ b/patches/server/0926-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 a356d0476e6ff9389809e8db1f584ac4bffe8be9..a8b168f56c74feeaca55335731b1d485289736cb 100644
+index d84193a413fbdf76ddb70282d92e6d45b0424384..1784a1881dc7f4b7148abf94bc7d7750c810997b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3708,7 +3708,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3714,7 +3714,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/0934-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0934-Don-t-fire-sync-events-during-worldgen.patch
index 24e5999fbb..144b9ec8bc 100644
--- a/patches/server/0934-Don-t-fire-sync-events-during-worldgen.patch
+++ b/patches/server/0934-Don-t-fire-sync-events-during-worldgen.patch
@@ -68,7 +68,7 @@ index d769dc472d3f12bf1e30ddd767a76659b734caac..8c7cc9c5af0b8d8bef9b6e2d3d3e723c
}, () -> {
EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id"));
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index a8b168f56c74feeaca55335731b1d485289736cb..281d2f3df347e911eee459e06b917a0e075078e9 100644
+index 1784a1881dc7f4b7148abf94bc7d7750c810997b..6b156049b06b38afbbd7cf3155b06601e334a805 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1163,6 +1163,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0936-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0936-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
index 8568cfc5bf..7433f5486a 100644
--- a/patches/server/0936-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
+++ b/patches/server/0936-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix CraftMetaItem#getAttributeModifier duplication check
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index a3ae3203e04dfb791b8aa537a303f4a4bd6cbab6..549d06b83b195c0a0207d18850b98d1e6e611460 100644
+index 069666c797c39b5119e41a3c18727f89fcc3b8c5..fac6f3aa00b209e6090f4cb0207e53a994e51cac 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -1255,7 +1255,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
diff --git a/patches/server/0937-Restore-vanilla-entity-drops-behavior.patch b/patches/server/0937-Restore-vanilla-entity-drops-behavior.patch
index edb6769a27..1b3e74a14f 100644
--- a/patches/server/0937-Restore-vanilla-entity-drops-behavior.patch
+++ b/patches/server/0937-Restore-vanilla-entity-drops-behavior.patch
@@ -9,10 +9,10 @@ on dropping the item instead of generalizing it for all dropped
items like CB does.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b2bf086506ba7eda6ba6912ebf51a9da154cd414..bee8cc19d7912d2ab1b731c47cf7e31d21d61866 100644
+index e447aa85b51c7e28fcd89bf8aa7602c88d599239..0d4224c56bcdff54bbf6cc2d9d25e4d7b0ba187b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -958,22 +958,20 @@ public class ServerPlayer extends Player {
+@@ -968,22 +968,20 @@ public class ServerPlayer extends Player {
if (this.isRemoved()) {
return;
}
@@ -38,7 +38,7 @@ index b2bf086506ba7eda6ba6912ebf51a9da154cd414..bee8cc19d7912d2ab1b731c47cf7e31d
this.drops.clear(); // SPIGOT-5188: make sure to clear
} // Paper - fix player loottables running when mob loot gamerule is false
-@@ -2471,8 +2469,8 @@ public class ServerPlayer extends Player {
+@@ -2481,8 +2479,8 @@ public class ServerPlayer extends Player {
}
@Override
@@ -104,7 +104,7 @@ index ee38f76e46c20e9fadfb5d4d602b7b82a8a22e51..4e96b6c05bf8b8235e91bdd26e5615c5
return this.spawnAtLocation(entityitem);
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 281d2f3df347e911eee459e06b917a0e075078e9..f948f4051607611e7105790c3b6bacc5d3ec39db 100644
+index 6b156049b06b38afbbd7cf3155b06601e334a805..f024038d473e424aa08256040c1591d23871c20c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -266,7 +266,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
diff --git a/patches/server/0941-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch b/patches/server/0941-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
index b6f285b9cc..9bde782301 100644
--- a/patches/server/0941-Fix-NPE-on-null-loc-for-EntityTeleportEvent.patch
+++ b/patches/server/0941-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 f948f4051607611e7105790c3b6bacc5d3ec39db..68c312dc39ef6fdb88e201ba096c9bd99aebddd7 100644
+index f024038d473e424aa08256040c1591d23871c20c..27e74611229e9558f1e015c68cb0cc91290c42b8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -4183,7 +4183,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4189,7 +4189,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/0945-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0945-Validate-ResourceLocation-in-NBT-reading.patch
index 0e1c0b7e08..6de34aa3c7 100644
--- a/patches/server/0945-Validate-ResourceLocation-in-NBT-reading.patch
+++ b/patches/server/0945-Validate-ResourceLocation-in-NBT-reading.patch
@@ -53,7 +53,7 @@ index 8c7cc9c5af0b8d8bef9b6e2d3d3e723cd76f3212..56b51096ca4147363a843accf6ef2510
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index 68c312dc39ef6fdb88e201ba096c9bd99aebddd7..0416af1342dad6a6789aa743aadf61b32b70f338 100644
+index 27e74611229e9558f1e015c68cb0cc91290c42b8..afd665420d3f839fb330f7f25c62a64ace027ef1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -911,12 +911,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -72,7 +72,7 @@ index 68c312dc39ef6fdb88e201ba096c9bd99aebddd7..0416af1342dad6a6789aa743aadf61b3
if (nbt.contains("Brain", 10)) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 7f781afb996dee380487f5be77c2149525ef0cca..0fd307e214f544284606ac8aa57f3f6bdca8bca6 100644
+index bca70fff39409617e9c2b8ea66c1de4b9376d261..b5fd4feb44e5aca2b37f0e6b3c5317d6caf4b3d4 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -645,7 +645,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0962-Add-CartographyItemEvent.patch b/patches/server/0962-Add-CartographyItemEvent.patch
index 4502c9aa8a..7570602097 100644
--- a/patches/server/0962-Add-CartographyItemEvent.patch
+++ b/patches/server/0962-Add-CartographyItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add CartographyItemEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4850971b46586cc6a4aeeba014bc6dcf6453d820..4db287b7d0d25b0e2b4943a02a72964c387ca321 100644
+index eebc68f55374d5763c77d1fbf884b17612fcd1fb..342d81e200df6df332655525326c164432355953 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3094,6 +3094,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0969-Fix-DamageSource-API.patch b/patches/server/0969-Fix-DamageSource-API.patch
index 0e5c644bc1..2f3c828816 100644
--- a/patches/server/0969-Fix-DamageSource-API.patch
+++ b/patches/server/0969-Fix-DamageSource-API.patch
@@ -139,7 +139,7 @@ index 02931861de955352e71d6f5ffc720a17304815fe..55b4b5ad5f084c9a271a716d07667247
if (flag && entity instanceof LivingEntity) {
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index fbd1f4f3a8c94a4842f91b7cc6c21f0cf7edd7ac..550c0cf4d84afc0cd6b2675bdc6aa2282d87e312 100644
+index 0a8e46eef6df0bfda663758fc22b1eb4640aaf4e..67c7458619227961e065615853f4ed02559a0723 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -104,7 +104,7 @@ public class Explosion {
diff --git a/patches/server/0972-Improve-tag-parser-handling.patch b/patches/server/0972-Improve-tag-parser-handling.patch
index 6f346ac4f2..1bb246240c 100644
--- a/patches/server/0972-Improve-tag-parser-handling.patch
+++ b/patches/server/0972-Improve-tag-parser-handling.patch
@@ -169,7 +169,7 @@ index 898b19887ed34c87003fc63cb5905df2ba6234a5..b47eeb23055b135d5567552ba983bfbc
private void write(FriendlyByteBuf buf) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 4db287b7d0d25b0e2b4943a02a72964c387ca321..9c5614d42656d1306e6f0db961391e62a5f42ee7 100644
+index 342d81e200df6df332655525326c164432355953..4a1fe620ab2a6efadf734c1d7b09784e3865291c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -763,6 +763,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/0981-Rewrite-chunk-system.patch b/patches/server/0981-Rewrite-chunk-system.patch
index bda9e3aa31..f1d58b1206 100644
--- a/patches/server/0981-Rewrite-chunk-system.patch
+++ b/patches/server/0981-Rewrite-chunk-system.patch
@@ -18983,10 +18983,10 @@ index 4f15b9d7c706a9b11ce2df0fa3b67d49f2b73d09..60fd84819ea7aa96f351db743e866733
return crashreportsystemdetails;
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index bee8cc19d7912d2ab1b731c47cf7e31d21d61866..65e6623c2d1a6cf48729f78948fc48e82057114c 100644
+index 0d4224c56bcdff54bbf6cc2d9d25e4d7b0ba187b..c7290763e546252f511ff849f5da3b47283ec24a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -292,6 +292,50 @@ public class ServerPlayer extends Player {
+@@ -293,6 +293,50 @@ public class ServerPlayer extends Player {
public @Nullable String clientBrandName = null; // Paper - Brand support
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
diff --git a/patches/server/0982-incremental-chunk-and-player-saving.patch b/patches/server/0982-incremental-chunk-and-player-saving.patch
index 22cf818d37..adc9d293bb 100644
--- a/patches/server/0982-incremental-chunk-and-player-saving.patch
+++ b/patches/server/0982-incremental-chunk-and-player-saving.patch
@@ -118,10 +118,10 @@ index 60fd84819ea7aa96f351db743e8667334af9e96b..afc1639c96c01197c6c11873fcd5d779
// Paper start - rewrite chunk system - add close param
this.save(progressListener, flush, savingDisabled, false);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 65e6623c2d1a6cf48729f78948fc48e82057114c..fc8e9cd699bdefb6ddadc6aa30e6459417c73194 100644
+index c7290763e546252f511ff849f5da3b47283ec24a..305d88c8bfb0d9864f132be7b0e8fd2f4d18a539 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -198,6 +198,7 @@ import org.bukkit.inventory.MainHand;
+@@ -199,6 +199,7 @@ import org.bukkit.inventory.MainHand;
public class ServerPlayer extends Player {
private static final Logger LOGGER = LogUtils.getLogger();
diff --git a/patches/server/0985-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch b/patches/server/0985-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
index 1a86ce02de..a2017dadf4 100644
--- a/patches/server/0985-Strip-raytracing-for-EntityLiving-hasLineOfSight.patch
+++ b/patches/server/0985-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 0416af1342dad6a6789aa743aadf61b32b70f338..5854e58a014b5581fa065d1db256ffc0aa947ce2 100644
+index afd665420d3f839fb330f7f25c62a64ace027ef1..bb74f36dcaeda72e3b154f1d62375967aad89f67 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3730,7 +3730,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3736,7 +3736,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/0990-Entity-Activation-Range-2.0.patch b/patches/server/0990-Entity-Activation-Range-2.0.patch
index 6db2a7e550..0327db7ee1 100644
--- a/patches/server/0990-Entity-Activation-Range-2.0.patch
+++ b/patches/server/0990-Entity-Activation-Range-2.0.patch
@@ -147,7 +147,7 @@ index 03840f520624662d4ce3ac9f3065a01c71b5f299..a13edd1165a5ba4dd3f5c323e454926e
movement = this.maybeBackOffFromEdge(movement, movementType);
Vec3 vec3d1 = this.collide(movement);
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
-index 0fd307e214f544284606ac8aa57f3f6bdca8bca6..eb2fd14f175a4ffca920ca116fb8d0d381286dc5 100644
+index b5fd4feb44e5aca2b37f0e6b3c5317d6caf4b3d4..e89f9c3e887601d8461eb967ae0bf582b672f631 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -237,6 +237,19 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
diff --git a/patches/server/0991-Optional-per-player-mob-spawns.patch b/patches/server/0991-Optional-per-player-mob-spawns.patch
index b9fe80f3e4..54636b93ff 100644
--- a/patches/server/0991-Optional-per-player-mob-spawns.patch
+++ b/patches/server/0991-Optional-per-player-mob-spawns.patch
@@ -64,10 +64,10 @@ index d1728e13a7b649f308bde90ab633c79d86c10822..002aad174fb1781ee963414037f84e51
this.lastSpawnState = spawnercreature_d;
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index fc8e9cd699bdefb6ddadc6aa30e6459417c73194..61e256224c6d7c944bee0e11d0edcf05b8a5ecd3 100644
+index 305d88c8bfb0d9864f132be7b0e8fd2f4d18a539..e857bc7014d611f128bbae67970a6e071f31b6fb 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -271,6 +271,10 @@ public class ServerPlayer extends Player {
+@@ -272,6 +272,10 @@ public class ServerPlayer extends Player {
public boolean queueHealthUpdatePacket;
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
// Paper end - cancellable death event
diff --git a/patches/server/0993-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch b/patches/server/0993-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
index 12af227d2a..14ca843b31 100644
--- a/patches/server/0993-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
+++ b/patches/server/0993-Improve-cancelling-PreCreatureSpawnEvent-with-per-pl.patch
@@ -60,10 +60,10 @@ index 002aad174fb1781ee963414037f84e5120488592..c7b7f153895a4b95b2071a31db00c9c4
spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true);
} else {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 61e256224c6d7c944bee0e11d0edcf05b8a5ecd3..e06b9b0c7b1c3a200b89819e0e521f1c88dc981b 100644
+index e857bc7014d611f128bbae67970a6e071f31b6fb..a0d16e8289d6e35bb1e92623642386ac0c0552be 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -275,6 +275,7 @@ public class ServerPlayer extends Player {
+@@ -276,6 +276,7 @@ public class ServerPlayer extends Player {
public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length;
public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper
// Paper end - Optional per player mob spawns
diff --git a/patches/server/0999-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0999-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
index 9d41c60b80..87c5ae2763 100644
--- a/patches/server/0999-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
+++ b/patches/server/0999-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch
@@ -13,7 +13,7 @@ A config is provided if you rather let players use these exploits, and let
them destroy the worlds End Portals and get on top of the nether easy.
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 550c0cf4d84afc0cd6b2675bdc6aa2282d87e312..6bd6533e314b64d3512cbb46f5174a4956c323b2 100644
+index 67c7458619227961e065615853f4ed02559a0723..2826160f3dd951884f17d48c1b3d8f95c90e5856 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -192,6 +192,7 @@ public class Explosion {
diff --git a/patches/server/1005-Improve-boat-collision-performance.patch b/patches/server/1005-Improve-boat-collision-performance.patch
index 3cd32de1e5..8266a668a8 100644
--- a/patches/server/1005-Improve-boat-collision-performance.patch
+++ b/patches/server/1005-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 5854e58a014b5581fa065d1db256ffc0aa947ce2..75e01c1e01e0782fc8af48777bbe4716d37aeafa 100644
+index bb74f36dcaeda72e3b154f1d62375967aad89f67..b36895bf73c49a28b78807909aefc26466384178 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 5854e58a014b5581fa065d1db256ffc0aa947ce2..75e01c1e01e0782fc8af48777bbe4716
LivingEntity entityliving = (LivingEntity) entity;
this.blockUsingShield(entityliving);
-@@ -1553,11 +1553,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1559,11 +1559,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (entity1 != null && !source.is(DamageTypeTags.NO_KNOCKBACK)) {
@@ -44,7 +44,7 @@ index 5854e58a014b5581fa065d1db256ffc0aa947ce2..75e01c1e01e0782fc8af48777bbe4716
d0 = (Math.random() - Math.random()) * 0.01D;
}
-@@ -2334,7 +2335,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2340,7 +2341,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/1013-Collision-optimisations.patch b/patches/server/1013-Collision-optimisations.patch
index a6179487ff..1d14ead3c6 100644
--- a/patches/server/1013-Collision-optimisations.patch
+++ b/patches/server/1013-Collision-optimisations.patch
@@ -2179,10 +2179,10 @@ index 03c45ee77276462818a6f774b5945b25924aa3f0..ab289a6ca85459e03acb2089c6b9e931
private Direction(
final int id,
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index e06b9b0c7b1c3a200b89819e0e521f1c88dc981b..ed42a78aebeda86b77f27cba4fcefbc6c17f86fc 100644
+index a0d16e8289d6e35bb1e92623642386ac0c0552be..9079a7c4ca27eedc346312282d6f6f78ca6fd205 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -512,7 +512,7 @@ public class ServerPlayer extends Player {
+@@ -522,7 +522,7 @@ public class ServerPlayer extends Player {
if (blockposition1 != null) {
this.moveTo(blockposition1, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored
@@ -2191,7 +2191,7 @@ index e06b9b0c7b1c3a200b89819e0e521f1c88dc981b..ed42a78aebeda86b77f27cba4fcefbc6
break;
}
}
-@@ -520,7 +520,7 @@ public class ServerPlayer extends Player {
+@@ -530,7 +530,7 @@ public class ServerPlayer extends Player {
} else {
this.moveTo(blockposition, world.getSharedSpawnAngle(), 0.0F); // Paper - MC-200092 - fix first spawn pos yaw being ignored
diff --git a/patches/server/1014-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1014-Optimise-collision-checking-in-player-move-packet-ha.patch
index 378e882366..d7da9feb2a 100644
--- a/patches/server/1014-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/1014-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -8,7 +8,7 @@ Move collision logic to just the hasNewCollision call instead of getCubes + hasN
CHECK ME
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 9c5614d42656d1306e6f0db961391e62a5f42ee7..ae927c2cdf151b901822636a2543668f85946430 100644
+index 4a1fe620ab2a6efadf734c1d7b09784e3865291c..5a99ca1121ef2163b194372c48bf03e95a96b8ea 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -572,7 +572,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
diff --git a/patches/server/1019-Properly-resend-entities.patch b/patches/server/1019-Properly-resend-entities.patch
index 4ac71e7b7c..f69eb0f883 100644
--- a/patches/server/1019-Properly-resend-entities.patch
+++ b/patches/server/1019-Properly-resend-entities.patch
@@ -81,7 +81,7 @@ index abb9a86cd42a34cf722a312068134e820ac21956..f168044d36f22080504da171e5ed31a6
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index ae927c2cdf151b901822636a2543668f85946430..ea7a2db0d71a69a6f67fda032f01c9a126bd3100 100644
+index 5a99ca1121ef2163b194372c48bf03e95a96b8ea..8e67853a7a93fa736c147e8b2df537746dc8e94f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2004,6 +2004,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -166,10 +166,10 @@ index 8ad2d17615ff489b2fbbb13480dd0b217a42d805..2bc85351e6e52f90da5fdb29d8d042a0
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 75e01c1e01e0782fc8af48777bbe4716d37aeafa..2d375fc98e72246f6a640c390cb50d055fb59f8b 100644
+index b36895bf73c49a28b78807909aefc26466384178..34793f2072e370ee6ec4a969d103dbe1fd230657 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3828,6 +3828,11 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3834,6 +3834,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/1022-Actually-optimise-explosions.patch b/patches/server/1022-Actually-optimise-explosions.patch
index a7db826672..6f9813b4fc 100644
--- a/patches/server/1022-Actually-optimise-explosions.patch
+++ b/patches/server/1022-Actually-optimise-explosions.patch
@@ -34,7 +34,7 @@ The results indicate that this logic is 5 times faster than Vanilla
and 2.3 times faster than Lithium.
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
-index 6bd6533e314b64d3512cbb46f5174a4956c323b2..46a14da698eff141b7379aa9c159e6a5c5f7d84c 100644
+index 2826160f3dd951884f17d48c1b3d8f95c90e5856..feb470e8036ecfcd838cff05a0dc1d43cc96ae3c 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -112,6 +112,271 @@ public class Explosion {
@@ -468,7 +468,7 @@ index 6bd6533e314b64d3512cbb46f5174a4956c323b2..46a14da698eff141b7379aa9c159e6a5
double d13;
if (entity instanceof LivingEntity) {
-@@ -337,6 +653,9 @@ public class Explosion {
+@@ -340,6 +656,9 @@ public class Explosion {
}
}
@@ -478,7 +478,7 @@ index 6bd6533e314b64d3512cbb46f5174a4956c323b2..46a14da698eff141b7379aa9c159e6a5
}
public void finalizeExplosion(boolean particles) {
-@@ -550,14 +869,14 @@ public class Explosion {
+@@ -553,14 +872,14 @@ public class Explosion {
private BlockInteraction() {}
}
// Paper start - Optimize explosions
diff --git a/patches/server/1023-Optimise-chunk-tick-iteration.patch b/patches/server/1023-Optimise-chunk-tick-iteration.patch
index 21131380ce..a1c98f7aad 100644
--- a/patches/server/1023-Optimise-chunk-tick-iteration.patch
+++ b/patches/server/1023-Optimise-chunk-tick-iteration.patch
@@ -365,10 +365,10 @@ index 7fbeebe63f755624b967374072aa2e0565ce8c35..36caf354634d6675a3f1ec6829f4778e
gameprofilerfiller.pop();
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index ed42a78aebeda86b77f27cba4fcefbc6c17f86fc..49d612c1b84fe4f2335c9cf91cce5f60b6779ff6 100644
+index 9079a7c4ca27eedc346312282d6f6f78ca6fd205..8437316888c6056060a2780652147590b6fe7443 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -341,6 +341,9 @@ public class ServerPlayer extends Player {
+@@ -342,6 +342,9 @@ public class ServerPlayer extends Player {
});
}
// Paper end - replace player chunk loader
diff --git a/patches/server/1024-Lag-compensation-ticks.patch b/patches/server/1024-Lag-compensation-ticks.patch
index dbf7a195bd..4eab1e51ab 100644
--- a/patches/server/1024-Lag-compensation-ticks.patch
+++ b/patches/server/1024-Lag-compensation-ticks.patch
@@ -63,10 +63,10 @@ index f168044d36f22080504da171e5ed31a6f02385ba..5cedce1f432f6b809b25269242a16477
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 2d375fc98e72246f6a640c390cb50d055fb59f8b..bad6a69246f6b0a4ada222b820f16469f91b0534 100644
+index 34793f2072e370ee6ec4a969d103dbe1fd230657..6751290fdcc30e3657c56660924bd5fb48418871 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -3833,6 +3833,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3839,6 +3839,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 2d375fc98e72246f6a640c390cb50d055fb59f8b..bad6a69246f6b0a4ada222b820f16469
private void updatingUsingItem() {
if (this.isUsingItem()) {
if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) {
-@@ -3851,7 +3855,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3857,7 +3861,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.triggerItemUseEffects(stack, 5);
}
@@ -91,7 +91,7 @@ index 2d375fc98e72246f6a640c390cb50d055fb59f8b..bad6a69246f6b0a4ada222b820f16469
this.completeUsingItem();
}
-@@ -3897,7 +3906,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3903,7 +3912,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 2d375fc98e72246f6a640c390cb50d055fb59f8b..bad6a69246f6b0a4ada222b820f16469
if (!this.level().isClientSide) {
this.setLivingEntityFlag(1, true);
this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND);
-@@ -3922,7 +3934,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -3928,7 +3940,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 2d375fc98e72246f6a640c390cb50d055fb59f8b..bad6a69246f6b0a4ada222b820f16469
}
}
-@@ -4057,7 +4072,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -4063,7 +4078,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.useItem = ItemStack.EMPTY;
diff --git a/patches/server/1031-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch b/patches/server/1031-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch
index 80403b7725..f7ac79e2e0 100644
--- a/patches/server/1031-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch
+++ b/patches/server/1031-Properly-handle-pdc-and-custom-tags-in-ItemMeta.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Properly handle pdc and custom tags in ItemMeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 549d06b83b195c0a0207d18850b98d1e6e611460..d70cd1f87753c0ba9ea18198906b5fba5a7d5813 100644
+index fac6f3aa00b209e6090f4cb0207e53a994e51cac..c6886ddaebe6a393e079fed18bb0784cff8eb9dc 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -369,6 +369,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
diff --git a/patches/server/1032-handle-converting-old-serialized-names-to-new-names.patch b/patches/server/1032-handle-converting-old-serialized-names-to-new-names.patch
index ff357c9f58..ea703343ed 100644
--- a/patches/server/1032-handle-converting-old-serialized-names-to-new-names.patch
+++ b/patches/server/1032-handle-converting-old-serialized-names-to-new-names.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] handle converting old serialized names to new names
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index d70cd1f87753c0ba9ea18198906b5fba5a7d5813..5730cd7dc888e2946a57d7667e0f0e7826600f05 100644
+index c6886ddaebe6a393e079fed18bb0784cff8eb9dc..7626ccaec65acbda22738296b4dd4423ee535aa8 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -490,7 +490,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
diff --git a/patches/server/1034-Deep-clone-nbt-tags-in-PDC.patch b/patches/server/1034-Deep-clone-nbt-tags-in-PDC.patch
index 4bcc5895e7..1f567e6cdf 100644
--- a/patches/server/1034-Deep-clone-nbt-tags-in-PDC.patch
+++ b/patches/server/1034-Deep-clone-nbt-tags-in-PDC.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Deep clone nbt tags in PDC
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 5730cd7dc888e2946a57d7667e0f0e7826600f05..80070ddd196ec212bc45f15ea098c7148b05b2e9 100644
+index 7626ccaec65acbda22738296b4dd4423ee535aa8..ca41754a8224ad0fe959c982a4b6adfd8b346b05 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -284,7 +284,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -17,7 +17,7 @@ index 5730cd7dc888e2946a57d7667e0f0e7826600f05..80070ddd196ec212bc45f15ea098c714
this.customTag = meta.customTag;
-@@ -1509,7 +1509,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1511,7 +1511,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
if (this.customTag != null) {
clone.customTag = this.customTag.copy();
}
diff --git a/patches/server/1036-Fix-shield-disable-inconsistency.patch b/patches/server/1036-Fix-shield-disable-inconsistency.patch
index 777f27d8bb..61f593ff71 100644
--- a/patches/server/1036-Fix-shield-disable-inconsistency.patch
+++ b/patches/server/1036-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 bad6a69246f6b0a4ada222b820f16469f91b0534..e0124e44e1abe8237859e8dc1e357298188dab52 100644
+index 6751290fdcc30e3657c56660924bd5fb48418871..614a90ff73a8a85f4b7fa2c633eb0473ec01c4d2 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2335,7 +2335,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2341,7 +2341,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/1038-Don-t-lose-removed-data-components-in-ItemMeta.patch b/patches/server/1038-Don-t-lose-removed-data-components-in-ItemMeta.patch
index 2aa999fdeb..a74a67e381 100644
--- a/patches/server/1038-Don-t-lose-removed-data-components-in-ItemMeta.patch
+++ b/patches/server/1038-Don-t-lose-removed-data-components-in-ItemMeta.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't lose removed data components in ItemMeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 80070ddd196ec212bc45f15ea098c7148b05b2e9..94e9213414ec08794e875c23c300bfae5dcc877e 100644
+index ca41754a8224ad0fe959c982a4b6adfd8b346b05..ba58f0f2f4f9cb99fb6cecfe772ae5781f976b63 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -174,6 +174,13 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
diff --git a/patches/server/1041-Fix-ItemFlags.patch b/patches/server/1041-Fix-ItemFlags.patch
index 9c1df3f6e8..94985c5f11 100644
--- a/patches/server/1041-Fix-ItemFlags.patch
+++ b/patches/server/1041-Fix-ItemFlags.patch
@@ -33,7 +33,7 @@ index fca0cfba14dd2cc6f24b56eaf269594b2d87fd04..8734f0b777432cd8639094b75a3da1b9
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a869209199 100644
+index ba58f0f2f4f9cb99fb6cecfe772ae5781f976b63..9cd528a70ef3e6053a7103a6f9df5e93bb8550a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -224,6 +224,12 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -128,7 +128,7 @@ index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a8
}
// Paper start
-@@ -1453,6 +1495,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1455,6 +1497,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
&& (this.hasFood() ? that.hasFood() && this.food.equals(that.food) : !that.hasFood())
&& (this.hasDamage() ? that.hasDamage() && this.damage == that.damage : !that.hasDamage())
&& (this.hasMaxDamage() ? that.hasMaxDamage() && this.maxDamage.equals(that.maxDamage) : !that.hasMaxDamage())
@@ -137,7 +137,7 @@ index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a8
&& (this.version == that.version);
}
-@@ -1495,6 +1539,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1497,6 +1541,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
hash = 61 * hash + (this.hasDamage() ? this.damage : 0);
hash = 61 * hash + (this.hasMaxDamage() ? 1231 : 1237);
hash = 61 * hash + (this.hasAttributeModifiers() ? this.attributeModifiers.hashCode() : 0);
@@ -146,7 +146,7 @@ index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a8
hash = 61 * hash + this.version;
return hash;
}
-@@ -1532,6 +1578,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1534,6 +1580,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
clone.damage = this.damage;
clone.maxDamage = this.maxDamage;
clone.version = this.version;
@@ -161,7 +161,7 @@ index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a8
return clone;
} catch (CloneNotSupportedException e) {
throw new Error(e);
-@@ -1641,6 +1695,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1643,6 +1697,16 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
}
@@ -178,7 +178,7 @@ index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a8
if (!this.unhandledTags.isEmpty()) {
Tag unhandled = DataComponentPatch.CODEC.encodeStart(MinecraftServer.getDefaultRegistryAccess().createSerializationContext(NbtOps.INSTANCE), this.unhandledTags.build()).getOrThrow(IllegalStateException::new);
try {
-@@ -1651,6 +1715,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1653,6 +1717,14 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
Logger.getLogger(CraftMetaItem.class.getName()).log(Level.SEVERE, null, ex);
}
}
@@ -193,7 +193,7 @@ index 94e9213414ec08794e875c23c300bfae5dcc877e..940c2c9663657369eda6962728bd37a8
if (!this.persistentDataContainer.isEmpty()) { // Store custom tags, wrapped in their compound
builder.put(CraftMetaItem.BUKKIT_CUSTOM_TAG.BUKKIT, this.persistentDataContainer.serialize());
-@@ -1792,6 +1864,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1794,6 +1866,8 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
CraftMetaItem.MAX_DAMAGE.TYPE,
CraftMetaItem.CUSTOM_DATA.TYPE,
CraftMetaItem.ATTRIBUTES.TYPE,
diff --git a/patches/server/1043-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch b/patches/server/1043-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
index 9f386e1311..736542f8cc 100644
--- a/patches/server/1043-Revert-to-vanilla-handling-of-LivingEntity-actuallyH.patch
+++ b/patches/server/1043-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 e0124e44e1abe8237859e8dc1e357298188dab52..dc974514ad54a4afc80b6f222ddd770c95cb6278 100644
+index 614a90ff73a8a85f4b7fa2c633eb0473ec01c4d2..6e043457a29a890bcefd27fc5bb07c1a7e4e30f7 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2220,7 +2220,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2226,7 +2226,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
// CraftBukkit start
@@ -17,15 +17,12 @@ index e0124e44e1abe8237859e8dc1e357298188dab52..dc974514ad54a4afc80b6f222ddd770c
if (!this.isInvulnerableTo(damagesource)) {
final boolean human = this instanceof net.minecraft.world.entity.player.Player;
float originalDamage = f;
-@@ -2390,14 +2390,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
- CriteriaTriggers.PLAYER_HURT_ENTITY.trigger((ServerPlayer) damagesource.getEntity(), this, damagesource, originalDamage, f, true); // Paper - fix taken/dealt param order
- }
+@@ -2398,12 +2398,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
-- return false;
-+ return true; // Paper - return false ONLY if event was cancelled
+ return true;
} else {
-- return originalDamage > 0;
-+ return originalDamage > 0 || true; // Paper - return false ONLY if event was cancelled
+- return originalDamage >= 0;
++ return true; // Paper - return false ONLY if event was cancelled
}
// CraftBukkit end
}
diff --git a/patches/server/1044-improve-checking-handled-tags-in-itemmeta.patch b/patches/server/1044-improve-checking-handled-tags-in-itemmeta.patch
index a8054bfc09..ef70a5d88f 100644
--- a/patches/server/1044-improve-checking-handled-tags-in-itemmeta.patch
+++ b/patches/server/1044-improve-checking-handled-tags-in-itemmeta.patch
@@ -404,7 +404,7 @@ index b444bd26d6c3def3494d3cc0520e462408272be3..8e0dd4b7a7a25a8beb27b507047bc48d
getOrEmpty(tag, CraftMetaFirework.FIREWORKS).ifPresent((fireworks) -> {
this.power = fireworks.flightDuration();
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
-index 940c2c9663657369eda6962728bd37a869209199..4ac9ddfd59db29b64240074c0497c608edb4d021 100644
+index 9cd528a70ef3e6053a7103a6f9df5e93bb8550a4..8973a08f39279415e28a4fadf0015f1ab9581350 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -308,7 +308,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
@@ -436,7 +436,7 @@ index 940c2c9663657369eda6962728bd37a869209199..4ac9ddfd59db29b64240074c0497c608
key.getValue().ifPresentOrElse((value) -> {
this.unhandledTags.set((DataComponentType) key.getKey(), value);
}, () -> {
-@@ -1841,63 +1848,73 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1843,63 +1850,73 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
this.version = version;
}
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 69fa46950cc65264d4e4db9f22e58d5f57e47f4
+Subproject 304e83eb384c338546aa96eea51388e0e8407e2
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 90f1059bae911966b5629b3ec1ff242d109fde7
+Subproject 91b1fc3f1cf89e2591367dca1fa7362fe376f28