aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-04-25 23:21:18 +0200
committerNassim Jahnke <[email protected]>2024-04-25 23:23:57 +0200
commit2641c021938df62a0bfc19c9abe26c5c89e39c80 (patch)
tree00017d0d9e0340135c01c3a055b37f0341ec2e3c
parented790385edc019359da399973fb0180318109b93 (diff)
downloadPaper-2641c021938df62a0bfc19c9abe26c5c89e39c80.tar.gz
Paper-2641c021938df62a0bfc19c9abe26c5c89e39c80.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: 69fa4695 Add some missing deprecation annotations f850da2e Update Maven plugins/versions 8d8400db Use regular compiler seeing as ECJ doesn't support Java 21 JRE c29e1688 Revert "BUILDTOOLS-676: Downgrade Maven compiler version" 07bce714 SPIGOT-7355: More field renames and fixes 6a8ea764 Fix bad merge in penultimate commit 50a7920c Fix imports in previous commit 83640dd1 PR-995: Add required feature to MinecraftExperimental for easy lookups fc1f96cf BUILDTOOLS-676: Downgrade Maven compiler version CraftBukkit Changes: 90f1059ba Fix item placement 661afb43c SPIGOT-7633: Clearer error message for missing particle data 807b465b3 SPIGOT-7634: Armadillo updates infrequently 590cf09a8 Fix unit tests always seeing Mojang server as unavailable 7c7ac5eb2 SPIGOT-7636: Fix clearing ItemMeta 4a72905cf SPIGOT-7635: Fix Player#transfer and cookie methods ebb50e136 Fix incorrect Vault implementation b33fed8b7 Update Maven plugins/versions 6f00f0608 SPIGOT-7632: Control middle clicking chest does not copy contents db821f405 Use regular compiler seeing as ECJ doesn't support Java 21 JRE 8a2976737 Revert "BUILDTOOLS-676: Downgrade Maven compiler version" 0297f87bb SPIGOT-7355: More field renames and fixes 2d03bdf6a SPIGOT-7629: Fix loading banner patterns e77951fac Fix equality of deserialized display names c66f3e4fd SPIGOT-7631: Fix deserialisation of BlockStateMeta 9c2c7be8d SPIGOT-7630: Fix crash saving unticked leashed entities 8c1e7c841 PR-1384: Disable certain PlayerProfile tests, if Mojang's services or internet are not available ced93d572 SPIGOT-7626: sendSignChange() has no effect c77362cae SPIGOT-7625: ItemStack with lore cannot be serialized in 1.20.5 ff2004387 SPIGOT-7620: Fix server crash when hoppers transfer items to double chests 8b4abeb03 BUILDTOOLS-676: Downgrade Maven compiler version
-rw-r--r--patches/api/0001-Convert-project-to-Gradle.patch35
-rw-r--r--patches/api/0002-Build-system-changes.patch4
-rw-r--r--patches/api/0003-Test-changes.patch2
-rw-r--r--patches/api/0004-Code-Generation.patch15
-rw-r--r--patches/api/0005-Add-FastUtil-to-Bukkit.patch2
-rw-r--r--patches/api/0006-Adventure.patch44
-rw-r--r--patches/api/0008-Use-ASM-for-event-executors.patch2
-rw-r--r--patches/api/0009-Paper-Plugins.patch2
-rw-r--r--patches/api/0056-Fix-upstream-javadocs.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/0070-Allow-plugins-to-use-SLF4J-for-logging.patch4
-rw-r--r--patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch4
-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.patch57
-rw-r--r--patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch2
-rw-r--r--patches/api/0209-Add-methods-to-get-translation-keys.patch20
-rw-r--r--patches/api/0256-Cache-the-result-of-Material-isBlock.patch8
-rw-r--r--patches/api/0262-Item-Rarity-API.patch6
-rw-r--r--patches/api/0280-ItemStack-repair-check-API.patch2
-rw-r--r--patches/api/0281-More-Enchantment-API.patch6
-rw-r--r--patches/api/0283-ItemStack-editMeta.patch2
-rw-r--r--patches/api/0285-Attributes-API-for-item-defaults.patch4
-rw-r--r--patches/api/0312-Get-entity-default-attributes.patch4
-rw-r--r--patches/api/0317-Add-isCollidable-methods-to-various-places.patch4
-rw-r--r--patches/api/0325-Improve-scoreboard-entries.patch10
-rw-r--r--patches/api/0349-Add-enchantWithLevels-API.patch2
-rw-r--r--patches/api/0385-ItemStack-damage-API.patch2
-rw-r--r--patches/api/0396-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch17
-rw-r--r--patches/api/0407-Properly-remove-the-experimental-smithing-inventory-.patch4
-rw-r--r--patches/api/0432-Allow-proper-checking-of-empty-item-stacks.patch2
-rw-r--r--patches/api/0440-Remove-unnecessary-durability-check-in-ItemStack-isS.patch2
-rw-r--r--patches/api/0442-add-missing-Experimental-annotations.patch523
-rw-r--r--patches/api/0444-Improve-Registry.patch8
-rw-r--r--patches/api/0446-Add-missing-InventoryType.patch4
-rw-r--r--patches/api/0450-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch4
-rw-r--r--patches/api/0456-ItemStack-Tooltip-API.patch2
-rw-r--r--patches/api/0466-Deprecate-ItemStack-setType.patch2
-rw-r--r--patches/server/0001-Setup-Gradle-project.patch33
-rw-r--r--patches/server/0003-Build-system-changes.patch2
-rw-r--r--patches/server/0004-Test-changes.patch2
-rw-r--r--patches/server/0005-Paper-config-files.patch2
-rw-r--r--patches/server/0009-MC-Utils.patch18
-rw-r--r--patches/server/0010-Adventure.patch87
-rw-r--r--patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch2
-rw-r--r--patches/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch2
-rw-r--r--patches/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch2
-rw-r--r--patches/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch2
-rw-r--r--patches/server/0020-Plugin-remapping.patch2
-rw-r--r--patches/server/0021-Hook-into-CB-plugin-rewrites.patch24
-rw-r--r--patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch10
-rw-r--r--patches/server/0023-Add-WorldEdit-plugin-flag-test-task.patch2
-rw-r--r--patches/server/0024-build-replace-use-of-shadow-plugin.patch2
-rw-r--r--patches/server/0025-Timings-v2.patch18
-rw-r--r--patches/server/0029-Support-components-in-ItemMeta.patch4
-rw-r--r--patches/server/0033-Allow-nerfed-mobs-to-jump.patch4
-rw-r--r--patches/server/0034-Add-configurable-entity-despawn-distances.patch4
-rw-r--r--patches/server/0040-Player-affects-spawning-API.patch8
-rw-r--r--patches/server/0041-Only-refresh-abilities-if-needed.patch2
-rw-r--r--patches/server/0054-Implement-PlayerLocaleChangeEvent.patch4
-rw-r--r--patches/server/0061-Improve-Player-chat-API-handling.patch10
-rw-r--r--patches/server/0065-Player-Tab-List-and-Title-APIs.patch4
-rw-r--r--patches/server/0068-Configurable-inter-world-teleportation-safety.patch2
-rw-r--r--patches/server/0073-Complete-resource-pack-API.patch8
-rw-r--r--patches/server/0077-Handle-Item-Meta-Inconsistencies.patch6
-rw-r--r--patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch2
-rw-r--r--patches/server/0090-Add-PlayerUseUnknownEntityEvent.patch4
-rw-r--r--patches/server/0113-Configurable-packet-in-spam-threshold.patch4
-rw-r--r--patches/server/0114-Configurable-flying-kick-messages.patch6
-rw-r--r--patches/server/0117-Cache-user-authenticator-threads.patch2
-rw-r--r--patches/server/0126-String-based-Action-Bar-API.patch4
-rw-r--r--patches/server/0127-Properly-fix-item-duplication-bug.patch4
-rw-r--r--patches/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch2
-rw-r--r--patches/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch4
-rw-r--r--patches/server/0139-Item-canEntityPickup.patch4
-rw-r--r--patches/server/0147-Block-player-logins-during-server-shutdown.patch2
-rw-r--r--patches/server/0157-Allow-specifying-a-custom-authentication-servers-dow.patch2
-rw-r--r--patches/server/0158-Add-PlayerJumpEvent.patch4
-rw-r--r--patches/server/0159-handle-ServerboundKeepAlivePacket-async.patch4
-rw-r--r--patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch6
-rw-r--r--patches/server/0161-revert-serverside-behavior-of-keepalives.patch8
-rw-r--r--patches/server/0164-Prevent-logins-from-being-processed-when-the-player-.patch2
-rw-r--r--patches/server/0167-API-to-get-a-BlockState-without-a-snapshot.patch6
-rw-r--r--patches/server/0168-AsyncTabCompleteEvent.patch4
-rw-r--r--patches/server/0170-Ability-to-apply-mending-to-XP-API.patch2
-rw-r--r--patches/server/0173-PreCreatureSpawnEvent.patch2
-rw-r--r--patches/server/0182-Add-more-fields-to-AsyncPreLoginEvent.patch2
-rw-r--r--patches/server/0183-Player.setPlayerProfile-API.patch14
-rw-r--r--patches/server/0188-Flag-to-disable-the-channel-limit.patch4
-rw-r--r--patches/server/0194-Expand-World.spawnParticle-API-and-add-Builder.patch14
-rw-r--r--patches/server/0200-ItemStack-getMaxItemUseDuration.patch2
-rw-r--r--patches/server/0210-Expand-Explosions-API.patch2
-rw-r--r--patches/server/0214-Implement-World.getEntity-UUID-API.patch2
-rw-r--r--patches/server/0215-InventoryCloseEvent-Reason-API.patch6
-rw-r--r--patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch4
-rw-r--r--patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch8
-rw-r--r--patches/server/0232-Remove-unnecessary-itemmeta-handling.patch2
-rw-r--r--patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch2
-rw-r--r--patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch4
-rw-r--r--patches/server/0250-Improve-death-events.patch10
-rw-r--r--patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch2
-rw-r--r--patches/server/0261-Add-sun-related-API.patch2
-rw-r--r--patches/server/0267-Add-option-to-prevent-players-from-moving-into-unloa.patch10
-rw-r--r--patches/server/0274-Don-t-allow-digging-into-unloaded-chunks.patch4
-rw-r--r--patches/server/0278-Book-Size-Limits.patch4
-rw-r--r--patches/server/0279-Add-PlayerConnectionCloseEvent.patch2
-rw-r--r--patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch4
-rw-r--r--patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch4
-rw-r--r--patches/server/0285-Brigadier-Mojang-API.patch6
-rw-r--r--patches/server/0287-Limit-Client-Sign-length-more.patch6
-rw-r--r--patches/server/0296-Add-Heightmap-API.patch2
-rw-r--r--patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch4
-rw-r--r--patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch2
-rw-r--r--patches/server/0351-Implement-Player-Client-Options-API.patch4
-rw-r--r--patches/server/0360-Validate-PickItem-Packet-and-kick-for-invalid.patch4
-rw-r--r--patches/server/0363-misc-debugging-dumps.patch6
-rw-r--r--patches/server/0364-Prevent-teleporting-dead-entities.patch4
-rw-r--r--patches/server/0365-Implement-Mob-Goal-API.patch4
-rw-r--r--patches/server/0381-Prevent-position-desync-causing-tp-exploit.patch4
-rw-r--r--patches/server/0383-Add-PlayerRecipeBookClickEvent.patch4
-rw-r--r--patches/server/0385-Add-permission-for-command-blocks.patch6
-rw-r--r--patches/server/0387-Fix-Per-World-Difficulty-Remembering-Difficulty.patch6
-rw-r--r--patches/server/0389-Improve-Legacy-Component-serialization-size.patch2
-rw-r--r--patches/server/0390-Add-Plugin-Tickets-to-API-Chunk-Methods.patch2
-rw-r--r--patches/server/0391-Add-BlockStateMeta-clearBlockState.patch4
-rw-r--r--patches/server/0392-Convert-legacy-attributes-in-Item-Meta.patch2
-rw-r--r--patches/server/0393-Do-not-accept-invalid-client-settings.patch4
-rw-r--r--patches/server/0407-Brand-support.patch12
-rw-r--r--patches/server/0410-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch2
-rw-r--r--patches/server/0417-Fix-hex-colors-not-working-in-some-kick-messages.patch2
-rw-r--r--patches/server/0418-PortalCreateEvent-needs-to-know-its-entity.patch2
-rw-r--r--patches/server/0423-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch6
-rw-r--r--patches/server/0433-Fix-for-large-move-vectors-crashing-server.patch12
-rw-r--r--patches/server/0446-Add-API-for-quit-reason.patch4
-rw-r--r--patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch12
-rw-r--r--patches/server/0458-Limit-recipe-packets.patch8
-rw-r--r--patches/server/0473-Fix-interact-event-not-being-called-sometimes.patch6
-rw-r--r--patches/server/0477-Add-WorldGameRuleChangeEvent.patch2
-rw-r--r--patches/server/0487-Add-sendOpLevel-API.patch4
-rw-r--r--patches/server/0499-Expand-EntityUnleashEvent.patch10
-rw-r--r--patches/server/0517-Allow-using-signs-inside-spawn-protection.patch4
-rw-r--r--patches/server/0523-Don-t-ignore-result-of-PlayerEditBookEvent.patch4
-rw-r--r--patches/server/0533-fix-PlayerItemHeldEvent-firing-twice.patch4
-rw-r--r--patches/server/0535-More-World-API.patch2
-rw-r--r--patches/server/0538-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch4
-rw-r--r--patches/server/0550-Expand-PlayerGameModeChangeEvent.patch6
-rw-r--r--patches/server/0553-Move-range-check-for-block-placing-up.patch4
-rw-r--r--patches/server/0556-Add-Unix-domain-socket-support.patch4
-rw-r--r--patches/server/0559-Add-cause-to-Weather-ThunderChangeEvents.patch2
-rw-r--r--patches/server/0562-Add-PlayerKickEvent-causes.patch76
-rw-r--r--patches/server/0573-add-per-world-spawn-limits.patch2
-rw-r--r--patches/server/0577-Missing-Entity-API.patch4
-rw-r--r--patches/server/0578-Ensure-disconnect-for-book-edit-is-called-on-main.patch4
-rw-r--r--patches/server/0582-Add-PlayerArmSwingEvent.patch4
-rw-r--r--patches/server/0583-Fix-kick-event-leave-message-not-being-sent.patch16
-rw-r--r--patches/server/0589-Prevent-AFK-kick-while-watching-end-credits.patch4
-rw-r--r--patches/server/0591-Add-PlayerSetSpawnEvent.patch2
-rw-r--r--patches/server/0592-Make-hoppers-respect-inventory-max-stack-size.patch2
-rw-r--r--patches/server/0595-Add-EntityDamageItemEvent.patch2
-rw-r--r--patches/server/0603-Add-missing-team-sidebar-display-slots.patch6
-rw-r--r--patches/server/0605-Add-methods-to-find-targets-for-lightning-strikes.patch2
-rw-r--r--patches/server/0608-Add-more-advancement-API.patch4
-rw-r--r--patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch4
-rw-r--r--patches/server/0619-Improve-and-expand-AsyncCatcher.patch6
-rw-r--r--patches/server/0620-Add-paper-mobcaps-and-paper-playermobcaps.patch2
-rw-r--r--patches/server/0633-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch4
-rw-r--r--patches/server/0645-Fix-upstreams-block-state-factories.patch6
-rw-r--r--patches/server/0667-Validate-usernames.patch2
-rw-r--r--patches/server/0669-Expose-vanilla-BiomeProvider-from-WorldInfo.patch2
-rw-r--r--patches/server/0676-Multi-Block-Change-API-Implementation.patch4
-rw-r--r--patches/server/0683-Implement-regenerateChunk.patch2
-rw-r--r--patches/server/0684-Fix-cancelled-powdered-snow-bucket-placement.patch2
-rw-r--r--patches/server/0696-Fix-falling-block-spawn-methods.patch2
-rw-r--r--patches/server/0699-More-Projectile-API.patch2
-rw-r--r--patches/server/0701-Don-t-allow-vehicle-movement-from-players-while-tele.patch4
-rw-r--r--patches/server/0714-Prevent-tile-entity-copies-loading-chunks.patch4
-rw-r--r--patches/server/0716-Expand-PlayerItemDamageEvent.patch2
-rw-r--r--patches/server/0726-Add-support-for-Proxy-Protocol.patch2
-rw-r--r--patches/server/0729-Sanitize-sent-BlockEntity-NBT.patch12
-rw-r--r--patches/server/0745-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch4
-rw-r--r--patches/server/0746-More-Teleport-API.patch6
-rw-r--r--patches/server/0749-Send-block-entities-after-destroy-prediction.patch4
-rw-r--r--patches/server/0750-Warn-on-plugins-accessing-faraway-chunks.patch2
-rw-r--r--patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch4
-rw-r--r--patches/server/0756-Add-Velocity-IP-Forwarding-Support.patch2
-rw-r--r--patches/server/0767-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch4
-rw-r--r--patches/server/0777-Elder-Guardian-appearance-API.patch4
-rw-r--r--patches/server/0791-Add-Player-Warden-Warning-API.patch4
-rw-r--r--patches/server/0803-Fixes-and-additions-to-the-SpawnReason-API.patch2
-rw-r--r--patches/server/0804-fix-Instruments.patch4
-rw-r--r--patches/server/0809-Improve-logging-and-errors.patch4
-rw-r--r--patches/server/0812-Add-missing-SpigotConfig-logCommands-check.patch4
-rw-r--r--patches/server/0814-Flying-Fall-Damage.patch2
-rw-r--r--patches/server/0815-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch2
-rw-r--r--patches/server/0817-config-for-disabling-entity-tag-tags.patch2
-rw-r--r--patches/server/0818-Use-single-player-info-update-packet-on-join.patch4
-rw-r--r--patches/server/0820-Win-Screen-API.patch2
-rw-r--r--patches/server/0821-Remove-CraftItemStack-setAmount-null-assignment.patch2
-rw-r--r--patches/server/0835-Treat-sequence-violations-like-they-should-be.patch4
-rw-r--r--patches/server/0837-Prevent-causing-expired-keys-from-impacting-new-join.patch8
-rw-r--r--patches/server/0846-Expand-PlayerItemMendEvent.patch2
-rw-r--r--patches/server/0849-Fix-block-place-logic.patch2
-rw-r--r--patches/server/0850-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch2
-rw-r--r--patches/server/0857-Add-event-for-player-editing-sign.patch2
-rw-r--r--patches/server/0865-fix-item-meta-for-tadpole-buckets.patch2
-rw-r--r--patches/server/0866-Fix-BanList-API.patch2
-rw-r--r--patches/server/0873-Implement-PlayerFailMoveEvent.patch12
-rw-r--r--patches/server/0878-Only-capture-actual-tree-growth.patch2
-rw-r--r--patches/server/0885-Bandaid-fix-for-Effect.patch6
-rw-r--r--patches/server/0889-Don-t-tab-complete-namespaced-commands-if-send-names.patch4
-rw-r--r--patches/server/0893-Add-Listing-API-for-Player.patch4
-rw-r--r--patches/server/0899-Add-PlayerPickItemEvent.patch4
-rw-r--r--patches/server/0903-Implement-OfflinePlayer-isConnected.patch4
-rw-r--r--patches/server/0904-Fix-inventory-desync.patch4
-rw-r--r--patches/server/0909-Add-slot-sanity-checks-in-container-clicks.patch4
-rw-r--r--patches/server/0911-Allow-proper-checking-of-empty-item-stacks.patch2
-rw-r--r--patches/server/0912-Fix-silent-equipment-change-for-mobs.patch4
-rw-r--r--patches/server/0923-Add-player-idle-duration-API.patch4
-rw-r--r--patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch2
-rw-r--r--patches/server/0929-Add-predicate-for-blocks-when-raytracing.patch2
-rw-r--r--patches/server/0933-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch2
-rw-r--r--patches/server/0939-Don-t-fire-sync-events-during-worldgen.patch2
-rw-r--r--patches/server/0940-Add-Structure-check-API.patch2
-rw-r--r--patches/server/0941-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch2
-rw-r--r--patches/server/0943-Dont-resend-blocks-on-interactions.patch2
-rw-r--r--patches/server/0947-Add-experience-points-API.patch2
-rw-r--r--patches/server/0948-Add-drops-to-shear-events.patch2
-rw-r--r--patches/server/0950-Validate-ResourceLocation-in-NBT-reading.patch6
-rw-r--r--patches/server/0966-Deprecate-ItemStack-setType.patch2
-rw-r--r--patches/server/0967-Add-CartographyItemEvent.patch4
-rw-r--r--patches/server/0968-More-Raid-API.patch2
-rw-r--r--patches/server/0976-Improve-tag-parser-handling.patch6
-rw-r--r--patches/server/0984-Starlight.patch2
-rw-r--r--patches/server/0985-Rewrite-chunk-system.patch6
-rw-r--r--patches/server/0992-Fix-World-isChunkGenerated-calls.patch2
-rw-r--r--patches/server/0994-Entity-Activation-Range-2.0.patch2
-rw-r--r--patches/server/0996-Anti-Xray.patch2
-rw-r--r--patches/server/1000-Entity-load-save-limit-per-chunk.patch2
-rw-r--r--patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch4
-rw-r--r--patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch20
-rw-r--r--patches/server/1024-Properly-resend-entities.patch6
-rw-r--r--patches/server/1025-Optimize-Hoppers.patch8
-rw-r--r--patches/server/1035-API-for-checking-sent-chunks.patch4
m---------work/Bukkit0
m---------work/CraftBukkit0
247 files changed, 944 insertions, 967 deletions
diff --git a/patches/api/0001-Convert-project-to-Gradle.patch b/patches/api/0001-Convert-project-to-Gradle.patch
index e65b211bf2..81ee13ba35 100644
--- a/patches/api/0001-Convert-project-to-Gradle.patch
+++ b/patches/api/0001-Convert-project-to-Gradle.patch
@@ -27,7 +27,7 @@ index 5dd700a956e915c00b25d91dea8d6f285ddab72b..97e78e27ee0eea2c8b24886eeb19164d
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
-index 0000000000000000000000000000000000000000..4756a5aa04f8a8f0a8f9ff2c7aa6776b5a6892a5
+index 0000000000000000000000000000000000000000..6271e2bad0ed937c2c46a8c8fdf186c46b0b620e
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,91 @@
@@ -41,7 +41,7 @@ index 0000000000000000000000000000000000000000..4756a5aa04f8a8f0a8f9ff2c7aa6776b
+ withJavadocJar()
+}
+
-+val annotationsVersion = "24.0.1"
++val annotationsVersion = "24.1.0"
+val bungeeCordChatVersion = "1.20-R0.2"
+
+dependencies {
@@ -61,7 +61,7 @@ index 0000000000000000000000000000000000000000..4756a5aa04f8a8f0a8f9ff2c7aa6776b
+ testCompileOnly(annotations)
+
+ testImplementation("org.apache.commons:commons-lang3:3.12.0")
-+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
++ testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+ testImplementation("org.hamcrest:hamcrest:2.2")
+ testImplementation("org.mockito:mockito-core:5.11.0")
+ testImplementation("org.ow2.asm:asm-tree:9.7")
@@ -124,10 +124,10 @@ index 0000000000000000000000000000000000000000..4756a5aa04f8a8f0a8f9ff2c7aa6776b
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
-index 35e6845d86cbfed386f666307add6d6f3e67dd1c..0000000000000000000000000000000000000000
+index 278ecb12ecdb5e1fdf394a1c990a4d849e53e05e..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
-@@ -1,276 +0,0 @@
+@@ -1,267 +0,0 @@
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -217,14 +217,14 @@ index 35e6845d86cbfed386f666307add6d6f3e67dd1c..00000000000000000000000000000000
- <dependency>
- <groupId>org.jetbrains</groupId>
- <artifactId>annotations-java5</artifactId>
-- <version>24.0.1</version>
+- <version>24.1.0</version>
- <scope>provided</scope>
- </dependency>
- <!-- testing -->
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter</artifactId>
-- <version>5.10.0</version>
+- <version>5.10.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
@@ -267,23 +267,14 @@ index 35e6845d86cbfed386f666307add6d6f3e67dd1c..00000000000000000000000000000000
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.13.0</version>
- <configuration>
-- <!-- we use the Eclipse compiler as it doesn't need a JDK -->
-- <compilerId>eclipse</compilerId>
- <!-- default changed with version 3.11.0 -->
- <showWarnings>false</showWarnings>
- </configuration>
-- <dependencies>
-- <dependency>
-- <groupId>org.codehaus.plexus</groupId>
-- <artifactId>plexus-compiler-eclipse</artifactId>
-- <version>2.15.0</version>
-- </dependency>
-- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
-- <version>3.3.0</version>
+- <version>3.4.1</version>
- <configuration>
- <archive>
- <manifest>
@@ -298,7 +289,7 @@ index 35e6845d86cbfed386f666307add6d6f3e67dd1c..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
-- <version>3.5.0</version>
+- <version>3.5.3</version>
- <executions>
- <execution>
- <phase>package</phase>
@@ -325,10 +316,10 @@ index 35e6845d86cbfed386f666307add6d6f3e67dd1c..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
-- <version>3.5.0</version>
+- <version>3.6.3</version>
- <configuration>
- <links>
-- <link>https://guava.dev/releases/31.1-jre/api/docs/</link>
+- <link>https://guava.dev/releases/32.1.2-jre/api/docs/</link>
- </links>
- <tags>
- <tag>
@@ -342,7 +333,7 @@ index 35e6845d86cbfed386f666307add6d6f3e67dd1c..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
-- <version>3.1.0</version>
+- <version>3.2.5</version>
- </plugin>
- </plugins>
- </build>
@@ -358,7 +349,7 @@ index 35e6845d86cbfed386f666307add6d6f3e67dd1c..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
-- <version>3.3.0</version>
+- <version>3.3.1</version>
- <executions>
- <execution>
- <phase>process-classes</phase>
diff --git a/patches/api/0002-Build-system-changes.patch b/patches/api/0002-Build-system-changes.patch
index c70df0a834..6885ccb3e0 100644
--- a/patches/api/0002-Build-system-changes.patch
+++ b/patches/api/0002-Build-system-changes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Build system changes
diff --git a/build.gradle.kts b/build.gradle.kts
-index 4756a5aa04f8a8f0a8f9ff2c7aa6776b5a6892a5..a1f46208d1f39de54b73c66c3c4284b6f8c86864 100644
+index 6271e2bad0ed937c2c46a8c8fdf186c46b0b620e..a918fd14c95e714e935758d60bccd72755e00b11 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -18,15 +18,26 @@ dependencies {
@@ -34,7 +34,7 @@ index 4756a5aa04f8a8f0a8f9ff2c7aa6776b5a6892a5..a1f46208d1f39de54b73c66c3c4284b6
+ // Paper end
+
testImplementation("org.apache.commons:commons-lang3:3.12.0")
- testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -69,8 +80,12 @@ tasks.withType<Javadoc> {
options.links(
diff --git a/patches/api/0003-Test-changes.patch b/patches/api/0003-Test-changes.patch
index 9d809b4327..6b6d57cb77 100644
--- a/patches/api/0003-Test-changes.patch
+++ b/patches/api/0003-Test-changes.patch
@@ -12,7 +12,7 @@ Co-authored-by: Riley Park <[email protected]>
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/build.gradle.kts b/build.gradle.kts
-index a1f46208d1f39de54b73c66c3c4284b6f8c86864..be4d301b305f5cd92d2ff352bfb9c6ff9f82fd9b 100644
+index a918fd14c95e714e935758d60bccd72755e00b11..768024b2b4584fd7dd86f068c0e79c89ffc5faa1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -105,6 +105,12 @@ tasks.test {
diff --git a/patches/api/0004-Code-Generation.patch b/patches/api/0004-Code-Generation.patch
index 33dd524ef9..2e1f5eb6a3 100644
--- a/patches/api/0004-Code-Generation.patch
+++ b/patches/api/0004-Code-Generation.patch
@@ -7,7 +7,7 @@ Currently includes generated key holder classes for types
used in the Registry Modification API
diff --git a/build.gradle.kts b/build.gradle.kts
-index be4d301b305f5cd92d2ff352bfb9c6ff9f82fd9b..01e3a5ba74f8d4c4c2eb010b289e2a7785b11bcc 100644
+index 768024b2b4584fd7dd86f068c0e79c89ffc5faa1..f11a22ab01e97e51619c96f2d8a78a99297efc59 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,6 +1,7 @@
@@ -246,12 +246,13 @@ index 0000000000000000000000000000000000000000..3c3fd73f7742bb8602e2f9164dd4c120
+record TypedKeyImpl<T extends Keyed>(@NotNull Key key, @NotNull RegistryKey<T> registryKey) implements TypedKey<T> {
+}
diff --git a/src/main/java/org/bukkit/MinecraftExperimental.java b/src/main/java/org/bukkit/MinecraftExperimental.java
-index 2365a8c620be709b280fb08855752bb0995838fc..b63e24b3c4d2f1a08e39434caa527bb2e0edea22 100644
+index b6f4810e387c22c4a70609ea1d605130245689a5..74d5c5e516715e7876b81bfa997d80edbe48476d 100644
--- a/src/main/java/org/bukkit/MinecraftExperimental.java
+++ b/src/main/java/org/bukkit/MinecraftExperimental.java
-@@ -24,4 +24,5 @@ import org.jetbrains.annotations.ApiStatus;
- })
- @ApiStatus.Internal
- public @interface MinecraftExperimental {
-+ String value() default ""; // Paper
+@@ -49,4 +49,6 @@ public @interface MinecraftExperimental {
+
+ UPDATE_1_21
+ }
++
++ String desc() default ""; // Paper
}
diff --git a/patches/api/0005-Add-FastUtil-to-Bukkit.patch b/patches/api/0005-Add-FastUtil-to-Bukkit.patch
index e3121abf57..68e47ea275 100644
--- a/patches/api/0005-Add-FastUtil-to-Bukkit.patch
+++ b/patches/api/0005-Add-FastUtil-to-Bukkit.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Add FastUtil to Bukkit
Doesn't expose to plugins, just allows Paper-API to use it for optimization
diff --git a/build.gradle.kts b/build.gradle.kts
-index 01e3a5ba74f8d4c4c2eb010b289e2a7785b11bcc..f605e7e0f812a2297b1cecf3f37b69a8edc6b4a5 100644
+index f11a22ab01e97e51619c96f2d8a78a99297efc59..2f266350a787a4cfdfda1b0e760bfb7604cac43c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -23,6 +23,7 @@ dependencies {
diff --git a/patches/api/0006-Adventure.patch b/patches/api/0006-Adventure.patch
index 6093772428..e21cf7abfb 100644
--- a/patches/api/0006-Adventure.patch
+++ b/patches/api/0006-Adventure.patch
@@ -8,12 +8,12 @@ Co-authored-by: Jake Potrebic <[email protected]>
Co-authored-by: Yannick Lamprecht <[email protected]>
diff --git a/build.gradle.kts b/build.gradle.kts
-index f605e7e0f812a2297b1cecf3f37b69a8edc6b4a5..ec60a4b804d9d077fdb7d88519b7fb8816aeab9f 100644
+index 2f266350a787a4cfdfda1b0e760bfb7604cac43c..c23ee26662657baa496d6048b9a8ba39b4998e72 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -11,12 +11,28 @@ java {
- val annotationsVersion = "24.0.1"
+ val annotationsVersion = "24.1.0"
val bungeeCordChatVersion = "1.20-R0.2"
+val adventureVersion = "4.17.0-SNAPSHOT"
+val apiAndDocs: Configuration by configurations.creating {
@@ -1106,7 +1106,7 @@ index b79daa857fc686f00ac06b8851e0ab68d83ae949..45d996878ba8d314a47078589b6da59d
public void setCustomName(@Nullable String name);
}
diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java
-index ae7b51341fb66c41b8a7c4604fd273d876e311be..4034fcb9abc39b12f0de47c4b679f2ef82353c89 100644
+index 9562fcd522b2e2b24ec57fbf18ddeebba3e50abf..9b61129c3ef83d0bfceba54aba2effa12bc90678 100644
--- a/src/main/java/org/bukkit/NamespacedKey.java
+++ b/src/main/java/org/bukkit/NamespacedKey.java
@@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable;
@@ -1150,7 +1150,7 @@ index ae7b51341fb66c41b8a7c4604fd273d876e311be..4034fcb9abc39b12f0de47c4b679f2ef
}
@Override
-@@ -247,4 +247,24 @@ public final class NamespacedKey {
+@@ -248,4 +248,24 @@ public final class NamespacedKey {
public static NamespacedKey fromString(@NotNull String key) {
return fromString(key, null);
}
@@ -1430,10 +1430,10 @@ index bfa9846d93317d07e55b6d7b971326fa07cae27d..3bf7db7eac81e3cc6f5c6700637d10d1
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java
-index bd3861c4c2eabca93065c0a6e24e0d3603d86db2..ddc4c5097214371108dc945371e1d28811352c38 100644
+index 72260e6284e3f5ce1813635aa07518c47dbf0899..375172e05a78611deb3003f780867516cb6cd1a4 100644
--- a/src/main/java/org/bukkit/Sound.java
+++ b/src/main/java/org/bukkit/Sound.java
-@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
+@@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
* guarantee values will not be removed from this Enum. As such, you should not
* depend on the ordinal values of this class.
*/
@@ -1442,7 +1442,7 @@ index bd3861c4c2eabca93065c0a6e24e0d3603d86db2..ddc4c5097214371108dc945371e1d288
AMBIENT_BASALT_DELTAS_ADDITIONS("ambient.basalt_deltas.additions"),
AMBIENT_BASALT_DELTAS_LOOP("ambient.basalt_deltas.loop"),
-@@ -1727,4 +1727,11 @@ public enum Sound implements Keyed {
+@@ -1725,4 +1725,11 @@ public enum Sound implements Keyed {
public NamespacedKey getKey() {
return key;
}
@@ -2182,10 +2182,10 @@ index b7d8dd30360a38dbdc7bbce40c8e6ced7261f833..0817f2395c2b18828565435568ce651f
public void sendRawMessage(@Nullable UUID sender, @NotNull String message);
}
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
-index f9965740ffa267caa698f854120a5d89727c6d37..dddd0e74962d5713c4bb6219fba48aae5763e9ea 100644
+index 18983f405b2f6c4159dba5c99674ae7729905cc4..a82d6f469aca02fb28b1b3ad84dc40415f1f1ade 100644
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
-@@ -317,6 +317,19 @@ public abstract class Enchantment implements Keyed, Translatable {
+@@ -318,6 +318,19 @@ public abstract class Enchantment implements Keyed, Translatable {
* @return True if the enchantment may be applied, otherwise False
*/
public abstract boolean canEnchantItem(@NotNull ItemStack item);
@@ -3279,10 +3279,10 @@ index 3c2ea8fec3a748cab7f5ad9100d12bd8213ec6c9..03b4e0300d228e3f3a9f4f75c96e0cf9
* Gets how much EXP the Player should have at respawn.
* <p>
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
-index a2e9bedc4d7c56f1ae6bd6ace2dff41537e41829..c3aeb1b622509ecd9e2230ce82e3bf07899fa540 100644
+index 45acff6f8b4859b6e111d925ae01d59dd361b8c9..f5bdd6b6df126abfa26ce727c80a5772d2ab1a1b 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
-@@ -163,6 +163,18 @@ public enum InventoryType {
+@@ -164,6 +164,18 @@ public enum InventoryType {
private final String title;
private final boolean isCreatable;
@@ -3301,7 +3301,7 @@ index a2e9bedc4d7c56f1ae6bd6ace2dff41537e41829..c3aeb1b622509ecd9e2230ce82e3bf07
private InventoryType(int defaultSize, /*@NotNull*/ String defaultTitle) {
this(defaultSize, defaultTitle, true);
}
-@@ -171,6 +183,7 @@ public enum InventoryType {
+@@ -172,6 +184,7 @@ public enum InventoryType {
size = defaultSize;
title = defaultTitle;
this.isCreatable = isCreatable;
@@ -3309,7 +3309,7 @@ index a2e9bedc4d7c56f1ae6bd6ace2dff41537e41829..c3aeb1b622509ecd9e2230ce82e3bf07
}
public int getDefaultSize() {
-@@ -178,6 +191,7 @@ public enum InventoryType {
+@@ -179,6 +192,7 @@ public enum InventoryType {
}
@NotNull
@@ -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 88cdce67e6a55712cb56e946f2f09c82ddbc1d15..e76c847e57f3d32757129d56922862a4202c9d07 100644
+index cf1733bc76d1e29ad0f533f6e49818f83e8e3358..f2a6f62f0344684668febc0999b81748c6737826 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 88cdce67e6a55712cb56e946f2f09c82ddbc1d15..e76c847e57f3d32757129d56922862a4
private Material type = Material.AIR;
private int amount = 0;
private MaterialData data = null;
-@@ -613,4 +613,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -614,4 +614,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
public String getTranslationKey() {
return Bukkit.getUnsafe().getTranslationKey(this);
}
@@ -4753,7 +4753,7 @@ index bd512a7840d4686759097ee4cbd8b375c530956b..f2242ddc4085f7e7cdd748d860857822
+ // Paper end - adventure
}
diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java
-index 4ddddc5d91a5febba2fd4dea3a15092f4ec32a6f..f9803c7483f7458fed1f22ddfda6e7ef03cfc688 100644
+index 9679cc595b5009990d8441a6344505eef1f5d265..f973f0f3925819765412f6f134e553d7d74f1467 100644
--- a/src/main/java/org/bukkit/map/MapCursor.java
+++ b/src/main/java/org/bukkit/map/MapCursor.java
@@ -12,7 +12,7 @@ public final class MapCursor {
@@ -5028,7 +5028,7 @@ index 78fd35e6115072c6bc2ff5a899ffc2edb8f45801..22b1dc5fd4d453161a5ee520072f8e8f
/**
diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
-index 083bb2c92a2c557e10b705b773ced97401586c3c..d5723e977d9a25701a4f387f1b26d2414e0fffb8 100644
+index bf52375e9ed9ec172eca1d27c06c379e3fc216bc..e6aeb01e80fb63a4ebd6a7cbda1815e49775246d 100644
--- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java
+++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
@@ -26,6 +26,71 @@ public interface Scoreboard {
@@ -5103,31 +5103,33 @@ index 083bb2c92a2c557e10b705b773ced97401586c3c..d5723e977d9a25701a4f387f1b26d241
/**
* Registers an Objective on this Scoreboard
*
-@@ -37,9 +102,10 @@ public interface Scoreboard {
+@@ -37,10 +102,11 @@ public interface Scoreboard {
* characters.
* @throws IllegalArgumentException if an objective by that name already
* exists
- * @deprecated use {@link #registerNewObjective(String, Criteria, String)}
+ * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component)}
*/
+ @Deprecated
@NotNull
+ @Deprecated // Paper
Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName);
/**
-@@ -54,9 +120,10 @@ public interface Scoreboard {
+@@ -55,10 +121,11 @@ public interface Scoreboard {
* characters.
* @throws IllegalArgumentException if an objective by that name already
* exists
- * @deprecated use {@link #registerNewObjective(String, Criteria, String, RenderType)}
+ * @deprecated use {@link #registerNewObjective(String, Criteria, net.kyori.adventure.text.Component, RenderType)}
*/
+ @Deprecated
@NotNull
+ @Deprecated // Paper
Objective registerNewObjective(@NotNull String name, @NotNull String criteria, @NotNull String displayName, @NotNull RenderType renderType);
/**
-@@ -70,8 +137,10 @@ public interface Scoreboard {
+@@ -72,8 +139,10 @@ public interface Scoreboard {
* characters.
* @throws IllegalArgumentException if an objective by that name already
* exists
@@ -5138,7 +5140,7 @@ index 083bb2c92a2c557e10b705b773ced97401586c3c..d5723e977d9a25701a4f387f1b26d241
Objective registerNewObjective(@NotNull String name, @NotNull Criteria criteria, @NotNull String displayName);
/**
-@@ -86,8 +155,10 @@ public interface Scoreboard {
+@@ -88,8 +157,10 @@ public interface Scoreboard {
* characters.
* @throws IllegalArgumentException if an objective by that name already
* exists
diff --git a/patches/api/0008-Use-ASM-for-event-executors.patch b/patches/api/0008-Use-ASM-for-event-executors.patch
index 16fad22249..ad414bc491 100644
--- a/patches/api/0008-Use-ASM-for-event-executors.patch
+++ b/patches/api/0008-Use-ASM-for-event-executors.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/build.gradle.kts b/build.gradle.kts
-index ec60a4b804d9d077fdb7d88519b7fb8816aeab9f..d64d927ddbb5fd968902c35496b24ce73fd5d588 100644
+index c23ee26662657baa496d6048b9a8ba39b4998e72..759294705e0f53c18ce2825b5f6c715a65f23d90 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -47,6 +47,9 @@ dependencies {
diff --git a/patches/api/0009-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch
index 214a9ca18e..02b5c3f2e8 100644
--- a/patches/api/0009-Paper-Plugins.patch
+++ b/patches/api/0009-Paper-Plugins.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Paper Plugins
diff --git a/build.gradle.kts b/build.gradle.kts
-index d64d927ddbb5fd968902c35496b24ce73fd5d588..4c792921c7a93c9f9f1a137127edafad6498d30a 100644
+index 759294705e0f53c18ce2825b5f6c715a65f23d90..7627eac76bc0e17413df26fdf49e94605be979e5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -52,7 +52,7 @@ dependencies {
diff --git a/patches/api/0056-Fix-upstream-javadocs.patch b/patches/api/0056-Fix-upstream-javadocs.patch
index aa59cb418a..e296f8270e 100644
--- a/patches/api/0056-Fix-upstream-javadocs.patch
+++ b/patches/api/0056-Fix-upstream-javadocs.patch
@@ -641,10 +641,10 @@ index be0a2d1f234d8265d98e54e518a994957b1f3ab7..4e3c406ba883aae553e8d69b6b719b87
* than BLOCK_CANBUILD, as this refers to a player, not universe-physics
* rule like cactus on dirt.
diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
-index 2ff1b1308571d8f8056d3359e8a8ba4a589c3726..e9a6e5be5f33a342f7e5c496f0f1c64b2f302ace 100644
+index fc2120e03737f5882d6ae916db93fdcf4939b2ba..f2edd4a9357832e9dec3fb0aafa006335d7b289b 100644
--- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
-@@ -80,7 +80,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
+@@ -81,7 +81,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
/**
* Get a list of available {@link EnchantmentOffer} for the player. You can
* modify the values to change the available offers for the player. An offer
@@ -1315,7 +1315,7 @@ index 9adc827bc52eaa767a39c82e9cb0ff5a48e02b14..2dde946443fee1f6e79b882cbcb44854
*
* @param chance of the boots being dropped
diff --git a/src/main/java/org/bukkit/inventory/ItemFlag.java b/src/main/java/org/bukkit/inventory/ItemFlag.java
-index 42fcc31147934fd4ed6484b0729e938e7ae2f8e2..4e637420b9a39b822be19367a16da93f236549b3 100644
+index 8453bd058d426c1088b04c55d2448d205f0a104b..1b3580d1861af402396121805715e4087b3bc587 100644
--- a/src/main/java/org/bukkit/inventory/ItemFlag.java
+++ b/src/main/java/org/bukkit/inventory/ItemFlag.java
@@ -35,7 +35,7 @@ public enum ItemFlag {
diff --git a/patches/api/0066-Add-getI18NDisplayName-API.patch b/patches/api/0066-Add-getI18NDisplayName-API.patch
index e3466ac823..f83aa42ec2 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 e76c847e57f3d32757129d56922862a4202c9d07..8801a49b1ed6e21d9853f1290e52d6f90ce1211f 100644
+index f2a6f62f0344684668febc0999b81748c6737826..d1bce73317fa1dfd35c8b3f94415ba8721c758d6 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -629,5 +629,20 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -630,5 +630,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 ded12262b7..38050bb0c5 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 8801a49b1ed6e21d9853f1290e52d6f90ce1211f..e175865e3149861583a38f4271375f7be020b6ff 100644
+index d1bce73317fa1dfd35c8b3f94415ba8721c758d6..a71b7f418ca3edb4695b57e5021732c591cfb13f 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -548,7 +548,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -549,7 +549,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
}
}
@@ -42,7 +42,7 @@ index 8801a49b1ed6e21d9853f1290e52d6f90ce1211f..e175865e3149861583a38f4271375f7b
}
/**
-@@ -630,6 +630,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -631,6 +631,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
return Bukkit.getServer().getItemFactory().displayName(this);
}
diff --git a/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch
index d337e98fe2..3de3963d54 100644
--- a/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch
+++ b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch
@@ -14,11 +14,11 @@ it without having to shade it in the plugin and going through
several layers of logging abstraction.
diff --git a/build.gradle.kts b/build.gradle.kts
-index 4c792921c7a93c9f9f1a137127edafad6498d30a..3df0639bf4811e29bdef57474b9d9db808d5e62a 100644
+index 7627eac76bc0e17413df26fdf49e94605be979e5..44c7abd676d7730837172473244729fa9298ffb1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -12,6 +12,8 @@ java {
- val annotationsVersion = "24.0.1"
+ val annotationsVersion = "24.1.0"
val bungeeCordChatVersion = "1.20-R0.2"
val adventureVersion = "4.17.0-SNAPSHOT"
+val slf4jVersion = "2.0.9"
diff --git a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch
index c4d635ba01..04e8bc9ac2 100644
--- a/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -594,10 +594,10 @@ index 0000000000000000000000000000000000000000..e63aabacac12a153ee8f413b52962919
+ }
+}
diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java
-index 698ffe0c76adeb1b00e7e789ce7d164c6adc759d..690cf2aedf558396a71b20ba2b8ce737c61dfe43 100644
+index 3d636cb7f275df053d202356c5e9fad5b1112867..b0ccd263cabe911d43cc13261011b64cacaeb7bb 100644
--- a/src/main/java/org/bukkit/Particle.java
+++ b/src/main/java/org/bukkit/Particle.java
-@@ -207,6 +207,18 @@ public enum Particle implements Keyed {
+@@ -208,6 +208,18 @@ public enum Particle implements Keyed {
return key;
}
diff --git a/patches/api/0108-ItemStack-getMaxItemUseDuration.patch b/patches/api/0108-ItemStack-getMaxItemUseDuration.patch
index b99e81eb82..04e59af1f7 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 e175865e3149861583a38f4271375f7be020b6ff..9b38ba9bc7e72b60397476683c22d69e468d9353 100644
+index a71b7f418ca3edb4695b57e5021732c591cfb13f..7afb1b4fde29d09ad2289956531daded56b02147 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
-@@ -657,5 +657,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -658,5 +658,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 fea56a51c4..bb7ff028ad 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 9b38ba9bc7e72b60397476683c22d69e468d9353..dbd0d0610f33105ee83ab589c84e73004f684fb5 100644
+index 7afb1b4fde29d09ad2289956531daded56b02147..c1e64e09d792da7c7918e401b306f8945a0ff32d 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 9b38ba9bc7e72b60397476683c22d69e468d9353..dbd0d0610f33105ee83ab589c84e7300
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.Material;
-@@ -665,5 +666,185 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -666,5 +667,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 7fdeb9b3eb..38c9fe7eec 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 d593dbace48998e5582c2f0c168275e0d59fe1cf..7ce1a0ee5504d4faf548be73be784e87cd4049fe 100644
+index fe9c5ccdbaf4a83367f2d1c9c18044665eadf81d..ab4c1d853ed030c6cf2945793e7655509c954f0b 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -122,6 +122,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -123,6 +123,7 @@ import org.jetbrains.annotations.Nullable;
/**
* An enum of all material IDs accepted by the official server and client
*/
@@ -16,7 +16,7 @@ index d593dbace48998e5582c2f0c168275e0d59fe1cf..7ce1a0ee5504d4faf548be73be784e87
public enum Material implements Keyed, Translatable {
//<editor-fold desc="Materials" defaultstate="collapsed">
AIR(9648, 0),
-@@ -4722,6 +4723,22 @@ public enum Material implements Keyed, Translatable {
+@@ -4723,6 +4724,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 20b9c8bf1c..9176711cf2 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 7ce1a0ee5504d4faf548be73be784e87cd4049fe..76c96e1a82366aafa0148a1260500a38cea12f37 100644
+index ab4c1d853ed030c6cf2945793e7655509c954f0b..22459bc96a97734b06985dc3a8ff4358f280f505 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4743,20 +4743,20 @@ public enum Material implements Keyed, Translatable {
+@@ -4744,20 +4744,20 @@ public enum Material implements Keyed, Translatable {
* Do not use for any reason.
*
* @return ID of this material
@@ -328,7 +328,7 @@ index 7ce1a0ee5504d4faf548be73be784e87cd4049fe..76c96e1a82366aafa0148a1260500a38
public boolean isLegacy() {
return legacy;
}
-@@ -4827,8 +4827,10 @@ public enum Material implements Keyed, Translatable {
+@@ -4828,8 +4828,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 7ce1a0ee5504d4faf548be73be784e87cd4049fe..76c96e1a82366aafa0148a1260500a38
public Class<? extends MaterialData> getData() {
Preconditions.checkArgument(legacy, "Cannot get data class of Modern Material");
return ctor.getDeclaringClass();
-@@ -9095,7 +9097,11 @@ public enum Material implements Keyed, Translatable {
+@@ -9096,7 +9098,11 @@ public enum Material implements Keyed, Translatable {
* material.
*
* @return true if this material can be interacted with.
@@ -352,7 +352,7 @@ index 7ce1a0ee5504d4faf548be73be784e87cd4049fe..76c96e1a82366aafa0148a1260500a38
switch (this) {
// <editor-fold defaultstate="collapsed" desc="isInteractable">
diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java
-index 4034fcb9abc39b12f0de47c4b679f2ef82353c89..5a2032fde327be45b44fd6aa99808fe7c3054e1b 100644
+index 9b61129c3ef83d0bfceba54aba2effa12bc90678..cbdaa121dbc1876d0cd55f4b7b57f283ecaa8f1a 100644
--- a/src/main/java/org/bukkit/NamespacedKey.java
+++ b/src/main/java/org/bukkit/NamespacedKey.java
@@ -74,12 +74,14 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
@@ -730,10 +730,10 @@ index b90f5dc345ad2cdd3ae353dc57f42a14c231d18a..a7b915ded9154d53ac8ca599119c1699
public static PistonMoveReaction getById(int id) {
return byId.get(id);
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
-index dddd0e74962d5713c4bb6219fba48aae5763e9ea..a08b285f4dea60a4ba048f58b802573622d2c313 100644
+index a82d6f469aca02fb28b1b3ad84dc40415f1f1ade..f4ec7891bdcedc73bff6938e3eddb7ee43d23ec1 100644
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
-@@ -272,7 +272,7 @@ public abstract class Enchantment implements Keyed, Translatable {
+@@ -273,7 +273,7 @@ public abstract class Enchantment implements Keyed, Translatable {
* @deprecated enchantment groupings are now managed by tags, not categories
*/
@NotNull
@@ -767,10 +767,10 @@ index 3afe2787de576f7190d87c796bea0ab34dc30248..58191017244f3949f6174fb108e3a245
/**
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
-index b975f11d342ca4357362de9aaae3f1af6716049e..c52e386ffa08abbbd38683792b281665cc98bd31 100644
+index c308f6a9f36ae8d108d583179464e078e09bf051..dd410ff2cad3dc34ef9d2a37d72417c7b213de63 100644
--- a/src/main/java/org/bukkit/entity/EntityType.java
+++ b/src/main/java/org/bukkit/entity/EntityType.java
-@@ -392,9 +392,9 @@ public enum EntityType implements Keyed, Translatable {
+@@ -393,9 +393,9 @@ public enum EntityType implements Keyed, Translatable {
*
* @param name the entity type's name
* @return the matching entity type or null
@@ -811,10 +811,10 @@ index b27447d7a2833f84cf05946c851f5b6740a578e3..5afeb2f6c82e8f752229462c2d7846f6
// Spigot end
}
diff --git a/src/main/java/org/bukkit/entity/LingeringPotion.java b/src/main/java/org/bukkit/entity/LingeringPotion.java
-index f124b35ec76e6cb6a1a0dc464005087043c3efd0..f50aaddf8582be55fd4860ad374d8f2206991897 100644
+index bafef53c1d449135f1300c8c8fbb06f482ba67e1..f50aaddf8582be55fd4860ad374d8f2206991897 100644
--- a/src/main/java/org/bukkit/entity/LingeringPotion.java
+++ b/src/main/java/org/bukkit/entity/LingeringPotion.java
-@@ -3,6 +3,8 @@ package org.bukkit.entity;
+@@ -3,7 +3,8 @@ package org.bukkit.entity;
/**
* Represents a thrown lingering potion bottle
*
@@ -822,6 +822,7 @@ index f124b35ec76e6cb6a1a0dc464005087043c3efd0..f50aaddf8582be55fd4860ad374d8f22
+ * @deprecated should not be used for anything, use {@link ThrownPotion} and
+ * set the potion via the methods there.
*/
+-@Deprecated
+@Deprecated(forRemoval = true) // Paper
public interface LingeringPotion extends ThrownPotion { }
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -967,7 +968,7 @@ index 53119742beda00a38111063243665bb995ae2188..2d084214e991fecc51f8e18e3d733e43
private static final HandlerList handlers = new HandlerList();
diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
-index e9a6e5be5f33a342f7e5c496f0f1c64b2f302ace..f0db59a556deaefefbdaca121585c0fd199c13c2 100644
+index f2edd4a9357832e9dec3fb0aafa006335d7b289b..378b44c3df1612283c7f993b32fc7b329ec01a9a 100644
--- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
@@ -23,7 +23,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
@@ -985,9 +986,9 @@ index e9a6e5be5f33a342f7e5c496f0f1c64b2f302ace..f0db59a556deaefefbdaca121585c0fd
*/
+ @Deprecated // Paper
@NotNull
+ @Deprecated
public int[] getExpLevelCostsOffered() {
- int[] levelOffers = new int[offers.length];
-@@ -85,8 +86,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
+@@ -86,8 +87,7 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
*
* @return list of available enchantment offers
*/
@@ -1419,7 +1420,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 dbd0d0610f33105ee83ab589c84e73004f684fb5..fd3d4dd231d756d51db0155a4c3ad970c4f456ed 100644
+index c1e64e09d792da7c7918e401b306f8945a0ff32d..aa8c6a57fb78fcb2e5ecff01f5d2f5871ac4161a 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;
@@ -1430,15 +1431,7 @@ index dbd0d0610f33105ee83ab589c84e73004f684fb5..fd3d4dd231d756d51db0155a4c3ad970
import org.bukkit.Utility;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.enchantments.Enchantment;
-@@ -68,6 +69,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
- * @param damage durability / damage
- * @deprecated see {@link #setDurability(short)}
- */
-+ @Deprecated // Paper
- public ItemStack(@NotNull final Material type, final int amount, final short damage) {
- this(type, amount, damage, null);
- }
-@@ -169,8 +171,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -170,8 +171,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* Gets the MaterialData for this stack of items
*
* @return MaterialData for this item
@@ -1449,7 +1442,7 @@ index dbd0d0610f33105ee83ab589c84e73004f684fb5..fd3d4dd231d756d51db0155a4c3ad970
public MaterialData getData() {
Material mat = Bukkit.getUnsafe().toLegacy(getType());
if (data == null && mat != null && mat.getData() != null) {
-@@ -184,7 +188,9 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -185,7 +188,9 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* Sets the MaterialData for this stack of items
*
* @param data New MaterialData for this item
@@ -1459,7 +1452,7 @@ index dbd0d0610f33105ee83ab589c84e73004f684fb5..fd3d4dd231d756d51db0155a4c3ad970
public void setData(@Nullable MaterialData data) {
if (data == null) {
this.data = data;
-@@ -557,7 +563,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
+@@ -558,7 +563,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*
* @return a copy of the current ItemStack's ItemData
*/
@@ -1664,10 +1657,10 @@ index 32055a8890425e0b819930f3059da5ea9dfca553..26a336dade83baee97d20eb39a058925
/**
diff --git a/src/main/java/org/bukkit/map/MapCanvas.java b/src/main/java/org/bukkit/map/MapCanvas.java
-index 00437719722830c087ff925015086c29bbb04497..ae9bcc8262dbf6eb8673ca82395d09169db38f9d 100644
+index edef478786bb7456af29ca960009873095830050..e8ac449e6280827beb6d2699df75b1d52a922c9b 100644
--- a/src/main/java/org/bukkit/map/MapCanvas.java
+++ b/src/main/java/org/bukkit/map/MapCanvas.java
-@@ -94,9 +94,9 @@ public interface MapCanvas {
+@@ -95,9 +95,9 @@ public interface MapCanvas {
* @param x The x coordinate, from 0 to 127.
* @param y The y coordinate, from 0 to 127.
* @return The color. See {@link MapPalette}.
@@ -1679,7 +1672,7 @@ index 00437719722830c087ff925015086c29bbb04497..ae9bcc8262dbf6eb8673ca82395d0916
public byte getPixel(int x, int y);
/**
-@@ -105,9 +105,9 @@ public interface MapCanvas {
+@@ -106,9 +106,9 @@ public interface MapCanvas {
* @param x The x coordinate, from 0 to 127.
* @param y The y coordinate, from 0 to 127.
* @return The color. See {@link MapPalette}.
@@ -1692,7 +1685,7 @@ index 00437719722830c087ff925015086c29bbb04497..ae9bcc8262dbf6eb8673ca82395d0916
/**
diff --git a/src/main/java/org/bukkit/map/MapCursor.java b/src/main/java/org/bukkit/map/MapCursor.java
-index f9803c7483f7458fed1f22ddfda6e7ef03cfc688..9abea12cb949f7ffa1b72aabf2a3c059b64f3557 100644
+index f973f0f3925819765412f6f134e553d7d74f1467..1afa33ca0d900d9301d52ace3ddb0bd50b5ce4e8 100644
--- a/src/main/java/org/bukkit/map/MapCursor.java
+++ b/src/main/java/org/bukkit/map/MapCursor.java
@@ -158,9 +158,9 @@ public final class MapCursor {
@@ -1859,7 +1852,7 @@ index 3e46603f8cd38041394e0e1baf788d9009b3ffc7..b15c141f1db07296bb349f11c6f39b0f
/**
diff --git a/src/main/java/org/bukkit/material/Step.java b/src/main/java/org/bukkit/material/Step.java
-index 9f502e7ee05d0512e190a1722cc112ece068c4e2..10c0465cf58d680bfa9a0f9233f94e8b6d5a9b93 100644
+index ea94222120ddd4e692b67cf48b029af9ed0e5835..7e49f254032a8a1cf864372a246a49dda6f773c7 100644
--- a/src/main/java/org/bukkit/material/Step.java
+++ b/src/main/java/org/bukkit/material/Step.java
@@ -78,6 +78,7 @@ public class Step extends TexturedMaterial {
@@ -1868,8 +1861,8 @@ index 9f502e7ee05d0512e190a1722cc112ece068c4e2..10c0465cf58d680bfa9a0f9233f94e8b
*/
+ @Deprecated // Paper
@Override
+ @Deprecated
protected int getTextureIndex() {
- return getData() & 0x7;
diff --git a/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java b/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
index 0ea9c6b2420a0f990bd1fdf50fc015e37a7060d8..e99644eae1c662b117aa19060d2484aca19fe0a4 100644
--- a/src/main/java/org/bukkit/material/types/MushroomBlockTexture.java
diff --git a/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch
index 9428ae3385..0efa0d0fb1 100644
--- a/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch
+++ b/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch
@@ -20,7 +20,7 @@ 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 fd3d4dd231d756d51db0155a4c3ad970c4f456ed..1f31ff5b85217a1c631f05f43c5a65839a36b26e 100644
+index aa8c6a57fb78fcb2e5ecff01f5d2f5871ac4161a..65fc0bca47ea32069ddc6e838a0db28f13638390 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
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 c3b0abc261..3043b37760 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 76c96e1a82366aafa0148a1260500a38cea12f37..6551bb9409f9714033532b5cfe9219ed84e438f2 100644
+index 22459bc96a97734b06985dc3a8ff4358f280f505..afdd4288b0df3e4d89ed4701ea9ec742028fc956 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -123,7 +123,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -124,7 +124,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 76c96e1a82366aafa0148a1260500a38cea12f37..6551bb9409f9714033532b5cfe9219ed
//<editor-fold desc="Materials" defaultstate="collapsed">
AIR(9648, 0),
STONE(22948),
-@@ -4737,6 +4737,15 @@ public enum Material implements Keyed, Translatable {
+@@ -4738,6 +4738,15 @@ public enum Material implements Keyed, Translatable {
}
return false;
}
@@ -172,7 +172,7 @@ index 76c96e1a82366aafa0148a1260500a38cea12f37..6551bb9409f9714033532b5cfe9219ed
// Paper end
/**
-@@ -11473,9 +11482,11 @@ public enum Material implements Keyed, Translatable {
+@@ -11474,9 +11483,11 @@ public enum Material implements Keyed, Translatable {
* material
* @see #getBlockTranslationKey()
* @see #getItemTranslationKey()
@@ -310,10 +310,10 @@ index bf29d9b733afc7c62725d259f4920c4f211cc6d0..1d3812db989a55b6f31bb30dffe70323
// Paper end
}
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
-index a08b285f4dea60a4ba048f58b802573622d2c313..3375ce0f9ac50cd3f145291ceb587d4e6f72569c 100644
+index f4ec7891bdcedc73bff6938e3eddb7ee43d23ec1..4e41980dfbb256356231bc9565f6a90ea66aab76 100644
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
-@@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable;
+@@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable;
/**
* The various type of enchantments that may be added to armour or weapons
*/
@@ -338,10 +338,10 @@ index c4f86ba1037f3f0e5d697a0962d71d6f8c7c1fbe..ac0371285370594d4de1554871b19bbc
// Paper end
}
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
-index c52e386ffa08abbbd38683792b281665cc98bd31..4ff2f0b70a89b3d1fb3f588d014e09b3cf8ed16f 100644
+index dd410ff2cad3dc34ef9d2a37d72417c7b213de63..b7a454ca11d484209d08d0003d4c19a431456687 100644
--- a/src/main/java/org/bukkit/entity/EntityType.java
+++ b/src/main/java/org/bukkit/entity/EntityType.java
-@@ -24,7 +24,7 @@ import org.jetbrains.annotations.Contract;
+@@ -25,7 +25,7 @@ import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -350,7 +350,7 @@ index c52e386ffa08abbbd38683792b281665cc98bd31..4ff2f0b70a89b3d1fb3f588d014e09b3
// These strings MUST match the strings in nms.EntityTypes and are case sensitive.
/**
-@@ -438,10 +438,22 @@ public enum EntityType implements Keyed, Translatable {
+@@ -439,10 +439,22 @@ public enum EntityType implements Keyed, Translatable {
@Override
@NotNull
@@ -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 1f31ff5b85217a1c631f05f43c5a65839a36b26e..1532b3e1b655a9b58588c11b80824ed4cec8c66a 100644
+index 65fc0bca47ea32069ddc6e838a0db28f13638390..96b6052c198454f06f877fc7cda85a98c0ddba7c 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;
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 6077bfb54d..97d6387d88 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 6551bb9409f9714033532b5cfe9219ed84e438f2..852217efbb8dfab445e625a61f8e7f7ba51e5fd6 100644
+index afdd4288b0df3e4d89ed4701ea9ec742028fc956..3ee36de0ee975dc300e594b17d0dc2c06edf2a16 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4681,6 +4681,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4682,6 +4682,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 6551bb9409f9714033532b5cfe9219ed84e438f2..852217efbb8dfab445e625a61f8e7f7b
private Material(final int id) {
this(id, 64);
-@@ -4879,6 +4880,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4880,6 +4881,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 6551bb9409f9714033532b5cfe9219ed84e438f2..852217efbb8dfab445e625a61f8e7f7b
switch (this) {
//<editor-fold defaultstate="collapsed" desc="isBlock">
case ACACIA_BUTTON:
-@@ -6123,6 +6129,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -6124,6 +6130,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-Item-Rarity-API.patch b/patches/api/0262-Item-Rarity-API.patch
index 88e0562beb..42bb22f799 100644
--- a/patches/api/0262-Item-Rarity-API.patch
+++ b/patches/api/0262-Item-Rarity-API.patch
@@ -39,10 +39,10 @@ index 0000000000000000000000000000000000000000..74ef8395cc040ce488c2acaa416db202
+ }
+}
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index 852217efbb8dfab445e625a61f8e7f7ba51e5fd6..b58383b5e3077cbd5df65b8147693aa9543493ef 100644
+index 3ee36de0ee975dc300e594b17d0dc2c06edf2a16..7c14a272156cefe6d69e41fec6892891646e0985 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4747,6 +4747,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4748,6 +4748,17 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
return Bukkit.getUnsafe().getBlockTranslationKey(this);
}
}
@@ -88,7 +88,7 @@ index 5de86f8cd3cc7f7e8ebc4a22d3921273378704f2..c423204eaf3252c9fc1a3af1214ec70e
// Paper end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 1532b3e1b655a9b58588c11b80824ed4cec8c66a..569f67ee3f89d6af4fe1420cecc74811550b6507 100644
+index 96b6052c198454f06f877fc7cda85a98c0ddba7c..069c644f03286ba62d521754d825e81934e1e6d6 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -888,5 +888,15 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0280-ItemStack-repair-check-API.patch b/patches/api/0280-ItemStack-repair-check-API.patch
index 0a9c5b65db..fbfec478f2 100644
--- a/patches/api/0280-ItemStack-repair-check-API.patch
+++ b/patches/api/0280-ItemStack-repair-check-API.patch
@@ -26,7 +26,7 @@ index 42e4983051062f2fd3b595487cf8093440b41bba..057f4db9cb6b686ab941ec5d3e6ca23d
* Returns the server's protocol version.
*
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
-index 569f67ee3f89d6af4fe1420cecc74811550b6507..78ea59c8f63b5a71ba092cf1783183bb5d0a3b79 100644
+index 069c644f03286ba62d521754d825e81934e1e6d6..51f3f387af28bb733e2a20c7befd1070768103b2 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -898,5 +898,27 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0281-More-Enchantment-API.patch b/patches/api/0281-More-Enchantment-API.patch
index e9b05a0fcf..a58f9ad820 100644
--- a/patches/api/0281-More-Enchantment-API.patch
+++ b/patches/api/0281-More-Enchantment-API.patch
@@ -37,10 +37,10 @@ index 0000000000000000000000000000000000000000..50c49739cc25679c9d241466e3069c9c
+ }
+}
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
-index 3375ce0f9ac50cd3f145291ceb587d4e6f72569c..5e192105851436dbfe73a6e47c64bbb10e1ac41a 100644
+index 4e41980dfbb256356231bc9565f6a90ea66aab76..de616cecaeb45018d96685c916532188e369bdd4 100644
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
-@@ -291,11 +291,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve
+@@ -292,11 +292,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve
* Cursed enchantments are found the same way treasure enchantments are
*
* @return true if the enchantment is cursed
@@ -52,7 +52,7 @@ index 3375ce0f9ac50cd3f145291ceb587d4e6f72569c..5e192105851436dbfe73a6e47c64bbb1
public abstract boolean isCursed();
/**
-@@ -329,6 +325,87 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve
+@@ -330,6 +326,87 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve
* @return the name of the enchantment with {@code level} applied
*/
public abstract net.kyori.adventure.text.@NotNull Component displayName(int level);
diff --git a/patches/api/0283-ItemStack-editMeta.patch b/patches/api/0283-ItemStack-editMeta.patch
index 5996dc1000..49647ecfde 100644
--- a/patches/api/0283-ItemStack-editMeta.patch
+++ b/patches/api/0283-ItemStack-editMeta.patch
@@ -5,7 +5,7 @@ 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 78ea59c8f63b5a71ba092cf1783183bb5d0a3b79..12fac9cf93ae7c6b5c8daced10a4394ad29bebcb 100644
+index 51f3f387af28bb733e2a20c7befd1070768103b2..0f3ef975293d0e970a35fd6845f8bf911e933169 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
diff --git a/patches/api/0285-Attributes-API-for-item-defaults.patch b/patches/api/0285-Attributes-API-for-item-defaults.patch
index ca7f6859c0..ca26876023 100644
--- a/patches/api/0285-Attributes-API-for-item-defaults.patch
+++ b/patches/api/0285-Attributes-API-for-item-defaults.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Attributes API for item defaults
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
-index b58383b5e3077cbd5df65b8147693aa9543493ef..d5bdd25f6243d99b6b8c0acd6980db977f75c7e4 100644
+index 7c14a272156cefe6d69e41fec6892891646e0985..0dd2a9c7ea5b56995ff238fd0e5eceacf91c9e6f 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4758,6 +4758,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4759,6 +4759,21 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public io.papermc.paper.inventory.ItemRarity getItemRarity() {
return Bukkit.getUnsafe().getItemRarity(this);
}
diff --git a/patches/api/0312-Get-entity-default-attributes.patch b/patches/api/0312-Get-entity-default-attributes.patch
index 4da56e835d..72068dd1df 100644
--- a/patches/api/0312-Get-entity-default-attributes.patch
+++ b/patches/api/0312-Get-entity-default-attributes.patch
@@ -32,10 +32,10 @@ index db8ffa9b303b9128be175f383fdf838a4e0719e5..b205937d1cd627c1dd660277f69891b5
// Paper end
}
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
-index 4ff2f0b70a89b3d1fb3f588d014e09b3cf8ed16f..3f8ca9c4c51b14818fe1bebf56a032e10f14c758 100644
+index b7a454ca11d484209d08d0003d4c19a431456687..1d1315262737d99bf9f5aabc0ae66eee4645cc65 100644
--- a/src/main/java/org/bukkit/entity/EntityType.java
+++ b/src/main/java/org/bukkit/entity/EntityType.java
-@@ -452,6 +452,25 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans
+@@ -453,6 +453,25 @@ public enum EntityType implements Keyed, Translatable, net.kyori.adventure.trans
Preconditions.checkArgument(this != UNKNOWN, "UNKNOWN entities do not have translation keys");
return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this);
}
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 d6f48e9138..0dc9b1393b 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 d5bdd25f6243d99b6b8c0acd6980db977f75c7e4..fab8dfb1bd80490f6891687914997cc8580542cd 100644
+index 0dd2a9c7ea5b56995ff238fd0e5eceacf91c9e6f..22e59e24709b1aa1f326d382ebce752c2b42e435 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -4773,6 +4773,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -4774,6 +4774,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
public Multimap<Attribute, AttributeModifier> getItemAttributes(@NotNull EquipmentSlot equipmentSlot) {
return Bukkit.getUnsafe().getItemAttributes(this, equipmentSlot);
}
diff --git a/patches/api/0325-Improve-scoreboard-entries.patch b/patches/api/0325-Improve-scoreboard-entries.patch
index 0dcc796b4d..242c0cca46 100644
--- a/patches/api/0325-Improve-scoreboard-entries.patch
+++ b/patches/api/0325-Improve-scoreboard-entries.patch
@@ -37,10 +37,10 @@ index a625bcab8e77b05b3341a52c708fae1542b7e3d5..a193ffabb05160b462dee1ba8f687fdb
+ // Paper end - improve scoreboard entries
}
diff --git a/src/main/java/org/bukkit/scoreboard/Scoreboard.java b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
-index d5723e977d9a25701a4f387f1b26d2414e0fffb8..30e2b9484cdf4c8efd02e2cda97739e3047958bc 100644
+index e6aeb01e80fb63a4ebd6a7cbda1815e49775246d..51bc41ed8ea46a20372065e1e29488dffef796c1 100644
--- a/src/main/java/org/bukkit/scoreboard/Scoreboard.java
+++ b/src/main/java/org/bukkit/scoreboard/Scoreboard.java
-@@ -215,9 +215,8 @@ public interface Scoreboard {
+@@ -217,9 +217,8 @@ public interface Scoreboard {
* @param player the player whose scores are being retrieved
* @return immutable set of all scores tracked for the player
* @see #getScores(String)
@@ -51,7 +51,7 @@ index d5723e977d9a25701a4f387f1b26d2414e0fffb8..30e2b9484cdf4c8efd02e2cda97739e3
@NotNull
Set<Score> getScores(@NotNull OfflinePlayer player);
-@@ -235,9 +234,8 @@ public interface Scoreboard {
+@@ -237,9 +236,8 @@ public interface Scoreboard {
*
* @param player the player to drop all current scores for
* @see #resetScores(String)
@@ -62,7 +62,7 @@ index d5723e977d9a25701a4f387f1b26d2414e0fffb8..30e2b9484cdf4c8efd02e2cda97739e3
void resetScores(@NotNull OfflinePlayer player);
/**
-@@ -253,9 +251,8 @@ public interface Scoreboard {
+@@ -255,9 +253,8 @@ public interface Scoreboard {
* @param player the player to search for
* @return the player's Team or null if the player is not on a team
* @see #getEntryTeam(String)
@@ -73,7 +73,7 @@ index d5723e977d9a25701a4f387f1b26d2414e0fffb8..30e2b9484cdf4c8efd02e2cda97739e3
@Nullable
Team getPlayerTeam(@NotNull OfflinePlayer player);
-@@ -320,4 +317,35 @@ public interface Scoreboard {
+@@ -322,4 +319,35 @@ public interface Scoreboard {
* @param slot the slot to remove objectives
*/
void clearSlot(@NotNull DisplaySlot slot);
diff --git a/patches/api/0349-Add-enchantWithLevels-API.patch b/patches/api/0349-Add-enchantWithLevels-API.patch
index fc88c65510..cf08b881ef 100644
--- a/patches/api/0349-Add-enchantWithLevels-API.patch
+++ b/patches/api/0349-Add-enchantWithLevels-API.patch
@@ -70,7 +70,7 @@ 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 12fac9cf93ae7c6b5c8daced10a4394ad29bebcb..f236f9bfa4d43dcbad5919abef3620fcd0696880 100644
+index 0f3ef975293d0e970a35fd6845f8bf911e933169..984b6e96a5ebebc38ab62790c4d6a9946c9c6944 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
diff --git a/patches/api/0385-ItemStack-damage-API.patch b/patches/api/0385-ItemStack-damage-API.patch
index e45351b249..391205b8ae 100644
--- a/patches/api/0385-ItemStack-damage-API.patch
+++ b/patches/api/0385-ItemStack-damage-API.patch
@@ -66,7 +66,7 @@ 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 f236f9bfa4d43dcbad5919abef3620fcd0696880..845037909658884167136955a02b99af0040fa9c 100644
+index 984b6e96a5ebebc38ab62790c4d6a9946c9c6944..13648f2e810daa84af25c28a009b1f641791e2f7 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -982,5 +982,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0396-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0396-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
index 3936bb4a92..435823d46b 100644
--- a/patches/api/0396-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
+++ b/patches/api/0396-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
@@ -5,20 +5,10 @@ Subject: [PATCH] Replace ItemFlag.HIDE_POTION_EFFECTS
diff --git a/src/main/java/org/bukkit/inventory/ItemFlag.java b/src/main/java/org/bukkit/inventory/ItemFlag.java
-index 4e637420b9a39b822be19367a16da93f236549b3..3df1044fd791ae19576dbfd008cfcbb4e5651b05 100644
+index 1b3580d1861af402396121805715e4087b3bc587..7174b843b7deac023637c6c112cf30a567969971 100644
--- a/src/main/java/org/bukkit/inventory/ItemFlag.java
+++ b/src/main/java/org/bukkit/inventory/ItemFlag.java
-@@ -28,7 +28,9 @@ public enum ItemFlag {
- /**
- * Setting to show/hide potion effects, book and firework information, map
- * tooltips, patterns of banners, and enchantments of enchanted books.
-+ * @deprecated misleading name and description, use {@link #HIDE_ITEM_SPECIFICS}
- */
-+ @Deprecated // Paper
- HIDE_POTION_EFFECTS,
- /**
- * Setting to show/hide dyes from colored leather armor.
-@@ -38,4 +40,25 @@ public enum ItemFlag {
+@@ -38,4 +38,26 @@ public enum ItemFlag {
* Setting to show/hide armor trim from armor.
*/
HIDE_ARMOR_TRIM;
@@ -41,6 +31,7 @@ index 4e637420b9a39b822be19367a16da93f236549b3..3df1044fd791ae19576dbfd008cfcbb4
+ * <li>Spawner descriptions</li>
+ * </ul>
+ */
-+ public static final ItemFlag HIDE_ITEM_SPECIFICS = HIDE_POTION_EFFECTS;
++ @Deprecated
++ public static final ItemFlag HIDE_ITEM_SPECIFICS = HIDE_ADDITIONAL_TOOLTIP;
+ // Paper end
}
diff --git a/patches/api/0407-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0407-Properly-remove-the-experimental-smithing-inventory-.patch
index 650b013220..3f9c7d07ec 100644
--- a/patches/api/0407-Properly-remove-the-experimental-smithing-inventory-.patch
+++ b/patches/api/0407-Properly-remove-the-experimental-smithing-inventory-.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Properly remove the experimental smithing inventory type
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
-index c3aeb1b622509ecd9e2230ce82e3bf07899fa540..64e59fe706b0bb37fc2439fa88fd40c3167c9fb5 100644
+index f5bdd6b6df126abfa26ce727c80a5772d2ab1a1b..ccb09660e565bc2f7a653bda95fb38caccf7a060 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
-@@ -155,7 +155,7 @@ public enum InventoryType {
+@@ -156,7 +156,7 @@ public enum InventoryType {
*
* @deprecated use {@link #SMITHING}
*/
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 716a6140d9..984f6939f5 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,7 +6,7 @@ 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 845037909658884167136955a02b99af0040fa9c..c3872213acc75d913580002cf70c2abb4ec69ca0 100644
+index 13648f2e810daa84af25c28a009b1f641791e2f7..ff3929b4a497ff0ef0c7ea7f9ac3509764b80e0a 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -996,5 +996,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
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 0ac5bf3ef0..3bddd2ce94 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,7 +9,7 @@ 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 c3872213acc75d913580002cf70c2abb4ec69ca0..7adf54c561d64e6337af8a2d86f6b574b083edb5 100644
+index ff3929b4a497ff0ef0c7ea7f9ac3509764b80e0a..ee636c066d1f87873c1ddf52c60c77b1b86d6e90 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
diff --git a/patches/api/0442-add-missing-Experimental-annotations.patch b/patches/api/0442-add-missing-Experimental-annotations.patch
index 57c8519b38..aeb27acad3 100644
--- a/patches/api/0442-add-missing-Experimental-annotations.patch
+++ b/patches/api/0442-add-missing-Experimental-annotations.patch
@@ -5,820 +5,828 @@ Subject: [PATCH] add missing Experimental annotations
diff --git a/src/main/java/org/bukkit/FeatureFlag.java b/src/main/java/org/bukkit/FeatureFlag.java
-index 5269df59f0e8099a72c6b628ac1b8c84a0d1a5d5..775fda4b299e1d6dba9b293b2f98505ee65186bb 100644
+index 6b68c92ec894451d99ded3e3df5965cb31d68ed2..fd5e433f930963c102c9c977523a0036eabc0477 100644
--- a/src/main/java/org/bukkit/FeatureFlag.java
+++ b/src/main/java/org/bukkit/FeatureFlag.java
-@@ -14,6 +14,7 @@ public interface FeatureFlag extends Keyed {
+@@ -13,6 +13,7 @@ public interface FeatureFlag extends Keyed {
+
public static final FeatureFlag VANILLA = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("vanilla"));
- @MinecraftExperimental
+ @ApiStatus.Experimental // Paper - add missing annotation
public static final FeatureFlag BUNDLE = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("bundle"));
/**
-@@ -26,8 +27,10 @@ public interface FeatureFlag extends Keyed {
+@@ -23,7 +24,9 @@ public interface FeatureFlag extends Keyed {
+ @Deprecated
public static final FeatureFlag UPDATE_1_20 = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("update_1_20"));
- @MinecraftExperimental
+ @ApiStatus.Experimental // Paper - add missing annotation
public static final FeatureFlag TRADE_REBALANCE = Bukkit.getUnsafe().getFeatureFlag(NamespacedKey.minecraft("trade_rebalance"));
- @MinecraftExperimental
+ @ApiStatus.Experimental // Paper - add missing annotation
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 fab8dfb1bd80490f6891687914997cc8580542cd..8e3ab18ca453f407c201e0838ce112dd5e73b830 100644
+index 22e59e24709b1aa1f326d382ebce752c2b42e435..9de0f7bb9f91835d66e8ce85bbc9caf45ab552b0 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
-@@ -145,54 +145,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -146,54 +146,67 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Slab}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_SLAB(19305, Slab.class),
/**
* BlockData: {@link Stairs}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_STAIRS(11268, Stairs.class),
/**
* BlockData: {@link Wall}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_WALL(24395, Wall.class),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
CHISELED_TUFF(15831),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
POLISHED_TUFF(17801),
/**
* BlockData: {@link Slab}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
POLISHED_TUFF_SLAB(31096, Slab.class),
/**
* BlockData: {@link Stairs}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
POLISHED_TUFF_STAIRS(7964, Stairs.class),
/**
* BlockData: {@link Wall}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
POLISHED_TUFF_WALL(28886, Wall.class),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_BRICKS(26276),
/**
* BlockData: {@link Slab}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_BRICK_SLAB(11843, Slab.class),
/**
* BlockData: {@link Stairs}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_BRICK_STAIRS(30753, Stairs.class),
/**
* BlockData: {@link Wall}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TUFF_BRICK_WALL(11761, Wall.class),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
CHISELED_TUFF_BRICKS(8601),
DRIPSTONE_BLOCK(26227),
/**
-@@ -299,6 +312,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -300,6 +313,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
HEAVY_CORE(15788, Waterlogged.class),
AMETHYST_BLOCK(18919),
BUDDING_AMETHYST(13963),
-@@ -311,12 +325,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -312,12 +326,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
WEATHERED_COPPER(19699),
OXIDIZED_COPPER(19490),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
CHISELED_COPPER(12143),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EXPOSED_CHISELED_COPPER(4570),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WEATHERED_CHISELED_COPPER(30876),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OXIDIZED_CHISELED_COPPER(27719),
CUT_COPPER(32519),
EXPOSED_CUT_COPPER(18000),
-@@ -359,12 +377,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -360,12 +378,16 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
WAXED_WEATHERED_COPPER(5960),
WAXED_OXIDIZED_COPPER(25626),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_CHISELED_COPPER(7500),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_EXPOSED_CHISELED_COPPER(30658),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_WEATHERED_CHISELED_COPPER(5970),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_OXIDIZED_CHISELED_COPPER(7735),
WAXED_CUT_COPPER(11030),
WAXED_EXPOSED_CUT_COPPER(30043),
-@@ -2106,41 +2128,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2107,41 +2129,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
COPPER_DOOR(26809, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EXPOSED_COPPER_DOOR(13236, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WEATHERED_COPPER_DOOR(10208, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OXIDIZED_COPPER_DOOR(5348, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_COPPER_DOOR(9954, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_EXPOSED_COPPER_DOOR(20748, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_WEATHERED_COPPER_DOOR(25073, Door.class),
/**
* BlockData: {@link Door}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_OXIDIZED_COPPER_DOOR(23888, Door.class),
/**
* BlockData: {@link TrapDoor}
-@@ -2194,41 +2224,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2195,41 +2225,49 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
COPPER_TRAPDOOR(12110, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EXPOSED_COPPER_TRAPDOOR(19219, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WEATHERED_COPPER_TRAPDOOR(28254, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OXIDIZED_COPPER_TRAPDOOR(26518, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_COPPER_TRAPDOOR(12626, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_EXPOSED_COPPER_TRAPDOOR(11010, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_WEATHERED_COPPER_TRAPDOOR(30709, TrapDoor.class),
/**
* BlockData: {@link TrapDoor}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class),
/**
* BlockData: {@link Gate}
-@@ -2530,6 +2568,8 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2531,6 +2569,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
EGG(21603, 16),
COMPASS(24139),
RECOVERY_COMPASS(12710),
-+ @MinecraftExperimental // Paper - add missing annotation
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BUNDLE(16835, 1),
FISHING_ROD(4167, 1, 64),
CLOCK(14980),
-@@ -2636,6 +2676,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2637,6 +2676,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Crafter}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
CRAFTER(25243, Crafter.class),
FILLED_MAP(23504),
SHEARS(27971, 1, 238),
-@@ -2676,8 +2717,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2677,8 +2717,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
BEE_SPAWN_EGG(22924),
BLAZE_SPAWN_EGG(4759),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BOGGED_SPAWN_EGG(12042),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BREEZE_SPAWN_EGG(7580),
CAT_SPAWN_EGG(29583),
CAMEL_SPAWN_EGG(14760),
-@@ -2754,10 +2797,12 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -2755,10 +2797,12 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
EXPERIENCE_BOTTLE(12858),
FIRE_CHARGE(4842),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WIND_CHARGE(23928),
WRITABLE_BOOK(13393, 1),
WRITTEN_BOOK(24164, 16),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
MACE(4771, 1, 250),
ITEM_FRAME(27318),
GLOW_ITEM_FRAME(26473),
-@@ -3156,8 +3201,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3157,8 +3201,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116),
HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
FLOW_ARMOR_TRIM_SMITHING_TEMPLATE(29175),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BOLT_ARMOR_TRIM_SMITHING_TEMPLATE(9698),
ANGLER_POTTERY_SHERD(9952),
ARCHER_POTTERY_SHERD(21629),
-@@ -3168,9 +3215,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3169,9 +3215,11 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
DANGER_POTTERY_SHERD(30506),
EXPLORER_POTTERY_SHERD(5124),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
FLOW_POTTERY_SHERD(4896),
FRIEND_POTTERY_SHERD(18221),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
GUSTER_POTTERY_SHERD(28193),
HEART_POTTERY_SHERD(17607),
HEARTBREAK_POTTERY_SHERD(21108),
-@@ -3180,6 +3229,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3181,6 +3229,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
PLENTY_POTTERY_SHERD(28236),
PRIZE_POTTERY_SHERD(4341),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
SCRAPE_POTTERY_SHERD(30034),
SHEAF_POTTERY_SHERD(23652),
SHELTER_POTTERY_SHERD(28390),
-@@ -3189,99 +3239,121 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
+@@ -3190,99 +3239,121 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
COPPER_GRATE(16221, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EXPOSED_COPPER_GRATE(7783, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WEATHERED_COPPER_GRATE(24954, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OXIDIZED_COPPER_GRATE(14122, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_COPPER_GRATE(11230, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_EXPOSED_COPPER_GRATE(20520, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_WEATHERED_COPPER_GRATE(16533, Waterlogged.class),
/**
* BlockData: {@link Waterlogged}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_OXIDIZED_COPPER_GRATE(32010, Waterlogged.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
COPPER_BULB(21370, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EXPOSED_COPPER_BULB(11944, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WEATHERED_COPPER_BULB(10800, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OXIDIZED_COPPER_BULB(22421, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_COPPER_BULB(23756, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_EXPOSED_COPPER_BULB(5530, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_WEATHERED_COPPER_BULB(13239, CopperBulb.class),
/**
* BlockData: {@link CopperBulb}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WAXED_OXIDIZED_COPPER_BULB(26892, CopperBulb.class),
/**
* BlockData: {@link TrialSpawner}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_SPAWNER(19902, TrialSpawner.class),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_KEY(12725),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OMINOUS_TRIAL_KEY(4986),
/**
* BlockData: {@link Vault}
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
VAULT(6288, Vault.class),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OMINOUS_BOTTLE(26321),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BREEZE_ROD(14281),
/**
* BlockData: {@link Levelled}
diff --git a/src/main/java/org/bukkit/Particle.java b/src/main/java/org/bukkit/Particle.java
-index 690cf2aedf558396a71b20ba2b8ce737c61dfe43..bf855d67eb022a35d1926553a43be8494d93fb4d 100644
+index b0ccd263cabe911d43cc13261011b64cacaeb7bb..82d75010cc86bbbbb9c094c2bac5e570c98582c9 100644
--- a/src/main/java/org/bukkit/Particle.java
+++ b/src/main/java/org/bukkit/Particle.java
-@@ -129,33 +129,46 @@ public enum Particle implements Keyed {
+@@ -130,33 +130,46 @@ public enum Particle implements Keyed {
DUST_PLUME("dust_plume"),
WHITE_SMOKE("white_smoke"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
GUST("gust"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
SMALL_GUST("small_gust"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
GUST_EMITTER_LARGE("gust_emitter_large"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
GUST_EMITTER_SMALL("gust_emitter_small"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_SPAWNER_DETECTION("trial_spawner_detection"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_SPAWNER_DETECTION_OMINOUS("trial_spawner_detection_ominous"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
VAULT_CONNECTION("vault_connection"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
INFESTED("infested"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ITEM_COBWEB("item_cobweb"),
/**
* Uses {@link BlockData} as DataType
*/
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
DUST_PILLAR("dust_pillar", BlockData.class),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OMINOUS_SPAWNING("ominous_spawning"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
RAID_OMEN("raid_omen"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_OMEN("trial_omen"),
/**
* Uses {@link BlockData} as DataType
diff --git a/src/main/java/org/bukkit/Sound.java b/src/main/java/org/bukkit/Sound.java
-index ddc4c5097214371108dc945371e1d28811352c38..653e5eb126c599aac7de03f22b84d6cfafe48102 100644
+index 375172e05a78611deb3003f780867516cb6cd1a4..b31a8ff47e28440b5e91ddd2fe3f07fd7219d4df 100644
--- a/src/main/java/org/bukkit/Sound.java
+++ b/src/main/java/org/bukkit/Sound.java
-@@ -220,40 +220,56 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -221,40 +221,56 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_CONDUIT_DEACTIVATE("block.conduit.deactivate"),
BLOCK_COPPER_BREAK("block.copper.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_BREAK("block.copper_bulb.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_FALL("block.copper_bulb.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_HIT("block.copper_bulb.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_PLACE("block.copper_bulb.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_STEP("block.copper_bulb.step"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_TURN_OFF("block.copper_bulb.turn_off"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_BULB_TURN_ON("block.copper_bulb.turn_on"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_DOOR_CLOSE("block.copper_door.close"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_DOOR_OPEN("block.copper_door.open"),
BLOCK_COPPER_FALL("block.copper.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_GRATE_BREAK("block.copper_grate.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_GRATE_FALL("block.copper_grate.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_GRATE_HIT("block.copper_grate.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_GRATE_PLACE("block.copper_grate.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_GRATE_STEP("block.copper_grate.step"),
BLOCK_COPPER_HIT("block.copper.hit"),
BLOCK_COPPER_PLACE("block.copper.place"),
BLOCK_COPPER_STEP("block.copper.step"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_TRAPDOOR_CLOSE("block.copper_trapdoor.close"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_COPPER_TRAPDOOR_OPEN("block.copper_trapdoor.open"),
BLOCK_CORAL_BLOCK_BREAK("block.coral_block.break"),
BLOCK_CORAL_BLOCK_FALL("block.coral_block.fall"),
-@@ -360,14 +376,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -361,14 +377,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_HANGING_SIGN_STEP("block.hanging_sign.step"),
BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL("block.hanging_sign.waxed_interact_fail"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_HEAVY_CORE_BREAK("block.heavy_core.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_HEAVY_CORE_FALL("block.heavy_core.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_HEAVY_CORE_HIT("block.heavy_core.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_HEAVY_CORE_PLACE("block.heavy_core.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_HEAVY_CORE_STEP("block.heavy_core.step"),
BLOCK_HONEY_BLOCK_BREAK("block.honey_block.break"),
BLOCK_HONEY_BLOCK_FALL("block.honey_block.fall"),
-@@ -546,14 +567,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -547,14 +568,19 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_POLISHED_DEEPSLATE_PLACE("block.polished_deepslate.place"),
BLOCK_POLISHED_DEEPSLATE_STEP("block.polished_deepslate.step"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_POLISHED_TUFF_BREAK("block.polished_tuff.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_POLISHED_TUFF_FALL("block.polished_tuff.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_POLISHED_TUFF_HIT("block.polished_tuff.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_POLISHED_TUFF_PLACE("block.polished_tuff.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_POLISHED_TUFF_STEP("block.polished_tuff.step"),
BLOCK_PORTAL_AMBIENT("block.portal.ambient"),
BLOCK_PORTAL_TRAVEL("block.portal.travel"),
-@@ -701,34 +727,46 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
- @MinecraftExperimental
+@@ -700,36 +726,52 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+ BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES("block.sweet_berry_bush.pick_berries"),
+ BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"),
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_ABOUT_TO_SPAWN_ITEM("block.trial_spawner.about_to_spawn_item"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_AMBIENT("block.trial_spawner.ambient"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_AMBIENT_CHARGED("block.trial_spawner.ambient_charged"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_BREAK("block.trial_spawner.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_CHARGE_ACTIVATE("block.trial_spawner.charge_activate"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER("block.trial_spawner.close_shutter"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_DETECT_PLAYER("block.trial_spawner.detect_player"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_EJECT_ITEM("block.trial_spawner.eject_item"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_FALL("block.trial_spawner.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_HIT("block.trial_spawner.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_OPEN_SHUTTER("block.trial_spawner.open_shutter"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_PLACE("block.trial_spawner.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_SPAWN_ITEM("block.trial_spawner.spawn_item"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_SPAWN_ITEM_BEGIN("block.trial_spawner.spawn_item_begin"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_SPAWN_MOB("block.trial_spawner.spawn_mob"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TRIAL_SPAWNER_STEP("block.trial_spawner.step"),
BLOCK_TRIPWIRE_ATTACH("block.tripwire.attach"),
BLOCK_TRIPWIRE_CLICK_OFF("block.tripwire.click_off"),
-@@ -736,44 +774,62 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -737,44 +779,62 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
BLOCK_TRIPWIRE_DETACH("block.tripwire.detach"),
BLOCK_TUFF_BREAK("block.tuff.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TUFF_BRICKS_BREAK("block.tuff_bricks.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TUFF_BRICKS_FALL("block.tuff_bricks.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TUFF_BRICKS_HIT("block.tuff_bricks.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TUFF_BRICKS_PLACE("block.tuff_bricks.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_TUFF_BRICKS_STEP("block.tuff_bricks.step"),
BLOCK_TUFF_FALL("block.tuff.fall"),
BLOCK_TUFF_HIT("block.tuff.hit"),
BLOCK_TUFF_PLACE("block.tuff.place"),
BLOCK_TUFF_STEP("block.tuff.step"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_ACTIVATE("block.vault.activate"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_AMBIENT("block.vault.ambient"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_BREAK("block.vault.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_CLOSE_SHUTTER("block.vault.close_shutter"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_DEACTIVATE("block.vault.deactivate"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_EJECT_ITEM("block.vault.eject_item"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_FALL("block.vault.fall"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_HIT("block.vault.hit"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_INSERT_ITEM("block.vault.insert_item"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_INSERT_ITEM_FAIL("block.vault.insert_item_fail"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_OPEN_SHUTTER("block.vault.open_shutter"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_PLACE("block.vault.place"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
BLOCK_VAULT_STEP("block.vault.step"),
BLOCK_VINE_BREAK("block.vine.break"),
BLOCK_VINE_FALL("block.vine.fall"),
-@@ -874,40 +930,58 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -875,40 +935,58 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
ENTITY_BOAT_PADDLE_LAND("entity.boat.paddle_land"),
ENTITY_BOAT_PADDLE_WATER("entity.boat.paddle_water"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BOGGED_AMBIENT("entity.bogged.ambient"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BOGGED_DEATH("entity.bogged.death"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BOGGED_HURT("entity.bogged.hurt"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BOGGED_SHEAR("entity.bogged.shear"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BOGGED_STEP("entity.bogged.step"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_CHARGE("entity.breeze.charge"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_DEATH("entity.breeze.death"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_DEFLECT("entity.breeze.deflect"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_HURT("entity.breeze.hurt"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_IDLE_AIR("entity.breeze.idle_air"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_IDLE_GROUND("entity.breeze.idle_ground"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_INHALE("entity.breeze.inhale"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_JUMP("entity.breeze.jump"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_LAND("entity.breeze.land"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_SHOOT("entity.breeze.shoot"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_SLIDE("entity.breeze.slide"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_WHIRL("entity.breeze.whirl"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_BREEZE_WIND_BURST("entity.breeze.wind_burst"),
ENTITY_CAMEL_AMBIENT("entity.camel.ambient"),
ENTITY_CAMEL_DASH("entity.camel.dash"),
-@@ -1207,8 +1281,10 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -1208,8 +1286,10 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
ENTITY_PARROT_HURT("entity.parrot.hurt"),
ENTITY_PARROT_IMITATE_BLAZE("entity.parrot.imitate.blaze"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_PARROT_IMITATE_BOGGED("entity.parrot.imitate.bogged"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_PARROT_IMITATE_BREEZE("entity.parrot.imitate.breeze"),
ENTITY_PARROT_IMITATE_CREEPER("entity.parrot.imitate.creeper"),
ENTITY_PARROT_IMITATE_DROWNED("entity.parrot.imitate.drowned"),
-@@ -1488,8 +1564,10 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -1489,8 +1569,10 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
ENTITY_WARDEN_STEP("entity.warden.step"),
ENTITY_WARDEN_TENDRIL_CLICKS("entity.warden.tendril_clicks"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_WIND_CHARGE_THROW("entity.wind_charge.throw"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ENTITY_WIND_CHARGE_WIND_BURST("entity.wind_charge.wind_burst"),
ENTITY_WITCH_AMBIENT("entity.witch.ambient"),
ENTITY_WITCH_CELEBRATE("entity.witch.celebrate"),
-@@ -1546,10 +1624,13 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+@@ -1547,10 +1629,13 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
ENTITY_ZOMBIFIED_PIGLIN_DEATH("entity.zombified_piglin.death"),
ENTITY_ZOMBIFIED_PIGLIN_HURT("entity.zombified_piglin.hurt"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EVENT_MOB_EFFECT_BAD_OMEN("event.mob_effect.bad_omen"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EVENT_MOB_EFFECT_RAID_OMEN("event.mob_effect.raid_omen"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EVENT_MOB_EFFECT_TRIAL_OMEN("event.mob_effect.trial_omen"),
EVENT_RAID_HORN("event.raid.horn"),
INTENTIONALLY_EMPTY("intentionally_empty"),
-@@ -1591,10 +1672,13 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
- ITEM_BUCKET_FILL_POWDER_SNOW("item.bucket.fill_powder_snow"),
- ITEM_BUCKET_FILL_TADPOLE("item.bucket.fill_tadpole"),
- @MinecraftExperimental
+@@ -1624,13 +1709,17 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+ ITEM_INK_SAC_USE("item.ink_sac.use"),
+ ITEM_LODESTONE_COMPASS_LOCK("item.lodestone_compass.lock"),
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
- ITEM_BUNDLE_DROP_CONTENTS("item.bundle.drop_contents"),
- @MinecraftExperimental
+ ITEM_MACE_SMASH_AIR("item.mace.smash_air"),
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
- ITEM_BUNDLE_INSERT("item.bundle.insert"),
- @MinecraftExperimental
+ ITEM_MACE_SMASH_GROUND("item.mace.smash_ground"),
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
- ITEM_BUNDLE_REMOVE_ONE("item.bundle.remove_one"),
- ITEM_CHORUS_FRUIT_TELEPORT("item.chorus_fruit.teleport"),
- ITEM_CROP_PLANT("item.crop.plant"),
-@@ -1649,12 +1733,16 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
+ ITEM_MACE_SMASH_GROUND_HEAVY("item.mace.smash_ground_heavy"),
+ ITEM_NETHER_WART_PLANT("item.nether_wart.plant"),
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
+ ITEM_OMINOUS_BOTTLE_DISPOSE("item.ominous_bottle.dispose"),
+ ITEM_SHIELD_BLOCK("item.shield.block"),
+ ITEM_SHIELD_BREAK("item.shield.break"),
+@@ -1647,12 +1736,16 @@ public enum Sound implements Keyed, net.kyori.adventure.sound.Sound.Type { // Pa
ITEM_TRIDENT_THROW("item.trident.throw"),
ITEM_TRIDENT_THUNDER("item.trident.thunder"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ITEM_WOLF_ARMOR_BREAK("item.wolf_armor.break"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ITEM_WOLF_ARMOR_CRACK("item.wolf_armor.crack"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ITEM_WOLF_ARMOR_DAMAGE("item.wolf_armor.damage"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
ITEM_WOLF_ARMOR_REPAIR("item.wolf_armor.repair"),
MUSIC_CREATIVE("music.creative"),
@@ -844,114 +852,123 @@ index cb5890e0e7bccfee2ba32dd4776f1ae1fdd539e8..7f1dc4288c2d324281e11dc582b6f4ef
/**
* Vanilla tag representing all entities sensitive to illager enchantments.
diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java
-index 65d3d8fd5f00114dc388d65321a9affe1b32ce20..8e39f282c771ddafe5d890dcf065c56f0c633647 100644
+index b670ff8b2bfcaa59c2292211cb9fc2bf4c5b2642..94092a5882180cca7905388184de1f91633f0df1 100644
--- a/src/main/java/org/bukkit/generator/structure/Structure.java
+++ b/src/main/java/org/bukkit/generator/structure/Structure.java
-@@ -49,6 +49,7 @@ public abstract class Structure implements Keyed {
+@@ -50,6 +50,7 @@ public abstract class Structure implements Keyed {
public static final Structure ANCIENT_CITY = getStructure("ancient_city");
public static final Structure TRAIL_RUINS = getStructure("trail_ruins");
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
public static final Structure TRIAL_CHAMBERS = getStructure("trial_chambers");
private static Structure getStructure(String name) {
diff --git a/src/main/java/org/bukkit/loot/LootTables.java b/src/main/java/org/bukkit/loot/LootTables.java
-index 0a3bce3b9d27e6a978e0c40d9f16afb8b2e14e9b..49e3ff6725c656ace6040312a866063494878a5b 100644
+index 0fc30514375c1700c282d1e92342f7b48ca1cb27..bd625de1103741e592b4111412e4094f4c454f9b 100644
--- a/src/main/java/org/bukkit/loot/LootTables.java
+++ b/src/main/java/org/bukkit/loot/LootTables.java
-@@ -35,38 +35,55 @@ public enum LootTables implements Keyed {
+@@ -36,44 +36,64 @@ public enum LootTables implements Keyed {
ANCIENT_CITY_ICE_BOX("chests/ancient_city_ice_box"),
RUINED_PORTAL("chests/ruined_portal"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD("chests/trial_chambers/reward"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_COMMON("chests/trial_chambers/reward_common"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_RARE("chests/trial_chambers/reward_rare"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_UNIQUE("chests/trial_chambers/reward_unique"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_OMINOUS("chests/trial_chambers/reward_ominous"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_OMINOUS_COMMON("chests/trial_chambers/reward_ominous_common"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_OMINOUS_RARE("chests/trial_chambers/reward_ominous_rare"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_REWARD_OMINOUS_UNIQUE("chests/trial_chambers/reward_ominous_unique"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_SUPPLY("chests/trial_chambers/supply"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_CORRIDOR("chests/trial_chambers/corridor"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_INTERSECTION("chests/trial_chambers/intersection"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_INTERSECTION_BARREL("chests/trial_chambers/intersection_barrel"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_ENTRANCE("chests/trial_chambers/entrance"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_CORRIDOR_DISPENSER("dispensers/trial_chambers/corridor"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_CHAMBER_DISPENSER("dispensers/trial_chambers/chamber"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_WATER_DISPENSER("dispensers/trial_chambers/water"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBERS_CORRIDOR_POT("pots/trial_chambers/corridor"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
EQUIPMENT_TRIAL_CHAMBER("equipment/trial_chamber"),
-@@ -201,14 +218,19 @@ public enum LootTables implements Keyed {
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
+ EQUIPMENT_TRIAL_CHAMBER_RANGED("equipment/trial_chamber_ranged"),
+ @MinecraftExperimental(Requires.UPDATE_1_21)
++ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
+ EQUIPMENT_TRIAL_CHAMBER_MELEE("equipment/trial_chamber_melee"),
+ SHIPWRECK_MAP("chests/shipwreck_map"),
+ SHIPWRECK_SUPPLY("chests/shipwreck_supply"),
+@@ -202,14 +222,19 @@ public enum LootTables implements Keyed {
PIGLIN_BARTERING("gameplay/piglin_bartering"),
// Spawners
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBER_KEY("spawners/trial_chamber/key"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBER_CONSUMABLES("spawners/trial_chamber/consumables"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OMINOUS_TRIAL_CHAMBER_KEY("spawners/ominous/trial_chamber/key"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OMINOUS_TRIAL_CHAMBER_CONSUMABLES("spawners/ominous/trial_chamber/consumables"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
TRIAL_CHAMBER_ITEMS_TO_DROP_WHEN_OMINOUS("spawners/trial_chamber/items_to_drop_when_ominous"),
// Shearing
SHEARING_BOGGED("shearing/bogged"),
diff --git a/src/main/java/org/bukkit/potion/PotionType.java b/src/main/java/org/bukkit/potion/PotionType.java
-index 310833ace16b541392b92d12967f75039990b341..4649cc5c1fa690de34ed540e33c20f9bf0b17835 100644
+index dabaa58432b91ed120cc5a3a43a8e94110fa84a3..1fdd56450e8a0763833742c805847a723c43bf6c 100644
--- a/src/main/java/org/bukkit/potion/PotionType.java
+++ b/src/main/java/org/bukkit/potion/PotionType.java
-@@ -59,12 +59,16 @@ public enum PotionType implements Keyed {
+@@ -60,12 +60,16 @@ public enum PotionType implements Keyed {
SLOW_FALLING("slow_falling"),
LONG_SLOW_FALLING("long_slow_falling"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WIND_CHARGED("wind_charged"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
WEAVING("weaving"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
OOZING("oozing"),
- @MinecraftExperimental
+ @MinecraftExperimental(Requires.UPDATE_1_21)
+ @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation
INFESTED("infested"),
;
diff --git a/patches/api/0444-Improve-Registry.patch b/patches/api/0444-Improve-Registry.patch
index 6f1ad37927..2124cf7153 100644
--- a/patches/api/0444-Improve-Registry.patch
+++ b/patches/api/0444-Improve-Registry.patch
@@ -98,10 +98,10 @@ index 76b1d08d9ae2c2cf5c6d88934929695d438b3284..542c0516e19b6177ff8007ca6f8955dc
}
}
diff --git a/src/main/java/org/bukkit/block/banner/PatternType.java b/src/main/java/org/bukkit/block/banner/PatternType.java
-index 0d250d0c1381aadab031f102f537422a731b88e1..31751aa31ef31142c37ef522a17435f4eeb7231a 100644
+index db7723e2907525850f8dbd2bd7150c1e47ebf1c8..1b958b2024ec3f7729605fce70074c5c0208b6cc 100644
--- a/src/main/java/org/bukkit/block/banner/PatternType.java
+++ b/src/main/java/org/bukkit/block/banner/PatternType.java
-@@ -72,6 +72,13 @@ public enum PatternType implements Keyed {
+@@ -73,6 +73,13 @@ public enum PatternType implements Keyed {
this.key = NamespacedKey.minecraft(key);
}
@@ -116,10 +116,10 @@ index 0d250d0c1381aadab031f102f537422a731b88e1..31751aa31ef31142c37ef522a17435f4
@NotNull
public NamespacedKey getKey() {
diff --git a/src/main/java/org/bukkit/generator/structure/Structure.java b/src/main/java/org/bukkit/generator/structure/Structure.java
-index 8e39f282c771ddafe5d890dcf065c56f0c633647..baa3d6d38353ba6d9d0863dd7deaba3c830b2400 100644
+index 94092a5882180cca7905388184de1f91633f0df1..46e510e67b156b469d1413e616a5ff6a6487fdbf 100644
--- a/src/main/java/org/bukkit/generator/structure/Structure.java
+++ b/src/main/java/org/bukkit/generator/structure/Structure.java
-@@ -63,4 +63,13 @@ public abstract class Structure implements Keyed {
+@@ -64,4 +64,13 @@ public abstract class Structure implements Keyed {
*/
@NotNull
public abstract StructureType getStructureType();
diff --git a/patches/api/0446-Add-missing-InventoryType.patch b/patches/api/0446-Add-missing-InventoryType.patch
index 67b4504ad3..9c578e05a4 100644
--- a/patches/api/0446-Add-missing-InventoryType.patch
+++ b/patches/api/0446-Add-missing-InventoryType.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add missing InventoryType
Upstream did not add a DECORATED_POT inventory type
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java
-index 64e59fe706b0bb37fc2439fa88fd40c3167c9fb5..daa1306a7324d946d66ad5a674bbc84371d8d4d6 100644
+index ccb09660e565bc2f7a653bda95fb38caccf7a060..59b375569a75cb1e1f7c610f96078e102ec0d3ed 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryType.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java
-@@ -144,6 +144,12 @@ public enum InventoryType {
+@@ -145,6 +145,12 @@ public enum InventoryType {
* Pseudo jukebox inventory with 1 slot of undefined type.
*/
JUKEBOX(1, "Jukebox", false),
diff --git a/patches/api/0450-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch b/patches/api/0450-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch
index 42c1f76157..93ba48c77c 100644
--- a/patches/api/0450-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch
+++ b/patches/api/0450-Return-null-for-empty-String-in-NamespacedKey.fromSt.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Return null for empty String in NamespacedKey.fromString
diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java
-index 5a2032fde327be45b44fd6aa99808fe7c3054e1b..334a107b991b7edda57f89ada3651ed72f98bffc 100644
+index cbdaa121dbc1876d0cd55f4b7b57f283ecaa8f1a..7ff6d60deb129e23b2a4d772aee123eb6c0b6433 100644
--- a/src/main/java/org/bukkit/NamespacedKey.java
+++ b/src/main/java/org/bukkit/NamespacedKey.java
@@ -90,7 +90,7 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
@@ -26,7 +26,7 @@ index 5a2032fde327be45b44fd6aa99808fe7c3054e1b..334a107b991b7edda57f89ada3651ed7
}
@NotNull
-@@ -204,7 +204,10 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
+@@ -205,7 +205,10 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
*/
@Nullable
public static NamespacedKey fromString(@NotNull String string, @Nullable Plugin defaultNamespace) {
diff --git a/patches/api/0456-ItemStack-Tooltip-API.patch b/patches/api/0456-ItemStack-Tooltip-API.patch
index 4274a11ce7..0db68cc72b 100644
--- a/patches/api/0456-ItemStack-Tooltip-API.patch
+++ b/patches/api/0456-ItemStack-Tooltip-API.patch
@@ -119,7 +119,7 @@ index 14a49bfd1822c25b95000f3fbb60ba1d55ae0d38..b9a07b2db8a3dcdb72c33c8ceda12992
+ @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 7adf54c561d64e6337af8a2d86f6b574b083edb5..245a730a54c4b241a9a67eccceefafd2763bd238 100644
+index ee636c066d1f87873c1ddf52c60c77b1b86d6e90..b04e7b9c3f631c0bb7734b809a58dbb988414fbb 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -1016,4 +1016,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
diff --git a/patches/api/0466-Deprecate-ItemStack-setType.patch b/patches/api/0466-Deprecate-ItemStack-setType.patch
index 78e7c70b9f..0ea99724f4 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 245a730a54c4b241a9a67eccceefafd2763bd238..7414b4fa690d393a8e9557cc1fd1ce12fa426940 100644
+index b04e7b9c3f631c0bb7734b809a58dbb988414fbb..df2d5ad5ff1bcb1488a94edde9cc4d53cacdd91d 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/server/0001-Setup-Gradle-project.patch b/patches/server/0001-Setup-Gradle-project.patch
index dec1c20d4d..dce8977936 100644
--- a/patches/server/0001-Setup-Gradle-project.patch
+++ b/patches/server/0001-Setup-Gradle-project.patch
@@ -28,7 +28,7 @@ index 37dab9e868dbfb019c271a547d975a48ad1cb571..3811c0d849a3eb028ed1a6b7a2d4747f
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
-index 0000000000000000000000000000000000000000..15bfe45585f0adc868aecb829ffd50c9b7c32cc0
+index 0000000000000000000000000000000000000000..e69d74d671b1b73f32eac47d620ec364f419bd6c
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,124 @@
@@ -55,7 +55,7 @@ index 0000000000000000000000000000000000000000..15bfe45585f0adc868aecb829ffd50c9
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+
-+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
++ testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+ testImplementation("org.hamcrest:hamcrest:2.2")
+ testImplementation("org.mockito:mockito-core:5.11.0")
+ testImplementation("org.ow2.asm:asm-tree:9.7")
@@ -158,10 +158,10 @@ index 0000000000000000000000000000000000000000..15bfe45585f0adc868aecb829ffd50c9
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
-index ca5ed64db9554831442170c57e288941454dcbca..0000000000000000000000000000000000000000
+index 37928a37028bb7ee4843d42f256675e000823774..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
-@@ -1,613 +0,0 @@
+@@ -1,604 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
@@ -435,14 +435,14 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <dependency>
- <groupId>org.jetbrains</groupId>
- <artifactId>annotations-java5</artifactId>
-- <version>24.0.1</version>
+- <version>24.1.0</version>
- <scope>provided</scope>
- </dependency>
- <!-- testing -->
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter</artifactId>
-- <version>5.10.0</version>
+- <version>5.10.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
@@ -515,7 +515,7 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
-- <version>3.3.0</version>
+- <version>3.4.1</version>
- <configuration>
- <archive>
- <manifest>
@@ -557,7 +557,7 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
-- <version>3.5.0</version>
+- <version>3.5.3</version>
- <executions>
- <execution>
- <phase>package</phase>
@@ -588,7 +588,7 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <plugin>
- <groupId>net.md-5</groupId>
- <artifactId>specialsource-maven-plugin</artifactId>
-- <version>2.0.2</version>
+- <version>2.0.3</version>
- <executions>
- <execution>
- <phase>package</phase>
@@ -634,7 +634,7 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
-- <version>3.6.0</version>
+- <version>3.7.1</version>
- <executions>
- <execution>
- <phase>package</phase>
@@ -663,23 +663,14 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.13.0</version>
- <configuration>
-- <!-- we use the Eclipse compiler as it doesn't need a JDK -->
-- <compilerId>eclipse</compilerId>
- <!-- default changed with version 3.11.0 -->
- <showWarnings>false</showWarnings>
- </configuration>
-- <dependencies>
-- <dependency>
-- <groupId>org.codehaus.plexus</groupId>
-- <artifactId>plexus-compiler-eclipse</artifactId>
-- <version>2.15.0</version>
-- </dependency>
-- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
-- <version>3.1.0</version>
+- <version>3.2.5</version>
- <configuration>
- <workingDirectory>${basedir}/target/test-server</workingDirectory>
- <excludes>
@@ -708,7 +699,7 @@ index ca5ed64db9554831442170c57e288941454dcbca..00000000000000000000000000000000
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
-- <version>3.3.0</version>
+- <version>3.3.1</version>
- <executions>
- <execution>
- <phase>test-compile</phase>
diff --git a/patches/server/0003-Build-system-changes.patch b/patches/server/0003-Build-system-changes.patch
index 51905f081a..2e076b8a8c 100644
--- a/patches/server/0003-Build-system-changes.patch
+++ b/patches/server/0003-Build-system-changes.patch
@@ -9,7 +9,7 @@ public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/build.gradle.kts b/build.gradle.kts
-index 15bfe45585f0adc868aecb829ffd50c9b7c32cc0..1be20e94b5a81cd5c065ae1491d3c3d3477e79ff 100644
+index e69d74d671b1b73f32eac47d620ec364f419bd6c..9d425351f32739eb6c18ebc5c36545c1be21d436 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,9 +9,7 @@ plugins {
diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch
index fd2b53f23e..448797c72a 100644
--- a/patches/server/0004-Test-changes.patch
+++ b/patches/server/0004-Test-changes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Test changes
diff --git a/build.gradle.kts b/build.gradle.kts
-index 1be20e94b5a81cd5c065ae1491d3c3d3477e79ff..b853ec25ff3edd2bc6c6d896cc848120b092c077 100644
+index 9d425351f32739eb6c18ebc5c36545c1be21d436..db90a1c1409cc7a58f35d2e9ae768f2edd3f36ae 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -23,6 +23,7 @@ dependencies {
diff --git a/patches/server/0005-Paper-config-files.patch b/patches/server/0005-Paper-config-files.patch
index 7d4dac6e71..d5bc4bee31 100644
--- a/patches/server/0005-Paper-config-files.patch
+++ b/patches/server/0005-Paper-config-files.patch
@@ -15,7 +15,7 @@ public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/mine
public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES
diff --git a/build.gradle.kts b/build.gradle.kts
-index b853ec25ff3edd2bc6c6d896cc848120b092c077..e6d4db67bdee5a0f980a74c38f00d760882bdfeb 100644
+index db90a1c1409cc7a58f35d2e9ae768f2edd3f36ae..c0a078302223202db37d2ed9ecf20716ed7706a5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -11,6 +11,7 @@ dependencies {
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index 461c2f81d6..66287eef8c 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -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 ed88e2bbc848b003e2143cd4a372c58c890cfe5c..7d04a18f62411f00dc7be59564ac6c292834c08a 100644
+index 113440cd203c1273934b9b7ad7a0fe36f44d0c88..2e83e5779d5bdfc150257d3394669d53eba5c5c3 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
@@ -7111,10 +7111,10 @@ index f73604d762efbac400d40f536ec1782fca584efa..4701bf9ee203f2f15b0b68e84bbfa2c4
super(type, world);
this.xpReward = 5;
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 74486f93527536d128e09ce03a99bdec4d99f2d9..2535cbf50087a4631c4d1027a61b173121d729bc 100644
+index a5d1cd1966ad85ad0a241bee9caa8fd7b7424017..2b8b220bf1e132b230abe14770da53de84db9818 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
-@@ -957,6 +957,25 @@ public final class ItemStack implements DataComponentHolder {
+@@ -952,6 +952,25 @@ public final class ItemStack implements DataComponentHolder {
}
}
@@ -7140,7 +7140,7 @@ index 74486f93527536d128e09ce03a99bdec4d99f2d9..2535cbf50087a4631c4d1027a61b1731
public void applyComponents(DataComponentPatch changes) {
this.components.applyPatch(changes);
this.getItem().verifyComponentsAfterLoad(this);
-@@ -1210,6 +1229,7 @@ public final class ItemStack implements DataComponentHolder {
+@@ -1205,6 +1224,7 @@ public final class ItemStack implements DataComponentHolder {
// CraftBukkit start
@Deprecated
public void setItem(Item item) {
@@ -7765,7 +7765,7 @@ index 080c0cf84d959e1acdde088f367bd005ea9c3bbd..9b299f74336ad0efecd05a4b771ac585
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 62ad3102e20415185b7dfa9effc305a5465252cc..a1b34778332472c09f3191bc72f9eb3df5e54ba4 100644
+index fb8243b6202374b5a1b5197a6b7984e1cfb60500..6ce2b09c4bb7153c960a7eed865296a9c93dd1cb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -252,8 +252,8 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -7788,7 +7788,7 @@ index 62ad3102e20415185b7dfa9effc305a5465252cc..a1b34778332472c09f3191bc72f9eb3d
if (playerChunk == null) return false;
playerChunk.getTickingChunkFuture().thenAccept(either -> {
-@@ -2079,4 +2079,55 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2075,4 +2075,55 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return this.spigot;
}
// Spigot end
@@ -7845,10 +7845,10 @@ index 62ad3102e20415185b7dfa9effc305a5465252cc..a1b34778332472c09f3191bc72f9eb3d
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 02b217544d1237c78b1d754a4575665d7b6fd465..9d2af8b74e33888df33425627b286d32c95753d6 100644
+index be0f10f8905cba30e26d61af879b054d3df5284b..13c3ac65f26e6cfc55ee3538b6308ef93f9936aa 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2404,4 +2404,34 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2400,4 +2400,34 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end
@@ -7884,7 +7884,7 @@ index 02b217544d1237c78b1d754a4575665d7b6fd465..9d2af8b74e33888df33425627b286d32
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 29286c0fdd9720e0842f945d03010ec61f1daa64..1f99a9b9a0510ab19a5913588d6d677d6cada5e5 100644
+index 39803e02ff5fcca8c9ce07aae890ab7095656370..b6521462d193bff83ace1dc694c6d957a7173969 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -22,6 +22,20 @@ import org.bukkit.material.MaterialData;
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 4840ffb09c..86346098c9 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -2714,10 +2714,10 @@ index 5631621f16fdda723cb3e1de7d3a6646d768a863..4277f7c477efe01d4ef917515178b260
this.chatVisibility = clientOptions.chatVisibility();
this.canChatColor = clientOptions.chatColors();
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d08e78617 100644
+index 6f17aeae2941c43205fa6db5950d65f510774104..26b8a69a528db8a836b138a2a223c385508ce2c4 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -55,7 +55,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -66,7 +66,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private static final Component TIMEOUT_DISCONNECTION_MESSAGE = Component.translatable("disconnect.timeout");
static final Component DISCONNECT_UNEXPECTED_QUERY = Component.translatable("multiplayer.disconnect.unexpected_query_response");
protected final MinecraftServer server;
@@ -2726,7 +2726,7 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
private final boolean transferred;
private long keepAliveTime;
private boolean keepAlivePending;
-@@ -64,6 +64,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -75,6 +75,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private boolean closed = false;
private int latency;
private volatile boolean suspendFlushingOnServerThread = false;
@@ -2734,7 +2734,7 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit
this.server = minecraftserver;
-@@ -177,6 +178,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -188,6 +189,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
ServerCommonPacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack {} rejection", this.playerProfile().getName(), packet.id());
this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect"));
}
@@ -2753,7 +2753,7 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packet.id(), PlayerResourcePackStatusEvent.Status.values()[packet.action().ordinal()])); // CraftBukkit
}
-@@ -265,12 +278,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -276,12 +289,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
// CraftBukkit start
@Deprecated
@@ -2775,7 +2775,7 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
// CraftBukkit start - fire PlayerKickEvent
if (this.processedDisconnect) {
return;
-@@ -279,7 +298,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -290,7 +309,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
Waitable waitable = new Waitable() {
@Override
protected Object evaluate() {
@@ -2784,7 +2784,7 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
return null;
}
};
-@@ -296,9 +315,9 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -307,9 +326,9 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
return;
}
@@ -2796,7 +2796,7 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
if (this.cserver.getServer().isRunning()) {
this.cserver.getPluginManager().callEvent(event);
-@@ -310,7 +329,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -321,7 +340,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
this.player.kickLeaveMessage = event.getLeaveMessage(); // CraftBukkit - SPIGOT-3034: Forward leave message to PlayerQuitEvent
// Send the possibly modified leave message
@@ -2806,10 +2806,10 @@ index 864fbf941d3aecea9e4637199784a0abf7ab4ba9..70a22e140050273ae420e8dc414eab6d
this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> {
diff --git a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
-index 5d3825781ee19ae2a746e98ff66f6392c35dd2ce..d13c57d5aa908e4c6ec835c78e6506a98033fb6d 100644
+index bd7107279ca004f35c932e5d6e82f8302ec781ae..970d1ddf0a014b47b0ac97440489706137324991 100644
--- a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
-@@ -106,6 +106,7 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
+@@ -100,6 +100,7 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
@Override
public void handleClientInformation(ServerboundClientInformationPacket packet) {
this.clientInformation = packet.information();
@@ -2818,18 +2818,18 @@ index 5d3825781ee19ae2a746e98ff66f6392c35dd2ce..d13c57d5aa908e4c6ec835c78e6506a9
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f407235e92 100644
+index d17358e391060c674d0b83b1619e0de8190c6791..86d0207a36df67bf0554193bf050e035aeecc5c9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -45,6 +45,7 @@ import net.minecraft.nbt.CompoundTag;
+@@ -44,6 +44,7 @@ import net.minecraft.core.registries.Registries;
+ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.Connection;
- import net.minecraft.network.ConnectionProtocol;
import net.minecraft.network.TickablePacketListener;
+import net.minecraft.network.chat.ChatDecorator;
import net.minecraft.network.chat.ChatType;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.LastSeenMessages;
-@@ -196,6 +197,8 @@ import net.minecraft.world.phys.shapes.VoxelShape;
+@@ -195,6 +196,8 @@ import net.minecraft.world.phys.shapes.VoxelShape;
import org.slf4j.Logger;
// CraftBukkit start
@@ -2838,7 +2838,7 @@ index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f4
import com.mojang.datafixers.util.Pair;
import java.util.Arrays;
import java.util.concurrent.ExecutionException;
-@@ -1717,9 +1720,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1711,9 +1714,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
*/
this.player.disconnect();
@@ -2853,7 +2853,7 @@ index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f4
}
// CraftBukkit end
this.player.getTextFilter().leave();
-@@ -1780,10 +1785,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1774,10 +1779,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
CompletableFuture<FilteredText> completablefuture = this.filterTextPacket(playerchatmessage.signedContent()).thenApplyAsync(Function.identity(), this.server.chatExecutor); // CraftBukkit - async chat
@@ -2867,7 +2867,7 @@ index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f4
this.broadcastChatMessage(playerchatmessage1);
});
-@@ -2003,7 +2008,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1997,7 +2002,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
@@ -2884,7 +2884,7 @@ index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f4
Player player = this.getCraftPlayer();
AsyncPlayerChatEvent event = new AsyncPlayerChatEvent(async, player, s, new LazyPlayerSet(this.server));
String originalFormat = event.getFormat(), originalMessage = event.getMessage();
-@@ -2306,7 +2319,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2300,7 +2313,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void sendPlayerChatMessage(PlayerChatMessage message, ChatType.Bound params) {
// CraftBukkit start - SPIGOT-7262: if hidden we have to send as disguised message. Query whether we should send at all (but changing this may not be expected).
@@ -2897,7 +2897,7 @@ index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f4
this.sendDisguisedChatMessage(message.decoratedContent(), params);
return;
}
-@@ -3000,6 +3017,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2994,6 +3011,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
this.player.updateOptions(packet.information());
@@ -2906,7 +2906,7 @@ index c72c5d0fa96e92539a0e7175a161ed2b8d99d629..ad965076a31b947afc65fdf3a03972f4
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index a9e275f80150eab7d048154429d21d0e92510532..eb69b213a75df72dd7b37f41d86564f7fc692e32 100644
+index 47a1c62dd6f927cb01f679a597d1526bbca9e433..7beda9a16addb2dbcd4bdc45e58b343e91323af5 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -331,7 +331,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -3201,7 +3201,7 @@ index ed54c81a3269360acce674aa4e1d54ccb2461841..c9c849534c3998cfcab7ddcb12a71ccb
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 2535cbf50087a4631c4d1027a61b173121d729bc..04d8cfd0ef3cb9c60e93136376ae90144f3cb7ce 100644
+index 2b8b220bf1e132b230abe14770da53de84db9818..7ca60db3a639e68456933f8e5af900dc4aade575 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -164,7 +164,16 @@ public final class ItemStack implements DataComponentHolder {
@@ -3465,7 +3465,7 @@ index 9b299f74336ad0efecd05a4b771ac58549d5fb6a..9e34d3f009184981e4f4cd34b0c0c75b
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a1b34778332472c09f3191bc72f9eb3df5e54ba4..c793bae3d7c6da5014862c98b08fc3fa2374866d 100644
+index 6ce2b09c4bb7153c960a7eed865296a9c93dd1cb..5bbbb9ee266879291e4ff56ad2ee39aa6151bfff 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -162,6 +162,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -3519,7 +3519,7 @@ index a1b34778332472c09f3191bc72f9eb3df5e54ba4..c793bae3d7c6da5014862c98b08fc3fa
private static Map<String, GameRules.Key<?>> gamerules;
public static synchronized Map<String, GameRules.Key<?>> getGameRulesNMS() {
-@@ -2129,5 +2166,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -2125,5 +2162,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public void setSendViewDistance(final int viewDistance) {
throw new UnsupportedOperationException("Not implemented yet");
}
@@ -4059,10 +4059,10 @@ index 55945b83a5426b352bad9507cc9e94afb1278032..9ea1537408ff2d790747b6e5a681d917
public boolean isOp() {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b39e51559 100644
+index 13c3ac65f26e6cfc55ee3538b6308ef93f9936aa..aa9049ed3d39ab862978e311ec0bb0dceb648a8a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -385,14 +385,40 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -386,14 +386,40 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getDisplayName() {
@@ -4103,7 +4103,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
@Override
public String getPlayerListName() {
return this.getHandle().listName == null ? this.getName() : CraftChatMessage.fromComponent(this.getHandle().listName);
-@@ -404,6 +430,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -405,6 +431,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
name = this.getName();
}
this.getHandle().listName = name.equals(this.getName()) ? null : CraftChatMessage.fromStringOrNull(name);
@@ -4111,7 +4111,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
-@@ -411,42 +438,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -412,42 +439,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@@ -4163,7 +4163,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
this.getHandle().connection.send(packet);
}
-@@ -478,6 +505,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -479,6 +506,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.disconnect(message == null ? "" : message);
}
@@ -4187,7 +4187,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
@Override
public void setCompassTarget(Location loc) {
Preconditions.checkArgument(loc != null, "Location cannot be null");
-@@ -774,6 +818,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -775,6 +819,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
@@ -4212,7 +4212,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
@Override
public void sendSignChange(Location loc, String[] lines) {
this.sendSignChange(loc, lines, DyeColor.BLACK);
-@@ -797,6 +859,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -798,6 +860,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
Component[] components = CraftSign.sanitizeLines(lines);
@@ -4221,19 +4221,10 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
+ }
+
+ private void sendSignChange0(Component[] components, Location loc, DyeColor dyeColor, boolean hasGlowingText) {
++ // Paper end
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
- sign.setLevel(this.getHandle().level());
SignText text = sign.getFrontText();
-@@ -807,7 +874,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- }
- sign.setText(text, true);
-
-- this.getHandle().connection.send(sign.getUpdatePacket());
-+ getHandle().connection.send(sign.getUpdatePacket());
-+ // Paper end
- }
-
- @Override
+ text = text.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData()));
@@ -1805,7 +1873,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
@@ -4312,7 +4303,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
@Override
public void removeResourcePack(UUID id) {
Preconditions.checkArgument(id != null, "Resource pack id cannot be null");
-@@ -2272,6 +2393,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2268,6 +2389,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance();
}
@@ -4325,7 +4316,7 @@ index 9d2af8b74e33888df33425627b286d32c95753d6..2b885e00840171777c08b5f0ffe2488b
@Override
public int getPing() {
return this.getHandle().connection.latency();
-@@ -2322,6 +2449,249 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2318,6 +2445,249 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}
@@ -4976,7 +4967,7 @@ index 61ad00c38cfef8a1de61b4597ec1042428feccf4..4c308de19e26b228151dc05606dd6339
if (this.pages != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
-index 6691950f6ffb8b6bf70d5aaf011ec9b476974d19..31054e7e1d69bfeeb2ddee5bfeb8ee500d9c2efc 100644
+index 9c57b883783145ad4483481a2c2e7f0f188cd174..3795207a024ddf2e93baa09bcce56a1253eec8ed 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBookSigned.java
@@ -2,7 +2,7 @@ package org.bukkit.craftbukkit.inventory;
@@ -4988,7 +4979,7 @@ index 6691950f6ffb8b6bf70d5aaf011ec9b476974d19..31054e7e1d69bfeeb2ddee5bfeb8ee50
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-@@ -342,7 +342,7 @@ public class CraftMetaBookSigned extends CraftMetaItem implements BookMeta {
+@@ -346,7 +346,7 @@ public class CraftMetaBookSigned extends CraftMetaItem implements BookMeta {
}
@Override
@@ -4997,7 +4988,7 @@ index 6691950f6ffb8b6bf70d5aaf011ec9b476974d19..31054e7e1d69bfeeb2ddee5bfeb8ee50
super.serialize(builder);
if (this.hasTitle()) {
-@@ -455,4 +455,25 @@ public class CraftMetaBookSigned extends CraftMetaItem implements BookMeta {
+@@ -459,4 +459,25 @@ public class CraftMetaBookSigned extends CraftMetaItem implements BookMeta {
return this.spigot;
}
// Spigot end
@@ -5024,7 +5015,7 @@ index 6691950f6ffb8b6bf70d5aaf011ec9b476974d19..31054e7e1d69bfeeb2ddee5bfeb8ee50
+ // 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 625035216d1ce4ab965b5eef15f1201fc5df576b..18efbab29f20436848894c66541aa6c7d3481aae 100644
+index 2a0803ed63be1adafec3e6e1cf57a84c867d0b57..6b63fec6bc646b6faf2151a786ef47c87848520e 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 {
@@ -5417,7 +5408,7 @@ index 4d586e1375ed8782939c9d480479e0dd981f8cbc..7900adb0b158bc17dd792dd082c33854
+
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
-index 9fc85104dd934425ea2ba379cac1c3e61388f7d8..f07234e19dc9f84ff4f4b5e5e811e2813184978b 100644
+index b963d471b33cacaeec385dba6b2bf369e3d4426f..51094fe6e37d3c0fad2682353f8de3d1b9c9aef5 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
@@ -299,6 +299,7 @@ public final class CraftChatMessage {
diff --git a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
index d1975319b9..5a2749dfc5 100644
--- a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -25,7 +25,7 @@ Other changes:
Co-Authored-By: Emilia Kond <[email protected]>
diff --git a/build.gradle.kts b/build.gradle.kts
-index e6d4db67bdee5a0f980a74c38f00d760882bdfeb..c7980981d994f3256bbb861a5e044a4563c88ad3 100644
+index c0a078302223202db37d2ed9ecf20716ed7706a5..7fb99f67edf961bb31e3f77049d2d3eb7bb148bc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -6,9 +6,30 @@ plugins {
diff --git a/patches/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch b/patches/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch
index 74e8bd9419..a6bf632ac1 100644
--- a/patches/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch
+++ b/patches/server/0012-Handle-plugin-prefixes-using-Log4J-configuration.patch
@@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing
the plugin logger.
diff --git a/build.gradle.kts b/build.gradle.kts
-index c7980981d994f3256bbb861a5e044a4563c88ad3..7a3b14da65a60326faa009a7c824d727610683bf 100644
+index 7fb99f67edf961bb31e3f77049d2d3eb7bb148bc..012dbc51b70e24d01e03df5471196249cd534bb8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -25,7 +25,7 @@ dependencies {
diff --git a/patches/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch b/patches/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
index 53d77d51a7..a54bf91ced 100644
--- a/patches/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
+++ b/patches/server/0014-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread
diff --git a/build.gradle.kts b/build.gradle.kts
-index 7a3b14da65a60326faa009a7c824d727610683bf..b29cd3fba110261dfabb7b63c44ff850393a6480 100644
+index 012dbc51b70e24d01e03df5471196249cd534bb8..c0cde2b74865070c6901cbc5809e8f79d14969b2 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -34,8 +34,7 @@ dependencies {
diff --git a/patches/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
index fc2bc6799f..97ea5c6955 100644
--- a/patches/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
+++ b/patches/server/0015-Deobfuscate-stacktraces-in-log-messages-crash-report.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and
diff --git a/build.gradle.kts b/build.gradle.kts
-index b29cd3fba110261dfabb7b63c44ff850393a6480..79011b24207ec46872ba7196a4dd8d7a7c4ce848 100644
+index c0cde2b74865070c6901cbc5809e8f79d14969b2..cc8f024fec9c1f928e0d218d19794eb1478f5d07 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -34,6 +34,7 @@ dependencies {
diff --git a/patches/server/0020-Plugin-remapping.patch b/patches/server/0020-Plugin-remapping.patch
index 6013bcac85..35b7e6ecc9 100644
--- a/patches/server/0020-Plugin-remapping.patch
+++ b/patches/server/0020-Plugin-remapping.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Plugin remapping
Co-authored-by: Nassim Jahnke <[email protected]>
diff --git a/build.gradle.kts b/build.gradle.kts
-index 79011b24207ec46872ba7196a4dd8d7a7c4ce848..33c3cc405c67d536c8a3038b83fd470fda10680e 100644
+index cc8f024fec9c1f928e0d218d19794eb1478f5d07..5f94206910467c3302da5a995da5f74961a3365a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -46,9 +46,14 @@ dependencies {
diff --git a/patches/server/0021-Hook-into-CB-plugin-rewrites.patch b/patches/server/0021-Hook-into-CB-plugin-rewrites.patch
index e2bbbd87bf..8a8dc9765f 100644
--- a/patches/server/0021-Hook-into-CB-plugin-rewrites.patch
+++ b/patches/server/0021-Hook-into-CB-plugin-rewrites.patch
@@ -8,7 +8,7 @@ our own relocation. Also lets us rewrite NMS calls for when we're
debugging in an IDE pre-relocate.
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb085e3636 100644
+index 2b0cf967e382e982200d73857b08c0f01a4e409c..8420a53672cfb0f060d9c85c445d200b6701f521 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
@@ -7,6 +7,7 @@ import java.io.InputStream;
@@ -27,9 +27,9 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
-@@ -62,6 +64,40 @@ public class Commodore {
- "org/spigotmc/event/entity/EntityDismountEvent", "org/bukkit/event/entity/EntityDismountEvent"
- );
+@@ -73,6 +75,40 @@ public class Commodore {
+ public static final List<Map<String, RerouteMethodData>> REROUTES = new ArrayList<>(); // Only used for testing
+ private static final Map<String, RerouteMethodData> FIELD_RENAME_METHOD_REROUTE = Commodore.createReroutes(FieldRename.class);
+ // Paper start - Plugin rewrites
+ private static final Map<String, String> SEARCH_AND_REMOVE = initReplacementsMap();
@@ -65,10 +65,10 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
+ }
+ // Paper end - Plugin rewrites
+
- private static final Map<String, RerouteMethodData> FIELD_RENAME_METHOD_REROUTE = RerouteBuilder.buildFromClass(FieldRename.class);
-
public static void main(String[] args) {
-@@ -190,9 +226,49 @@ public class Commodore {
+ OptionParser parser = new OptionParser();
+ OptionSpec<File> inputFlag = parser.acceptsAll(Arrays.asList("i", "input")).withRequiredArg().ofType(File.class).required();
+@@ -199,9 +235,49 @@ public class Commodore {
@Override
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
return new MethodVisitor(this.api, super.visitMethod(access, name, desc, signature, exceptions)) {
@@ -118,7 +118,7 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
name = FieldRename.rename(pluginVersion, owner, name);
if (modern) {
-@@ -296,6 +372,13 @@ public class Commodore {
+@@ -305,6 +381,13 @@ public class Commodore {
return;
}
@@ -132,7 +132,7 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
if (modern) {
if (owner.equals("org/bukkit/Material") || (instantiatedMethodType != null && instantiatedMethodType.getDescriptor().startsWith("(Lorg/bukkit/Material;)"))) {
switch (name) {
-@@ -399,6 +482,13 @@ public class Commodore {
+@@ -408,6 +491,13 @@ public class Commodore {
@Override
public void visitLdcInsn(Object value) {
@@ -146,7 +146,7 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
if (value instanceof String && ((String) value).equals("com.mysql.jdbc.Driver")) {
super.visitLdcInsn("com.mysql.cj.jdbc.Driver");
return;
-@@ -409,6 +499,14 @@ public class Commodore {
+@@ -418,6 +508,14 @@ public class Commodore {
@Override
public void visitInvokeDynamicInsn(String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments) {
@@ -161,7 +161,7 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
if (bootstrapMethodHandle.getOwner().equals("java/lang/invoke/LambdaMetafactory")
&& bootstrapMethodHandle.getName().equals("metafactory") && bootstrapMethodArguments.length == 3) {
Type samMethodType = (Type) bootstrapMethodArguments[0];
-@@ -425,7 +523,7 @@ public class Commodore {
+@@ -434,7 +532,7 @@ public class Commodore {
methodArgs.add(new Handle(newOpcode, newOwner, newName, newDescription, newItf));
methodArgs.add(newInstantiated);
@@ -170,7 +170,7 @@ index 0ecd298fead1a75bfc9ef535b550f5178fc3d3c8..072153a601eb257bd36bba24f356d4eb
}, implMethod.getTag(), implMethod.getOwner(), implMethod.getName(), implMethod.getDesc(), implMethod.isInterface(), samMethodType, instantiatedMethodType);
return;
}
-@@ -476,6 +574,12 @@ public class Commodore {
+@@ -485,6 +583,12 @@ public class Commodore {
@Override
public FieldVisitor visitField(int access, String name, String descriptor, String signature, Object value) {
diff --git a/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch b/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch
index 820d626a24..bdeb7e663a 100644
--- a/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch
+++ b/patches/server/0022-Remap-reflection-calls-in-plugins-using-internals.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Remap reflection calls in plugins using internals
Co-authored-by: Jason Penilla <[email protected]>
diff --git a/build.gradle.kts b/build.gradle.kts
-index 33c3cc405c67d536c8a3038b83fd470fda10680e..ab1aaf53f9a897982c93b754b8dbe8b6f4812f21 100644
+index 5f94206910467c3302da5a995da5f74961a3365a..b995ea46b0fabdab6d398aa1980f9d801460b772 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -34,7 +34,6 @@ dependencies {
@@ -658,11 +658,11 @@ index 457a963ee6ebd3cf5c3831f6660e3850335af49f..61744d8fde3ba98585cf261fc09f0acc
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 072153a601eb257bd36bba24f356d4eb085e3636..c2f46c2d7c4035848724cdccdce23f45774e338c 100644
+index 8420a53672cfb0f060d9c85c445d200b6701f521..fc04bfcb8b5dfa6d093c8d75b2f20c502ef94a63 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -65,36 +65,26 @@ public class Commodore {
- );
+@@ -76,36 +76,26 @@ public class Commodore {
+ private static final Map<String, RerouteMethodData> FIELD_RENAME_METHOD_REROUTE = Commodore.createReroutes(FieldRename.class);
// Paper start - Plugin rewrites
- private static final Map<String, String> SEARCH_AND_REMOVE = initReplacementsMap();
@@ -709,7 +709,7 @@ index 072153a601eb257bd36bba24f356d4eb085e3636..c2f46c2d7c4035848724cdccdce23f45
}
// Paper end - Plugin rewrites
-@@ -167,7 +157,7 @@ public class Commodore {
+@@ -176,7 +166,7 @@ public class Commodore {
ClassReader cr = new ClassReader(b);
ClassWriter cw = new ClassWriter(cr, 0);
diff --git a/patches/server/0023-Add-WorldEdit-plugin-flag-test-task.patch b/patches/server/0023-Add-WorldEdit-plugin-flag-test-task.patch
index b708dd3bac..caaa9d04f8 100644
--- a/patches/server/0023-Add-WorldEdit-plugin-flag-test-task.patch
+++ b/patches/server/0023-Add-WorldEdit-plugin-flag-test-task.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add WorldEdit plugin flag test task
diff --git a/build.gradle.kts b/build.gradle.kts
-index ab1aaf53f9a897982c93b754b8dbe8b6f4812f21..0aa7351e918a577f231a209443389d4bfdb4a93e 100644
+index b995ea46b0fabdab6d398aa1980f9d801460b772..2902bbff8d4aff8d09eaa6b7e4f6c604c42dac29 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,9 +1,11 @@
diff --git a/patches/server/0024-build-replace-use-of-shadow-plugin.patch b/patches/server/0024-build-replace-use-of-shadow-plugin.patch
index 93f409099f..78d0d23bdc 100644
--- a/patches/server/0024-build-replace-use-of-shadow-plugin.patch
+++ b/patches/server/0024-build-replace-use-of-shadow-plugin.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] build: replace use of shadow plugin
diff --git a/build.gradle.kts b/build.gradle.kts
-index 0aa7351e918a577f231a209443389d4bfdb4a93e..e8f0f110532ad63be170152082dd5805a3e3c12c 100644
+index 2902bbff8d4aff8d09eaa6b7e4f6c604c42dac29..fec06ac47cf190bf4d5d743c34e4a90b99a0af18 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -4,7 +4,6 @@ import xyz.jpenilla.runpaper.task.RunServer
diff --git a/patches/server/0025-Timings-v2.patch b/patches/server/0025-Timings-v2.patch
index e0a14e03ed..037ebd721b 100644
--- a/patches/server/0025-Timings-v2.patch
+++ b/patches/server/0025-Timings-v2.patch
@@ -1230,10 +1230,10 @@ index 9332573e6948092ea1cda4efa7f3944729da91be..476b513e05a8ef099a17db44732ebc8e
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 ad965076a31b947afc65fdf3a03972f407235e92..4a37313ea0f2253f377ea5d0d2c2d7b66c599ffe 100644
+index 86d0207a36df67bf0554193bf050e035aeecc5c9..e63aadfe5209978f5d515ef9c37df01e08cd8fdb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -336,7 +336,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -330,7 +330,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void tick() {
@@ -1241,7 +1241,7 @@ index ad965076a31b947afc65fdf3a03972f407235e92..4a37313ea0f2253f377ea5d0d2c2d7b6
if (this.ackBlockChangesUpTo > -1) {
this.send(new ClientboundBlockChangedAckPacket(this.ackBlockChangesUpTo));
this.ackBlockChangesUpTo = -1;
-@@ -403,7 +402,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -397,7 +396,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect(Component.translatable("multiplayer.disconnect.idling"));
}
@@ -1249,7 +1249,7 @@ index ad965076a31b947afc65fdf3a03972f407235e92..4a37313ea0f2253f377ea5d0d2c2d7b6
}
-@@ -2092,7 +2090,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2086,7 +2084,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
private void handleCommand(String s) {
@@ -1258,7 +1258,7 @@ index ad965076a31b947afc65fdf3a03972f407235e92..4a37313ea0f2253f377ea5d0d2c2d7b6
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
-@@ -2102,7 +2100,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2096,7 +2094,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -1267,7 +1267,7 @@ index ad965076a31b947afc65fdf3a03972f407235e92..4a37313ea0f2253f377ea5d0d2c2d7b6
return;
}
-@@ -2115,7 +2113,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2109,7 +2107,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
} finally {
@@ -1337,7 +1337,7 @@ index 9c54bc3897d1fa3c88a5a7d55224eb4cc97f4e79..09ce9511f52f7f8643fedc325c49580e
private boolean isStateClimbable(BlockState state) {
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index 4bdd6529dfc7f51c8e58e93cf140025ed8a4e44f..5e31d2799c299e5c3d4c02871f785179a2422323 100644
+index 1099a85ab7e98d8652cdd1c318f269ca31f4d783..606dbc398745b689f957e62ebd9eaa56a67a61f3 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -339,6 +339,15 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -1805,10 +1805,10 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 2b885e00840171777c08b5f0ffe2488b39e51559..f18ba33cc02b98e389f16c8ca174a832537ebce9 100644
+index aa9049ed3d39ab862978e311ec0bb0dceb648a8a..e27712775a494c27030e3aa824e36ec8c217b1ea 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2767,6 +2767,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2763,6 +2763,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR));
}
diff --git a/patches/server/0029-Support-components-in-ItemMeta.patch b/patches/server/0029-Support-components-in-ItemMeta.patch
index c67bd2d94c..479f83f898 100644
--- a/patches/server/0029-Support-components-in-ItemMeta.patch
+++ b/patches/server/0029-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 18efbab29f20436848894c66541aa6c7d3481aae..f9340ce662157bc141b515b02db5f8d9aa116f32 100644
+index 6b63fec6bc646b6faf2151a786ef47c87848520e..d8804be1f36872d12484d9b4327d669d19e7c573 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 18efbab29f20436848894c66541aa6c7d3481aae..f9340ce662157bc141b515b02db5f8d9
@Override
public boolean hasCustomModelData() {
return this.customModelData != null;
-@@ -1654,6 +1689,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1661,6 +1696,11 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
}
for (Object object : addFrom) {
diff --git a/patches/server/0033-Allow-nerfed-mobs-to-jump.patch b/patches/server/0033-Allow-nerfed-mobs-to-jump.patch
index bb726be828..3eaa6a63ec 100644
--- a/patches/server/0033-Allow-nerfed-mobs-to-jump.patch
+++ b/patches/server/0033-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 7d04a18f62411f00dc7be59564ac6c292834c08a..af1d4cab8ffa3b20dc7aa3af5d1cf8039ef9736f 100644
+index 2e83e5779d5bdfc150257d3394669d53eba5c5c3..895971f238b693afbf382d9951adb636d1efef2d 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
@@ -16,7 +16,7 @@ index 7d04a18f62411f00dc7be59564ac6c292834c08a..af1d4cab8ffa3b20dc7aa3af5d1cf803
public GoalSelector targetSelector;
@Nullable
private LivingEntity target;
-@@ -932,7 +933,15 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -935,7 +936,15 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
@Override
protected final void serverAiStep() {
++this.noActionTime;
diff --git a/patches/server/0034-Add-configurable-entity-despawn-distances.patch b/patches/server/0034-Add-configurable-entity-despawn-distances.patch
index 0f39ee59b9..a737ffb819 100644
--- a/patches/server/0034-Add-configurable-entity-despawn-distances.patch
+++ b/patches/server/0034-Add-configurable-entity-despawn-distances.patch
@@ -5,10 +5,10 @@ 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 af1d4cab8ffa3b20dc7aa3af5d1cf8039ef9736f..9dcd90b8e027075ccec0902bd1b13f82f6fe1bcd 100644
+index 895971f238b693afbf382d9951adb636d1efef2d..a61f25425893024571a85cf563ec41cfc7b52325 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -908,14 +908,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -911,14 +911,14 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
if (entityhuman != null) {
double d0 = entityhuman.distanceToSqr((Entity) this);
diff --git a/patches/server/0040-Player-affects-spawning-API.patch b/patches/server/0040-Player-affects-spawning-API.patch
index 2854626320..5815242aaf 100644
--- a/patches/server/0040-Player-affects-spawning-API.patch
+++ b/patches/server/0040-Player-affects-spawning-API.patch
@@ -21,10 +21,10 @@ 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 9dcd90b8e027075ccec0902bd1b13f82f6fe1bcd..14d1222286c7387eca828a9380053f14e4539b3c 100644
+index a61f25425893024571a85cf563ec41cfc7b52325..0e88a2212435ff70b5ee661de3977df2b456b29b 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -904,7 +904,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -907,7 +907,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
if (this.level().getDifficulty() == Difficulty.PEACEFUL && this.shouldDespawnInPeaceful()) {
this.discard(EntityRemoveEvent.Cause.DESPAWN); // CraftBukkit - add Bukkit remove cause
} else if (!this.isPersistenceRequired() && !this.requiresCustomPersistence()) {
@@ -135,10 +135,10 @@ index f38f62e777d88a783e1e3b7e1a48da921cc67cf4..77ae7882a08441d9a80b50492be5e484
for (Player player : this.players()) {
if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f18ba33cc02b98e389f16c8ca174a832537ebce9..476f1270344358660ce313e6a1d1ebbb42792c59 100644
+index e27712775a494c27030e3aa824e36ec8c217b1ea..f66adfdf41835b185aec5e7f50c768e7894c951f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2409,6 +2409,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2405,6 +2405,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().language;
}
diff --git a/patches/server/0041-Only-refresh-abilities-if-needed.patch b/patches/server/0041-Only-refresh-abilities-if-needed.patch
index 1f3e18706e..e93e2f4ce1 100644
--- a/patches/server/0041-Only-refresh-abilities-if-needed.patch
+++ b/patches/server/0041-Only-refresh-abilities-if-needed.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 476f1270344358660ce313e6a1d1ebbb42792c59..16aa9c45bdbac13f3f34040b68614dbe03cb3fb8 100644
+index f66adfdf41835b185aec5e7f50c768e7894c951f..e37f9009a6eb83da610af2cba98c35d19547443c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2082,12 +2082,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch
index 4ab091199a..f7d2ae8e41 100644
--- a/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch
+++ b/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch
@@ -39,10 +39,10 @@ index d75c3c10dcbd777796e479b9538e5254857ac07c..ab2336a30c1ffc1698c327c031a648d4
// CraftBukkit end
this.language = clientOptions.language();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 16aa9c45bdbac13f3f34040b68614dbe03cb3fb8..f4495e24f825c8bbd2d51e2e56b30815c2156cf2 100644
+index e37f9009a6eb83da610af2cba98c35d19547443c..86aaec4e639e0abf05531519d2ee5b9b1f8f7517 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2407,7 +2407,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2403,7 +2403,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
diff --git a/patches/server/0061-Improve-Player-chat-API-handling.patch b/patches/server/0061-Improve-Player-chat-API-handling.patch
index ea7af9e1aa..125faa02be 100644
--- a/patches/server/0061-Improve-Player-chat-API-handling.patch
+++ b/patches/server/0061-Improve-Player-chat-API-handling.patch
@@ -17,10 +17,10 @@ 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 4a37313ea0f2253f377ea5d0d2c2d7b66c599ffe..a944eb2b5dbc2a44c32cf9ea794c9b225de16a70 100644
+index e63aadfe5209978f5d515ef9c37df01e08cd8fdb..84c53376312e5f2253521ce2fcac756bc1e5365f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2002,7 +2002,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1996,7 +1996,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
OutgoingChatMessage outgoing = OutgoingChatMessage.create(original);
@@ -29,7 +29,7 @@ index 4a37313ea0f2253f377ea5d0d2c2d7b66c599ffe..a944eb2b5dbc2a44c32cf9ea794c9b22
this.handleCommand(s);
} else if (this.player.getChatVisibility() == ChatVisiblity.SYSTEM) {
// Do nothing, this is coming from a plugin
-@@ -2089,7 +2089,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2083,7 +2083,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@@ -53,10 +53,10 @@ index b43dae6ed6ebdd1978e35e9d43e07591f90dcb09..4a1305df41c42be65dbb0438066e148e
if (this.commandMap.dispatch(sender, commandLine)) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f4495e24f825c8bbd2d51e2e56b30815c2156cf2..5bb906ae7b2aab9601aa8dac492ba221345f5bac 100644
+index 86aaec4e639e0abf05531519d2ee5b9b1f8f7517..d50da3bc2dc3b6da13321d19d2eb501df8987461 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -543,7 +543,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -544,7 +544,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
diff --git a/patches/server/0065-Player-Tab-List-and-Title-APIs.patch b/patches/server/0065-Player-Tab-List-and-Title-APIs.patch
index 07324af200..bc2947c548 100644
--- a/patches/server/0065-Player-Tab-List-and-Title-APIs.patch
+++ b/patches/server/0065-Player-Tab-List-and-Title-APIs.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Player Tab List and Title APIs
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5bb906ae7b2aab9601aa8dac492ba221345f5bac..a0eaf651444e59315a3a68ae96a18b59742e2b65 100644
+index d50da3bc2dc3b6da13321d19d2eb501df8987461..7097c7b8e76478af9d0bae366b0d55c9a86e5127 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -383,6 +383,98 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -384,6 +384,98 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
diff --git a/patches/server/0068-Configurable-inter-world-teleportation-safety.patch b/patches/server/0068-Configurable-inter-world-teleportation-safety.patch
index 2584e30cfa..7ca60df4e5 100644
--- a/patches/server/0068-Configurable-inter-world-teleportation-safety.patch
+++ b/patches/server/0068-Configurable-inter-world-teleportation-safety.patch
@@ -16,7 +16,7 @@ The wanted destination was on top of the emerald block however the player ended
This only is the case if the player is teleporting between worlds.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a0eaf651444e59315a3a68ae96a18b59742e2b65..d40143d8d551d1f4df37b85a72109f53cf7ae10b 100644
+index 7097c7b8e76478af9d0bae366b0d55c9a86e5127..6229a21596892064b1d7b5cfc723ab5bcd4fa36e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1235,7 +1235,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0073-Complete-resource-pack-API.patch b/patches/server/0073-Complete-resource-pack-API.patch
index b1bb6b4d43..e4008abefd 100644
--- a/patches/server/0073-Complete-resource-pack-API.patch
+++ b/patches/server/0073-Complete-resource-pack-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index 70a22e140050273ae420e8dc414eab6d08e78617..d0178fc884b57cda9090a80716685994ca1a323e 100644
+index 26b8a69a528db8a836b138a2a223c385508ce2c4..5f5d8ae29ff702eacc72341fae074a05d977e7cd 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -190,7 +190,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -201,7 +201,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
callback.packEventReceived(packet.id(), net.kyori.adventure.resource.ResourcePackStatus.valueOf(packet.action().name()), this.getCraftPlayer());
}
// Paper end
@@ -22,10 +22,10 @@ index 70a22e140050273ae420e8dc414eab6d08e78617..d0178fc884b57cda9090a80716685994
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d40143d8d551d1f4df37b85a72109f53cf7ae10b..4e80ed2d52caf3869138b76fda00a71d92cda766 100644
+index 6229a21596892064b1d7b5cfc723ab5bcd4fa36e..6aebd2fcd8490b6ffb60af9aab5b7f30c4cc2453 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -205,6 +205,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -206,6 +206,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private double healthScale = 20;
private CraftWorldBorder clientWorldBorder = null;
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
diff --git a/patches/server/0077-Handle-Item-Meta-Inconsistencies.patch b/patches/server/0077-Handle-Item-Meta-Inconsistencies.patch
index cf75d74d65..50ab2f09d7 100644
--- a/patches/server/0077-Handle-Item-Meta-Inconsistencies.patch
+++ b/patches/server/0077-Handle-Item-Meta-Inconsistencies.patch
@@ -76,7 +76,7 @@ index b49eb019cce58049c2b3a0e80e3d08998b16f7ea..dd6bf199f22476ef1d0f704883b748be
public Mutable(ItemEnchantments enchantmentsComponent) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 1f99a9b9a0510ab19a5913588d6d677d6cada5e5..09c363f483cb12be01afd9a274c541f3bdeb992c 100644
+index b6521462d193bff83ace1dc694c6d957a7173969..d302767e8f01fdfcba9c22e2e35677afc18c0641 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -191,16 +191,11 @@ public final class CraftItemStack extends ItemStack {
@@ -144,7 +144,7 @@ index 1f99a9b9a0510ab19a5913588d6d677d6cada5e5..09c363f483cb12be01afd9a274c541f3
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 f9340ce662157bc141b515b02db5f8d9aa116f32..d9583b6f4e78a3fac594a7448e105507f33caa91 100644
+index d8804be1f36872d12484d9b4327d669d19e7c573..122142125dcba97572b1e0b9195e534a0e2257d9 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;
@@ -242,7 +242,7 @@ index f9340ce662157bc141b515b02db5f8d9aa116f32..d9583b6f4e78a3fac594a7448e105507
}
if (this.hasAttributeModifiers()) {
clone.attributeModifiers = LinkedHashMultimap.create(this.attributeModifiers);
-@@ -1805,4 +1808,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
+@@ -1812,4 +1815,22 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
return (result != null) ? result : Optional.empty();
}
diff --git a/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch
index cf34579995..0aae49b1bd 100644
--- a/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch
+++ b/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch
@@ -44,7 +44,7 @@ index 53da8935e076d56f0a5423e5c1bdcdddc7cbd882..f02b12f3853bf4bf29b59a505f06cb98
protected void internalSetAbsorptionAmount(float absorptionAmount) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4e80ed2d52caf3869138b76fda00a71d92cda766..deeab3b8ab258e5914a05190704a78d895dc9f33 100644
+index 6aebd2fcd8490b6ffb60af9aab5b7f30c4cc2453..b3e1ee818e87d9bbe6bbbfce715aca8720928c1c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2327,6 +2327,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0090-Add-PlayerUseUnknownEntityEvent.patch b/patches/server/0090-Add-PlayerUseUnknownEntityEvent.patch
index 2e6b997c57..e4e640e70c 100644
--- a/patches/server/0090-Add-PlayerUseUnknownEntityEvent.patch
+++ b/patches/server/0090-Add-PlayerUseUnknownEntityEvent.patch
@@ -28,10 +28,10 @@ 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 a944eb2b5dbc2a44c32cf9ea794c9b225de16a70..00043179d939e95734d56d221d79c0996321f875 100644
+index 84c53376312e5f2253521ce2fcac756bc1e5365f..444c3d396c117be4de314aafa1625ef69fabf601 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2486,7 +2486,26 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2480,7 +2480,26 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
});
}
}
diff --git a/patches/server/0113-Configurable-packet-in-spam-threshold.patch b/patches/server/0113-Configurable-packet-in-spam-threshold.patch
index 98e99146cc..ca7788bafa 100644
--- a/patches/server/0113-Configurable-packet-in-spam-threshold.patch
+++ b/patches/server/0113-Configurable-packet-in-spam-threshold.patch
@@ -5,10 +5,10 @@ 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 00043179d939e95734d56d221d79c0996321f875..053c1299d657dba38308b9d0fddd7416c357364d 100644
+index 444c3d396c117be4de314aafa1625ef69fabf601..e95251f21dd500850767a9bd3e9512c87bdaaec2 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1528,13 +1528,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1522,13 +1522,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Spigot start - limit place/interactions
private int limitedPackets;
private long lastLimitedPacket = -1;
diff --git a/patches/server/0114-Configurable-flying-kick-messages.patch b/patches/server/0114-Configurable-flying-kick-messages.patch
index 545bf77361..c398b0d327 100644
--- a/patches/server/0114-Configurable-flying-kick-messages.patch
+++ b/patches/server/0114-Configurable-flying-kick-messages.patch
@@ -5,10 +5,10 @@ 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 053c1299d657dba38308b9d0fddd7416c357364d..19b4e2a2c01a10642ced9bdffc0acb661b270741 100644
+index e95251f21dd500850767a9bd3e9512c87bdaaec2..f75216148bc8b3e357111ff624d8b43592d5d16b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -352,7 +352,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -346,7 +346,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.clientIsFloating && !this.player.isSleeping() && !this.player.isPassenger() && !this.player.isDeadOrDying()) {
if (++this.aboveGroundTickCount > this.getMaximumFlyingTicks(this.player)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating too long!", this.player.getName().getString());
@@ -17,7 +17,7 @@ index 053c1299d657dba38308b9d0fddd7416c357364d..19b4e2a2c01a10642ced9bdffc0acb66
return;
}
} else {
-@@ -371,7 +371,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -365,7 +365,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.clientVehicleIsFloating && this.lastVehicle.getControllingPassenger() == this.player) {
if (++this.aboveGroundVehicleTickCount > this.getMaximumFlyingTicks(this.lastVehicle)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getName().getString());
diff --git a/patches/server/0117-Cache-user-authenticator-threads.patch b/patches/server/0117-Cache-user-authenticator-threads.patch
index 04a32d1e53..af62d4792e 100644
--- a/patches/server/0117-Cache-user-authenticator-threads.patch
+++ b/patches/server/0117-Cache-user-authenticator-threads.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Cache user authenticator threads
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index eb69b213a75df72dd7b37f41d86564f7fc692e32..b03d4f12e89b8a5fe6ad2282f8cc2909b87795a9 100644
+index 7beda9a16addb2dbcd4bdc45e58b343e91323af5..d342d569eb93707bc683c3373ea88ae6b885a476 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -69,6 +69,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0126-String-based-Action-Bar-API.patch b/patches/server/0126-String-based-Action-Bar-API.patch
index dcd1006a24..cae378a5d0 100644
--- a/patches/server/0126-String-based-Action-Bar-API.patch
+++ b/patches/server/0126-String-based-Action-Bar-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] String based Action Bar API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index deeab3b8ab258e5914a05190704a78d895dc9f33..7884108bddd9d56550dcce3e2d00affb27e07fb1 100644
+index b3e1ee818e87d9bbe6bbbfce715aca8720928c1c..f7eb58914dd561734e1f5ab0aec5775f3ecf937b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -385,6 +385,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -386,6 +386,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper start
diff --git a/patches/server/0127-Properly-fix-item-duplication-bug.patch b/patches/server/0127-Properly-fix-item-duplication-bug.patch
index 20fb4016e1..7879e5309a 100644
--- a/patches/server/0127-Properly-fix-item-duplication-bug.patch
+++ b/patches/server/0127-Properly-fix-item-duplication-bug.patch
@@ -19,10 +19,10 @@ index 532282ba4432f55596337f7a0898ecc3d5dc2148..82498ec7f0de4c1b82c7882824587ed3
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index d0178fc884b57cda9090a80716685994ca1a323e..d9a22808381bd8b1be691cf879f5be8cc3add81c 100644
+index 5f5d8ae29ff702eacc72341fae074a05d977e7cd..fc2fd0842e25fbe5c46ae07200c4b1a5950ae29a 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -167,7 +167,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -178,7 +178,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
public final boolean isDisconnected() {
diff --git a/patches/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch
index 775c0bbd63..1c42b6754f 100644
--- a/patches/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch
+++ b/patches/server/0130-Provide-E-TE-Chunk-count-stat-methods.patch
@@ -20,7 +20,7 @@ index 004dd17181a49df5c2255a9eeca03f5a354920aa..ec6640bc761b6232d6b48a32fae11e60
private final List<TickingBlockEntity> pendingBlockEntityTickers = Lists.newArrayList();
private boolean tickingBlockEntities;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c793bae3d7c6da5014862c98b08fc3fa2374866d..b42d482defda5a91f4e625308d5fec8c8369e5fb 100644
+index 5bbbb9ee266879291e4ff56ad2ee39aa6151bfff..705cfb8ac38ee49adfb36a93b6939c975bbe95e9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -164,6 +164,56 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch b/patches/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
index 0619086b8b..afefe47c9c 100644
--- a/patches/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
+++ b/patches/server/0136-Add-option-to-make-parrots-stay-on-shoulders-despite.patch
@@ -14,10 +14,10 @@ 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 19b4e2a2c01a10642ced9bdffc0acb661b270741..03384eea3601869651a7539fc09a0a2d396137d2 100644
+index f75216148bc8b3e357111ff624d8b43592d5d16b..9e26cd52dfe77049019a417cd3999103647c037f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2248,6 +2248,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2242,6 +2242,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
switch (packet.getAction()) {
case PRESS_SHIFT_KEY:
this.player.setShiftKeyDown(true);
diff --git a/patches/server/0139-Item-canEntityPickup.patch b/patches/server/0139-Item-canEntityPickup.patch
index b230279aed..4b622591cc 100644
--- a/patches/server/0139-Item-canEntityPickup.patch
+++ b/patches/server/0139-Item-canEntityPickup.patch
@@ -5,10 +5,10 @@ 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 14d1222286c7387eca828a9380053f14e4539b3c..b740d931ad7ad81bf94afa62a9ae44a2fe9549d4 100644
+index 0e88a2212435ff70b5ee661de3977df2b456b29b..2f33036a78a120898b18301bae1585c65fdb69dc 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -712,6 +712,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -715,6 +715,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
ItemEntity entityitem = (ItemEntity) iterator.next();
if (!entityitem.isRemoved() && !entityitem.getItem().isEmpty() && !entityitem.hasPickUpDelay() && this.wantsToPickUp(entityitem.getItem())) {
diff --git a/patches/server/0147-Block-player-logins-during-server-shutdown.patch b/patches/server/0147-Block-player-logins-during-server-shutdown.patch
index 61027e8fd1..0a09c804d3 100644
--- a/patches/server/0147-Block-player-logins-during-server-shutdown.patch
+++ b/patches/server/0147-Block-player-logins-during-server-shutdown.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Block player logins during server shutdown
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index b03d4f12e89b8a5fe6ad2282f8cc2909b87795a9..93df138ffdf45303ce28ef6bff462b1b14e27f61 100644
+index d342d569eb93707bc683c3373ea88ae6b885a476..da300bbe01399eec9d45f68aeb7c214cab4108fb 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -95,6 +95,12 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0157-Allow-specifying-a-custom-authentication-servers-dow.patch b/patches/server/0157-Allow-specifying-a-custom-authentication-servers-dow.patch
index 8f5adde12a..8abd11f071 100644
--- a/patches/server/0157-Allow-specifying-a-custom-authentication-servers-dow.patch
+++ b/patches/server/0157-Allow-specifying-a-custom-authentication-servers-dow.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Allow specifying a custom "authentication servers down" kick
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 93df138ffdf45303ce28ef6bff462b1b14e27f61..5fb5a82edcd2c1b4ed6747d085f53b5ba0cd039f 100644
+index da300bbe01399eec9d45f68aeb7c214cab4108fb..a5b627ce61187696dfce3746c7c06cbaaf1149f5 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -301,7 +301,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0158-Add-PlayerJumpEvent.patch b/patches/server/0158-Add-PlayerJumpEvent.patch
index e99610c294..e9c26db028 100644
--- a/patches/server/0158-Add-PlayerJumpEvent.patch
+++ b/patches/server/0158-Add-PlayerJumpEvent.patch
@@ -5,10 +5,10 @@ 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 03384eea3601869651a7539fc09a0a2d396137d2..904aab6c4c3434756e25def2acdf5ca7afebb465 100644
+index 9e26cd52dfe77049019a417cd3999103647c037f..f6019435a90979ed6f966cc6e8288f05ff889d5e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1210,7 +1210,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1204,7 +1204,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag1 = d7 > 0.0D;
if (this.player.onGround() && !packet.isOnGround() && flag1) {
diff --git a/patches/server/0159-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0159-handle-ServerboundKeepAlivePacket-async.patch
index 45deff1c27..b7fa733d4a 100644
--- a/patches/server/0159-handle-ServerboundKeepAlivePacket-async.patch
+++ b/patches/server/0159-handle-ServerboundKeepAlivePacket-async.patch
@@ -15,10 +15,10 @@ also adding some additional logging in order to help work out what is causing
random disconnections for clients.
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index d9a22808381bd8b1be691cf879f5be8cc3add81c..d013b2a02a03f5637043ccc5a9c29c15cc811596 100644
+index fc2fd0842e25fbe5c46ae07200c4b1a5950ae29a..8cc454ad3f6b865253bdd4902fbf19fc4a3e4a7f 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -105,14 +105,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -116,14 +116,18 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
diff --git a/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch
index 5e9695a196..fd67819a03 100644
--- a/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch
+++ b/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch
@@ -90,11 +90,11 @@ index 9214fb6b8e21ff6aee8be0691f1fe6e41c901ba3..644214cc3a3c8e560b6ce470fe5997e3
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 7884108bddd9d56550dcce3e2d00affb27e07fb1..831e63386d110fe5581526dc142bd630aca39246 100644
+index f7eb58914dd561734e1f5ab0aec5775f3ecf937b..d8e10cc5afc5159b0eeef22ea2ef8b2dcf7655ca 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -331,6 +331,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- this.getHandle().transferCookieConnection.send(new ClientboundTransferPacket(host, port));
+@@ -332,6 +332,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ this.getHandle().transferCookieConnection.sendPacket(new ClientboundTransferPacket(host, port));
}
+ // Paper start - Implement NetworkClient
diff --git a/patches/server/0161-revert-serverside-behavior-of-keepalives.patch b/patches/server/0161-revert-serverside-behavior-of-keepalives.patch
index a75882c7b3..fa7ee14322 100644
--- a/patches/server/0161-revert-serverside-behavior-of-keepalives.patch
+++ b/patches/server/0161-revert-serverside-behavior-of-keepalives.patch
@@ -17,10 +17,10 @@ from networking or during connections flood of chunk packets on slower clients,
at the cost of dead connections being kept open for longer.
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index d013b2a02a03f5637043ccc5a9c29c15cc811596..89c05909c10ef5172693c5d9d8fdf7e6efead53b 100644
+index 8cc454ad3f6b865253bdd4902fbf19fc4a3e4a7f..b8b22a2b140b4d757add6eefa562d32430fb7424 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -57,7 +57,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -68,7 +68,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
protected final MinecraftServer server;
public final Connection connection; // Paper
private final boolean transferred;
@@ -29,7 +29,7 @@ index d013b2a02a03f5637043ccc5a9c29c15cc811596..89c05909c10ef5172693c5d9d8fdf7e6
private boolean keepAlivePending;
private long keepAliveChallenge;
private long closedListenerTime;
-@@ -65,6 +65,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -76,6 +76,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private int latency;
private volatile boolean suspendFlushingOnServerThread = false;
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
@@ -37,7 +37,7 @@ index d013b2a02a03f5637043ccc5a9c29c15cc811596..89c05909c10ef5172693c5d9d8fdf7e6
public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit
this.server = minecraftserver;
-@@ -215,18 +216,22 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -226,18 +227,22 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
protected void keepConnectionAlive() {
this.server.getProfiler().push("keepAlive");
diff --git a/patches/server/0164-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/server/0164-Prevent-logins-from-being-processed-when-the-player-.patch
index 709139bd3b..f6552aac5d 100644
--- a/patches/server/0164-Prevent-logins-from-being-processed-when-the-player-.patch
+++ b/patches/server/0164-Prevent-logins-from-being-processed-when-the-player-.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Prevent logins from being processed when the player has
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 5fb5a82edcd2c1b4ed6747d085f53b5ba0cd039f..31379b0aee05862dc44f507a64f19a810e0208d5 100644
+index a5b627ce61187696dfce3746c7c06cbaaf1149f5..2640041bfacda7612908c41e1506bf6668eb274f 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -102,7 +102,9 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0167-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0167-API-to-get-a-BlockState-without-a-snapshot.patch
index 47fbc0f82c..2ca3917af8 100644
--- a/patches/server/0167-API-to-get-a-BlockState-without-a-snapshot.patch
+++ b/patches/server/0167-API-to-get-a-BlockState-without-a-snapshot.patch
@@ -69,7 +69,7 @@ index a1c1a101aa424e74309f6f4c0a53a6a8db5df441..013298c424025cd88f15d61e50d196f7
public Biome getBiome() {
return this.getWorld().getBiome(this.getX(), this.getY(), this.getZ());
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
-index be9c5d928b8dccd0adde9df42ac7306153d1cc5c..fdd6f9e8164efedb3e8f29857ad35ed69e7b299d 100644
+index 7c613e345234bada75388930afdae1ed96c7beb8..25b7198c0e0afb7a09b1a68f5a53f5c44244cafb 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
@@ -22,15 +22,26 @@ public class CraftBlockEntityState<T extends BlockEntity> extends CraftBlockStat
@@ -101,7 +101,7 @@ index be9c5d928b8dccd0adde9df42ac7306153d1cc5c..fdd6f9e8164efedb3e8f29857ad35ed6
}
protected CraftBlockEntityState(CraftBlockEntityState<T> state, Location location) {
-@@ -165,4 +176,11 @@ public class CraftBlockEntityState<T extends BlockEntity> extends CraftBlockStat
+@@ -166,4 +177,11 @@ public class CraftBlockEntityState<T extends BlockEntity> extends CraftBlockStat
public CraftBlockEntityState<T> copy(Location location) {
return new CraftBlockEntityState<>(this, location);
}
@@ -114,7 +114,7 @@ index be9c5d928b8dccd0adde9df42ac7306153d1cc5c..fdd6f9e8164efedb3e8f29857ad35ed6
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
-index 9d22f389dfce7b800e29efab767fac842651490a..4c30af81697db25d9913b436c45d9a926cbb5cca 100644
+index 1cf2d13ac6addcf61168b95aafa936d4b9432f8a..e40973b65ece11d9c5a76abad51f72e610bf02ab 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
@@ -387,15 +387,30 @@ public final class CraftBlockStates {
diff --git a/patches/server/0168-AsyncTabCompleteEvent.patch b/patches/server/0168-AsyncTabCompleteEvent.patch
index 2551e2840a..9011b40572 100644
--- a/patches/server/0168-AsyncTabCompleteEvent.patch
+++ b/patches/server/0168-AsyncTabCompleteEvent.patch
@@ -16,10 +16,10 @@ 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 904aab6c4c3434756e25def2acdf5ca7afebb465..56134a163da44b0bb50121831e91e9f93e86417d 100644
+index f6019435a90979ed6f966cc6e8288f05ff889d5e..ae0e3694f3971908cb472b1165d2649265e1bdca 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -714,21 +714,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -708,21 +708,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
diff --git a/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch
index d8dd3dfa40..bfe5b41e9f 100644
--- a/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch
+++ b/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch
@@ -14,7 +14,7 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I
public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 831e63386d110fe5581526dc142bd630aca39246..40a1b3a5dde30c1e47c2e0419cca23fc25185419 100644
+index d8e10cc5afc5159b0eeef22ea2ef8b2dcf7655ca..f03143b0d061051fcde7538efe57fbd5fc551ab4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1624,7 +1624,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0173-PreCreatureSpawnEvent.patch b/patches/server/0173-PreCreatureSpawnEvent.patch
index 1227295d20..3ebb425a2c 100644
--- a/patches/server/0173-PreCreatureSpawnEvent.patch
+++ b/patches/server/0173-PreCreatureSpawnEvent.patch
@@ -55,7 +55,7 @@ index 3f2cad4c9c0400bf93932cb7f7219c2185fc7370..5c8e36ea8287029b1789719c687bac1a
if (t0 != null) {
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index 5e31d2799c299e5c3d4c02871f785179a2422323..fb621b161b0a47fac2c44b369ed01c27278bc4f6 100644
+index 606dbc398745b689f957e62ebd9eaa56a67a61f3..7df13199eacc8dec0ba8fbf10ea507b0d1c5f591 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -430,6 +430,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/0182-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/server/0182-Add-more-fields-to-AsyncPreLoginEvent.patch
index 15e0a9872d..05bf2e60ad 100644
--- a/patches/server/0182-Add-more-fields-to-AsyncPreLoginEvent.patch
+++ b/patches/server/0182-Add-more-fields-to-AsyncPreLoginEvent.patch
@@ -7,7 +7,7 @@ Co-authored-by: Connor Linfoot <[email protected]>
Co-authored-by: MCMDEV <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 31379b0aee05862dc44f507a64f19a810e0208d5..8f72dafebcca68263eeef4076c3251819815c77d 100644
+index 2640041bfacda7612908c41e1506bf6668eb274f..43c77bef408c016ee40454bdebb8662929a0b7f0 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -184,7 +184,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0183-Player.setPlayerProfile-API.patch b/patches/server/0183-Player.setPlayerProfile-API.patch
index 4da9ac899a..5ea76cbb79 100644
--- a/patches/server/0183-Player.setPlayerProfile-API.patch
+++ b/patches/server/0183-Player.setPlayerProfile-API.patch
@@ -9,10 +9,10 @@ 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 56134a163da44b0bb50121831e91e9f93e86417d..82cc40becd6c08364d9547aea0d7ffa5c407c42e 100644
+index ae0e3694f3971908cb472b1165d2649265e1bdca..66ca4d1f28143d1e4ce99532c6c2bd64cde67024 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1465,7 +1465,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1459,7 +1459,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.internalTeleport(dest.getX(), dest.getY(), dest.getZ(), dest.getYaw(), dest.getPitch(), Collections.emptySet());
}
@@ -22,7 +22,7 @@ index 56134a163da44b0bb50121831e91e9f93e86417d..82cc40becd6c08364d9547aea0d7ffa5
if (Float.isNaN(f)) {
f = 0;
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 8f72dafebcca68263eeef4076c3251819815c77d..96a7d52f982d2dcc5fa391007e5861ca62ec0841 100644
+index 43c77bef408c016ee40454bdebb8662929a0b7f0..2ca467bd9c53a59f1ca9b8e1c2cf683182a71910 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -334,11 +334,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -77,10 +77,10 @@ index 818df09e9245b5d89b4180b1eaa51470b7539341..461656e1cb095243bfe7a9ee2906e5b0
public Server getServer() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 40a1b3a5dde30c1e47c2e0419cca23fc25185419..981bdd5543a41517f5ead64cdce299cd3725e76c 100644
+index f03143b0d061051fcde7538efe57fbd5fc551ab4..4d9c2ce3bdfc2d6df53d49e82e4fec5638cd28d5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -246,11 +246,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -247,11 +247,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.server.getPlayer(this.getUniqueId()) != null;
}
@@ -220,10 +220,10 @@ index 40a1b3a5dde30c1e47c2e0419cca23fc25185419..981bdd5543a41517f5ead64cdce299cd
public void onEntityRemove(Entity entity) {
this.invertedVisibilityEntities.remove(entity.getUUID());
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index c2f46c2d7c4035848724cdccdce23f45774e338c..ceeb7381f81daa29f7ac76c68cb3d44886d5ceb5 100644
+index fc04bfcb8b5dfa6d093c8d75b2f20c502ef94a63..07239f25bc927c44a9d17f4796db3a107b8e14e0 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -369,6 +369,13 @@ public class Commodore {
+@@ -378,6 +378,13 @@ public class Commodore {
}
// Paper end - Rewrite plugins
diff --git a/patches/server/0188-Flag-to-disable-the-channel-limit.patch b/patches/server/0188-Flag-to-disable-the-channel-limit.patch
index 8a6cf594d4..7055f7690d 100644
--- a/patches/server/0188-Flag-to-disable-the-channel-limit.patch
+++ b/patches/server/0188-Flag-to-disable-the-channel-limit.patch
@@ -9,10 +9,10 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 981bdd5543a41517f5ead64cdce299cd3725e76c..a17bbb4b781870cd9a32a3a6e797ba465808d74f 100644
+index 4d9c2ce3bdfc2d6df53d49e82e4fec5638cd28d5..6015ceaa922fd246bb2561a20a8d894444490094 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -206,6 +206,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -207,6 +207,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private CraftWorldBorder clientWorldBorder = null;
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
diff --git a/patches/server/0194-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0194-Expand-World.spawnParticle-API-and-add-Builder.patch
index 6c3c4c593f..a3e3807ea2 100644
--- a/patches/server/0194-Expand-World.spawnParticle-API-and-add-Builder.patch
+++ b/patches/server/0194-Expand-World.spawnParticle-API-and-add-Builder.patch
@@ -34,10 +34,10 @@ index 7be0547f6225a6be6ca1037f63f4aff8759b5dc4..e79329ee9b02a11b55253cf2ce4e08b2
if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index b42d482defda5a91f4e625308d5fec8c8369e5fb..c542c932f1f02df69678048e5a8e7c07b68f357d 100644
+index 705cfb8ac38ee49adfb36a93b6939c975bbe95e9..8faebe25c0242eaf15a6b67fb1ade71cc46d263e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-@@ -1957,12 +1957,19 @@ public class CraftWorld extends CraftRegionAccessor implements World {
+@@ -1957,8 +1957,19 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
@@ -47,13 +47,13 @@ index b42d482defda5a91f4e625308d5fec8c8369e5fb..c542c932f1f02df69678048e5a8e7c07
+ @Override
+ public <T> void spawnParticle(Particle particle, List<Player> receivers, Player sender, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
+ // Paper end - Particle API
- data = CraftParticle.convertLegacy(data);
- if (data != null) {
- Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
- }
++ data = CraftParticle.convertLegacy(data);
++ if (data != null) {
++ Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
++ }
this.getHandle().sendParticles(
- null, // Sender
-+ receivers == null ? getHandle().players() : receivers.stream().map(player -> ((CraftPlayer) player).getHandle()).collect(java.util.stream.Collectors.toList()), // Paper - Particle API
++ receivers == null ? this.getHandle().players() : receivers.stream().map(player -> ((CraftPlayer) player).getHandle()).collect(java.util.stream.Collectors.toList()), // Paper - Particle API
+ sender != null ? ((CraftPlayer) sender).getHandle() : null, // Sender // Paper - Particle API
CraftParticle.createParticleParam(particle, data), // Particle
x, y, z, // Position
diff --git a/patches/server/0200-ItemStack-getMaxItemUseDuration.patch b/patches/server/0200-ItemStack-getMaxItemUseDuration.patch
index b292904ade..d7b18de72a 100644
--- a/patches/server/0200-ItemStack-getMaxItemUseDuration.patch
+++ b/patches/server/0200-ItemStack-getMaxItemUseDuration.patch
@@ -6,7 +6,7 @@ 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/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 09c363f483cb12be01afd9a274c541f3bdeb992c..a58e865a047550cc4508d0515cc6f2fc639f9b3d 100644
+index d302767e8f01fdfcba9c22e2e35677afc18c0641..45a1f5123e5413cf8dd3db68bb47508567198403 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -187,6 +187,13 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0210-Expand-Explosions-API.patch b/patches/server/0210-Expand-Explosions-API.patch
index b045a0aab8..c8b7653db6 100644
--- a/patches/server/0210-Expand-Explosions-API.patch
+++ b/patches/server/0210-Expand-Explosions-API.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c542c932f1f02df69678048e5a8e7c07b68f357d..81c12ffb8c0996f081e951af0a68eb985a3b3d3d 100644
+index 8faebe25c0242eaf15a6b67fb1ade71cc46d263e..f2e67748d2970207907b3120b0d0fb50744eb7c2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -764,6 +764,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0214-Implement-World.getEntity-UUID-API.patch b/patches/server/0214-Implement-World.getEntity-UUID-API.patch
index 665e7c624f..3e9389db22 100644
--- a/patches/server/0214-Implement-World.getEntity-UUID-API.patch
+++ b/patches/server/0214-Implement-World.getEntity-UUID-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 81c12ffb8c0996f081e951af0a68eb985a3b3d3d..59060c33f87db609510df111234b957b51badd87 100644
+index f2e67748d2970207907b3120b0d0fb50744eb7c2..2abd68c5a8c53dfc503b732f64b3ba3195244fbf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1100,6 +1100,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0215-InventoryCloseEvent-Reason-API.patch b/patches/server/0215-InventoryCloseEvent-Reason-API.patch
index 9d216e99c5..d1ed83cce0 100644
--- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch
@@ -75,10 +75,10 @@ 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 82cc40becd6c08364d9547aea0d7ffa5c407c42e..36f7a897bd1e0b73c6969cd6d46abe3496098189 100644
+index 66ca4d1f28143d1e4ce99532c6c2bd64cde67024..18a0dc407331cc3c85dc84580419e0c241e72435 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2612,10 +2612,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2606,10 +2606,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleContainerClose(ServerboundContainerClosePacket packet) {
@@ -165,7 +165,7 @@ index dd3377a4f69e5ac10905e52d0eecc2427e72d856..c79607a2f45b7a487a95cf98b9b0eb6b
@Override
public boolean isBlocking() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index a17bbb4b781870cd9a32a3a6e797ba465808d74f..f161f564a682bf7c5fc9f3ffa0df8fcaa7c2d86c 100644
+index 6015ceaa922fd246bb2561a20a8d894444490094..c9af0b1ebf43cbd85d557bd053ef31eb9a975746 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1260,7 +1260,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch b/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch
index edd160367a..2cb488e718 100644
--- a/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch
+++ b/patches/server/0217-Refresh-player-inventory-when-cancelling-PlayerInter.patch
@@ -16,10 +16,10 @@ 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 36f7a897bd1e0b73c6969cd6d46abe3496098189..b9fb2472405c19afb9888720a9abd86687e9bf12 100644
+index 18a0dc407331cc3c85dc84580419e0c241e72435..6755bc8f53253e5fcaaa94f7b505cdbe82d43a57 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2489,6 +2489,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2483,6 +2483,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (event.isCancelled()) {
diff --git a/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch
index a5b47300c5..444c042a87 100644
--- a/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch
+++ b/patches/server/0230-Break-up-and-make-tab-spam-limits-configurable.patch
@@ -22,10 +22,10 @@ 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 b9fb2472405c19afb9888720a9abd86687e9bf12..f49f412781a8f341eda02de323f7298d5f0b25ee 100644
+index 6755bc8f53253e5fcaaa94f7b505cdbe82d43a57..dfaed8544c84f00d6092f7acab2193ee0228f9cf 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
+@@ -265,6 +265,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private int ackBlockChangesUpTo = -1;
// CraftBukkit start - multithreaded fields
private final AtomicInteger chatSpamTickCount = new AtomicInteger();
@@ -33,7 +33,7 @@ index b9fb2472405c19afb9888720a9abd86687e9bf12..f49f412781a8f341eda02de323f7298d
// CraftBukkit end
private int dropSpamTickCount;
private double firstGoodX;
-@@ -387,6 +388,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -381,6 +382,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.keepConnectionAlive();
// CraftBukkit start
for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ;
@@ -41,7 +41,7 @@ index b9fb2472405c19afb9888720a9abd86687e9bf12..f49f412781a8f341eda02de323f7298d
/* Use thread-safe field access instead
if (this.chatSpamTickCount > 0) {
--this.chatSpamTickCount;
-@@ -722,7 +724,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -716,7 +718,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) {
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async
// CraftBukkit start
diff --git a/patches/server/0232-Remove-unnecessary-itemmeta-handling.patch b/patches/server/0232-Remove-unnecessary-itemmeta-handling.patch
index d30377bb50..6473d42f10 100644
--- a/patches/server/0232-Remove-unnecessary-itemmeta-handling.patch
+++ b/patches/server/0232-Remove-unnecessary-itemmeta-handling.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Remove unnecessary itemmeta handling
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 04d8cfd0ef3cb9c60e93136376ae90144f3cb7ce..a31a6bb5cd42485a0ada8220f3d0eea15de67ef8 100644
+index 7ca60db3a639e68456933f8e5af900dc4aade575..836a9bb57fa6e916ed8a24c35426c6432f73be88 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -177,7 +177,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch b/patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
index afd29cbacc..07df345386 100644
--- a/patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
+++ b/patches/server/0247-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 59060c33f87db609510df111234b957b51badd87..4a7c418a497b98d5038794b6bbc38f5e0b7fedd7 100644
+index 2abd68c5a8c53dfc503b732f64b3ba3195244fbf..932e71656f587678c02766fc8cfb685034368016 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -407,7 +407,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch
index d64894ccb8..41fec22d47 100644
--- a/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch
+++ b/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f161f564a682bf7c5fc9f3ffa0df8fcaa7c2d86c..8e294b2583b7a26c463d6f12d3c42c0da83741f8 100644
+index c9af0b1ebf43cbd85d557bd053ef31eb9a975746..cb50dbc10fa0ffb599a3644867eba2710afd09c5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2961,6 +2961,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -2957,6 +2957,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.adventure$pointers;
}
diff --git a/patches/server/0250-Improve-death-events.patch b/patches/server/0250-Improve-death-events.patch
index 7c8c5577d1..93a28bffed 100644
--- a/patches/server/0250-Improve-death-events.patch
+++ b/patches/server/0250-Improve-death-events.patch
@@ -232,10 +232,10 @@ 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 b740d931ad7ad81bf94afa62a9ae44a2fe9549d4..2b282ba23444110949508dac11a25fee4e472f5d 100644
+index 2f33036a78a120898b18301bae1585c65fdb69dc..f91d6cc59f203fc67e38ba92159dbae22b6dbfac 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1167,6 +1167,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1170,6 +1170,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
}
@@ -248,7 +248,7 @@ index b740d931ad7ad81bf94afa62a9ae44a2fe9549d4..2b282ba23444110949508dac11a25fee
@Override
protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) {
super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops);
-@@ -1175,6 +1181,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1178,6 +1184,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
for (int k = 0; k < j; ++k) {
EquipmentSlot enumitemslot = aenumitemslot[k];
@@ -256,7 +256,7 @@ index b740d931ad7ad81bf94afa62a9ae44a2fe9549d4..2b282ba23444110949508dac11a25fee
ItemStack itemstack = this.getItemBySlot(enumitemslot);
float f = this.getEquipmentDropChance(enumitemslot);
boolean flag1 = f > 1.0F;
-@@ -1185,7 +1192,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1188,7 +1195,13 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
}
this.spawnAtLocation(itemstack);
@@ -427,7 +427,7 @@ index 042968ff848da74be0c9fcf9bac3d0adfb135802..cb3729509e50fed64b17f16797825c1d
this.gameEvent(GameEvent.ENTITY_DIE);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8e294b2583b7a26c463d6f12d3c42c0da83741f8..bca943e23d4869dbab6988220431e7a97e02258b 100644
+index cb50dbc10fa0ffb599a3644867eba2710afd09c5..30e815d3bde7b5b2131d8c54fb0f3a8d7be966db 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2502,7 +2502,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch
index b0b5519e04..5972197d72 100644
--- a/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch
+++ b/patches/server/0251-Allow-chests-to-be-placed-with-NBT-data.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow chests to be placed with NBT data
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index a31a6bb5cd42485a0ada8220f3d0eea15de67ef8..c323ecdb82b5c0a2ae24c485a36ffa16258d555d 100644
+index 836a9bb57fa6e916ed8a24c35426c6432f73be88..72ce219546306fc50da37468f37cec8e6bf551fe 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -470,6 +470,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0261-Add-sun-related-API.patch b/patches/server/0261-Add-sun-related-API.patch
index c9746a7ad0..6ae32c9602 100644
--- a/patches/server/0261-Add-sun-related-API.patch
+++ b/patches/server/0261-Add-sun-related-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Add sun related API
public net.minecraft.world.entity.Mob isSunBurnTick()Z
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 4a7c418a497b98d5038794b6bbc38f5e0b7fedd7..5d5eb6cef3b9646fab6c8da2a67d269312e6958c 100644
+index 932e71656f587678c02766fc8cfb685034368016..cbb7ffab637e640eb2cedfac63c13392147f7e12 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -731,6 +731,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0267-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0267-Add-option-to-prevent-players-from-moving-into-unloa.patch
index a02a4a035f..0c5151b43a 100644
--- a/patches/server/0267-Add-option-to-prevent-players-from-moving-into-unloa.patch
+++ b/patches/server/0267-Add-option-to-prevent-players-from-moving-into-unloa.patch
@@ -6,10 +6,10 @@ 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 f49f412781a8f341eda02de323f7298d5f0b25ee..8a7b286bb2d2151d8f2182d1a8e0d891ff6d677a 100644
+index dfaed8544c84f00d6092f7acab2193ee0228f9cf..edf138c1671592fecfbb532015cda3542dd3f690 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -500,9 +500,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -494,9 +494,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d0 = entity.getX();
double d1 = entity.getY();
double d2 = entity.getZ();
@@ -22,7 +22,7 @@ index f49f412781a8f341eda02de323f7298d5f0b25ee..8a7b286bb2d2151d8f2182d1a8e0d891
float f = Mth.wrapDegrees(packet.getYRot());
float f1 = Mth.wrapDegrees(packet.getXRot());
double d6 = d3 - this.vehicleFirstGoodX;
-@@ -536,6 +536,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -530,6 +530,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
speed *= 2f; // TODO: Get the speed of the vehicle instead of the player
@@ -39,7 +39,7 @@ index f49f412781a8f341eda02de323f7298d5f0b25ee..8a7b286bb2d2151d8f2182d1a8e0d891
if (d10 - d9 > Math.max(100.0D, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
// CraftBukkit end
ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8});
-@@ -1168,9 +1178,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1162,9 +1172,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} else {
this.awaitingTeleportTime = this.tickCount;
@@ -52,7 +52,7 @@ index f49f412781a8f341eda02de323f7298d5f0b25ee..8a7b286bb2d2151d8f2182d1a8e0d891
float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot()));
float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot()));
-@@ -1228,6 +1238,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1222,6 +1232,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} else {
speed = this.player.getAbilities().walkingSpeed * 10f;
}
diff --git a/patches/server/0274-Don-t-allow-digging-into-unloaded-chunks.patch b/patches/server/0274-Don-t-allow-digging-into-unloaded-chunks.patch
index cbf1ee2ae5..e7f3a33daa 100644
--- a/patches/server/0274-Don-t-allow-digging-into-unloaded-chunks.patch
+++ b/patches/server/0274-Don-t-allow-digging-into-unloaded-chunks.patch
@@ -59,10 +59,10 @@ 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 8a7b286bb2d2151d8f2182d1a8e0d891ff6d677a..5443a2713c957b23deb903baf7039b0220699095 100644
+index edf138c1671592fecfbb532015cda3542dd3f690..578d70b6962201237069aba1208923fb7465e388 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1589,6 +1589,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1583,6 +1583,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
case START_DESTROY_BLOCK:
case ABORT_DESTROY_BLOCK:
case STOP_DESTROY_BLOCK:
diff --git a/patches/server/0278-Book-Size-Limits.patch b/patches/server/0278-Book-Size-Limits.patch
index 4ca01babd3..2a4e92854c 100644
--- a/patches/server/0278-Book-Size-Limits.patch
+++ b/patches/server/0278-Book-Size-Limits.patch
@@ -6,10 +6,10 @@ 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 5443a2713c957b23deb903baf7039b0220699095..5bf5a205ed4049fadd67903bb1b2d2fac249ce20 100644
+index 578d70b6962201237069aba1208923fb7465e388..b277029f20f27431d62f05bf8fbd65095c5b15a8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1046,6 +1046,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1040,6 +1040,45 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleEditBook(ServerboundEditBookPacket packet) {
diff --git a/patches/server/0279-Add-PlayerConnectionCloseEvent.patch b/patches/server/0279-Add-PlayerConnectionCloseEvent.patch
index 186f1c35db..f9b0532074 100644
--- a/patches/server/0279-Add-PlayerConnectionCloseEvent.patch
+++ b/patches/server/0279-Add-PlayerConnectionCloseEvent.patch
@@ -69,7 +69,7 @@ index 42c0723e2fe43e1f268119a16067e8bdfb971208..9885dec92cd26dec61c303dda687b0f9
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 96a7d52f982d2dcc5fa391007e5861ca62ec0841..88dfd9d66fbd1583407814978a1fd68edd386519 100644
+index 2ca467bd9c53a59f1ca9b8e1c2cf683182a71910..5bb7b0ab8a1e566f07f7f39bf072abcbe44e73d2 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -79,7 +79,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch
index a224972996..9705fed904 100644
--- a/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch
@@ -106,10 +106,10 @@ index 461656e1cb095243bfe7a9ee2906e5b00574ae78..411b280ac3e27e72091db813c0c9b69b
public Location getLastDeathLocation() {
if (this.getData().contains("LastDeathLocation", 10)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index bca943e23d4869dbab6988220431e7a97e02258b..02e7747ab83b7ae9a11a2a8dc48e16e1276bd952 100644
+index 30e815d3bde7b5b2131d8c54fb0f3a8d7be966db..81af2a449f38e3a67f0a80fb778ba690c2df887c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -207,6 +207,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -208,6 +208,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus; // Paper - more resource pack API
private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit
diff --git a/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch b/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch
index 6e2940f25c..cc10b0260b 100644
--- a/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch
+++ b/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch
@@ -8,10 +8,10 @@ We just add a check to ensure that the CraftPlayer's handle
is a ServerPlayer
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 02e7747ab83b7ae9a11a2a8dc48e16e1276bd952..f60929a391f26a34ca2e13066bd0c8e87d2c2343 100644
+index 81af2a449f38e3a67f0a80fb778ba690c2df887c..bd7f04aee3227c3430530334e171c287a6efdd30 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -221,8 +221,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -222,8 +222,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void remove() {
diff --git a/patches/server/0285-Brigadier-Mojang-API.patch b/patches/server/0285-Brigadier-Mojang-API.patch
index 03ac3a81f6..ef2aad9623 100644
--- a/patches/server/0285-Brigadier-Mojang-API.patch
+++ b/patches/server/0285-Brigadier-Mojang-API.patch
@@ -10,7 +10,7 @@ Adds CommandRegisteredEvent
- Allows manipulating the CommandNode to add more children/metadata for the client
diff --git a/build.gradle.kts b/build.gradle.kts
-index e8f0f110532ad63be170152082dd5805a3e3c12c..f97ee2b7c1ef419746600c04eec3dbdf0e3fd5df 100644
+index fec06ac47cf190bf4d5d743c34e4a90b99a0af18..22f27a1ee5bf09247d9bcd50141add4116035735 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -15,6 +15,7 @@ val alsoShade: Configuration by configurations.creating
@@ -131,10 +131,10 @@ index 6383cdfe3e2b61314fee7f7236dc7df1c1e8bfb6..3b59f3d92d781c16825f6f67b7252252
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 5bf5a205ed4049fadd67903bb1b2d2fac249ce20..85e6ab0d4f49b9b4041a2e3d5ba1786dedd0846e 100644
+index b277029f20f27431d62f05bf8fbd65095c5b15a8..afe102a677546dd16b91433c7a50c62a05a00b20 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -772,19 +772,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -766,19 +766,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
builder.suggest(completion.suggestion(), PaperAdventure.asVanilla(completion.tooltip()));
}
}
diff --git a/patches/server/0287-Limit-Client-Sign-length-more.patch b/patches/server/0287-Limit-Client-Sign-length-more.patch
index 6c95e236c8..3d821a4879 100644
--- a/patches/server/0287-Limit-Client-Sign-length-more.patch
+++ b/patches/server/0287-Limit-Client-Sign-length-more.patch
@@ -22,10 +22,10 @@ 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 85e6ab0d4f49b9b4041a2e3d5ba1786dedd0846e..556a10d17acbd558cd4b23f729dc1644ecdd2fed 100644
+index afe102a677546dd16b91433c7a50c62a05a00b20..4e649fe68c6d0cf42e35f821457064656410d823 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -300,6 +300,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -299,6 +299,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault();
private final FutureChain chatMessageChain;
private boolean waitingForSwitchToConfig;
@@ -33,7 +33,7 @@ index 85e6ab0d4f49b9b4041a2e3d5ba1786dedd0846e..556a10d17acbd558cd4b23f729dc1644
public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie clientData) {
super(server, connection, clientData, player); // CraftBukkit
-@@ -3144,7 +3145,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3138,7 +3139,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleSignUpdate(ServerboundSignUpdatePacket packet) {
diff --git a/patches/server/0296-Add-Heightmap-API.patch b/patches/server/0296-Add-Heightmap-API.patch
index d0295a1166..6a2bacf567 100644
--- a/patches/server/0296-Add-Heightmap-API.patch
+++ b/patches/server/0296-Add-Heightmap-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Heightmap API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 5d5eb6cef3b9646fab6c8da2a67d269312e6958c..2bea9911fe29244d9028e29b60d986f8db0e14b3 100644
+index cbb7ffab637e640eb2cedfac63c13392147f7e12..c3cf58e297ca56d31bd4b1bcbef201afbcee0cb6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -229,6 +229,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch b/patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch
index a3ee37d8c6..b3bb4ebaec 100644
--- a/patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch
+++ b/patches/server/0298-Fix-CB-call-to-changed-postToMainThread-method.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix CB call to changed postToMainThread method
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index 89c05909c10ef5172693c5d9d8fdf7e6efead53b..96b5e033aab4e1ee090af77a871e643dbf6300a4 100644
+index b8b22a2b140b4d757add6eefa562d32430fb7424..237e3d8d2fd539f1fc6cd466ff124890dfa644d6 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -355,7 +355,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -366,7 +366,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
Objects.requireNonNull(this.connection);
// CraftBukkit - Don't wait
diff --git a/patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch b/patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch
index c135681989..05aee9d84e 100644
--- a/patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch
+++ b/patches/server/0302-Show-blockstate-location-if-we-failed-to-read-it.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Show blockstate location if we failed to read it
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
-index fdd6f9e8164efedb3e8f29857ad35ed69e7b299d..52fe7315fa838e3b6b236127c293ac0e8528ee7d 100644
+index 25b7198c0e0afb7a09b1a68f5a53f5c44244cafb..89bd200befb65fe33ee049f7a07d5c771c971b13 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
@@ -30,6 +30,7 @@ public class CraftBlockEntityState<T extends BlockEntity> extends CraftBlockStat
diff --git a/patches/server/0351-Implement-Player-Client-Options-API.patch b/patches/server/0351-Implement-Player-Client-Options-API.patch
index f8a2da7682..01b0107c52 100644
--- a/patches/server/0351-Implement-Player-Client-Options-API.patch
+++ b/patches/server/0351-Implement-Player-Client-Options-API.patch
@@ -136,10 +136,10 @@ index f6e4172f1c7ad38128e77e53f099e67a4c4be620..62bdc3016120271da2ca3a1f6ac46757
this.adventure$locale = java.util.Objects.requireNonNullElse(net.kyori.adventure.translation.Translator.parseLocale(this.language), java.util.Locale.US); // Paper
this.requestedViewDistance = clientOptions.viewDistance();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index f60929a391f26a34ca2e13066bd0c8e87d2c2343..348fdd1ff1f32ffa4d5c78ff42bc3983a773c658 100644
+index bd7f04aee3227c3430530334e171c287a6efdd30..caf81fefd2d873c714d16f6acf8a420d9ea07f04 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -650,6 +650,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -651,6 +651,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message);
}
}
diff --git a/patches/server/0360-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0360-Validate-PickItem-Packet-and-kick-for-invalid.patch
index 2ef957bfaf..64608fdfdd 100644
--- a/patches/server/0360-Validate-PickItem-Packet-and-kick-for-invalid.patch
+++ b/patches/server/0360-Validate-PickItem-Packet-and-kick-for-invalid.patch
@@ -5,10 +5,10 @@ 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 556a10d17acbd558cd4b23f729dc1644ecdd2fed..819ef697b3d88024310745014b4c2457de07db37 100644
+index 4e649fe68c6d0cf42e35f821457064656410d823..997bf1c7bed5f78b017827acb6339f5e07791f7f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -898,7 +898,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -892,7 +892,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handlePickItem(ServerboundPickItemPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0363-misc-debugging-dumps.patch b/patches/server/0363-misc-debugging-dumps.patch
index b06be0a7bd..a86c2b61ba 100644
--- a/patches/server/0363-misc-debugging-dumps.patch
+++ b/patches/server/0363-misc-debugging-dumps.patch
@@ -78,10 +78,10 @@ index a39753296a70a404b45dcb668ff42c1d88429e8e..1a8cfdd7c95460c359447dc69fadca07
this.running = false;
if (waitForShutdown) {
diff --git a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
-index d13c57d5aa908e4c6ec835c78e6506a98033fb6d..318d28974b9b8b04f37bb80bbb37b67eef06b7e7 100644
+index 970d1ddf0a014b47b0ac97440489706137324991..e4086bea596e5f5d71491e0b7ad650d76939b8f9 100644
--- a/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerConfigurationPacketListenerImpl.java
-@@ -68,6 +68,10 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
+@@ -62,6 +62,10 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
@Override
public void onDisconnect(Component reason) {
@@ -92,7 +92,7 @@ index d13c57d5aa908e4c6ec835c78e6506a98033fb6d..318d28974b9b8b04f37bb80bbb37b67e
ServerConfigurationPacketListenerImpl.LOGGER.info("{} lost connection: {}", this.gameProfile, reason.getString());
super.onDisconnect(reason);
}
-@@ -155,6 +159,11 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
+@@ -149,6 +153,11 @@ public class ServerConfigurationPacketListenerImpl extends ServerCommonPacketLis
playerlist.placeNewPlayer(this.connection, entityplayer, this.createCookie(this.clientInformation));
} catch (Exception exception) {
ServerConfigurationPacketListenerImpl.LOGGER.error("Couldn't place player in world", exception);
diff --git a/patches/server/0364-Prevent-teleporting-dead-entities.patch b/patches/server/0364-Prevent-teleporting-dead-entities.patch
index ae70124f67..fc30bb64c6 100644
--- a/patches/server/0364-Prevent-teleporting-dead-entities.patch
+++ b/patches/server/0364-Prevent-teleporting-dead-entities.patch
@@ -5,10 +5,10 @@ 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 819ef697b3d88024310745014b4c2457de07db37..85386ef1e4bb4e97b13f9f2394071c5c62aa5f10 100644
+index 997bf1c7bed5f78b017827acb6339f5e07791f7f..652e9e31cbda3551f6ddd5c697a0fa47ce1382b7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1546,6 +1546,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1540,6 +1540,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
diff --git a/patches/server/0365-Implement-Mob-Goal-API.patch b/patches/server/0365-Implement-Mob-Goal-API.patch
index 587df4859c..91ecaa38b2 100644
--- a/patches/server/0365-Implement-Mob-Goal-API.patch
+++ b/patches/server/0365-Implement-Mob-Goal-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement Mob Goal API
diff --git a/build.gradle.kts b/build.gradle.kts
-index f97ee2b7c1ef419746600c04eec3dbdf0e3fd5df..9d570d0289ff33b78cea805070e684f8b00b5fe8 100644
+index 22f27a1ee5bf09247d9bcd50141add4116035735..fb7e956fd7beb741984780a9492230916a330504 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -42,6 +42,7 @@ dependencies {
@@ -13,7 +13,7 @@ index f97ee2b7c1ef419746600c04eec3dbdf0e3fd5df..9d570d0289ff33b78cea805070e684f8
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+ testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
- testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testImplementation("org.hamcrest:hamcrest:2.2")
testImplementation("org.mockito:mockito-core:5.11.0")
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
diff --git a/patches/server/0381-Prevent-position-desync-causing-tp-exploit.patch b/patches/server/0381-Prevent-position-desync-causing-tp-exploit.patch
index dc71f8a558..cc71ab24de 100644
--- a/patches/server/0381-Prevent-position-desync-causing-tp-exploit.patch
+++ b/patches/server/0381-Prevent-position-desync-causing-tp-exploit.patch
@@ -13,10 +13,10 @@ 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 85386ef1e4bb4e97b13f9f2394071c5c62aa5f10..5551fe83f1b27426c8d55754bb058703effa7ecd 100644
+index 652e9e31cbda3551f6ddd5c697a0fa47ce1382b7..a8155150c75f17b56ab5ebdb435d61d2b0ee576f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1361,6 +1361,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1355,6 +1355,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move
diff --git a/patches/server/0383-Add-PlayerRecipeBookClickEvent.patch b/patches/server/0383-Add-PlayerRecipeBookClickEvent.patch
index 407d50c8d6..7f2ad0e0dc 100644
--- a/patches/server/0383-Add-PlayerRecipeBookClickEvent.patch
+++ b/patches/server/0383-Add-PlayerRecipeBookClickEvent.patch
@@ -5,10 +5,10 @@ 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 5551fe83f1b27426c8d55754bb058703effa7ecd..be496398916fc84abf7950a8613297413c2436bc 100644
+index a8155150c75f17b56ab5ebdb435d61d2b0ee576f..8cb7b1c6ce0d0cc5bbd9d373772ef3aae3f62c7f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3051,16 +3051,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3045,16 +3045,40 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (!this.player.containerMenu.stillValid(this.player)) {
ServerGamePacketListenerImpl.LOGGER.debug("Player {} interacted with invalid menu {}", this.player, this.player.containerMenu);
} else {
diff --git a/patches/server/0385-Add-permission-for-command-blocks.patch b/patches/server/0385-Add-permission-for-command-blocks.patch
index 35ded900dc..56b93f4de8 100644
--- a/patches/server/0385-Add-permission-for-command-blocks.patch
+++ b/patches/server/0385-Add-permission-for-command-blocks.patch
@@ -18,10 +18,10 @@ 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 be496398916fc84abf7950a8613297413c2436bc..2003c95bf5f25ff6f09dd3ae569b3aff8c24ab49 100644
+index 8cb7b1c6ce0d0cc5bbd9d373772ef3aae3f62c7f..5bc22e58a6ddfc0a5459c68e99fdf1095f23f0d8 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -809,7 +809,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -803,7 +803,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (!this.server.isCommandBlockEnabled()) {
this.player.sendSystemMessage(Component.translatable("advMode.notEnabled"));
@@ -30,7 +30,7 @@ index be496398916fc84abf7950a8613297413c2436bc..2003c95bf5f25ff6f09dd3ae569b3aff
this.player.sendSystemMessage(Component.translatable("advMode.notAllowed"));
} else {
BaseCommandBlock commandblocklistenerabstract = null;
-@@ -876,7 +876,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -870,7 +870,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (!this.server.isCommandBlockEnabled()) {
this.player.sendSystemMessage(Component.translatable("advMode.notEnabled"));
diff --git a/patches/server/0387-Fix-Per-World-Difficulty-Remembering-Difficulty.patch b/patches/server/0387-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
index 64d4e669b0..8dbe23638f 100644
--- a/patches/server/0387-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
+++ b/patches/server/0387-Fix-Per-World-Difficulty-Remembering-Difficulty.patch
@@ -89,10 +89,10 @@ 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 2003c95bf5f25ff6f09dd3ae569b3aff8c24ab49..e89d2fe13d68100ea1cb11e9810ea940193c7049 100644
+index 5bc22e58a6ddfc0a5459c68e99fdf1095f23f0d8..324229e960c6fdf3de2a8d5c0c5516e262985efc 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3254,7 +3254,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3248,7 +3248,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleChangeDifficulty(ServerboundChangeDifficultyPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (this.player.hasPermissions(2) || this.isSingleplayerOwner()) {
@@ -117,7 +117,7 @@ index 11c41e2a0887a59b7b3328b28628ce5958fc06d2..946ad5418950daf13e449233eac94c13
for (SpawnCategory spawnCategory : SpawnCategory.values()) {
if (CraftSpawnCategory.isValidForLimits(spawnCategory)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 2bea9911fe29244d9028e29b60d986f8db0e14b3..d5a9409ee45b6b0e0ec8380db041c1334aad994f 100644
+index c3cf58e297ca56d31bd4b1bcbef201afbcee0cb6..29eed790684d03890d73d9692028d65fde143765 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1163,7 +1163,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0389-Improve-Legacy-Component-serialization-size.patch b/patches/server/0389-Improve-Legacy-Component-serialization-size.patch
index e5d448cfd6..2fc5b1860f 100644
--- a/patches/server/0389-Improve-Legacy-Component-serialization-size.patch
+++ b/patches/server/0389-Improve-Legacy-Component-serialization-size.patch
@@ -7,7 +7,7 @@ Don't constantly send format: false for all formatting options when parent alrea
has it false
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
-index f07234e19dc9f84ff4f4b5e5e811e2813184978b..ab539b8e0d70d0fbe160e031e165aca042a0693f 100644
+index 51094fe6e37d3c0fad2682353f8de3d1b9c9aef5..42ab6e0ba77fb2f0350bee72488e905074989b4d 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
@@ -47,6 +47,7 @@ public final class CraftChatMessage {
diff --git a/patches/server/0390-Add-Plugin-Tickets-to-API-Chunk-Methods.patch b/patches/server/0390-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
index cd41241a8f..f1a8679072 100644
--- a/patches/server/0390-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
+++ b/patches/server/0390-Add-Plugin-Tickets-to-API-Chunk-Methods.patch
@@ -44,7 +44,7 @@ index 946ad5418950daf13e449233eac94c1311f3d926..a22b146e2bfdeb66aca8abb5fb23ee5c
this.printSaveWarning = false;
this.console.autosavePeriod = this.configuration.getInt("ticks-per.autosave");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d5a9409ee45b6b0e0ec8380db041c1334aad994f..d4697f2f4c71001dba2cc3a69d54f27809766595 100644
+index 29eed790684d03890d73d9692028d65fde143765..630b3e9a9a89016846dba1b18ff68c11f1815685 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -289,7 +289,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0391-Add-BlockStateMeta-clearBlockState.patch b/patches/server/0391-Add-BlockStateMeta-clearBlockState.patch
index 492ab3531b..01340d9d9b 100644
--- a/patches/server/0391-Add-BlockStateMeta-clearBlockState.patch
+++ b/patches/server/0391-Add-BlockStateMeta-clearBlockState.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockStateMeta#clearBlockState
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-index 429f962fa16a6aedcd2a17d23b06de41c782417d..aef8708c38a0215241b110d4446a3c341a9912cb 100644
+index 1cd561afe36cd6567109e1f3e858de596a38654d..2e5a347bd15962f6bc466bb29302b1e8fb1c94fa 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java
-@@ -313,6 +313,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
+@@ -317,6 +317,13 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta
return this.blockEntityTag != null;
}
diff --git a/patches/server/0392-Convert-legacy-attributes-in-Item-Meta.patch b/patches/server/0392-Convert-legacy-attributes-in-Item-Meta.patch
index a7f195a1dc..b412fb6983 100644
--- a/patches/server/0392-Convert-legacy-attributes-in-Item-Meta.patch
+++ b/patches/server/0392-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 d9583b6f4e78a3fac594a7448e105507f33caa91..93350ee9ad3a6309e6baae97105328f78d485656 100644
+index 122142125dcba97572b1e0b9195e534a0e2257d9..a3ae3203e04dfb791b8aa537a303f4a4bd6cbab6 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/0393-Do-not-accept-invalid-client-settings.patch b/patches/server/0393-Do-not-accept-invalid-client-settings.patch
index 30d8554061..ad0a7a55ea 100644
--- a/patches/server/0393-Do-not-accept-invalid-client-settings.patch
+++ b/patches/server/0393-Do-not-accept-invalid-client-settings.patch
@@ -5,10 +5,10 @@ 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 e89d2fe13d68100ea1cb11e9810ea940193c7049..5daa3798f118074d490246bd29804fbf8aed1e1e 100644
+index 324229e960c6fdf3de2a8d5c0c5516e262985efc..ec5e4e6eb1de7e134e30247a0c43e73af7263e47 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3246,6 +3246,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3240,6 +3240,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleClientInformation(ServerboundClientInformationPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
diff --git a/patches/server/0407-Brand-support.patch b/patches/server/0407-Brand-support.patch
index 39c89bba36..48b12ea61a 100644
--- a/patches/server/0407-Brand-support.patch
+++ b/patches/server/0407-Brand-support.patch
@@ -17,10 +17,10 @@ index 0019e5313523521b4f1607dfc391d47c55961a48..a182ab1c06c4644e9c14d7a2eff2620d
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index 96b5e033aab4e1ee090af77a871e643dbf6300a4..215da3c52dc7b9e92c23f352fa7cffc2fb3d8a1a 100644
+index 237e3d8d2fd539f1fc6cd466ff124890dfa644d6..d7ddfabcbacb077c337c789083a24ad82e08e82e 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -66,6 +66,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -77,6 +77,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private volatile boolean suspendFlushingOnServerThread = false;
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
@@ -28,7 +28,7 @@ index 96b5e033aab4e1ee090af77a871e643dbf6300a4..215da3c52dc7b9e92c23f352fa7cffc2
public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit
this.server = minecraftserver;
-@@ -131,6 +132,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -142,6 +143,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -40,7 +40,7 @@ index 96b5e033aab4e1ee090af77a871e643dbf6300a4..215da3c52dc7b9e92c23f352fa7cffc2
if (!(packet.payload() instanceof DiscardedPayload)) {
return;
}
-@@ -162,6 +168,15 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -173,6 +179,15 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
try {
byte[] data = new byte[payload.readableBytes()];
payload.readBytes(data);
@@ -57,10 +57,10 @@ index 96b5e033aab4e1ee090af77a871e643dbf6300a4..215da3c52dc7b9e92c23f352fa7cffc2
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 348fdd1ff1f32ffa4d5c78ff42bc3983a773c658..45f1d3d15e2a8ba61f497fa8c90ca1496a59b337 100644
+index caf81fefd2d873c714d16f6acf8a420d9ea07f04..36851e22972f120f9b33359df7a82b59f95dd47a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3120,6 +3120,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3116,6 +3116,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
};
diff --git a/patches/server/0410-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch b/patches/server/0410-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
index 1684f104f9..02fed28440 100644
--- a/patches/server/0410-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
+++ b/patches/server/0410-Fix-SpawnChangeEvent-not-firing-for-all-use-cases.patch
@@ -19,7 +19,7 @@ index a17f6ee94a686390b8dd3bb676f11986ec0dc8ac..4efb57b2b252a2bed50685162cc96575
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d4697f2f4c71001dba2cc3a69d54f27809766595..4d75cf0ec9e835b4274297275d52f08a6a65aeca 100644
+index 630b3e9a9a89016846dba1b18ff68c11f1815685..2436d66fb3be1611885bf05b793975dc2aa1a2e8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -269,12 +269,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0417-Fix-hex-colors-not-working-in-some-kick-messages.patch b/patches/server/0417-Fix-hex-colors-not-working-in-some-kick-messages.patch
index 6859e37950..0f9bba490b 100644
--- a/patches/server/0417-Fix-hex-colors-not-working-in-some-kick-messages.patch
+++ b/patches/server/0417-Fix-hex-colors-not-working-in-some-kick-messages.patch
@@ -29,7 +29,7 @@ index bc15794e0a3909ab9ceeded35158bea4c23fb45a..bcdb2cc4c735d939bdd0e9b7ec5246f5
this.connection.disconnect(ichatmutablecomponent);
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 88dfd9d66fbd1583407814978a1fd68edd386519..5fa0947bd6029f37d786488b44ec23090c45963a 100644
+index 5bb7b0ab8a1e566f07f7f39bf072abcbe44e73d2..b968026728b8b4e549eed9fa9b43919c6c19eb7a 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -126,7 +126,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0418-PortalCreateEvent-needs-to-know-its-entity.patch b/patches/server/0418-PortalCreateEvent-needs-to-know-its-entity.patch
index e8caa43a1e..d4f1e75eb4 100644
--- a/patches/server/0418-PortalCreateEvent-needs-to-know-its-entity.patch
+++ b/patches/server/0418-PortalCreateEvent-needs-to-know-its-entity.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] PortalCreateEvent needs to know its entity
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index c323ecdb82b5c0a2ae24c485a36ffa16258d555d..c8af2f886ad834d6a405df00560b0f8225fcf471 100644
+index 72ce219546306fc50da37468f37cec8e6bf551fe..d95272b1765368a4cd968fa566ad68844dced4c8 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -502,7 +502,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0423-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0423-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index fed71b1d40..e275eb17f8 100644
--- a/patches/server/0423-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0423-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -9,10 +9,10 @@ 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 5daa3798f118074d490246bd29804fbf8aed1e1e..77140605ca66f7c8950ada65db2072b6e9621b53 100644
+index ec5e4e6eb1de7e134e30247a0c43e73af7263e47..6d47fb4c90d506c72d111f66ee2c46ee74265a37 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -682,7 +682,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -676,7 +676,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
@@ -21,7 +21,7 @@ index 5daa3798f118074d490246bd29804fbf8aed1e1e..77140605ca66f7c8950ada65db2072b6
this.lastGoodX = this.awaitingPositionFromClient.x;
this.lastGoodY = this.awaitingPositionFromClient.y;
this.lastGoodZ = this.awaitingPositionFromClient.z;
-@@ -1589,7 +1589,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1583,7 +1583,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.awaitingTeleportTime = this.tickCount;
this.player.resetCurrentImpulseContext();
diff --git a/patches/server/0433-Fix-for-large-move-vectors-crashing-server.patch b/patches/server/0433-Fix-for-large-move-vectors-crashing-server.patch
index 339642f6df..a80c955bab 100644
--- a/patches/server/0433-Fix-for-large-move-vectors-crashing-server.patch
+++ b/patches/server/0433-Fix-for-large-move-vectors-crashing-server.patch
@@ -6,10 +6,10 @@ 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 77140605ca66f7c8950ada65db2072b6e9621b53..1fc1960b6ef6d1f8f79a831c7bcd8ed8ce68726b 100644
+index 6d47fb4c90d506c72d111f66ee2c46ee74265a37..132f28f5fdb08357f70270f0b4453597387c86ea 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -498,9 +498,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -492,9 +492,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
float prevYaw = this.player.getYRot();
float prevPitch = this.player.getXRot();
// CraftBukkit end
@@ -22,7 +22,7 @@ index 77140605ca66f7c8950ada65db2072b6e9621b53..1fc1960b6ef6d1f8f79a831c7bcd8ed8
double d3 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX()); final double toX = d3; // Paper - OBFHELPER
double d4 = ServerGamePacketListenerImpl.clampVertical(packet.getY()); final double toY = d4; // Paper - OBFHELPER
double d5 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ()); final double toZ = d5; // Paper - OBFHELPER
-@@ -510,7 +510,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -504,7 +504,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d7 = d4 - this.vehicleFirstGoodY;
double d8 = d5 - this.vehicleFirstGoodZ;
double d9 = entity.getDeltaMovement().lengthSqr();
@@ -40,7 +40,7 @@ index 77140605ca66f7c8950ada65db2072b6e9621b53..1fc1960b6ef6d1f8f79a831c7bcd8ed8
// CraftBukkit start - handle custom speeds and skipped ticks
this.allowedPlayerTicks += (System.currentTimeMillis() / 50) - this.lastTick;
-@@ -556,9 +565,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -550,9 +559,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag = worldserver.noCollision(entity, entity.getBoundingBox().deflate(0.0625D));
@@ -53,7 +53,7 @@ index 77140605ca66f7c8950ada65db2072b6e9621b53..1fc1960b6ef6d1f8f79a831c7bcd8ed8
boolean flag1 = entity.verticalCollisionBelow;
if (entity instanceof LivingEntity) {
-@@ -1265,7 +1274,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1259,7 +1268,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d7 = d1 - this.firstGoodY;
double d8 = d2 - this.firstGoodZ;
double d9 = this.player.getDeltaMovement().lengthSqr();
@@ -71,7 +71,7 @@ index 77140605ca66f7c8950ada65db2072b6e9621b53..1fc1960b6ef6d1f8f79a831c7bcd8ed8
if (this.player.isSleeping()) {
if (d10 > 1.0D) {
-@@ -1321,9 +1339,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1315,9 +1333,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = this.player.getBoundingBox();
diff --git a/patches/server/0446-Add-API-for-quit-reason.patch b/patches/server/0446-Add-API-for-quit-reason.patch
index 9b8e0a3fa6..7b73031464 100644
--- a/patches/server/0446-Add-API-for-quit-reason.patch
+++ b/patches/server/0446-Add-API-for-quit-reason.patch
@@ -37,10 +37,10 @@ index a182ab1c06c4644e9c14d7a2eff2620d827dfb2c..edfcfb91d907d6e1837e5a5d0e7abb8c
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index 215da3c52dc7b9e92c23f352fa7cffc2fb3d8a1a..d947eb533ba4dfd3b711e644d2a68238d1ec007a 100644
+index d7ddfabcbacb077c337c789083a24ad82e08e82e..2872bef40440b11a206c3ec88e2c6d95cd1a72e9 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -360,6 +360,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -371,6 +371,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
final Component ichatbasecomponent = io.papermc.paper.adventure.PaperAdventure.asVanilla(event.reason()); // Paper - Adventure
// CraftBukkit end
diff --git a/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
index cca20fc41c..802e588e88 100644
--- a/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
+++ b/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch
@@ -5,15 +5,15 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 45f1d3d15e2a8ba61f497fa8c90ca1496a59b337..b0b101b4c0327cfc00afdb2c8919f40422110595 100644
+index 36851e22972f120f9b33359df7a82b59f95dd47a..f4af230d447d97506b0d32b4d653c92edc462ca2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -2686,7 +2686,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
- if (data != null) {
- Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType());
- }
+@@ -2682,7 +2682,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+
+ @Override
+ public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data) {
- ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.createParticleParam(particle, data), true, (float) x, (float) y, (float) z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count);
-+ ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.createParticleParam(particle, data), true, x, y, z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count); // Paper - Fix x/y/z coordinate precision loss
++ ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(CraftParticle.createParticleParam(particle, data), true, x, y, z, (float) offsetX, (float) offsetY, (float) offsetZ, (float) extra, count); // Paper - fix x/y/z precision loss
this.getHandle().connection.send(packetplayoutworldparticles);
}
diff --git a/patches/server/0458-Limit-recipe-packets.patch b/patches/server/0458-Limit-recipe-packets.patch
index 5df637122f..31d5f14eec 100644
--- a/patches/server/0458-Limit-recipe-packets.patch
+++ b/patches/server/0458-Limit-recipe-packets.patch
@@ -5,10 +5,10 @@ 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 1fc1960b6ef6d1f8f79a831c7bcd8ed8ce68726b..db441e55bc07b3e1db51ecaf7cef8a3844494ebe 100644
+index 132f28f5fdb08357f70270f0b4453597387c86ea..36ef3bbf70e71fd4712098bd1bd5af426e569fb5 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -267,6 +267,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -266,6 +266,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// CraftBukkit start - multithreaded fields
private final AtomicInteger chatSpamTickCount = new AtomicInteger();
private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits
@@ -16,7 +16,7 @@ index 1fc1960b6ef6d1f8f79a831c7bcd8ed8ce68726b..db441e55bc07b3e1db51ecaf7cef8a38
// CraftBukkit end
private int dropSpamTickCount;
private double firstGoodX;
-@@ -390,6 +391,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -384,6 +385,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// CraftBukkit start
for (int spam; (spam = this.chatSpamTickCount.get()) > 0 && !this.chatSpamTickCount.compareAndSet(spam, spam - 1); ) ;
if (tabSpamLimiter.get() > 0) tabSpamLimiter.getAndDecrement(); // Paper - configurable tab spam limits
@@ -24,7 +24,7 @@ index 1fc1960b6ef6d1f8f79a831c7bcd8ed8ce68726b..db441e55bc07b3e1db51ecaf7cef8a38
/* Use thread-safe field access instead
if (this.chatSpamTickCount > 0) {
--this.chatSpamTickCount;
-@@ -3063,6 +3065,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3057,6 +3059,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) {
diff --git a/patches/server/0473-Fix-interact-event-not-being-called-sometimes.patch b/patches/server/0473-Fix-interact-event-not-being-called-sometimes.patch
index 1348bb2714..61518602f2 100644
--- a/patches/server/0473-Fix-interact-event-not-being-called-sometimes.patch
+++ b/patches/server/0473-Fix-interact-event-not-being-called-sometimes.patch
@@ -11,10 +11,10 @@ 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 db441e55bc07b3e1db51ecaf7cef8a3844494ebe..6dfc35d2d5a76e317ff7f15c85a84b72d28c5d0f 100644
+index 36ef3bbf70e71fd4712098bd1bd5af426e569fb5..41b520fb63dbbcf144e99364d21592152145d578 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1765,7 +1765,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1759,7 +1759,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
MutableComponent ichatmutablecomponent = Component.translatable("build.tooHigh", i - 1).withStyle(ChatFormatting.RED);
this.player.sendSystemMessage(ichatmutablecomponent, true);
@@ -23,7 +23,7 @@ index db441e55bc07b3e1db51ecaf7cef8a3844494ebe..6dfc35d2d5a76e317ff7f15c85a84b72
this.player.swing(enumhand, true);
}
}
-@@ -2381,13 +2381,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2375,13 +2375,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d3 = this.player.gameMode.getGameModeForPlayer() == GameType.CREATIVE ? 5.0D : 4.5D;
// SPIGOT-5607: Only call interact event if no block or entity is being clicked. Use bukkit ray trace method, because it handles blocks and entities at the same time
// SPIGOT-7429: Make sure to call PlayerInteractEvent for spectators and non-pickable entities
diff --git a/patches/server/0477-Add-WorldGameRuleChangeEvent.patch b/patches/server/0477-Add-WorldGameRuleChangeEvent.patch
index 41b4b9b772..547e9cb24d 100644
--- a/patches/server/0477-Add-WorldGameRuleChangeEvent.patch
+++ b/patches/server/0477-Add-WorldGameRuleChangeEvent.patch
@@ -64,7 +64,7 @@ index 0b46ad360be919e4aeb0ffc0eebae9fe712fb861..51e560d7856f230c5aa2dc32706c3a49
public int get() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 4d75cf0ec9e835b4274297275d52f08a6a65aeca..4a51d0125d59b1edd2da7aac1db1ca49374c008c 100644
+index 2436d66fb3be1611885bf05b793975dc2aa1a2e8..10ef342b9648699d140968376894f4cd6feca028 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1883,8 +1883,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0487-Add-sendOpLevel-API.patch b/patches/server/0487-Add-sendOpLevel-API.patch
index 40bd209fc2..9d0f785224 100644
--- a/patches/server/0487-Add-sendOpLevel-API.patch
+++ b/patches/server/0487-Add-sendOpLevel-API.patch
@@ -32,10 +32,10 @@ index 505af87eaf8209437978848be1dde86f879f82f2..d5071f9f2d433706fc378f77906bb5f0
public boolean isWhiteListed(GameProfile profile) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b0b101b4c0327cfc00afdb2c8919f40422110595..4b822efa702b0bb08a9122554b41c22d68d39548 100644
+index f4af230d447d97506b0d32b4d653c92edc462ca2..d2443a4de68d9fea215c114ada8426f55d9dc8d5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -674,6 +674,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -675,6 +675,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0499-Expand-EntityUnleashEvent.patch b/patches/server/0499-Expand-EntityUnleashEvent.patch
index 129bd5e2fb..d179143636 100644
--- a/patches/server/0499-Expand-EntityUnleashEvent.patch
+++ b/patches/server/0499-Expand-EntityUnleashEvent.patch
@@ -5,10 +5,10 @@ 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 2b282ba23444110949508dac11a25fee4e472f5d..b7cc2b5ee85e8e6a5c8cb8ce1f3c934773be32e6 100644
+index f91d6cc59f203fc67e38ba92159dbae22b6dbfac..70a151c8d109780350423eba5a951733ac855f23 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1428,12 +1428,15 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1431,12 +1431,15 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
return InteractionResult.PASS;
} else if (this.getLeashHolder() == player) {
// CraftBukkit start - fire PlayerUnleashEntityEvent
@@ -26,7 +26,7 @@ index 2b282ba23444110949508dac11a25fee4e472f5d..b7cc2b5ee85e8e6a5c8cb8ce1f3c9347
this.gameEvent(GameEvent.ENTITY_INTERACT, player);
return InteractionResult.sidedSuccess(this.level().isClientSide);
} else {
-@@ -1601,8 +1604,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1604,8 +1607,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 2b282ba23444110949508dac11a25fee4e472f5d..b7cc2b5ee85e8e6a5c8cb8ce1f3c9347
}
}
-@@ -1670,8 +1676,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1673,8 +1679,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 2b282ba23444110949508dac11a25fee4e472f5d..b7cc2b5ee85e8e6a5c8cb8ce1f3c9347
}
return flag1;
-@@ -1848,8 +1857,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1851,8 +1860,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
@Override
protected void removeAfterChangingDimensions() {
super.removeAfterChangingDimensions();
diff --git a/patches/server/0517-Allow-using-signs-inside-spawn-protection.patch b/patches/server/0517-Allow-using-signs-inside-spawn-protection.patch
index 789494c13d..f71bd69625 100644
--- a/patches/server/0517-Allow-using-signs-inside-spawn-protection.patch
+++ b/patches/server/0517-Allow-using-signs-inside-spawn-protection.patch
@@ -5,10 +5,10 @@ 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 6dfc35d2d5a76e317ff7f15c85a84b72d28c5d0f..aca572c34e12618fa032344ce5b7d890d75120d0 100644
+index 41b520fb63dbbcf144e99364d21592152145d578..8689573179fdcc2751814e225743c16ce65ca8db 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1753,8 +1753,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1747,8 +1747,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
int i = this.player.level().getMaxBuildHeight();
if (blockposition.getY() < i) {
diff --git a/patches/server/0523-Don-t-ignore-result-of-PlayerEditBookEvent.patch b/patches/server/0523-Don-t-ignore-result-of-PlayerEditBookEvent.patch
index 65fbf6884a..df4031ea97 100644
--- a/patches/server/0523-Don-t-ignore-result-of-PlayerEditBookEvent.patch
+++ b/patches/server/0523-Don-t-ignore-result-of-PlayerEditBookEvent.patch
@@ -5,10 +5,10 @@ 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 aca572c34e12618fa032344ce5b7d890d75120d0..5f4689c411b3f8e89a018b596fa75c3e8fee408d 100644
+index 8689573179fdcc2751814e225743c16ce65ca8db..5fede6095ff9dc85d2f7e1cb2f5acb7216d21940 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1158,7 +1158,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1152,7 +1152,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
List<Filterable<String>> list1 = pages.stream().map(this::filterableFromOutgoing).toList();
itemstack.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookContent(list1));
diff --git a/patches/server/0533-fix-PlayerItemHeldEvent-firing-twice.patch b/patches/server/0533-fix-PlayerItemHeldEvent-firing-twice.patch
index 78af9fb438..3f974caf76 100644
--- a/patches/server/0533-fix-PlayerItemHeldEvent-firing-twice.patch
+++ b/patches/server/0533-fix-PlayerItemHeldEvent-firing-twice.patch
@@ -5,10 +5,10 @@ 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 5f4689c411b3f8e89a018b596fa75c3e8fee408d..4371c93b31ca14e29c05d72487a41351e710db86 100644
+index 5fede6095ff9dc85d2f7e1cb2f5acb7216d21940..d57a7bca571c94e44b4d4aebaa26b568c5063f44 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1923,6 +1923,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1917,6 +1917,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (this.player.isImmobile()) return; // CraftBukkit
if (packet.getSlot() >= 0 && packet.getSlot() < Inventory.getSelectionSize()) {
diff --git a/patches/server/0535-More-World-API.patch b/patches/server/0535-More-World-API.patch
index 082bdde443..0e444d651b 100644
--- a/patches/server/0535-More-World-API.patch
+++ b/patches/server/0535-More-World-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] More World API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 4a51d0125d59b1edd2da7aac1db1ca49374c008c..518b3d6a1d339817328ca1081a44ea4d976ecbb5 100644
+index 10ef342b9648699d140968376894f4cd6feca028..5dbc079309933af548e5bec036475d6e621deb8e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2128,6 +2128,53 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0538-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch b/patches/server/0538-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
index 354670a554..048061b651 100644
--- a/patches/server/0538-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
+++ b/patches/server/0538-Expand-PlayerRespawnEvent-fix-passed-parameter-issue.patch
@@ -6,10 +6,10 @@ 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 4371c93b31ca14e29c05d72487a41351e710db86..70d5f1202c38d2b73510a8e1fe0863492384cf20 100644
+index d57a7bca571c94e44b4d4aebaa26b568c5063f44..f84a6f1ec9d1081b05ab44dd99659918aa0f1874 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2716,7 +2716,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2710,7 +2710,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
case PERFORM_RESPAWN:
if (this.player.wonGame) {
this.player.wonGame = false;
diff --git a/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch
index 26fabafdc5..b59f7d772c 100644
--- a/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch
+++ b/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch
@@ -132,10 +132,10 @@ 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 70d5f1202c38d2b73510a8e1fe0863492384cf20..f34960b459b9dd7340fd0b8b19739f085f30bae1 100644
+index f84a6f1ec9d1081b05ab44dd99659918aa0f1874..806f16a183ff1abae4cc21409bf8d26e0803483d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2725,7 +2725,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2719,7 +2719,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH);
if (this.server.isHardcore()) {
@@ -145,7 +145,7 @@ index 70d5f1202c38d2b73510a8e1fe0863492384cf20..f34960b459b9dd7340fd0b8b19739f08
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 4b822efa702b0bb08a9122554b41c22d68d39548..5a81e5a50e31c46d94d1674c8b623cf4a1a2e0ae 100644
+index d2443a4de68d9fea215c114ada8426f55d9dc8d5..45174db532a56534184c201767910beb511cbea4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1640,7 +1640,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0553-Move-range-check-for-block-placing-up.patch b/patches/server/0553-Move-range-check-for-block-placing-up.patch
index 8e2f6a1473..3c66f1bf6a 100644
--- a/patches/server/0553-Move-range-check-for-block-placing-up.patch
+++ b/patches/server/0553-Move-range-check-for-block-placing-up.patch
@@ -5,10 +5,10 @@ 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 f34960b459b9dd7340fd0b8b19739f085f30bae1..f5e0d9765dc92e886618d8180a598515c856b789 100644
+index 806f16a183ff1abae4cc21409bf8d26e0803483d..011b69407b56eaea3f373d6e438a4b2b222fcc03 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1740,6 +1740,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1734,6 +1734,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (itemstack.isItemEnabled(worldserver.enabledFeatures())) {
BlockHitResult movingobjectpositionblock = packet.getHitResult();
Vec3 vec3d = movingobjectpositionblock.getLocation();
diff --git a/patches/server/0556-Add-Unix-domain-socket-support.patch b/patches/server/0556-Add-Unix-domain-socket-support.patch
index 08ae4127ce..c289ae85a2 100644
--- a/patches/server/0556-Add-Unix-domain-socket-support.patch
+++ b/patches/server/0556-Add-Unix-domain-socket-support.patch
@@ -87,10 +87,10 @@ 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 f5e0d9765dc92e886618d8180a598515c856b789..2c4360431135b665e7b95cd3d59bb38871bca68b 100644
+index 011b69407b56eaea3f373d6e438a4b2b222fcc03..210f98f45eaec9470c5e66b3990dc24ca167c0c0 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2544,6 +2544,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2538,6 +2538,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Spigot Start
public SocketAddress getRawAddress()
{
diff --git a/patches/server/0559-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/server/0559-Add-cause-to-Weather-ThunderChangeEvents.patch
index ae6c28be86..92b87ba18e 100644
--- a/patches/server/0559-Add-cause-to-Weather-ThunderChangeEvents.patch
+++ b/patches/server/0559-Add-cause-to-Weather-ThunderChangeEvents.patch
@@ -95,7 +95,7 @@ index e50ad48658193f889d65d37c57b1e30ce46758b7..efd0bcfebb3b4f63018d4e20a6a89f79
if (weather.isCancelled()) {
return;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 518b3d6a1d339817328ca1081a44ea4d976ecbb5..24ecb71a878106c1e45564d356affe03ba1d1367 100644
+index 5dbc079309933af548e5bec036475d6e621deb8e..26457cb201b84547875b2989f55f4f4d2c8c03ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1206,7 +1206,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0562-Add-PlayerKickEvent-causes.patch b/patches/server/0562-Add-PlayerKickEvent-causes.patch
index 9551550f09..70adee8b16 100644
--- a/patches/server/0562-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0562-Add-PlayerKickEvent-causes.patch
@@ -95,10 +95,10 @@ index d1caaecfdfba1cdeba032f0bc38c06541fa61633..6468b3a25c7527a2fde6899e4812b5cb
i++;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a294553c70b97 100644
+index 2872bef40440b11a206c3ec88e2c6d95cd1a72e9..0273998b72c9d8a1e7de4b1195c547001922cb8e 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -116,7 +116,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -127,7 +127,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
} else if (!this.isSingleplayerOwner()) {
// Paper start - This needs to be handled on the main thread for plugins
server.submit(() -> {
@@ -107,7 +107,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
});
// Paper end - This needs to be handled on the main thread for plugins
}
-@@ -152,7 +152,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -163,7 +163,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
@@ -116,7 +116,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
}
} else if (identifier.equals(ServerCommonPacketListenerImpl.CUSTOM_UNREGISTER)) {
try {
-@@ -162,7 +162,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -173,7 +173,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
@@ -125,7 +125,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
}
} else {
try {
-@@ -180,7 +180,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -191,7 +191,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), identifier.toString(), data);
} catch (Exception ex) {
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
@@ -134,7 +134,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
}
}
-@@ -196,7 +196,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -207,7 +207,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
PacketUtils.ensureRunningOnSameThread(packet, this, (BlockableEventLoop) this.server);
if (packet.action() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
ServerCommonPacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack {} rejection", this.playerProfile().getName(), packet.id());
@@ -143,7 +143,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
}
// Paper start - adventure pack callbacks
// call the callbacks before the previously-existing event so the event has final say
-@@ -238,7 +238,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -249,7 +249,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
if (!this.isSingleplayerOwner() && elapsedTime >= KEEPALIVE_LIMIT) { // Paper - check keepalive limit, don't fire if already disconnected
if (this.keepAlivePending && !this.processedDisconnect) { // Paper
@@ -152,7 +152,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
} else if (this.checkIfClosed(currentTime)) { // Paper
this.keepAlivePending = true;
this.keepAliveTime = currentTime;
-@@ -254,7 +254,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -265,7 +265,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
private boolean checkIfClosed(long time) {
if (this.closed) {
if (time - this.closedListenerTime >= 15000L) {
@@ -161,7 +161,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
}
return false;
-@@ -305,18 +305,28 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -316,18 +316,28 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
// CraftBukkit start
@@ -194,7 +194,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
// Paper end
// CraftBukkit start - fire PlayerKickEvent
if (this.processedDisconnect) {
-@@ -326,7 +336,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -337,7 +347,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
Waitable waitable = new Waitable() {
@Override
protected Object evaluate() {
@@ -203,7 +203,7 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
return null;
}
};
-@@ -345,7 +355,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -356,7 +366,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
net.kyori.adventure.text.Component leaveMessage = net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? this.player.getBukkitEntity().displayName() : net.kyori.adventure.text.Component.text(this.player.getScoreboardName())); // Paper - Adventure
@@ -213,10 +213,10 @@ index d947eb533ba4dfd3b711e644d2a68238d1ec007a..b9767aff520d32d4615e3cb9e24a2945
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 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05aed4e8a65 100644
+index 210f98f45eaec9470c5e66b3990dc24ca167c0c0..53b833753b73c27110fcfccf8f2dcdb9a11a3545 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -355,7 +355,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -349,7 +349,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.clientIsFloating && !this.player.isSleeping() && !this.player.isPassenger() && !this.player.isDeadOrDying()) {
if (++this.aboveGroundTickCount > this.getMaximumFlyingTicks(this.player)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating too long!", this.player.getName().getString());
@@ -225,7 +225,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
} else {
-@@ -374,7 +374,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -368,7 +368,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.clientVehicleIsFloating && this.lastVehicle.getControllingPassenger() == this.player) {
if (++this.aboveGroundVehicleTickCount > this.getMaximumFlyingTicks(this.lastVehicle)) {
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getName().getString());
@@ -234,7 +234,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
} else {
-@@ -405,7 +405,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -399,7 +399,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L) {
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
@@ -243,7 +243,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
}
}
-@@ -487,7 +487,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -481,7 +481,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleMoveVehicle(ServerboundMoveVehiclePacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(), packet.getY(), packet.getZ(), packet.getYRot(), packet.getXRot())) {
@@ -252,7 +252,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
} else {
Entity entity = this.player.getRootVehicle();
-@@ -689,7 +689,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -683,7 +683,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) {
@@ -261,7 +261,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
-@@ -747,7 +747,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -741,7 +741,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // Paper - AsyncTabCompleteEvent; run this async
// CraftBukkit start
if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - configurable tab spam limits
@@ -270,7 +270,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
// CraftBukkit end
-@@ -912,7 +912,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -906,7 +906,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start - validate pick item position
if (!(packet.getSlot() >= 0 && packet.getSlot() < this.player.getInventory().items.size())) {
ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString());
@@ -279,7 +279,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
this.player.getInventory().pickSlot(packet.getSlot()); // Paper - Diff above if changed
-@@ -1091,7 +1091,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1085,7 +1085,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
if (byteLength > 256 * 4) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!");
@@ -288,7 +288,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
byteTotal += byteLength;
-@@ -1114,14 +1114,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1108,14 +1108,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (byteTotal > byteAllowed) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());
@@ -305,7 +305,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
this.lastBookTick = MinecraftServer.currentTick;
-@@ -1233,7 +1233,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1227,7 +1227,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) {
@@ -314,7 +314,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
} else {
ServerLevel worldserver = this.player.serverLevel();
-@@ -1662,7 +1662,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1656,7 +1656,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.dropCount++;
if (this.dropCount >= 20) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " dropped their items too quickly!");
@@ -323,7 +323,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
}
-@@ -1945,7 +1945,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1939,7 +1939,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.resetLastActionTime();
} else {
ServerGamePacketListenerImpl.LOGGER.warn("{} tried to set an invalid carried item", this.player.getName().getString());
@@ -332,7 +332,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
}
}
-@@ -2143,7 +2143,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2137,7 +2137,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void tryHandleChat(String s, Runnable runnable, boolean sync) { // CraftBukkit
if (ServerGamePacketListenerImpl.isChatMessageIllegal(s)) {
@@ -341,7 +341,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
} else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false));
} else {
-@@ -2166,7 +2166,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2160,7 +2160,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (optional.isEmpty()) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -350,7 +350,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
}
return optional;
-@@ -2352,7 +2352,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2346,7 +2346,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// this.chatSpamTickCount += 20;
if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
// CraftBukkit end
@@ -359,7 +359,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
}
}
-@@ -2364,7 +2364,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2358,7 +2358,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
synchronized (this.lastSeenMessages) {
if (!this.lastSeenMessages.applyOffset(packet.offset())) {
ServerGamePacketListenerImpl.LOGGER.warn("Failed to validate message acknowledgements from {}", this.player.getName().getString());
@@ -368,7 +368,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
}
}
-@@ -2512,7 +2512,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2506,7 +2506,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (i > 4096) {
@@ -377,7 +377,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
}
}
-@@ -2574,7 +2574,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2568,7 +2568,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Spigot Start
if ( entity == this.player && !this.player.isSpectator() )
{
@@ -386,7 +386,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
// Spigot End
-@@ -2688,7 +2688,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2682,7 +2682,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@@ -395,7 +395,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
ServerGamePacketListenerImpl.LOGGER.warn("Player {} tried to attack an invalid entity", ServerGamePacketListenerImpl.this.player.getName().getString());
}
});
-@@ -3085,7 +3085,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3079,7 +3079,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start - auto recipe limit
if (!org.bukkit.Bukkit.isPrimaryThread()) {
if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) {
@@ -404,7 +404,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
return;
}
}
-@@ -3327,7 +3327,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3321,7 +3321,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (!Objects.equals(profilepublickey_a, profilepublickey_a1)) {
if (profilepublickey_a != null && profilepublickey_a1.expiresAt().isBefore(profilepublickey_a.expiresAt())) {
@@ -413,7 +413,7 @@ index 2c4360431135b665e7b95cd3d59bb38871bca68b..5eb67dbeaa553b25d19e24b3bfb5e05a
} else {
try {
SignatureValidator signaturevalidator = this.server.getProfileKeySignatureValidator();
-@@ -3340,7 +3340,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3334,7 +3334,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
ServerGamePacketListenerImpl.LOGGER.error("Failed to validate profile key: {}", profilepublickey_b.getMessage());
@@ -477,10 +477,10 @@ index f472dea0bd4f834c0c8f0aa59ae7cdae082b14af..2fa51c3a70f43cd23b8f494fc643d66c
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 5a81e5a50e31c46d94d1674c8b623cf4a1a2e0ae..ff4ec105c2fd4e1bebf9503d4d073fd9135342c8 100644
+index 45174db532a56534184c201767910beb511cbea4..dd30da484ac9bcbbd7aef620151f460ad7dab3f7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -632,7 +632,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -633,7 +633,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
org.spigotmc.AsyncCatcher.catchOp("player kick"); // Spigot
if (this.getHandle().connection == null) return;
@@ -489,7 +489,7 @@ index 5a81e5a50e31c46d94d1674c8b623cf4a1a2e0ae..ff4ec105c2fd4e1bebf9503d4d073fd9
}
// Paper start
-@@ -644,10 +644,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -645,10 +645,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void kick(final net.kyori.adventure.text.Component message) {
@@ -506,7 +506,7 @@ index 5a81e5a50e31c46d94d1674c8b623cf4a1a2e0ae..ff4ec105c2fd4e1bebf9503d4d073fd9
}
}
-@@ -706,7 +711,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -707,7 +712,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start - Improve chat handling
if (ServerGamePacketListenerImpl.isChatMessageIllegal(msg)) {
diff --git a/patches/server/0573-add-per-world-spawn-limits.patch b/patches/server/0573-add-per-world-spawn-limits.patch
index 4bff2f79a8..8ff7b50013 100644
--- a/patches/server/0573-add-per-world-spawn-limits.patch
+++ b/patches/server/0573-add-per-world-spawn-limits.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] add per world spawn limits
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 24ecb71a878106c1e45564d356affe03ba1d1367..a46275f0684437d1c99792ad61889fd047318028 100644
+index 26457cb201b84547875b2989f55f4f4d2c8c03ce..3e448a40aaf4c2ae61de685d060495d4cedea031 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -222,6 +222,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0577-Missing-Entity-API.patch b/patches/server/0577-Missing-Entity-API.patch
index 12cad0f3e9..fd1ee1ab01 100644
--- a/patches/server/0577-Missing-Entity-API.patch
+++ b/patches/server/0577-Missing-Entity-API.patch
@@ -405,10 +405,10 @@ index 3952e52b94c1cc97e1d2d3885f59d7690efb74ad..9bcc0931510607b8fbd01233e2b3c346
+ // Paper end - Horse API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
-index 17f2a0dedb55a278c6ee310ba2943fc270f9d408..9f7c40e0529058c8d35acde00a54ad6575270df4 100644
+index a865b981f919c6784ae7c7c551e6a2a1ba0310d5..af35ff560a02daca7a130322fccbb52160e2db98 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
-@@ -223,4 +223,17 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
+@@ -218,4 +218,17 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
this.getHandle().setOwner(null);
}
}
diff --git a/patches/server/0578-Ensure-disconnect-for-book-edit-is-called-on-main.patch b/patches/server/0578-Ensure-disconnect-for-book-edit-is-called-on-main.patch
index 4738103d19..9af04f9803 100644
--- a/patches/server/0578-Ensure-disconnect-for-book-edit-is-called-on-main.patch
+++ b/patches/server/0578-Ensure-disconnect-for-book-edit-is-called-on-main.patch
@@ -5,10 +5,10 @@ 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 5eb67dbeaa553b25d19e24b3bfb5e05aed4e8a65..dbc8ee99c44db2246e3353f14a5c6e04c8d0b826 100644
+index 53b833753b73c27110fcfccf8f2dcdb9a11a3545..8f075a5fa487a8f2fcb905b9d32f97afa99b9bc3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1121,7 +1121,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1115,7 +1115,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper end - Book size limits
// CraftBukkit start
if (this.lastBookTick + 20 > MinecraftServer.currentTick) {
diff --git a/patches/server/0582-Add-PlayerArmSwingEvent.patch b/patches/server/0582-Add-PlayerArmSwingEvent.patch
index fc0f3e4ac3..14174822a6 100644
--- a/patches/server/0582-Add-PlayerArmSwingEvent.patch
+++ b/patches/server/0582-Add-PlayerArmSwingEvent.patch
@@ -5,10 +5,10 @@ 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 dbc8ee99c44db2246e3353f14a5c6e04c8d0b826..779a9d409323445c373a9f07b83de0f386ae82cc 100644
+index 8f075a5fa487a8f2fcb905b9d32f97afa99b9bc3..ec5af252a470f23d11b3352fba0705dd2b648565 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2402,7 +2402,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2396,7 +2396,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
} // Paper end - Call interact event
// Arm swing animation
diff --git a/patches/server/0583-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0583-Fix-kick-event-leave-message-not-being-sent.patch
index 66a12e3538..8d66d84399 100644
--- a/patches/server/0583-Fix-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0583-Fix-kick-event-leave-message-not-being-sent.patch
@@ -17,10 +17,10 @@ index a9130dd3097c31d91baaf1405a369881393d42d5..fccc62d601680f7ed2765bb331667baf
public boolean isRealPlayer; // Paper
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-index b9767aff520d32d4615e3cb9e24a294553c70b97..86af1b4b860a144462d856b4ef1702f7b811e4de 100644
+index 0273998b72c9d8a1e7de4b1195c547001922cb8e..802ea97fe03028cfe911aa4052d9c82ad23058f2 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
-@@ -98,6 +98,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -109,6 +109,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@Override
public void onDisconnect(Component reason) {
@@ -32,7 +32,7 @@ index b9767aff520d32d4615e3cb9e24a294553c70b97..86af1b4b860a144462d856b4ef1702f7
if (this.isSingleplayerOwner()) {
ServerCommonPacketListenerImpl.LOGGER.info("Stopping singleplayer server as player logged out");
this.server.halt(false);
-@@ -365,7 +370,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -376,7 +381,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
// Do not kick the player
return;
}
@@ -40,7 +40,7 @@ index b9767aff520d32d4615e3cb9e24a294553c70b97..86af1b4b860a144462d856b4ef1702f7
// Send the possibly modified leave message
final Component ichatbasecomponent = io.papermc.paper.adventure.PaperAdventure.asVanilla(event.reason()); // Paper - Adventure
// CraftBukkit end
-@@ -374,7 +378,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
+@@ -385,7 +389,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
this.connection.send(new ClientboundDisconnectPacket(ichatbasecomponent), PacketSendListener.thenRun(() -> {
this.connection.disconnect(ichatbasecomponent);
}));
@@ -50,10 +50,10 @@ index b9767aff520d32d4615e3cb9e24a294553c70b97..86af1b4b860a144462d856b4ef1702f7
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 779a9d409323445c373a9f07b83de0f386ae82cc..e1945778de55a75d483c890b2a59276e55a2a0f9 100644
+index ec5af252a470f23d11b3352fba0705dd2b648565..b71ca2aadfa2511371cc8032424c6771220c3605 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1884,6 +1884,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1878,6 +1878,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void onDisconnect(Component reason) {
@@ -66,7 +66,7 @@ index 779a9d409323445c373a9f07b83de0f386ae82cc..e1945778de55a75d483c890b2a59276e
// CraftBukkit start - Rarely it would send a disconnect line twice
if (this.processedDisconnect) {
return;
-@@ -1892,11 +1898,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1886,11 +1892,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// CraftBukkit end
ServerGamePacketListenerImpl.LOGGER.info("{} lost connection: {}", this.player.getName().getString(), reason.getString());
@@ -86,7 +86,7 @@ index 779a9d409323445c373a9f07b83de0f386ae82cc..e1945778de55a75d483c890b2a59276e
this.chatMessageChain.close();
// CraftBukkit start - Replace vanilla quit message handling with our own.
/*
-@@ -1906,7 +1918,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1900,7 +1912,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.disconnect();
// Paper start - Adventure
diff --git a/patches/server/0589-Prevent-AFK-kick-while-watching-end-credits.patch b/patches/server/0589-Prevent-AFK-kick-while-watching-end-credits.patch
index e216bc6682..af6da87145 100644
--- a/patches/server/0589-Prevent-AFK-kick-while-watching-end-credits.patch
+++ b/patches/server/0589-Prevent-AFK-kick-while-watching-end-credits.patch
@@ -5,10 +5,10 @@ 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 e1945778de55a75d483c890b2a59276e55a2a0f9..b908c2125fb3599cfbc227465e98dbaa40f72f9d 100644
+index b71ca2aadfa2511371cc8032424c6771220c3605..f828988421204673cfb80da550a7fc14f420e525 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -403,7 +403,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -397,7 +397,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
--this.dropSpamTickCount;
}
diff --git a/patches/server/0591-Add-PlayerSetSpawnEvent.patch b/patches/server/0591-Add-PlayerSetSpawnEvent.patch
index 421b77f768..48da78ead4 100644
--- a/patches/server/0591-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0591-Add-PlayerSetSpawnEvent.patch
@@ -187,7 +187,7 @@ index e18726915d1491d74084827afd9978800aecb644..a4a90df0b500fb440226b07462faaa87
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ff4ec105c2fd4e1bebf9503d4d073fd9135342c8..60147478bc40bc03a1622895074cf910ef6b94f4 100644
+index dd30da484ac9bcbbd7aef620151f460ad7dab3f7..1389674186b5460b25644cb49ec9fb7f47a3235b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1399,9 +1399,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0592-Make-hoppers-respect-inventory-max-stack-size.patch b/patches/server/0592-Make-hoppers-respect-inventory-max-stack-size.patch
index e5bf1b9eca..c5f669b979 100644
--- a/patches/server/0592-Make-hoppers-respect-inventory-max-stack-size.patch
+++ b/patches/server/0592-Make-hoppers-respect-inventory-max-stack-size.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Make hoppers respect inventory max stack size
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
-index 4e9113b704599fb2130d866dd4106053da4cf524..43ee9017fbbe0a5485a281712f76c23b059a849b 100644
+index dfb57192105d5e05e4c2e32da5eadb7c701a763a..92086ca118d55ec49cefa5bf18977f8706e3e4b4 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -485,15 +485,17 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
diff --git a/patches/server/0595-Add-EntityDamageItemEvent.patch b/patches/server/0595-Add-EntityDamageItemEvent.patch
index 8c30c61354..bcf3f849b3 100644
--- a/patches/server/0595-Add-EntityDamageItemEvent.patch
+++ b/patches/server/0595-Add-EntityDamageItemEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add EntityDamageItemEvent
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index c8af2f886ad834d6a405df00560b0f8225fcf471..210d9b05b13f286b6fc834aded0652eb790a4792 100644
+index d95272b1765368a4cd968fa566ad68844dced4c8..081d0241692078516a4554ccbda17f4539dc5ed6 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -648,7 +648,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0603-Add-missing-team-sidebar-display-slots.patch b/patches/server/0603-Add-missing-team-sidebar-display-slots.patch
index 8000b2e51e..9d0068df5a 100644
--- a/patches/server/0603-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0603-Add-missing-team-sidebar-display-slots.patch
@@ -9,10 +9,10 @@ public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations toBukkitSlo
public org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations fromBukkitSlot(Lorg/bukkit/scoreboard/DisplaySlot;)Lnet/minecraft/world/scores/DisplaySlot;
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
-index 71e79ad334a658324058c68284eaf3e55da411a6..8b87c178b17b6d1f9723b2d8d24fa99cb8d80782 100644
+index 658f3962543a36bc8c16f306ccb3e254b5b3d0a8..7bef8539d26bced77406f49c0b6fd2c04e6e641e 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/FieldRename.java
-@@ -24,6 +24,7 @@ public class FieldRename {
+@@ -27,6 +27,7 @@ public class FieldRename {
}
return switch (owner) {
@@ -20,7 +20,7 @@ index 71e79ad334a658324058c68284eaf3e55da411a6..8b87c178b17b6d1f9723b2d8d24fa99c
case "org/bukkit/block/banner/PatternType" -> FieldRename.convertPatternTypeName(apiVersion, from);
case "org/bukkit/enchantments/Enchantment" -> FieldRename.convertEnchantmentName(apiVersion, from);
case "org/bukkit/block/Biome" -> FieldRename.convertBiomeName(apiVersion, from);
-@@ -38,6 +39,18 @@ public class FieldRename {
+@@ -43,6 +44,18 @@ public class FieldRename {
};
}
diff --git a/patches/server/0605-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0605-Add-methods-to-find-targets-for-lightning-strikes.patch
index 3a9135307c..7a7068cabb 100644
--- a/patches/server/0605-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0605-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -31,7 +31,7 @@ index da3821010598f9c67d6a21fbfc6b559280203100..666968eff55e97443fd02e00a7ad11e0
blockposition1 = blockposition1.above(2);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a46275f0684437d1c99792ad61889fd047318028..321da9572b896b54ad961e1c7179929b145ae0ac 100644
+index 3e448a40aaf4c2ae61de685d060495d4cedea031..5f6cec79745aa8e5ae3aa8139c93bbdd1c36c6d5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -687,6 +687,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0608-Add-more-advancement-API.patch b/patches/server/0608-Add-more-advancement-API.patch
index 0c69576d18..0fa7fedd64 100644
--- a/patches/server/0608-Add-more-advancement-API.patch
+++ b/patches/server/0608-Add-more-advancement-API.patch
@@ -164,10 +164,10 @@ index 8ca86852319d7463f60832bc98b825b0b4325995..62ada73302c6b3ce3fb2dcc8c31a1d9c
private final DisplayInfo handle;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index ceeb7381f81daa29f7ac76c68cb3d44886d5ceb5..c85e24d476b3fee51f166150a552a3c5c1097dc3 100644
+index 07239f25bc927c44a9d17f4796db3a107b8e14e0..2aa19120010a07f5da70b9275aed8e76687f3894 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -374,6 +374,11 @@ public class Commodore {
+@@ -383,6 +383,11 @@ public class Commodore {
super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf);
return;
}
diff --git a/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch
index 69cfc59b3d..6e990a2848 100644
--- a/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch
@@ -29,10 +29,10 @@ index 943ef44ce17719170b71be0eae75c43426376459..db112344ef6cd6dc5c1fc5c222e23d48
+ // Paper end - old getSpawnEgg API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index c85e24d476b3fee51f166150a552a3c5c1097dc3..27ca966d3542794e8739b28bae555a0c8ba815fb 100644
+index 2aa19120010a07f5da70b9275aed8e76687f3894..fa5cd7d64a52116afbcf47627b31de0b89305f07 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -381,6 +381,15 @@ public class Commodore {
+@@ -390,6 +390,15 @@ public class Commodore {
}
// Paper end
diff --git a/patches/server/0619-Improve-and-expand-AsyncCatcher.patch b/patches/server/0619-Improve-and-expand-AsyncCatcher.patch
index b0e0c62601..1e59e9e075 100644
--- a/patches/server/0619-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0619-Improve-and-expand-AsyncCatcher.patch
@@ -17,10 +17,10 @@ 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 b908c2125fb3599cfbc227465e98dbaa40f72f9d..9a880774eaa71cef96619ff948ce432c57009fec 100644
+index f828988421204673cfb80da550a7fc14f420e525..c0fd3f596384e6bb8aee0d6b33daecd7e5b33878 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1571,6 +1571,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1565,6 +1565,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
@@ -166,7 +166,7 @@ index 219062cff8a05c765b092f1525043d9d9a1153ae..1c6e8438219f355274db4e0fa849cdd9
PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason});
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 321da9572b896b54ad961e1c7179929b145ae0ac..cbad6add9186a151e1994bb3ed0b11d611f6ca7f 100644
+index 5f6cec79745aa8e5ae3aa8139c93bbdd1c36c6d5..1bf9fbc8f39ec4b0dd1369cace6bbd347c81541a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1756,6 +1756,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0620-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0620-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 638d7343ef..51302543ed 100644
--- a/patches/server/0620-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0620-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -294,7 +294,7 @@ index aab59a42af04971b5be4b6295700a1c50e1c964f..382c5a9ad23523b830edc7c81767b13a
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index cbad6add9186a151e1994bb3ed0b11d611f6ca7f..c7881cdd8447a632cbb406b379c01b540d5d4152 100644
+index 1bf9fbc8f39ec4b0dd1369cace6bbd347c81541a..f88614e0e83a0b6df379816a532c621108c5ae9d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1714,9 +1714,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0633-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0633-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index f99de650d3..f426fa8333 100644
--- a/patches/server/0633-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0633-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,10 +6,10 @@ 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 9a880774eaa71cef96619ff948ce432c57009fec..bc7dbc66b5675b21f4aa3a4d1333a3782e3a43dd 100644
+index c0fd3f596384e6bb8aee0d6b33daecd7e5b33878..a8c3a2988db845420b254729d125cc2c51660323 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -751,6 +751,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -745,6 +745,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
// CraftBukkit end
diff --git a/patches/server/0645-Fix-upstreams-block-state-factories.patch b/patches/server/0645-Fix-upstreams-block-state-factories.patch
index aaf9ba6071..d5cf218ad2 100644
--- a/patches/server/0645-Fix-upstreams-block-state-factories.patch
+++ b/patches/server/0645-Fix-upstreams-block-state-factories.patch
@@ -26,7 +26,7 @@ index 90b218ebc947a1d8a8c7dfc677fe145b6386654a..df945a152747bea0452ec18c09d59598
if (state instanceof InventoryHolder) return (InventoryHolder) state;
return null;
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
-index 52fe7315fa838e3b6b236127c293ac0e8528ee7d..120e6034e79f3caa61ddc9a6051b3af5357f1427 100644
+index 89bd200befb65fe33ee049f7a07d5c771c971b13..f97d47677e13441c0b39eb8d18ebee428ea53ca4 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
@@ -18,7 +18,7 @@ import org.bukkit.persistence.PersistentDataContainer;
@@ -38,7 +38,7 @@ index 52fe7315fa838e3b6b236127c293ac0e8528ee7d..120e6034e79f3caa61ddc9a6051b3af5
private final T tileEntity;
private final T snapshot;
-@@ -177,14 +177,10 @@ public class CraftBlockEntityState<T extends BlockEntity> extends CraftBlockStat
+@@ -178,14 +178,10 @@ public class CraftBlockEntityState<T extends BlockEntity> extends CraftBlockStat
}
@Override
@@ -56,7 +56,7 @@ index 52fe7315fa838e3b6b236127c293ac0e8528ee7d..120e6034e79f3caa61ddc9a6051b3af5
// Paper start
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
-index 4c30af81697db25d9913b436c45d9a926cbb5cca..c38b7148a3bbe7d29adea19d08dde4d9c8e29704 100644
+index e40973b65ece11d9c5a76abad51f72e610bf02ab..411c2de93c71e480f95229c882cdf43b8801edc8 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
@@ -22,6 +22,7 @@ import net.minecraft.world.level.block.entity.BeehiveBlockEntity;
diff --git a/patches/server/0667-Validate-usernames.patch b/patches/server/0667-Validate-usernames.patch
index 728bfacad5..51eedf4f14 100644
--- a/patches/server/0667-Validate-usernames.patch
+++ b/patches/server/0667-Validate-usernames.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Validate usernames
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 5fa0947bd6029f37d786488b44ec23090c45963a..49627a02cb15e94e7c3ddfe65aa663d982a34408 100644
+index b968026728b8b4e549eed9fa9b43919c6c19eb7a..c44a15fc358c28345302b1bf37fc4b111a77fe0e 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -83,6 +83,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0669-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0669-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
index 5bdbc4c526..84800b4cd9 100644
--- a/patches/server/0669-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
+++ b/patches/server/0669-Expose-vanilla-BiomeProvider-from-WorldInfo.patch
@@ -31,7 +31,7 @@ index 8136688a2a4da9d6190d67c0936e210b23ec5126..3807291dc0e40e7247167162225c4f63
biomeProvider = generator.getDefaultBiomeProvider(worldInfo);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c7881cdd8447a632cbb406b379c01b540d5d4152..98d87f29f111029b11409e6f4230e53119bd8711 100644
+index f88614e0e83a0b6df379816a532c621108c5ae9d..43b3af7bba4551d98c7ffb53fbee9413ed5b8dd3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -212,6 +212,29 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0676-Multi-Block-Change-API-Implementation.patch b/patches/server/0676-Multi-Block-Change-API-Implementation.patch
index 19cdec2ccd..d63be4a5f1 100644
--- a/patches/server/0676-Multi-Block-Change-API-Implementation.patch
+++ b/patches/server/0676-Multi-Block-Change-API-Implementation.patch
@@ -24,10 +24,10 @@ index 926ff9be3d9e3f5d620e4c7ccb22b9f64865ff8c..1a37654aff9a9c86c9f7af10a1cf7213
buf.writeLong(this.sectionPos.asLong());
buf.writeVarInt(this.positions.length);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 60147478bc40bc03a1622895074cf910ef6b94f4..ea3d87b425360b753af4ac7647ab296dc7a2faf0 100644
+index 1389674186b5460b25644cb49ec9fb7f47a3235b..34cca6af6d6914059048ec5e36945cbee4c20d1a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -927,6 +927,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -928,6 +928,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}
diff --git a/patches/server/0683-Implement-regenerateChunk.patch b/patches/server/0683-Implement-regenerateChunk.patch
index f9045a1c20..c6a6c8eb34 100644
--- a/patches/server/0683-Implement-regenerateChunk.patch
+++ b/patches/server/0683-Implement-regenerateChunk.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk
Co-authored-by: Jason Penilla <[email protected]>
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 98d87f29f111029b11409e6f4230e53119bd8711..9aa26056e0056dedaf86d19f71eb0c6e9ab956d3 100644
+index 43b3af7bba4551d98c7ffb53fbee9413ed5b8dd3..e31794510cb204fa1360803050d25d0e226785e2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -151,6 +151,7 @@ import org.jetbrains.annotations.Nullable;
diff --git a/patches/server/0684-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0684-Fix-cancelled-powdered-snow-bucket-placement.patch
index d805bbc70e..c95ae66f2b 100644
--- a/patches/server/0684-Fix-cancelled-powdered-snow-bucket-placement.patch
+++ b/patches/server/0684-Fix-cancelled-powdered-snow-bucket-placement.patch
@@ -8,7 +8,7 @@ snow bucket didn't revert grass that became snowy because of the
placement.
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 210d9b05b13f286b6fc834aded0652eb790a4792..463eef2942bcc1b6acf6706fc6bd099f5f4b729e 100644
+index 081d0241692078516a4554ccbda17f4539dc5ed6..8f4ca2479bf185cb2409d1da20dfc7de0f0ce550 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -402,7 +402,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0696-Fix-falling-block-spawn-methods.patch b/patches/server/0696-Fix-falling-block-spawn-methods.patch
index d83720726e..1f5d0c19cc 100644
--- a/patches/server/0696-Fix-falling-block-spawn-methods.patch
+++ b/patches/server/0696-Fix-falling-block-spawn-methods.patch
@@ -11,7 +11,7 @@ Restores the API behavior from previous versions of the server
public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 9aa26056e0056dedaf86d19f71eb0c6e9ab956d3..df722b6bb5ee5d81d95e61e6eaf35bc44f350d5f 100644
+index e31794510cb204fa1360803050d25d0e226785e2..193b544d1fea692d9948e00c72aa566836c2a4d2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1425,7 +1425,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0699-More-Projectile-API.patch b/patches/server/0699-More-Projectile-API.patch
index aa2104e4d1..502e5f9098 100644
--- a/patches/server/0699-More-Projectile-API.patch
+++ b/patches/server/0699-More-Projectile-API.patch
@@ -572,7 +572,7 @@ index 28d371e59d8780bf6e154bac56ee189b3b43b201..dd092e44a18e238e4a8b4d8a791ef426
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index a58e865a047550cc4508d0515cc6f2fc639f9b3d..9c870aaa147478b46719702ee91615095d41cadb 100644
+index 45a1f5123e5413cf8dd3db68bb47508567198403..76191fe677f3dd91ea55d53881f52952410a3a05 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -293,12 +293,22 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0701-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0701-Don-t-allow-vehicle-movement-from-players-while-tele.patch
index 991fbed2fd..70d82d0dce 100644
--- a/patches/server/0701-Don-t-allow-vehicle-movement-from-players-while-tele.patch
+++ b/patches/server/0701-Don-t-allow-vehicle-movement-from-players-while-tele.patch
@@ -7,10 +7,10 @@ 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 bc7dbc66b5675b21f4aa3a4d1333a3782e3a43dd..2ab8a1082775ea3d00bd54b6089247da9a0d6941 100644
+index a8c3a2988db845420b254729d125cc2c51660323..d6f90c013ce5d7058ad1ca9357f5d2d7aab40cf6 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -490,6 +490,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -484,6 +484,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_vehicle_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_VEHICLE_MOVEMENT); // Paper - kick event cause
} else {
Entity entity = this.player.getRootVehicle();
diff --git a/patches/server/0714-Prevent-tile-entity-copies-loading-chunks.patch b/patches/server/0714-Prevent-tile-entity-copies-loading-chunks.patch
index 646b6cf0ad..cc180d9fc6 100644
--- a/patches/server/0714-Prevent-tile-entity-copies-loading-chunks.patch
+++ b/patches/server/0714-Prevent-tile-entity-copies-loading-chunks.patch
@@ -5,10 +5,10 @@ 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 2ab8a1082775ea3d00bd54b6089247da9a0d6941..bd39281718199e3ce50acaec2d5f3887ab757d95 100644
+index d6f90c013ce5d7058ad1ca9357f5d2d7aab40cf6..7e203542bde371a44294ace5bb1e3c8375b597ca 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3195,7 +3195,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3189,7 +3189,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
BlockPos blockposition = BlockEntity.getPosFromTag(customdata.getUnsafe());
if (this.player.level().isLoaded(blockposition)) {
diff --git a/patches/server/0716-Expand-PlayerItemDamageEvent.patch b/patches/server/0716-Expand-PlayerItemDamageEvent.patch
index 7b4af3c0fc..8ef65bfbc2 100644
--- a/patches/server/0716-Expand-PlayerItemDamageEvent.patch
+++ b/patches/server/0716-Expand-PlayerItemDamageEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Expand PlayerItemDamageEvent
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 463eef2942bcc1b6acf6706fc6bd099f5f4b729e..4958c780ebf61890c7da2087725329c807d19d27 100644
+index 8f4ca2479bf185cb2409d1da20dfc7de0f0ce550..179932c624912a39d6c4e53187ba9f9c23df42e5 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -662,10 +662,11 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0726-Add-support-for-Proxy-Protocol.patch b/patches/server/0726-Add-support-for-Proxy-Protocol.patch
index 7988c329fc..c94fcd99d4 100644
--- a/patches/server/0726-Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/0726-Add-support-for-Proxy-Protocol.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add support for Proxy Protocol
diff --git a/build.gradle.kts b/build.gradle.kts
-index 9d570d0289ff33b78cea805070e684f8b00b5fe8..2fb342f9d86e169571070b2b40538633f4b0d7cf 100644
+index fb7e956fd7beb741984780a9492230916a330504..41767422b521ff095592d799b14b2f36c3b5c5cb 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -31,6 +31,7 @@ dependencies {
diff --git a/patches/server/0729-Sanitize-sent-BlockEntity-NBT.patch b/patches/server/0729-Sanitize-sent-BlockEntity-NBT.patch
index 24ed948469..79bacba95c 100644
--- a/patches/server/0729-Sanitize-sent-BlockEntity-NBT.patch
+++ b/patches/server/0729-Sanitize-sent-BlockEntity-NBT.patch
@@ -5,15 +5,15 @@ Subject: [PATCH] Sanitize sent BlockEntity NBT
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java
-index df38a2ffb29394b27a11e5150fc99ecf38331796..3fbf48941d28ffb473c14d15aea334e83a34f961 100644
+index 1970c0fa24764f6bbd0cc360b7d32d7906eaf808..db03254682b827d650160d6f2c1a18cf12c861d7 100644
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java
-@@ -29,7 +29,7 @@ public class ClientboundBlockEntityDataPacket implements Packet<ClientGamePacket
-
+@@ -23,7 +23,7 @@ public class ClientboundBlockEntityDataPacket implements Packet<ClientGamePacket
public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity, BiFunction<BlockEntity, RegistryAccess, CompoundTag> nbtGetter) {
- RegistryAccess registryAccess = blockEntity.getLevel().registryAccess();
-- return new ClientboundBlockEntityDataPacket(blockEntity.getBlockPos(), blockEntity.getType(), nbtGetter.apply(blockEntity, registryAccess));
-+ return new ClientboundBlockEntityDataPacket(blockEntity.getBlockPos(), blockEntity.getType(), blockEntity.sanitizeSentNbt(nbtGetter.apply(blockEntity, registryAccess))); // Paper - Sanitize sent data
+ RegistryAccess iregistrycustom = blockEntity.getLevel().registryAccess();
+
+- return new ClientboundBlockEntityDataPacket(blockEntity.getBlockPos(), blockEntity.getType(), (CompoundTag) nbtGetter.apply(blockEntity, iregistrycustom));
++ return new ClientboundBlockEntityDataPacket(blockEntity.getBlockPos(), blockEntity.getType(), (CompoundTag) blockEntity.sanitizeSentNbt(nbtGetter.apply(blockEntity, iregistrycustom))); // Paper - Sanitize sent data
}
public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity) {
diff --git a/patches/server/0745-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch b/patches/server/0745-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
index ffeb0f7c6c..67d2417c55 100644
--- a/patches/server/0745-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
+++ b/patches/server/0745-Fix-Spigot-Config-not-using-commands.spam-exclusions.patch
@@ -5,10 +5,10 @@ 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 bd39281718199e3ce50acaec2d5f3887ab757d95..6111d7d3bda2626ea6e953d49351af25f8d3e556 100644
+index 7e203542bde371a44294ace5bb1e3c8375b597ca..58da98b619b0f59a527d55d78e09c6c0ed676b7c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2373,7 +2373,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2367,7 +2367,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Spigot end
// this.chatSpamTickCount += 20;
diff --git a/patches/server/0746-More-Teleport-API.patch b/patches/server/0746-More-Teleport-API.patch
index aec19083b5..306f32552d 100644
--- a/patches/server/0746-More-Teleport-API.patch
+++ b/patches/server/0746-More-Teleport-API.patch
@@ -5,10 +5,10 @@ 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 6111d7d3bda2626ea6e953d49351af25f8d3e556..78b38aee5ab62597bd679b8c1d981d30a7a4a2bf 100644
+index 58da98b619b0f59a527d55d78e09c6c0ed676b7c..83acd04bdcc7232934628c5d2cde987e410ee3aa 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1559,11 +1559,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1553,11 +1553,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return false; // CraftBukkit - Return event status
}
@@ -112,7 +112,7 @@ index 113ca1d16cb7650d72f488cdaa9e670d51dc85f0..b6fef2ca5b564c293cb602cb8e300d35
private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot()
{
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ea3d87b425360b753af4ac7647ab296dc7a2faf0..1c557d4787b3d10f222e2b11d98d43bc17dac25f 100644
+index 34cca6af6d6914059048ec5e36945cbee4c20d1a..3ea54916f278fadaa66d3bc6a096b90a56355d90 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1273,13 +1273,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0749-Send-block-entities-after-destroy-prediction.patch b/patches/server/0749-Send-block-entities-after-destroy-prediction.patch
index 97d2264363..0a6e27c3c6 100644
--- a/patches/server/0749-Send-block-entities-after-destroy-prediction.patch
+++ b/patches/server/0749-Send-block-entities-after-destroy-prediction.patch
@@ -57,10 +57,10 @@ 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 78b38aee5ab62597bd679b8c1d981d30a7a4a2bf..c03ae6af07e611d963e60d4ed908e36fb0629621 100644
+index 83acd04bdcc7232934628c5d2cde987e410ee3aa..96ef32b349f11ff747797c850c0e32bcb5e849b7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1706,8 +1706,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1700,8 +1700,28 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
// Paper end - Don't allow digging into unloaded chunks
diff --git a/patches/server/0750-Warn-on-plugins-accessing-faraway-chunks.patch b/patches/server/0750-Warn-on-plugins-accessing-faraway-chunks.patch
index 9ac0785b1e..2f60387b5d 100644
--- a/patches/server/0750-Warn-on-plugins-accessing-faraway-chunks.patch
+++ b/patches/server/0750-Warn-on-plugins-accessing-faraway-chunks.patch
@@ -18,7 +18,7 @@ index 1408faa8754b2492879f2dbb525aba3bfc8f0421..0fb975d74b8e91617de91dacb206699f
private static boolean isOutsideSpawnableHeight(int y) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index df722b6bb5ee5d81d95e61e6eaf35bc44f350d5f..80aa2aebc490e763d2b9dfd56bcaff94cb13cd91 100644
+index 193b544d1fea692d9948e00c72aa566836c2a4d2..0c5c67480e16333641f4ebc89d892f7a0e2387fd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -319,9 +319,24 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch
index cea15717c2..18ff11a0a2 100644
--- a/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch
+++ b/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Custom Chat Completion Suggestions API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 1c557d4787b3d10f222e2b11d98d43bc17dac25f..8d22621b715c46dd96f0bfa646dad08d776c5d0c 100644
+index 3ea54916f278fadaa66d3bc6a096b90a56355d90..5fbe88dfc3246bc6270df5066f56e894f712c0c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -688,6 +688,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -689,6 +689,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end - Add sendOpLevel API
diff --git a/patches/server/0756-Add-Velocity-IP-Forwarding-Support.patch b/patches/server/0756-Add-Velocity-IP-Forwarding-Support.patch
index 167084f062..ffcb2a197b 100644
--- a/patches/server/0756-Add-Velocity-IP-Forwarding-Support.patch
+++ b/patches/server/0756-Add-Velocity-IP-Forwarding-Support.patch
@@ -134,7 +134,7 @@ index 784788d8d3d1a07efbd406b6c463e046699081e2..fdff82ed5dbf5176d470b9b6c41acfe6
DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.");
}
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 49627a02cb15e94e7c3ddfe65aa663d982a34408..21d97c2b533a6528dd73c4e514d49273c120e171 100644
+index c44a15fc358c28345302b1bf37fc4b111a77fe0e..3333cb70744dc7ef8b181d332b63766aaaaad11f 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -84,6 +84,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/0767-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch b/patches/server/0767-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
index ba5b6fb01c..6b16e23fbc 100644
--- a/patches/server/0767-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
+++ b/patches/server/0767-Mitigate-effects-of-WorldCreator-keepSpawnLoaded-ret.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Mitigate effects of WorldCreator#keepSpawnLoaded ret type
TODO: Remove in 1.21?
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 27ca966d3542794e8739b28bae555a0c8ba815fb..163e773a4782784f236175d7b0cf10ac4a574cac 100644
+index fa5cd7d64a52116afbcf47627b31de0b89305f07..a815e9f3db30c33d69e7b8b862c84e5849b1bfea 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -379,6 +379,12 @@ public class Commodore {
+@@ -388,6 +388,12 @@ public class Commodore {
super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, runtimeCbPkgPrefix() + "advancement/CraftAdvancement", "getDisplay0", desc, false);
return;
}
diff --git a/patches/server/0777-Elder-Guardian-appearance-API.patch b/patches/server/0777-Elder-Guardian-appearance-API.patch
index 9ed8079bb9..7856f050b0 100644
--- a/patches/server/0777-Elder-Guardian-appearance-API.patch
+++ b/patches/server/0777-Elder-Guardian-appearance-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 8d22621b715c46dd96f0bfa646dad08d776c5d0c..ad345fe407880ec7242923653e766d553a60ad24 100644
+index 5fbe88dfc3246bc6270df5066f56e894f712c0c1..943be224e35f66f5b66274ca8c923f1209889401 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3279,6 +3279,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3275,6 +3275,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0791-Add-Player-Warden-Warning-API.patch b/patches/server/0791-Add-Player-Warden-Warning-API.patch
index d60c34b4a3..1ed4e822a2 100644
--- a/patches/server/0791-Add-Player-Warden-Warning-API.patch
+++ b/patches/server/0791-Add-Player-Warden-Warning-API.patch
@@ -10,10 +10,10 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ad345fe407880ec7242923653e766d553a60ad24..b8fcb478c40749d335636930a2a3b77dc1ef23d2 100644
+index 943be224e35f66f5b66274ca8c923f1209889401..5837b2697ff630d68362d86dfa1c144a97955fe4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3284,6 +3284,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3280,6 +3280,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void showElderGuardian(boolean silent) {
if (getHandle().connection != null) getHandle().connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, silent ? 0F : 1F));
}
diff --git a/patches/server/0803-Fixes-and-additions-to-the-SpawnReason-API.patch b/patches/server/0803-Fixes-and-additions-to-the-SpawnReason-API.patch
index b9bedcc9bb..d758b37206 100644
--- a/patches/server/0803-Fixes-and-additions-to-the-SpawnReason-API.patch
+++ b/patches/server/0803-Fixes-and-additions-to-the-SpawnReason-API.patch
@@ -8,7 +8,7 @@ Fixes some wrong reasons, and adds missing spawn reasons for entities.
Co-authored-by: Doc <[email protected]>
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index fb621b161b0a47fac2c44b369ed01c27278bc4f6..3ac31c869d0e53410558ddeb79c21d3f5a3decb6 100644
+index 7df13199eacc8dec0ba8fbf10ea507b0d1c5f591..df7b9d0693777fa203cc4d4a7519c5648e274bb6 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -366,7 +366,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/0804-fix-Instruments.patch b/patches/server/0804-fix-Instruments.patch
index 00fbc807ac..fc0962748e 100644
--- a/patches/server/0804-fix-Instruments.patch
+++ b/patches/server/0804-fix-Instruments.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] fix Instruments
properly handle Player#playNote
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index b8fcb478c40749d335636930a2a3b77dc1ef23d2..ed8d88b169c39d28d470f738a4be5d2889ac1a92 100644
+index 5837b2697ff630d68362d86dfa1c144a97955fe4..3bd3ca5aae53fbeb1b2e32ae94a68ad01ade5419 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -765,7 +765,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -766,7 +766,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Sound instrumentSound = instrument.getSound();
if (instrumentSound == null) return;
diff --git a/patches/server/0809-Improve-logging-and-errors.patch b/patches/server/0809-Improve-logging-and-errors.patch
index 5d745cbff1..5fd0fba842 100644
--- a/patches/server/0809-Improve-logging-and-errors.patch
+++ b/patches/server/0809-Improve-logging-and-errors.patch
@@ -52,10 +52,10 @@ 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 c03ae6af07e611d963e60d4ed908e36fb0629621..672216f003fb82f8b77aad759a61e96d65e9fb9a 100644
+index 96ef32b349f11ff747797c850c0e32bcb5e849b7..d8c9db7db74e71f37bd4f2bb8e25b27a46c8ac57 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3393,7 +3393,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3387,7 +3387,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.resetPlayerChatState(remotechatsession_a.validate(this.player.getGameProfile(), signaturevalidator));
} catch (ProfilePublicKey.ValidationException profilepublickey_b) {
diff --git a/patches/server/0812-Add-missing-SpigotConfig-logCommands-check.patch b/patches/server/0812-Add-missing-SpigotConfig-logCommands-check.patch
index 2281ffc558..fca5a305ca 100644
--- a/patches/server/0812-Add-missing-SpigotConfig-logCommands-check.patch
+++ b/patches/server/0812-Add-missing-SpigotConfig-logCommands-check.patch
@@ -5,10 +5,10 @@ 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 672216f003fb82f8b77aad759a61e96d65e9fb9a..d23b96ba2db06e6d104e5c30aa9d38dfd552f304 100644
+index d8c9db7db74e71f37bd4f2bb8e25b27a46c8ac57..506d78925907de50a44a937cd6fd45c66af1d662 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2087,7 +2087,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2081,7 +2081,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void performSignedChatCommand(ServerboundChatCommandSignedPacket packet, LastSeenMessages lastSeenMessages) {
// CraftBukkit start
String command = "/" + packet.command();
diff --git a/patches/server/0814-Flying-Fall-Damage.patch b/patches/server/0814-Flying-Fall-Damage.patch
index 5cc39c618d..3438cddfbf 100644
--- a/patches/server/0814-Flying-Fall-Damage.patch
+++ b/patches/server/0814-Flying-Fall-Damage.patch
@@ -26,7 +26,7 @@ index 761e8a0c4e1db465c18892999e86885f27ca8075..230ffd3c4541ef8979605d733b6463e3
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index ed8d88b169c39d28d470f738a4be5d2889ac1a92..97f86a0fa2b8e83ea42e2b8cbdee05924ed6b842 100644
+index 3bd3ca5aae53fbeb1b2e32ae94a68ad01ade5419..c62c0393e9201194ea3aa28da88773ad562a276b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2566,6 +2566,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0815-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/server/0815-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
index 8da485006b..0842bf9fa8 100644
--- a/patches/server/0815-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
+++ b/patches/server/0815-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch
@@ -121,7 +121,7 @@ index a4a90df0b500fb440226b07462faaa87594b12a5..c389e2f891655bd8c9f307057dc1ad62
public static boolean canSetSpawn(Level world) {
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
-index c38b7148a3bbe7d29adea19d08dde4d9c8e29704..30b40d3715f98eff90d16aad491f5be5162be9e2 100644
+index 411c2de93c71e480f95229c882cdf43b8801edc8..489c17d002a5c3580637fda1c51f1bd63814bfa0 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
@@ -291,6 +291,12 @@ public final class CraftBlockStates {
diff --git a/patches/server/0817-config-for-disabling-entity-tag-tags.patch b/patches/server/0817-config-for-disabling-entity-tag-tags.patch
index f673ff71ba..79f922d624 100644
--- a/patches/server/0817-config-for-disabling-entity-tag-tags.patch
+++ b/patches/server/0817-config-for-disabling-entity-tag-tags.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] config for disabling entity tag tags
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index 3ac31c869d0e53410558ddeb79c21d3f5a3decb6..c36b5aa3cf7ecff839f7115bf9be4776bcee13c3 100644
+index df7b9d0693777fa203cc4d4a7519c5648e274bb6..d769dc472d3f12bf1e30ddd767a76659b734caac 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -502,6 +502,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/0818-Use-single-player-info-update-packet-on-join.patch b/patches/server/0818-Use-single-player-info-update-packet-on-join.patch
index 8da67e9136..be7116d308 100644
--- a/patches/server/0818-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0818-Use-single-player-info-update-packet-on-join.patch
@@ -5,10 +5,10 @@ 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 d23b96ba2db06e6d104e5c30aa9d38dfd552f304..59853da5b728f98bf8ef412f4214205ec87b4c2f 100644
+index 506d78925907de50a44a937cd6fd45c66af1d662..f4dc859a2bfe8c06f99ca6d2494fe1e90e4b6076 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3429,7 +3429,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3423,7 +3423,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.signedMessageDecoder = session.createMessageDecoder(this.player.getUUID());
this.chatMessageChain.append(() -> {
this.player.setChatSession(session);
diff --git a/patches/server/0820-Win-Screen-API.patch b/patches/server/0820-Win-Screen-API.patch
index 57ec093bb6..22903e6b33 100644
--- a/patches/server/0820-Win-Screen-API.patch
+++ b/patches/server/0820-Win-Screen-API.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API
public net.minecraft.server.level.ServerPlayer seenCredits
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 97f86a0fa2b8e83ea42e2b8cbdee05924ed6b842..89d15164b085e5ff8821257c00746f2a787b4209 100644
+index c62c0393e9201194ea3aa28da88773ad562a276b..fd41178576e8be545b8f31ed1954346eb66d4590 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1292,6 +1292,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0821-Remove-CraftItemStack-setAmount-null-assignment.patch b/patches/server/0821-Remove-CraftItemStack-setAmount-null-assignment.patch
index d70677da9f..83f46bb0c6 100644
--- a/patches/server/0821-Remove-CraftItemStack-setAmount-null-assignment.patch
+++ b/patches/server/0821-Remove-CraftItemStack-setAmount-null-assignment.patch
@@ -16,7 +16,7 @@ with less than zero amounts, so this code doesn't create
a problem with operations on the vanilla ItemStack.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 9c870aaa147478b46719702ee91615095d41cadb..f5f0f67fac6e94a0dc1936036212c4eece16b71e 100644
+index 76191fe677f3dd91ea55d53881f52952410a3a05..91c1cba51863aeac0f648089bb4b5297ed33320d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -160,7 +160,7 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0835-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0835-Treat-sequence-violations-like-they-should-be.patch
index 5509efdf09..6a727c191f 100644
--- a/patches/server/0835-Treat-sequence-violations-like-they-should-be.patch
+++ b/patches/server/0835-Treat-sequence-violations-like-they-should-be.patch
@@ -5,10 +5,10 @@ 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 59853da5b728f98bf8ef412f4214205ec87b4c2f..5b6ca40052e49e2955f1d3021238f0da9120dcf4 100644
+index f4dc859a2bfe8c06f99ca6d2494fe1e90e4b6076..321c1c6968fd52b1f3e11580b46a6be4368fb4ec 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1966,6 +1966,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1960,6 +1960,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
public void ackBlockChangesUpTo(int sequence) {
if (sequence < 0) {
diff --git a/patches/server/0837-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0837-Prevent-causing-expired-keys-from-impacting-new-join.patch
index f50dad6450..bf4d66e914 100644
--- a/patches/server/0837-Prevent-causing-expired-keys-from-impacting-new-join.patch
+++ b/patches/server/0837-Prevent-causing-expired-keys-from-impacting-new-join.patch
@@ -26,10 +26,10 @@ 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 5b6ca40052e49e2955f1d3021238f0da9120dcf4..a99be8bb56197067a7fdc6a8dc1ac9dfe25183e5 100644
+index 321c1c6968fd52b1f3e11580b46a6be4368fb4ec..9cbf1b7140fd7562a722fd93842bf1915682bb22 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -296,6 +296,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -295,6 +295,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private int knownMovePacketCount;
@Nullable
private RemoteChatSession chatSession;
@@ -37,7 +37,7 @@ index 5b6ca40052e49e2955f1d3021238f0da9120dcf4..a99be8bb56197067a7fdc6a8dc1ac9df
private SignedMessageChain.Decoder signedMessageDecoder;
private final LastSeenMessagesValidator lastSeenMessages = new LastSeenMessagesValidator(20);
private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault();
-@@ -408,6 +409,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -402,6 +403,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
}
@@ -51,7 +51,7 @@ index 5b6ca40052e49e2955f1d3021238f0da9120dcf4..a99be8bb56197067a7fdc6a8dc1ac9df
}
private int getMaximumFlyingTicks(Entity vehicle) {
-@@ -3427,6 +3435,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3421,6 +3429,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void resetPlayerChatState(RemoteChatSession session) {
this.chatSession = session;
diff --git a/patches/server/0846-Expand-PlayerItemMendEvent.patch b/patches/server/0846-Expand-PlayerItemMendEvent.patch
index 0b60cbe2fb..151d6e63ca 100644
--- a/patches/server/0846-Expand-PlayerItemMendEvent.patch
+++ b/patches/server/0846-Expand-PlayerItemMendEvent.patch
@@ -33,7 +33,7 @@ index adc3e6298a1946fdea029c82a9954fb5b6e24497..a207a31d80a302dbdfe80f8727222542
return k > 0 ? this.repairPlayerItems(player, k) : 0;
} else {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 89d15164b085e5ff8821257c00746f2a787b4209..22d32abd43ee4f0e0a15d083d3f0393f1f2c99b8 100644
+index fd41178576e8be545b8f31ed1954346eb66d4590..8cd7841b038615ab41dee342df8aa76a8c3a12a7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1835,11 +1835,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0849-Fix-block-place-logic.patch b/patches/server/0849-Fix-block-place-logic.patch
index 5af50bf21e..aab106847d 100644
--- a/patches/server/0849-Fix-block-place-logic.patch
+++ b/patches/server/0849-Fix-block-place-logic.patch
@@ -22,7 +22,7 @@ index 7d76cdc59984b156628273c8357485eb10046007..7180996027f70aef7afe32fb2adfce64
itemstack.consume(1, entityhuman);
return InteractionResult.sidedSuccess(world.isClientSide);
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 4958c780ebf61890c7da2087725329c807d19d27..df8d8f2130b8006793b2f509550de4d49e0aa2a0 100644
+index 179932c624912a39d6c4e53187ba9f9c23df42e5..144bcbcfc44d0c3467f30046889e225afc42e781 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -516,13 +516,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0850-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch b/patches/server/0850-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
index 4626deae75..405b73f3a4 100644
--- a/patches/server/0850-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
+++ b/patches/server/0850-Fix-spigot-sound-playing-for-BlockItem-ItemStacks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix spigot sound playing for BlockItem ItemStacks
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index df8d8f2130b8006793b2f509550de4d49e0aa2a0..38eccd642144c98dde32ae8e48a5b0d94a1ada06 100644
+index 144bcbcfc44d0c3467f30046889e225afc42e781..a11bb28b2b85057418d80db33c2568218ef8db99 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -567,7 +567,11 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0857-Add-event-for-player-editing-sign.patch b/patches/server/0857-Add-event-for-player-editing-sign.patch
index 638060c2bd..06f432d5d5 100644
--- a/patches/server/0857-Add-event-for-player-editing-sign.patch
+++ b/patches/server/0857-Add-event-for-player-editing-sign.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add event for player editing sign
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 38eccd642144c98dde32ae8e48a5b0d94a1ada06..9a261e93526ab48d24bfe5ca914064d8da4c262c 100644
+index a11bb28b2b85057418d80db33c2568218ef8db99..b00cf6f02bf1e85dbbbbb5b5c1201c643385576f 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -546,7 +546,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch
index 74eda7a640..92fa5af5fd 100644
--- a/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch
+++ b/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch
@@ -17,7 +17,7 @@ index da1b01c6489f96cfbded87e651e1d6df1dd0751a..c7533d6c512fd61ca77c1e07f844e0dd
case GLOW_ITEM_FRAME:
case PAINTING:
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index f5f0f67fac6e94a0dc1936036212c4eece16b71e..52e70f78dcefe69e110dba5300af26b7015f4d76 100644
+index 91c1cba51863aeac0f648089bb4b5297ed33320d..eb305f23898ecb0c1dbc4c659da0a23207d8d362 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -602,6 +602,7 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0866-Fix-BanList-API.patch b/patches/server/0866-Fix-BanList-API.patch
index 0fad5866ea..ac583e6965 100644
--- a/patches/server/0866-Fix-BanList-API.patch
+++ b/patches/server/0866-Fix-BanList-API.patch
@@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57
return null;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 22d32abd43ee4f0e0a15d083d3f0393f1f2c99b8..178c52a0752e433d028cd96c4e3451de6a590356 100644
+index 8cd7841b038615ab41dee342df8aa76a8c3a12a7..7bf40626a8fa3e5cd99612cc30681c31e5fcb744 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1733,23 +1733,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0873-Implement-PlayerFailMoveEvent.patch b/patches/server/0873-Implement-PlayerFailMoveEvent.patch
index 504f143bae..a0afcbdacd 100644
--- a/patches/server/0873-Implement-PlayerFailMoveEvent.patch
+++ b/patches/server/0873-Implement-PlayerFailMoveEvent.patch
@@ -5,10 +5,10 @@ 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 a99be8bb56197067a7fdc6a8dc1ac9dfe25183e5..46ad0471116267264dfc7c0dde0aee0676a0a334 100644
+index 9cbf1b7140fd7562a722fd93842bf1915682bb22..699d8d4b2333da1b3e83e39167de44ab69ab9029 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1272,8 +1272,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1266,8 +1266,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
double d0 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX(this.player.getX())); final double toX = d0; // Paper - OBFHELPER
double d1 = ServerGamePacketListenerImpl.clampVertical(packet.getY(this.player.getY())); final double toY = d1; // Paper - OBFHELPER
double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); final double toZ = d2; // Paper - OBFHELPER
@@ -19,7 +19,7 @@ index a99be8bb56197067a7fdc6a8dc1ac9dfe25183e5..46ad0471116267264dfc7c0dde0aee06
if (this.player.isPassenger()) {
this.player.absMoveTo(this.player.getX(), this.player.getY(), this.player.getZ(), f, f1);
-@@ -1340,8 +1340,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1334,8 +1334,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper start - Prevent moving into unloaded chunks
if (this.player.level().paperConfig().chunks.preventMovingIntoUnloadedChunks && (this.player.getX() != toX || this.player.getZ() != toZ) && !worldserver.areChunksLoadedForMove(this.player.getBoundingBox().expandTowards(new Vec3(toX, toY, toZ).subtract(this.player.position())))) {
@@ -36,7 +36,7 @@ index a99be8bb56197067a7fdc6a8dc1ac9dfe25183e5..46ad0471116267264dfc7c0dde0aee06
}
// Paper end - Prevent moving into unloaded chunks
-@@ -1350,9 +1356,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1344,9 +1350,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (d10 - d9 > Math.max(f2, Math.pow((double) (org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed), 2)) && !this.isSingleplayerOwner()) {
// CraftBukkit end
@@ -56,7 +56,7 @@ index a99be8bb56197067a7fdc6a8dc1ac9dfe25183e5..46ad0471116267264dfc7c0dde0aee06
}
}
}
-@@ -1414,14 +1427,31 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1408,14 +1421,31 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
d8 = d2 - this.player.getZ();
d10 = d6 * d6 + d7 * d7 + d8 * d8;
@@ -91,7 +91,7 @@ index a99be8bb56197067a7fdc6a8dc1ac9dfe25183e5..46ad0471116267264dfc7c0dde0aee06
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 {
-@@ -3456,4 +3486,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3450,4 +3480,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
InteractionResult run(ServerPlayer player, Entity entity, InteractionHand hand);
}
diff --git a/patches/server/0878-Only-capture-actual-tree-growth.patch b/patches/server/0878-Only-capture-actual-tree-growth.patch
index fe8b9e91d1..dc24233b9c 100644
--- a/patches/server/0878-Only-capture-actual-tree-growth.patch
+++ b/patches/server/0878-Only-capture-actual-tree-growth.patch
@@ -17,7 +17,7 @@ index 5bbadc890a72f1cb22c6881ebcc163b0c06a367a..4fa838bf97ede6e1c893ba64f53aa7af
}
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 9a261e93526ab48d24bfe5ca914064d8da4c262c..a3e1fdd3010faf06f43d2477c60558089cb18052 100644
+index b00cf6f02bf1e85dbbbbb5b5c1201c643385576f..fb85a7da9da8063c2b781377f62e7db34c467859 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -446,6 +446,7 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0885-Bandaid-fix-for-Effect.patch b/patches/server/0885-Bandaid-fix-for-Effect.patch
index e52b7d570c..e850224254 100644
--- a/patches/server/0885-Bandaid-fix-for-Effect.patch
+++ b/patches/server/0885-Bandaid-fix-for-Effect.patch
@@ -52,7 +52,7 @@ index 71733f918ed84b9879ac1b142ef6205c5e768a9c..7ee13c0a0cd12979c7f8cc2e403baf93
case COMPOSTER_FILL_ATTEMPT:
datavalue = ((Boolean) data) ? 1 : 0;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 80aa2aebc490e763d2b9dfd56bcaff94cb13cd91..e99ebf806f955a7c0c163ef546b884c794be8a2a 100644
+index 0c5c67480e16333641f4ebc89d892f7a0e2387fd..18c1cceb9e8b2873b24134a9e012633616634aae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1402,7 +1402,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -65,10 +65,10 @@ index 80aa2aebc490e763d2b9dfd56bcaff94cb13cd91..e99ebf806f955a7c0c163ef546b884c7
// Special case: the axis is optional for ELECTRIC_SPARK
Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 178c52a0752e433d028cd96c4e3451de6a590356..9e329d8d023ab601365a39a5ab8fb840f47fd623 100644
+index 7bf40626a8fa3e5cd99612cc30681c31e5fcb744..a83a9b9399efd843f249ebe0923706935109ee2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -914,7 +914,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -915,7 +915,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Preconditions.checkArgument(effect != null, "Effect cannot be null");
if (data != null) {
Preconditions.checkArgument(effect.getData() != null, "Effect.%s does not have a valid Data", effect);
diff --git a/patches/server/0889-Don-t-tab-complete-namespaced-commands-if-send-names.patch b/patches/server/0889-Don-t-tab-complete-namespaced-commands-if-send-names.patch
index 7969dabce2..f6d9c42ed2 100644
--- a/patches/server/0889-Don-t-tab-complete-namespaced-commands-if-send-names.patch
+++ b/patches/server/0889-Don-t-tab-complete-namespaced-commands-if-send-names.patch
@@ -11,10 +11,10 @@ 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 46ad0471116267264dfc7c0dde0aee0676a0a334..37268ba38f7c2e4cbc731227f82d55004da27ae6 100644
+index 699d8d4b2333da1b3e83e39167de44ab69ab9029..6d5cf94979fba9d27f91b51682a3b7b3f67c07ea 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -823,6 +823,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -817,6 +817,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ParseResults<CommandSourceStack> parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack());
this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> {
diff --git a/patches/server/0893-Add-Listing-API-for-Player.patch b/patches/server/0893-Add-Listing-API-for-Player.patch
index 2e5942b4de..bcd0417d49 100644
--- a/patches/server/0893-Add-Listing-API-for-Player.patch
+++ b/patches/server/0893-Add-Listing-API-for-Player.patch
@@ -119,10 +119,10 @@ index ea04eb049e16d1027d15f9863d1fcd16f090c464..0aa28caa1254137c0bae8e213bd08c9a
// Paper end - Use single player info update packet on join
player.sentListPacket = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 9e329d8d023ab601365a39a5ab8fb840f47fd623..7321575552591477c4f22f09ba15fcadfb4727e3 100644
+index a83a9b9399efd843f249ebe0923706935109ee2f..e8f90e9fd0fb2a6ae3419be759892f46ee459330 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -198,6 +198,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -199,6 +199,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private final ConversationTracker conversationTracker = new ConversationTracker();
private final Set<String> channels = new HashSet<String>();
private final Map<UUID, Set<WeakReference<Plugin>>> invertedVisibilityEntities = new HashMap<>();
diff --git a/patches/server/0899-Add-PlayerPickItemEvent.patch b/patches/server/0899-Add-PlayerPickItemEvent.patch
index 014619f876..a611fad439 100644
--- a/patches/server/0899-Add-PlayerPickItemEvent.patch
+++ b/patches/server/0899-Add-PlayerPickItemEvent.patch
@@ -5,10 +5,10 @@ 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 37268ba38f7c2e4cbc731227f82d55004da27ae6..533cba358d5c3ab396002b7c3a68c4ea3c75e842 100644
+index 6d5cf94979fba9d27f91b51682a3b7b3f67c07ea..cab3b97e1153362edf6c48bf30bf4035430e8bf3 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -938,8 +938,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -932,8 +932,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.disconnect("Invalid hotbar selection (Hacking?)", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause
return;
}
diff --git a/patches/server/0903-Implement-OfflinePlayer-isConnected.patch b/patches/server/0903-Implement-OfflinePlayer-isConnected.patch
index 50f3fabf75..0a5dd1a000 100644
--- a/patches/server/0903-Implement-OfflinePlayer-isConnected.patch
+++ b/patches/server/0903-Implement-OfflinePlayer-isConnected.patch
@@ -23,10 +23,10 @@ index 4d654c4f0b6210a9841427789ba70ce5d1d308be..9d93130f23addb18b97d7f5ec013faef
public String getName() {
Player player = this.getPlayer();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 7321575552591477c4f22f09ba15fcadfb4727e3..89b71e30798473b175a916b157db444fb895b5a9 100644
+index e8f90e9fd0fb2a6ae3419be759892f46ee459330..3a3e909ed68f7abc1ec5f79c51783334372488d0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -253,6 +253,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -254,6 +254,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.server.getPlayer(this.getUniqueId()) != null;
}
diff --git a/patches/server/0904-Fix-inventory-desync.patch b/patches/server/0904-Fix-inventory-desync.patch
index 683a9dc789..3381bed750 100644
--- a/patches/server/0904-Fix-inventory-desync.patch
+++ b/patches/server/0904-Fix-inventory-desync.patch
@@ -5,10 +5,10 @@ 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 b7cc2b5ee85e8e6a5c8cb8ce1f3c934773be32e6..7f93b60e9bdfc2739c77f4dfa69031fbe2097d65 100644
+index 70a151c8d109780350423eba5a951733ac855f23..90cde88f0f1c2991354685c0423475b98e0c28e5 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1464,6 +1464,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1467,6 +1467,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
// CraftBukkit start - fire PlayerLeashEntityEvent
if (CraftEventFactory.callPlayerLeashEntityEvent(this, player, player, hand).isCancelled()) {
((ServerPlayer) player).connection.send(new ClientboundSetEntityLinkPacket(this, this.getLeashHolder()));
diff --git a/patches/server/0909-Add-slot-sanity-checks-in-container-clicks.patch b/patches/server/0909-Add-slot-sanity-checks-in-container-clicks.patch
index 0e40777c77..3ee111d847 100644
--- a/patches/server/0909-Add-slot-sanity-checks-in-container-clicks.patch
+++ b/patches/server/0909-Add-slot-sanity-checks-in-container-clicks.patch
@@ -5,10 +5,10 @@ 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 533cba358d5c3ab396002b7c3a68c4ea3c75e842..43aa78291cc88de0060dc8ed7ff09b7e2628e294 100644
+index cab3b97e1153362edf6c48bf30bf4035430e8bf3..4850971b46586cc6a4aeeba014bc6dcf6453d820 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2978,6 +2978,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2972,6 +2972,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
break;
case SWAP:
if ((packet.getButtonNum() >= 0 && packet.getButtonNum() < 9) || packet.getButtonNum() == 40) {
diff --git a/patches/server/0911-Allow-proper-checking-of-empty-item-stacks.patch b/patches/server/0911-Allow-proper-checking-of-empty-item-stacks.patch
index 431623fe02..906d0184e4 100644
--- a/patches/server/0911-Allow-proper-checking-of-empty-item-stacks.patch
+++ b/patches/server/0911-Allow-proper-checking-of-empty-item-stacks.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow proper checking of empty item stacks
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 52e70f78dcefe69e110dba5300af26b7015f4d76..0e7a78d0b8b637de3076f1da25dcdfe32bf8ddf3 100644
+index eb305f23898ecb0c1dbc4c659da0a23207d8d362..0790f10122546bff1079b522b08d117426364a95 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -36,12 +36,19 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0912-Fix-silent-equipment-change-for-mobs.patch b/patches/server/0912-Fix-silent-equipment-change-for-mobs.patch
index 0232f6df8b..c75be4adb1 100644
--- a/patches/server/0912-Fix-silent-equipment-change-for-mobs.patch
+++ b/patches/server/0912-Fix-silent-equipment-change-for-mobs.patch
@@ -5,10 +5,10 @@ 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 7f93b60e9bdfc2739c77f4dfa69031fbe2097d65..506101a692c73f6acf2e647c3ab18024ccdff866 100644
+index 90cde88f0f1c2991354685c0423475b98e0c28e5..7f781afb996dee380487f5be77c2149525ef0cca 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -1150,19 +1150,26 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -1153,19 +1153,26 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
@Override
public void setItemSlot(EquipmentSlot slot, ItemStack stack) {
diff --git a/patches/server/0923-Add-player-idle-duration-API.patch b/patches/server/0923-Add-player-idle-duration-API.patch
index 040eb5d834..1184e24e5b 100644
--- a/patches/server/0923-Add-player-idle-duration-API.patch
+++ b/patches/server/0923-Add-player-idle-duration-API.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Add player idle duration API
Implements API for getting and resetting a player's idle duration.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 89b71e30798473b175a916b157db444fb895b5a9..16e3c449afb01b423d37815828c4ba15288785f0 100644
+index 3a3e909ed68f7abc1ec5f79c51783334372488d0..99e676dd5183c1f696afdd2b207ddf5056ba68ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3399,6 +3399,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3395,6 +3395,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
index 68382e69e4..3f057075ef 100644
--- a/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
+++ b/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index 16e3c449afb01b423d37815828c4ba15288785f0..d815e30be07db0c2eb690cc1985938d43956f75a 100644
+index 99e676dd5183c1f696afdd2b207ddf5056ba68ef..05b27413b50255b8862f8feab2cd60e260919971 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1125,7 +1125,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0929-Add-predicate-for-blocks-when-raytracing.patch b/patches/server/0929-Add-predicate-for-blocks-when-raytracing.patch
index e41b3d1a5e..712ca7a8c8 100644
--- a/patches/server/0929-Add-predicate-for-blocks-when-raytracing.patch
+++ b/patches/server/0929-Add-predicate-for-blocks-when-raytracing.patch
@@ -47,7 +47,7 @@ index c978f3b2d42f512e982f289e76c2422e41b7eec6..bb8e962e63c7a2d931f9bd7f7c002aa3
Vec3 vec3d = raytrace1.getFrom().subtract(raytrace1.getTo());
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index e99ebf806f955a7c0c163ef546b884c794be8a2a..420af35719f1e8b13cb848f94ca5f084057354af 100644
+index 18c1cceb9e8b2873b24134a9e012633616634aae..3abb776f546edb84307f374943427be02dc4c911 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1136,9 +1136,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0933-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch b/patches/server/0933-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
index b51a75d52a..3d51508d96 100644
--- a/patches/server/0933-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
+++ b/patches/server/0933-Fix-strikeLightningEffect-powers-lightning-rods-and-.patch
@@ -45,7 +45,7 @@ index 0471d9c85af02133f99cca4e181b83b58a3f1abc..4f701788bd21b61cad251a3a88f9bc41
BlockState iblockdata = BaseFireBlock.getState(this.level(), blockposition);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 420af35719f1e8b13cb848f94ca5f084057354af..c479fcf24025ba2c8a48dbc2b9b3c47d398be486 100644
+index 3abb776f546edb84307f374943427be02dc4c911..039efd0b8eb141de044668a5633f26eee238c2b0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -768,7 +768,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0939-Don-t-fire-sync-events-during-worldgen.patch b/patches/server/0939-Don-t-fire-sync-events-during-worldgen.patch
index f7e2f23678..492d95271a 100644
--- a/patches/server/0939-Don-t-fire-sync-events-during-worldgen.patch
+++ b/patches/server/0939-Don-t-fire-sync-events-during-worldgen.patch
@@ -48,7 +48,7 @@ index acf2cc8afaf4dee193ecf3bfc4a39b8c39ffc376..ee38f76e46c20e9fadfb5d4d602b7b82
this.entityData.set(Entity.DATA_POSE, pose);
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index c36b5aa3cf7ecff839f7115bf9be4776bcee13c3..066c7033fdd9506a0edc5f5a0ec3bb1f1fbae336 100644
+index d769dc472d3f12bf1e30ddd767a76659b734caac..8c7cc9c5af0b8d8bef9b6e2d3d3e723cd76f3212 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -592,9 +592,15 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/0940-Add-Structure-check-API.patch b/patches/server/0940-Add-Structure-check-API.patch
index 1471472141..b1501eb55b 100644
--- a/patches/server/0940-Add-Structure-check-API.patch
+++ b/patches/server/0940-Add-Structure-check-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Structure check API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index c479fcf24025ba2c8a48dbc2b9b3c47d398be486..9483c268c19f469943ee0f344a8c599094c64f58 100644
+index 039efd0b8eb141de044668a5633f26eee238c2b0..4a62482b7c73728de8a94542e8978e836540b328 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -237,6 +237,20 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0941-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch b/patches/server/0941-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
index 5f689dc7c4..8568cfc5bf 100644
--- a/patches/server/0941-Fix-CraftMetaItem-getAttributeModifier-duplication-c.patch
+++ b/patches/server/0941-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 93350ee9ad3a6309e6baae97105328f78d485656..62dc63e2825d4144b80193b94f3e2b0d070b39c9 100644
+index a3ae3203e04dfb791b8aa537a303f4a4bd6cbab6..549d06b83b195c0a0207d18850b98d1e6e611460 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/0943-Dont-resend-blocks-on-interactions.patch b/patches/server/0943-Dont-resend-blocks-on-interactions.patch
index 53bb0d32a1..384e9d45a5 100644
--- a/patches/server/0943-Dont-resend-blocks-on-interactions.patch
+++ b/patches/server/0943-Dont-resend-blocks-on-interactions.patch
@@ -149,7 +149,7 @@ index 6d494b80ae002aea00afa44adf83dad1ae5bbbc1..49557d6f22c5725c663a231deab019d4
return false;
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index a3e1fdd3010faf06f43d2477c60558089cb18052..655fa32422c24c81d682791110413e4c771677e0 100644
+index fb85a7da9da8063c2b781377f62e7db34c467859..2d2b436cae5693051df14e5777d385d38d5f4dd6 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -480,10 +480,12 @@ public final class ItemStack implements DataComponentHolder {
diff --git a/patches/server/0947-Add-experience-points-API.patch b/patches/server/0947-Add-experience-points-API.patch
index 1a02324f3b..c5f04f3fe4 100644
--- a/patches/server/0947-Add-experience-points-API.patch
+++ b/patches/server/0947-Add-experience-points-API.patch
@@ -18,7 +18,7 @@ index 230ffd3c4541ef8979605d733b6463e39cd00206..446556028028b25c35dbf3d099bf14a5
// Paper start - send while respecting visibility
private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d815e30be07db0c2eb690cc1985938d43956f75a..be57780bc7b1ecfdd6683d785fef8055fce0e222 100644
+index 05b27413b50255b8862f8feab2cd60e260919971..84e7c91c56c306b6956520287364b87a297c14cf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1902,6 +1902,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
diff --git a/patches/server/0948-Add-drops-to-shear-events.patch b/patches/server/0948-Add-drops-to-shear-events.patch
index 0cc7dc88b2..093e1d3325 100644
--- a/patches/server/0948-Add-drops-to-shear-events.patch
+++ b/patches/server/0948-Add-drops-to-shear-events.patch
@@ -264,7 +264,7 @@ index 822bfebc779646dde655239ac217bad011a9eee4..444287fea080182df533198f5c659533
public static Cancellable handleStatisticsIncrease(net.minecraft.world.entity.player.Player entityHuman, net.minecraft.stats.Stat<?> statistic, int current, int newValue) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index 0e7a78d0b8b637de3076f1da25dcdfe32bf8ddf3..e37656794bce0221c9869147f87d26a2c8290eef 100644
+index 0790f10122546bff1079b522b08d117426364a95..2ba771efa61e109804f3141e95f77613ac952ed1 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -65,6 +65,16 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0950-Validate-ResourceLocation-in-NBT-reading.patch b/patches/server/0950-Validate-ResourceLocation-in-NBT-reading.patch
index 7028c34a8c..0e1c0b7e08 100644
--- a/patches/server/0950-Validate-ResourceLocation-in-NBT-reading.patch
+++ b/patches/server/0950-Validate-ResourceLocation-in-NBT-reading.patch
@@ -40,7 +40,7 @@ index d93b623ce973b63d4f3a77bfe459f51af7cb3c1c..2c4553312f2f37f8613ac813708b4b95
this.path = path;
}
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index 066c7033fdd9506a0edc5f5a0ec3bb1f1fbae336..d2503224a1697636b3f9c26126d6bb201143076a 100644
+index 8c7cc9c5af0b8d8bef9b6e2d3d3e723cd76f3212..56b51096ca4147363a843accf6ef2510f05e8f1a 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -623,7 +623,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -72,10 +72,10 @@ 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 506101a692c73f6acf2e647c3ab18024ccdff866..4f2148d13fc26ad2c43460f46c376832c1bb8150 100644
+index 7f781afb996dee380487f5be77c2149525ef0cca..0fd307e214f544284606ac8aa57f3f6bdca8bca6 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
-@@ -642,7 +642,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+@@ -645,7 +645,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
this.setLeftHanded(nbt.getBoolean("LeftHanded"));
if (nbt.contains("DeathLootTable", 8)) {
diff --git a/patches/server/0966-Deprecate-ItemStack-setType.patch b/patches/server/0966-Deprecate-ItemStack-setType.patch
index f13f299b73..a252511a0b 100644
--- a/patches/server/0966-Deprecate-ItemStack-setType.patch
+++ b/patches/server/0966-Deprecate-ItemStack-setType.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Deprecate ItemStack#setType
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
-index e37656794bce0221c9869147f87d26a2c8290eef..7c54b05f0eb734507e36f85690eb0b2832d94ce8 100644
+index 2ba771efa61e109804f3141e95f77613ac952ed1..39e46f3f4b51fce9bc492fa498aa7427b27b78d1 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -715,4 +715,24 @@ public final class CraftItemStack extends ItemStack {
diff --git a/patches/server/0967-Add-CartographyItemEvent.patch b/patches/server/0967-Add-CartographyItemEvent.patch
index 12d2f33df8..4502c9aa8a 100644
--- a/patches/server/0967-Add-CartographyItemEvent.patch
+++ b/patches/server/0967-Add-CartographyItemEvent.patch
@@ -5,10 +5,10 @@ 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 43aa78291cc88de0060dc8ed7ff09b7e2628e294..d6c767c8fee799e895058c8ef3dad96cc580675d 100644
+index 4850971b46586cc6a4aeeba014bc6dcf6453d820..4db287b7d0d25b0e2b4943a02a72964c387ca321 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -3100,6 +3100,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -3094,6 +3094,19 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
diff --git a/patches/server/0968-More-Raid-API.patch b/patches/server/0968-More-Raid-API.patch
index 64b69fb2f0..14fcb7449a 100644
--- a/patches/server/0968-More-Raid-API.patch
+++ b/patches/server/0968-More-Raid-API.patch
@@ -86,7 +86,7 @@ index b8ce1c1c2447f9cff1717bfcfd6eb911ade0d4b3..51f21af9d75769abdcba713b9aa33392
+ // Paper end - more Raid API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 9483c268c19f469943ee0f344a8c599094c64f58..9dbdbdda2f55c33d98fc7cd00327b275d9fc5c9b 100644
+index 4a62482b7c73728de8a94542e8978e836540b328..34f03dd227181a03fa90845067424a26382bab9b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2373,6 +2373,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0976-Improve-tag-parser-handling.patch b/patches/server/0976-Improve-tag-parser-handling.patch
index 7c29564a49..6f346ac4f2 100644
--- a/patches/server/0976-Improve-tag-parser-handling.patch
+++ b/patches/server/0976-Improve-tag-parser-handling.patch
@@ -169,10 +169,10 @@ 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 d6c767c8fee799e895058c8ef3dad96cc580675d..6061f7104dd2094e316739a1b0e541475aed40b0 100644
+index 4db287b7d0d25b0e2b4943a02a72964c387ca321..9c5614d42656d1306e6f0db961391e62a5f42ee7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -769,6 +769,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -763,6 +763,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
// Paper end - Don't suggest if tab-complete is disabled
@@ -186,7 +186,7 @@ index d6c767c8fee799e895058c8ef3dad96cc580675d..6061f7104dd2094e316739a1b0e54147
// Paper start - AsyncTabCompleteEvent
TAB_COMPLETE_EXECUTOR.execute(() -> this.handleCustomCommandSuggestions0(packet));
}
-@@ -821,6 +828,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -815,6 +822,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void sendServerSuggestions(final ServerboundCommandSuggestionPacket packet, final StringReader stringreader) {
// Paper end - AsyncTabCompleteEvent
ParseResults<CommandSourceStack> parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack());
diff --git a/patches/server/0984-Starlight.patch b/patches/server/0984-Starlight.patch
index 0a239e7bcd..ab183ba00a 100644
--- a/patches/server/0984-Starlight.patch
+++ b/patches/server/0984-Starlight.patch
@@ -5410,7 +5410,7 @@ index 88f0aca2da0e14ed5ec0513944fa0ba28b73b5d1..01d6b8683a9fa30d05b03ebfef8ee2dc
return nbt != null ? ChunkStatus.byName(nbt.getString("Status")).getChunkType() : ChunkType.PROTOCHUNK;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 9dbdbdda2f55c33d98fc7cd00327b275d9fc5c9b..a7aafc754b9c69f19d38504a7bbe551275cd0c42 100644
+index 34f03dd227181a03fa90845067424a26382bab9b..4b6a04e47f5d4c071607516519098fab317dcf12 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -507,12 +507,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0985-Rewrite-chunk-system.patch b/patches/server/0985-Rewrite-chunk-system.patch
index 72409d4ddd..3c137de96c 100644
--- a/patches/server/0985-Rewrite-chunk-system.patch
+++ b/patches/server/0985-Rewrite-chunk-system.patch
@@ -21547,7 +21547,7 @@ index 5467a5985eaf159e2a4f19dd5723d05d8f2d598e..66fa93a44a348f9cd300ec0c4a2d09a7
// Paper start - Adventure
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index a7aafc754b9c69f19d38504a7bbe551275cd0c42..0d8253f12f8da7f8859b87590bed08ba13df9295 100644
+index 4b6a04e47f5d4c071607516519098fab317dcf12..01fc74e6cc8ea8808b821583afb26309587dc003 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -518,10 +518,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -21649,10 +21649,10 @@ index a7aafc754b9c69f19d38504a7bbe551275cd0c42..0d8253f12f8da7f8859b87590bed08ba
// Paper start - implement pointers
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index be57780bc7b1ecfdd6683d785fef8055fce0e222..d6bae0731fc0e43fd3bdc775a4c5255d79891c7a 100644
+index 84e7c91c56c306b6956520287364b87a297c14cf..0b0bef1a8a12029c1da775f1cad5c1af42544179 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3462,31 +3462,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3458,31 +3458,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public int getViewDistance() {
diff --git a/patches/server/0992-Fix-World-isChunkGenerated-calls.patch b/patches/server/0992-Fix-World-isChunkGenerated-calls.patch
index 26ca3e945a..1aa77b4f43 100644
--- a/patches/server/0992-Fix-World-isChunkGenerated-calls.patch
+++ b/patches/server/0992-Fix-World-isChunkGenerated-calls.patch
@@ -152,7 +152,7 @@ index c2838ae91b7f078369b63503df57a1eb5d2b0df5..c33640859aab837c85f3e860fe2241a0
// Paper start - don't write garbage data to disk if writing serialization fails
dataoutputstream.close(); // Only write if successful
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 0d8253f12f8da7f8859b87590bed08ba13df9295..77d96f76440f34630c2faf2526503522e4451ffd 100644
+index 01fc74e6cc8ea8808b821583afb26309587dc003..0ce0589204a01051aa1251d6af752eed4ac69c0f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -391,9 +391,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/0994-Entity-Activation-Range-2.0.patch b/patches/server/0994-Entity-Activation-Range-2.0.patch
index 2e387df523..545f5b69f1 100644
--- a/patches/server/0994-Entity-Activation-Range-2.0.patch
+++ b/patches/server/0994-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 4f2148d13fc26ad2c43460f46c376832c1bb8150..146ec4bb70ae7b1d2b7705daa150e5fcfe6ec223 100644
+index 0fd307e214f544284606ac8aa57f3f6bdca8bca6..eb2fd14f175a4ffca920ca116fb8d0d381286dc5 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/0996-Anti-Xray.patch b/patches/server/0996-Anti-Xray.patch
index b7302c5a81..c69b6fabaa 100644
--- a/patches/server/0996-Anti-Xray.patch
+++ b/patches/server/0996-Anti-Xray.patch
@@ -1586,7 +1586,7 @@ index 66fa93a44a348f9cd300ec0c4a2d09a7a2bf47e1..ac9873c430a3ece5c4b5f5305496639a
// Paper start - Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 77d96f76440f34630c2faf2526503522e4451ffd..bb15f318019584f68ce3aeb989d560070665a77d 100644
+index 0ce0589204a01051aa1251d6af752eed4ac69c0f..f2b20ed5063a293f0b464548f590d652170cd1d8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -541,11 +541,16 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/server/1000-Entity-load-save-limit-per-chunk.patch b/patches/server/1000-Entity-load-save-limit-per-chunk.patch
index 73051d43ff..1dbf729bda 100644
--- a/patches/server/1000-Entity-load-save-limit-per-chunk.patch
+++ b/patches/server/1000-Entity-load-save-limit-per-chunk.patch
@@ -9,7 +9,7 @@ defaults are only included for certain entites, this allows setting
limits for any entity type.
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
-index d2503224a1697636b3f9c26126d6bb201143076a..9abc274049ccc7b77286676313f7010e76aa199e 100644
+index 56b51096ca4147363a843accf6ef2510f05e8f1a..a46bf73c608641bf1f00fd55242de71a0f2ee06e 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -649,9 +649,20 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
diff --git a/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch b/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch
index 5631821913..c357a07cf3 100644
--- a/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch
+++ b/patches/server/1016-Use-Velocity-compression-and-cipher-natives.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Use Velocity compression and cipher natives
diff --git a/build.gradle.kts b/build.gradle.kts
-index 2fb342f9d86e169571070b2b40538633f4b0d7cf..e2e3abe6a4b837fcef96ce7da6679b14afba0519 100644
+index 41767422b521ff095592d799b14b2f36c3b5c5cb..aab4d1f15745bce838329ba0359e3f9ca70f2e1f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -38,6 +38,11 @@ dependencies {
@@ -352,7 +352,7 @@ index a08d9aa6e420f691795df9b627a9cd5b5c0112c5..52f537b7bfbdeaad9d17c0e88a1ed1c8
protected void initChannel(Channel channel) {
try {
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
-index 21d97c2b533a6528dd73c4e514d49273c120e171..cb25d42ba40bd0901bbe0d8399e5d8e87988706f 100644
+index 3333cb70744dc7ef8b181d332b63766aaaaad11f..765cf12c1558afd9686793b18388fc229c55d2d8 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -274,12 +274,14 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
diff --git a/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch
index 52db1e5fb8..378e882366 100644
--- a/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch
+++ b/patches/server/1019-Optimise-collision-checking-in-player-move-packet-ha.patch
@@ -8,10 +8,10 @@ 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 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f29733e52f 100644
+index 9c5614d42656d1306e6f0db961391e62a5f42ee7..ae927c2cdf151b901822636a2543668f85946430 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -578,7 +578,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -572,7 +572,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
@@ -20,7 +20,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
d6 = d3 - this.vehicleLastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d4 - this.vehicleLastGoodY - 1.0E-6D; // Paper - diff on change, used for checking large move vectors above
-@@ -594,6 +594,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -588,6 +588,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
entity.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
@@ -28,7 +28,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
double d11 = d7;
d6 = d3 - entity.getX();
-@@ -607,15 +608,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -601,15 +602,23 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean flag2 = false;
if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot
@@ -55,7 +55,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
entity.absMoveTo(d0, d1, d2, f, f1);
this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
this.send(new ClientboundMoveVehiclePacket(entity));
-@@ -694,7 +703,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -688,7 +697,32 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
private boolean noBlocksAround(Entity entity) {
@@ -89,7 +89,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
}
@Override
-@@ -1289,7 +1323,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1283,7 +1317,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (this.awaitingPositionFromClient != null) {
@@ -98,7 +98,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
this.awaitingTeleportTime = this.tickCount;
this.teleport(this.awaitingPositionFromClient.x, this.awaitingPositionFromClient.y, this.awaitingPositionFromClient.z, this.player.getYRot(), this.player.getXRot());
}
-@@ -1398,7 +1432,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1392,7 +1426,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
@@ -107,7 +107,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
d6 = d0 - this.lastGoodX; // Paper - diff on change, used for checking large move vectors above
d7 = d1 - this.lastGoodY; // Paper - diff on change, used for checking large move vectors above
-@@ -1440,6 +1474,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1434,6 +1468,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.move(MoverType.PLAYER, new Vec3(d6, d7, d8));
this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move
@@ -115,7 +115,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
// Paper start - prevent position desync
if (this.awaitingPositionFromClient != null) {
return; // ... thanks Mojang for letting move calls teleport across dimensions.
-@@ -1470,7 +1505,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1464,7 +1499,17 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
// Paper start - Add fail move event
@@ -134,7 +134,7 @@ index 6061f7104dd2094e316739a1b0e541475aed40b0..88fc56fa521c36accd807ca1704136f2
if (teleportBack) {
io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.CLIPPED_INTO_BLOCK,
toX, toY, toZ, toYaw, toPitch, false);
-@@ -1576,6 +1621,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1570,6 +1615,33 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
}
diff --git a/patches/server/1024-Properly-resend-entities.patch b/patches/server/1024-Properly-resend-entities.patch
index 43f7ee5ae7..26e6823751 100644
--- a/patches/server/1024-Properly-resend-entities.patch
+++ b/patches/server/1024-Properly-resend-entities.patch
@@ -81,10 +81,10 @@ 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 88fc56fa521c36accd807ca1704136f29733e52f..a771f78f63e4f26c0ba411a3c355f8dfbb5f4a61 100644
+index ae927c2cdf151b901822636a2543668f85946430..b1e78d2bf20dc5ee93090615cce39d9f0ce0d80f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -2010,6 +2010,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2004,6 +2004,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
if (cancelled) {
@@ -92,7 +92,7 @@ index 88fc56fa521c36accd807ca1704136f29733e52f..a771f78f63e4f26c0ba411a3c355f8df
this.player.getBukkitEntity().updateInventory(); // SPIGOT-2524
return;
}
-@@ -2794,7 +2795,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -2788,7 +2789,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Entity in bucket - SPIGOT-4048 and SPIGOT-6859a
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
diff --git a/patches/server/1025-Optimize-Hoppers.patch b/patches/server/1025-Optimize-Hoppers.patch
index 8dc3029475..9f935dd7a9 100644
--- a/patches/server/1025-Optimize-Hoppers.patch
+++ b/patches/server/1025-Optimize-Hoppers.patch
@@ -62,7 +62,7 @@ index 88549de2768149885c4eabbaaa71a38341453aed..1adcbfb16ea1fe3378cde7c53e886884
this.profiler.push(() -> {
String s = String.valueOf(worldserver);
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index 655fa32422c24c81d682791110413e4c771677e0..ee8cbff27506a9e26ac0e058b1c361c4f8006eb1 100644
+index 2d2b436cae5693051df14e5777d385d38d5f4dd6..3d6ea1a9bd87ee9ce34cf95db8835e5729b1ade0 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -795,7 +795,13 @@ public final class ItemStack implements DataComponentHolder {
@@ -101,7 +101,7 @@ index a7dfad2696e7145af1355a5db132af14d09a6f30..b0421823684ff6b9474b81675742d2ee
}
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
-index 43ee9017fbbe0a5485a281712f76c23b059a849b..57dc38e39a11fa51f0d27830b709fe5b7ae9dc8b 100644
+index 92086ca118d55ec49cefa5bf18977f8706e3e4b4..f78343b50641a63110b8867ad84298ba9e873c22 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -156,6 +156,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -388,7 +388,7 @@ index 43ee9017fbbe0a5485a281712f76c23b059a849b..57dc38e39a11fa51f0d27830b709fe5b
- destinationInventory = new CraftInventory(iinventory);
- }
-
-- InventoryMoveItemEvent event = new InventoryMoveItemEvent(iinventory.getOwner().getInventory(), oitemstack, destinationInventory, true);
+- InventoryMoveItemEvent event = new InventoryMoveItemEvent(blockEntity.getOwner().getInventory(), oitemstack, destinationInventory, true);
- world.getCraftServer().getPluginManager().callEvent(event);
- if (event.isCancelled()) {
- blockEntity.setItem(i, itemstack);
@@ -431,7 +431,7 @@ index 43ee9017fbbe0a5485a281712f76c23b059a849b..57dc38e39a11fa51f0d27830b709fe5b
+ // destinationInventory = new CraftInventory(iinventory);
+ // }
+
-+ // InventoryMoveItemEvent event = new InventoryMoveItemEvent(iinventory.getOwner().getInventory(), oitemstack, destinationInventory, true);
++ // InventoryMoveItemEvent event = new InventoryMoveItemEvent(tileentityhopper.getOwner().getInventory(), oitemstack, destinationInventory, true);
+ // world.getCraftServer().getPluginManager().callEvent(event);
+ // if (event.isCancelled()) {
+ // blockEntity.setItem(i, itemstack);
diff --git a/patches/server/1035-API-for-checking-sent-chunks.patch b/patches/server/1035-API-for-checking-sent-chunks.patch
index 74178c0403..18a11ca0f3 100644
--- a/patches/server/1035-API-for-checking-sent-chunks.patch
+++ b/patches/server/1035-API-for-checking-sent-chunks.patch
@@ -21,10 +21,10 @@ index ee58c67cb2bd78159cce19ec75f13dc6168a0e7a..149cfb0587299f72fcfddf395fb71b70
// TODO rebase into util patch
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-index d6bae0731fc0e43fd3bdc775a4c5255d79891c7a..48cc32b1af151f73f97bf2a2def97edb3fbff609 100644
+index 0b0bef1a8a12029c1da775f1cad5c1af42544179..f07173f3ed5a7966bbe5306d81eb3df8b38ca7d1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
-@@ -3454,6 +3454,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+@@ -3450,6 +3450,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end
diff --git a/work/Bukkit b/work/Bukkit
-Subproject 9ea9bb32fe341b8308f6071bcc5f31c1e73a9d2
+Subproject 69fa46950cc65264d4e4db9f22e58d5f57e47f4
diff --git a/work/CraftBukkit b/work/CraftBukkit
-Subproject 062d2bb13b341b2bcc9a504677b2196c6f68ecb
+Subproject 90f1059bae911966b5629b3ec1ff242d109fde7