From ab9a3db5ba76384531ad52299344dea588a367b2 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 3 Dec 2024 19:05:31 +0100 Subject: [PATCH] More work --- ...ion-calls-in-plugins-using-internals.patch | 4 +- ...blocking-on-Network-Manager-creation.patch | 0 ...e-profiles-that-have-no-UUID-and-no-.patch | 0 ...setting-for-proxy-online-mode-status.patch | 0 ...ptimise-BlockState-s-hashCode-equals.patch | 0 ...onfigurable-packet-in-spam-threshold.patch | 4 +- ...06-Configurable-flying-kick-messages.patch | 6 +- .../server/0107-Add-EntityZapEvent.patch | 4 +- ...-entity-nbt-data-from-falling-blocks.patch | 2 +- ...109-Cache-user-authenticator-threads.patch | 0 ...0-Allow-Reloading-of-Command-Aliases.patch | 0 ...1-Add-source-to-PlayerExpChangeEvent.patch | 4 +- .../0112-Add-ProjectileCollideEvent.patch | 0 ...vent-Pathfinding-out-of-World-Border.patch | 0 ...ize-Level.hasChunkAt-BlockPosition-Z.patch | 4 +- ...-Bound-Treasure-Maps-to-World-Border.patch | 4 +- ...figurable-Cartographer-Treasure-Maps.patch | 4 +- ...-to-control-if-armor-stands-can-move.patch | 0 .../0118-String-based-Action-Bar-API.patch | 2 +- ...19-Properly-fix-item-duplication-bug.patch | 4 +- .../server/0120-Firework-API-s.patch | 4 +- .../0121-PlayerTeleportEndGatewayEvent.patch | 4 +- ...rovide-E-TE-Chunk-count-stat-methods.patch | 6 +- .../0123-Enforce-Sync-Player-Saves.patch | 0 ...PI-for-Reason-Source-Triggering-play.patch | 44 ++++++------ .../server/0125-Cap-Entity-Collisions.patch | 6 +- ...e-CraftScheduler-Async-Task-Debugger.patch | 0 ...le-async-calls-to-restart-the-server.patch | 2 +- ...ke-parrots-stay-on-shoulders-despite.patch | 20 +++--- ...n-option-to-prevent-player-names-fro.patch | 0 ...urable-option-to-disable-creeper-lin.patch | 0 .../server/0131-Item-canEntityPickup.patch | 4 +- ...PlayerPickupItemEvent-setFlyAtPlayer.patch | 0 .../0133-PlayerAttemptPickupItemEvent.patch | 0 ...-profile-lookups-to-worldgen-threads.patch | 2 +- .../server/0135-Basic-PlayerProfile-API.patch | 4 +- .../server/0136-Add-UnknownCommandEvent.patch | 0 .../0137-Shoulder-Entities-Release-API.patch | 6 +- .../server/0138-Profile-Lookup-Events.patch | 0 ...player-logins-during-server-shutdown.patch | 0 .../server/0140-Entity-fromMobSpawner.patch | 8 +-- ...41-Improve-the-Saddle-API-for-Horses.patch | 0 .../0142-ensureServerConversions-API.patch | 4 +- .../0143-Implement-getI18NDisplayName.patch | 4 +- .../0144-ProfileWhitelistVerifyEvent.patch | 0 .../0145-Fix-this-stupid-bullshit.patch | 10 +-- .../server/0146-LivingEntity-setKiller.patch | 2 +- ...awns-should-honor-nametags-and-leash.patch | 0 ...imer-when-spawner-event-is-cancelled.patch | 0 ...-a-custom-authentication-servers-dow.patch | 0 .../server/0150-Add-PlayerJumpEvent.patch | 4 +- ...dle-ServerboundKeepAlivePacket-async.patch | 0 ...nt-protocol-version-and-virtual-host.patch | 4 +- ...rt-serverside-behavior-of-keepalives.patch | 0 ...dEffects-only-to-players-who-can-see.patch | 12 ++-- .../0155-Add-PlayerArmorChangeEvent.patch | 4 +- ...rom-being-processed-when-the-player-.patch | 0 ...117075-Block-entity-unload-lag-spike.patch | 6 +- ...e-implementations-for-captured-block.patch | 10 +-- ...-get-a-BlockState-without-a-snapshot.patch | 8 +-- .../server/0160-AsyncTabCompleteEvent.patch | 4 +- .../0161-PlayerPickupExperienceEvent.patch | 4 +- ...2-Ability-to-apply-mending-to-XP-API.patch | 2 +- ...3-PlayerNaturallySpawnCreaturesEvent.patch | 4 +- ...-Add-setPlayerProfile-API-for-Skulls.patch | 0 .../server/0165-PreCreatureSpawnEvent.patch | 24 +++---- .../0166-Fill-Profile-Property-Events.patch | 0 ...PlayerAdvancementCriterionGrantEvent.patch | 0 .../0168-Add-ArmorStand-Item-Meta.patch | 0 ...-Extend-Player-Interact-cancellation.patch | 0 .../0170-Tameable-getOwnerUniqueId-API.patch | 0 .../server/0171-Toggleable-player-crits.patch | 4 +- ...le-Explicit-Network-Manager-Flushing.patch | 2 +- ...nt-extended-PaperServerListPingEvent.patch | 2 +- ...dd-more-fields-to-AsyncPreLoginEvent.patch | 0 .../0175-Player.setPlayerProfile-API.patch | 2 +- .../server/0176-getPlayerUniqueId-API.patch | 0 .../0177-Improved-Async-Task-Scheduler.patch | 0 ...ke-legacy-ping-handler-more-reliable.patch | 0 ...ServerListPingEvent-for-legacy-pings.patch | 0 ...80-Flag-to-disable-the-channel-limit.patch | 2 +- ...1-Add-openSign-method-to-HumanEntity.patch | 0 ...urable-sprint-interruption-on-attack.patch | 4 +- .../server/0183-EndermanEscapeEvent.patch | 10 +-- .../0184-Enderman.teleportRandomly.patch | 0 ...ld.spawnParticle-API-and-add-Builder.patch | 20 +++--- ...-allowed-colored-signs-to-be-created.patch | 2 +- .../0187-EndermanAttackPlayerEvent.patch | 14 ++-- .../server/0188-WitchConsumePotionEvent.patch | 0 .../server/0189-WitchThrowPotionEvent.patch | 0 .../server/0190-WitchReadyPotionEvent.patch | 0 ...0191-ItemStack-getMaxItemUseDuration.patch | 0 ...92-Add-EntityTeleportEndGatewayEvent.patch | 4 +- ...ed-flag-on-cancel-of-Explosion-Event.patch | 0 ...ity-and-CraftPlayer-equals-and-hashC.patch | 2 +- ...5-Configurable-LootPool-luck-formula.patch | 0 ...ils-when-failing-to-save-player-data.patch | 0 ...e-shield-blocking-delay-configurable.patch | 6 +- .../0198-Improve-EntityShootBowEvent.patch | 4 +- .../server/0199-PlayerReadyArrowEvent.patch | 4 +- .../0200-Add-entity-knockback-events.patch | 40 +++++------ .../server/0201-Expand-Explosions-API.patch | 10 +-- .../0202-LivingEntity-Active-Item-API.patch | 2 +- .../server/0203-RangedEntity-API.patch | 0 ...to-disable-ender-dragon-legacy-check.patch | 0 ...5-Implement-World.getEntity-UUID-API.patch | 2 +- .../0206-InventoryCloseEvent-Reason-API.patch | 30 ++++---- .../server/0207-Vex-get-setSummoner-API.patch | 0 ...-more-information-to-Entity.toString.patch | 4 +- .../server/0209-EnderDragon-Events.patch | 0 .../server/0210-PlayerElytraBoostEvent.patch | 2 +- .../0211-PlayerLaunchProjectileEvent.patch | 53 +++++++------- .../0212-Improve-BlockPosition-inlining.patch | 0 ...t-armor-stands-from-doing-entity-loo.patch | 4 +- ...4-Vanished-players-don-t-have-rights.patch | 10 +-- ...-Allow-disabling-armor-stand-ticking.patch | 0 .../server/0216-SkeletonHorse-Additions.patch | 0 .../server/0217-Expand-ArmorStand-API.patch | 0 .../server/0218-AnvilDamageEvent.patch | 0 .../server/0219-Add-TNTPrimeEvent.patch | 4 +- ...nd-make-tab-spam-limits-configurable.patch | 8 +-- .../server/0221-Fix-NBT-type-issues.patch | 10 +-- ...Remove-unnecessary-itemmeta-handling.patch | 6 +- ...ies-option-to-debug-dupe-uuid-issues.patch | 4 +- ...dd-Early-Warning-Feature-to-WatchDog.patch | 2 +- ...25-Use-ConcurrentHashMap-in-JsonList.patch | 0 ...26-Use-a-Queue-for-Queueing-Commands.patch | 0 ...lock-entities-from-a-chunk-without-s.patch | 0 ...ptimize-BlockPosition-helper-methods.patch | 4 +- ...default-mob-spawn-range-and-water-an.patch | 0 .../server/0230-Slime-Pathfinder-Events.patch | 0 ...le-speed-for-water-flowing-over-lava.patch | 0 ...232-Optimize-CraftBlockData-Creation.patch | 8 +-- .../server/0233-Optimize-MappedRegistry.patch | 0 .../0234-Add-PhantomPreSpawnEvent.patch | 2 +- .../server/0235-Add-More-Creeper-API.patch | 0 .../0236-Inventory-removeItemAnySlot.patch | 0 ...loadChunk-int-int-false-load-unconve.patch | 2 +- ...-ray-tracing-methods-to-LivingEntity.patch | 6 +- ...e-attack-cooldown-methods-for-Player.patch | 4 +- .../server/0240-Improve-death-events.patch | 70 +++++++++---------- ...ow-chests-to-be-placed-with-NBT-data.patch | 31 ++++++++ .../server/0242-Mob-Pathfinding-API.patch | 0 ...interactions-from-causing-chunk-load.patch | 8 +-- ...wning-from-loading-generating-chunks.patch | 0 ...nt-furnace-cook-speed-multiplier-API.patch | 43 +++++------- .../0246-Honor-EntityAgeable.ageLock.patch | 6 +- ...ble-connection-throttle-kick-message.patch | 0 ...ent-chunk-loading-from-Fluid-Flowing.patch | 0 .../server/0249-PreSpawnerSpawnEvent.patch | 0 ...250-Add-LivingEntity-getTargetEntity.patch | 6 +- .../server/0251-Add-sun-related-API.patch | 2 +- .../server/0252-Turtle-API.patch | 0 ...tator-target-events-and-improve-impl.patch | 4 +- .../server/0254-Add-more-Witch-API.patch | 0 ...owned-for-Villager-Aggression-Config.patch | 4 +- ...event-players-from-moving-into-unloa.patch | 28 ++++---- ...ow-chests-to-be-placed-with-NBT-data.patch | 31 -------- 158 files changed, 393 insertions(+), 397 deletions(-) rename patches/{unapplied => }/server/0101-Avoid-blocking-on-Network-Manager-creation.patch (100%) rename patches/{unapplied => }/server/0102-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch (100%) rename patches/{unapplied => }/server/0103-Add-setting-for-proxy-online-mode-status.patch (100%) rename patches/{unapplied => }/server/0104-Optimise-BlockState-s-hashCode-equals.patch (100%) rename patches/{unapplied => }/server/0105-Configurable-packet-in-spam-threshold.patch (91%) rename patches/{unapplied => }/server/0106-Configurable-flying-kick-messages.patch (89%) rename patches/{unapplied => }/server/0107-Add-EntityZapEvent.patch (97%) rename patches/{unapplied => }/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch (92%) rename patches/{unapplied => }/server/0109-Cache-user-authenticator-threads.patch (100%) rename patches/{unapplied => }/server/0110-Allow-Reloading-of-Command-Aliases.patch (100%) rename patches/{unapplied => }/server/0111-Add-source-to-PlayerExpChangeEvent.patch (93%) rename patches/{unapplied => }/server/0112-Add-ProjectileCollideEvent.patch (100%) rename patches/{unapplied => }/server/0113-Prevent-Pathfinding-out-of-World-Border.patch (100%) rename patches/{unapplied => }/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch (87%) rename patches/{unapplied => }/server/0115-Bound-Treasure-Maps-to-World-Border.patch (94%) rename patches/{unapplied => }/server/0116-Configurable-Cartographer-Treasure-Maps.patch (95%) rename patches/{unapplied => }/server/0117-Add-API-methods-to-control-if-armor-stands-can-move.patch (100%) rename patches/{unapplied => }/server/0118-String-based-Action-Bar-API.patch (94%) rename patches/{unapplied => }/server/0119-Properly-fix-item-duplication-bug.patch (91%) rename patches/{unapplied => }/server/0120-Firework-API-s.patch (97%) rename patches/{unapplied => }/server/0121-PlayerTeleportEndGatewayEvent.patch (92%) rename patches/{unapplied => }/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch (92%) rename patches/{unapplied => }/server/0123-Enforce-Sync-Player-Saves.patch (100%) rename patches/{unapplied => }/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch (91%) rename patches/{unapplied => }/server/0125-Cap-Entity-Collisions.patch (89%) rename patches/{unapplied => }/server/0126-Remove-CraftScheduler-Async-Task-Debugger.patch (100%) rename patches/{unapplied => }/server/0127-Properly-handle-async-calls-to-restart-the-server.patch (99%) rename patches/{unapplied => }/server/0128-Add-option-to-make-parrots-stay-on-shoulders-despite.patch (78%) rename patches/{unapplied => }/server/0129-Add-configuration-option-to-prevent-player-names-fro.patch (100%) rename patches/{unapplied => }/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch (100%) rename patches/{unapplied => }/server/0131-Item-canEntityPickup.patch (94%) rename patches/{unapplied => }/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch (100%) rename patches/{unapplied => }/server/0133-PlayerAttemptPickupItemEvent.patch (100%) rename patches/{unapplied => }/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch (98%) rename patches/{unapplied => }/server/0135-Basic-PlayerProfile-API.patch (99%) rename patches/{unapplied => }/server/0136-Add-UnknownCommandEvent.patch (100%) rename patches/{unapplied => }/server/0137-Shoulder-Entities-Release-API.patch (94%) rename patches/{unapplied => }/server/0138-Profile-Lookup-Events.patch (100%) rename patches/{unapplied => }/server/0139-Block-player-logins-during-server-shutdown.patch (100%) rename patches/{unapplied => }/server/0140-Entity-fromMobSpawner.patch (92%) rename patches/{unapplied => }/server/0141-Improve-the-Saddle-API-for-Horses.patch (100%) rename patches/{unapplied => }/server/0142-ensureServerConversions-API.patch (87%) rename patches/{unapplied => }/server/0143-Implement-getI18NDisplayName.patch (89%) rename patches/{unapplied => }/server/0144-ProfileWhitelistVerifyEvent.patch (100%) rename patches/{unapplied => }/server/0145-Fix-this-stupid-bullshit.patch (88%) rename patches/{unapplied => }/server/0146-LivingEntity-setKiller.patch (93%) rename patches/{unapplied => }/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch (100%) rename patches/{unapplied => }/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch (100%) rename patches/{unapplied => }/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch (100%) rename patches/{unapplied => }/server/0150-Add-PlayerJumpEvent.patch (94%) rename patches/{unapplied => }/server/0151-handle-ServerboundKeepAlivePacket-async.patch (100%) rename patches/{unapplied => }/server/0152-Expose-client-protocol-version-and-virtual-host.patch (96%) rename patches/{unapplied => }/server/0153-revert-serverside-behavior-of-keepalives.patch (100%) rename patches/{unapplied => }/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch (92%) rename patches/{unapplied => }/server/0155-Add-PlayerArmorChangeEvent.patch (97%) rename patches/{unapplied => }/server/0156-Prevent-logins-from-being-processed-when-the-player-.patch (100%) rename patches/{unapplied => }/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch (88%) rename patches/{unapplied => }/server/0158-use-CB-BlockState-implementations-for-captured-block.patch (91%) rename patches/{unapplied => }/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch (96%) rename patches/{unapplied => }/server/0160-AsyncTabCompleteEvent.patch (98%) rename patches/{unapplied => }/server/0161-PlayerPickupExperienceEvent.patch (88%) rename patches/{unapplied => }/server/0162-Ability-to-apply-mending-to-XP-API.patch (97%) rename patches/{unapplied => }/server/0163-PlayerNaturallySpawnCreaturesEvent.patch (96%) rename patches/{unapplied => }/server/0164-Add-setPlayerProfile-API-for-Skulls.patch (100%) rename patches/{unapplied => }/server/0165-PreCreatureSpawnEvent.patch (86%) rename patches/{unapplied => }/server/0166-Fill-Profile-Property-Events.patch (100%) rename patches/{unapplied => }/server/0167-Add-PlayerAdvancementCriterionGrantEvent.patch (100%) rename patches/{unapplied => }/server/0168-Add-ArmorStand-Item-Meta.patch (100%) rename patches/{unapplied => }/server/0169-Extend-Player-Interact-cancellation.patch (100%) rename patches/{unapplied => }/server/0170-Tameable-getOwnerUniqueId-API.patch (100%) rename patches/{unapplied => }/server/0171-Toggleable-player-crits.patch (86%) rename patches/{unapplied => }/server/0172-Disable-Explicit-Network-Manager-Flushing.patch (94%) rename patches/{unapplied => }/server/0173-Implement-extended-PaperServerListPingEvent.patch (99%) rename patches/{unapplied => }/server/0174-Add-more-fields-to-AsyncPreLoginEvent.patch (100%) rename patches/{unapplied => }/server/0175-Player.setPlayerProfile-API.patch (99%) rename patches/{unapplied => }/server/0176-getPlayerUniqueId-API.patch (100%) rename patches/{unapplied => }/server/0177-Improved-Async-Task-Scheduler.patch (100%) rename patches/{unapplied => }/server/0178-Make-legacy-ping-handler-more-reliable.patch (100%) rename patches/{unapplied => }/server/0179-Call-PaperServerListPingEvent-for-legacy-pings.patch (100%) rename patches/{unapplied => }/server/0180-Flag-to-disable-the-channel-limit.patch (95%) rename patches/{unapplied => }/server/0181-Add-openSign-method-to-HumanEntity.patch (100%) rename patches/{unapplied => }/server/0182-Configurable-sprint-interruption-on-attack.patch (87%) rename patches/{unapplied => }/server/0183-EndermanEscapeEvent.patch (89%) rename patches/{unapplied => }/server/0184-Enderman.teleportRandomly.patch (100%) rename patches/{unapplied => }/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch (73%) rename patches/{unapplied => }/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch (94%) rename patches/{unapplied => }/server/0187-EndermanAttackPlayerEvent.patch (52%) rename patches/{unapplied => }/server/0188-WitchConsumePotionEvent.patch (100%) rename patches/{unapplied => }/server/0189-WitchThrowPotionEvent.patch (100%) rename patches/{unapplied => }/server/0190-WitchReadyPotionEvent.patch (100%) rename patches/{unapplied => }/server/0191-ItemStack-getMaxItemUseDuration.patch (100%) rename patches/{unapplied => }/server/0192-Add-EntityTeleportEndGatewayEvent.patch (93%) rename patches/{unapplied => }/server/0193-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch (100%) rename patches/{unapplied => }/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch (97%) rename patches/{unapplied => }/server/0195-Configurable-LootPool-luck-formula.patch (100%) rename patches/{unapplied => }/server/0196-Print-Error-details-when-failing-to-save-player-data.patch (100%) rename patches/{unapplied => }/server/0197-Make-shield-blocking-delay-configurable.patch (90%) rename patches/{unapplied => }/server/0198-Improve-EntityShootBowEvent.patch (94%) rename patches/{unapplied => }/server/0199-PlayerReadyArrowEvent.patch (93%) rename patches/{unapplied => }/server/0200-Add-entity-knockback-events.patch (93%) rename patches/{unapplied => }/server/0201-Expand-Explosions-API.patch (93%) rename patches/{unapplied => }/server/0202-LivingEntity-Active-Item-API.patch (96%) rename patches/{unapplied => }/server/0203-RangedEntity-API.patch (100%) rename patches/{unapplied => }/server/0204-Add-config-to-disable-ender-dragon-legacy-check.patch (100%) rename patches/{unapplied => }/server/0205-Implement-World.getEntity-UUID-API.patch (91%) rename patches/{unapplied => }/server/0206-InventoryCloseEvent-Reason-API.patch (91%) rename patches/{unapplied => }/server/0207-Vex-get-setSummoner-API.patch (100%) rename patches/{unapplied => }/server/0208-add-more-information-to-Entity.toString.patch (91%) rename patches/{unapplied => }/server/0209-EnderDragon-Events.patch (100%) rename patches/{unapplied => }/server/0210-PlayerElytraBoostEvent.patch (98%) rename patches/{unapplied => }/server/0211-PlayerLaunchProjectileEvent.patch (92%) rename patches/{unapplied => }/server/0212-Improve-BlockPosition-inlining.patch (100%) rename patches/{unapplied => }/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch (92%) rename patches/{unapplied => }/server/0214-Vanished-players-don-t-have-rights.patch (93%) rename patches/{unapplied => }/server/0215-Allow-disabling-armor-stand-ticking.patch (100%) rename patches/{unapplied => }/server/0216-SkeletonHorse-Additions.patch (100%) rename patches/{unapplied => }/server/0217-Expand-ArmorStand-API.patch (100%) rename patches/{unapplied => }/server/0218-AnvilDamageEvent.patch (100%) rename patches/{unapplied => }/server/0219-Add-TNTPrimeEvent.patch (97%) rename patches/{unapplied => }/server/0220-Break-up-and-make-tab-spam-limits-configurable.patch (92%) rename patches/{unapplied => }/server/0221-Fix-NBT-type-issues.patch (83%) rename patches/{unapplied => }/server/0222-Remove-unnecessary-itemmeta-handling.patch (88%) rename patches/{unapplied => }/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch (93%) rename patches/{unapplied => }/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch (99%) rename patches/{unapplied => }/server/0225-Use-ConcurrentHashMap-in-JsonList.patch (100%) rename patches/{unapplied => }/server/0226-Use-a-Queue-for-Queueing-Commands.patch (100%) rename patches/{unapplied => }/server/0227-Ability-to-get-block-entities-from-a-chunk-without-s.patch (100%) rename patches/{unapplied => }/server/0228-Optimize-BlockPosition-helper-methods.patch (96%) rename patches/{unapplied => }/server/0229-Restore-vanilla-default-mob-spawn-range-and-water-an.patch (100%) rename patches/{unapplied => }/server/0230-Slime-Pathfinder-Events.patch (100%) rename patches/{unapplied => }/server/0231-Configurable-speed-for-water-flowing-over-lava.patch (100%) rename patches/{unapplied => }/server/0232-Optimize-CraftBlockData-Creation.patch (89%) rename patches/{unapplied => }/server/0233-Optimize-MappedRegistry.patch (100%) rename patches/{unapplied => }/server/0234-Add-PhantomPreSpawnEvent.patch (98%) rename patches/{unapplied => }/server/0235-Add-More-Creeper-API.patch (100%) rename patches/{unapplied => }/server/0236-Inventory-removeItemAnySlot.patch (100%) rename patches/{unapplied => }/server/0237-Make-CraftWorld-loadChunk-int-int-false-load-unconve.patch (92%) rename patches/{unapplied => }/server/0238-Add-ray-tracing-methods-to-LivingEntity.patch (92%) rename patches/{unapplied => }/server/0239-Expose-attack-cooldown-methods-for-Player.patch (86%) rename patches/{unapplied => }/server/0240-Improve-death-events.patch (91%) create mode 100644 patches/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch rename patches/{unapplied => }/server/0242-Mob-Pathfinding-API.patch (100%) rename patches/{unapplied => }/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch (95%) rename patches/{unapplied => }/server/0244-Prevent-mob-spawning-from-loading-generating-chunks.patch (100%) rename patches/{unapplied => }/server/0245-Implement-furnace-cook-speed-multiplier-API.patch (84%) rename patches/{unapplied => }/server/0246-Honor-EntityAgeable.ageLock.patch (87%) rename patches/{unapplied => }/server/0247-Configurable-connection-throttle-kick-message.patch (100%) rename patches/{unapplied => }/server/0248-Prevent-chunk-loading-from-Fluid-Flowing.patch (100%) rename patches/{unapplied => }/server/0249-PreSpawnerSpawnEvent.patch (100%) rename patches/{unapplied => }/server/0250-Add-LivingEntity-getTargetEntity.patch (94%) rename patches/{unapplied => }/server/0251-Add-sun-related-API.patch (94%) rename patches/{unapplied => }/server/0252-Turtle-API.patch (100%) rename patches/{unapplied => }/server/0253-Call-player-spectator-target-events-and-improve-impl.patch (93%) rename patches/{unapplied => }/server/0254-Add-more-Witch-API.patch (100%) rename patches/{unapplied => }/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch (90%) rename patches/{unapplied => }/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch (83%) delete mode 100644 patches/unapplied/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch 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 ebcc5735fb..dece600f08 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 @@ -608,7 +608,7 @@ index 0000000000000000000000000000000000000000..a3045afbc0cc057e99189b909367b21c + } +} diff --git a/src/main/java/io/papermc/paper/util/MappingEnvironment.java b/src/main/java/io/papermc/paper/util/MappingEnvironment.java -index 8e4229634d41a42b3d93948eebb77def7c0c72b1..4477944f632a6b3936960ee80f9d898d3b7eed19 100644 +index 8e4229634d41a42b3d93948eebb77def7c0c72b1..8511c247089aeaecb0d2dd5921f667e592c4d99e 100644 --- a/src/main/java/io/papermc/paper/util/MappingEnvironment.java +++ b/src/main/java/io/papermc/paper/util/MappingEnvironment.java @@ -10,6 +10,8 @@ import org.checkerframework.framework.qual.DefaultQualifier; @@ -616,7 +616,7 @@ index 8e4229634d41a42b3d93948eebb77def7c0c72b1..4477944f632a6b3936960ee80f9d898d @DefaultQualifier(NonNull.class) public final class MappingEnvironment { + public static final boolean DISABLE_PLUGIN_REMAPPING = Boolean.getBoolean("paper.disablePluginRemapping"); -+ public static final String LEGACY_CB_VERSION = "v1_21_R2"; ++ public static final String LEGACY_CB_VERSION = "v1_21_R3"; private static final @Nullable String MAPPINGS_HASH = readMappingsHash(); private static final boolean REOBF = checkReobf(); diff --git a/patches/unapplied/server/0101-Avoid-blocking-on-Network-Manager-creation.patch b/patches/server/0101-Avoid-blocking-on-Network-Manager-creation.patch similarity index 100% rename from patches/unapplied/server/0101-Avoid-blocking-on-Network-Manager-creation.patch rename to patches/server/0101-Avoid-blocking-on-Network-Manager-creation.patch diff --git a/patches/unapplied/server/0102-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch b/patches/server/0102-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch similarity index 100% rename from patches/unapplied/server/0102-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch rename to patches/server/0102-Don-t-lookup-game-profiles-that-have-no-UUID-and-no-.patch diff --git a/patches/unapplied/server/0103-Add-setting-for-proxy-online-mode-status.patch b/patches/server/0103-Add-setting-for-proxy-online-mode-status.patch similarity index 100% rename from patches/unapplied/server/0103-Add-setting-for-proxy-online-mode-status.patch rename to patches/server/0103-Add-setting-for-proxy-online-mode-status.patch diff --git a/patches/unapplied/server/0104-Optimise-BlockState-s-hashCode-equals.patch b/patches/server/0104-Optimise-BlockState-s-hashCode-equals.patch similarity index 100% rename from patches/unapplied/server/0104-Optimise-BlockState-s-hashCode-equals.patch rename to patches/server/0104-Optimise-BlockState-s-hashCode-equals.patch diff --git a/patches/unapplied/server/0105-Configurable-packet-in-spam-threshold.patch b/patches/server/0105-Configurable-packet-in-spam-threshold.patch similarity index 91% rename from patches/unapplied/server/0105-Configurable-packet-in-spam-threshold.patch rename to patches/server/0105-Configurable-packet-in-spam-threshold.patch index b28e858037..8fbef567c5 100644 --- a/patches/unapplied/server/0105-Configurable-packet-in-spam-threshold.patch +++ b/patches/server/0105-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 79db369b905744ab2fd69de1afc34feec589ec82..be690a8a22c126b007e623c8fe627bab00a28bad 100644 +index f8e38d3334eca60cd5abe1838b1f274a82c8ede5..bffff41f73b91c83fa35ebf34314cb6fdbfcb643 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1545,13 +1545,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1608,13 +1608,14 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl // Spigot start - limit place/interactions private int limitedPackets; private long lastLimitedPacket = -1; diff --git a/patches/unapplied/server/0106-Configurable-flying-kick-messages.patch b/patches/server/0106-Configurable-flying-kick-messages.patch similarity index 89% rename from patches/unapplied/server/0106-Configurable-flying-kick-messages.patch rename to patches/server/0106-Configurable-flying-kick-messages.patch index 00bd532614..9973cbb18d 100644 --- a/patches/unapplied/server/0106-Configurable-flying-kick-messages.patch +++ b/patches/server/0106-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 be690a8a22c126b007e623c8fe627bab00a28bad..bc0d7bfb01a613c8fa567238f973f834cf3e3f17 100644 +index bffff41f73b91c83fa35ebf34314cb6fdbfcb643..8a8f073a29daf7cb36e5fd0e4d4e5932636bb04f 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 +@@ -357,7 +357,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 be690a8a22c126b007e623c8fe627bab00a28bad..bc0d7bfb01a613c8fa567238f973f834 return; } } else { -@@ -374,7 +374,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -376,7 +376,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/unapplied/server/0107-Add-EntityZapEvent.patch b/patches/server/0107-Add-EntityZapEvent.patch similarity index 97% rename from patches/unapplied/server/0107-Add-EntityZapEvent.patch rename to patches/server/0107-Add-EntityZapEvent.patch index c788e393ec..53b649321b 100644 --- a/patches/unapplied/server/0107-Add-EntityZapEvent.patch +++ b/patches/server/0107-Add-EntityZapEvent.patch @@ -21,7 +21,7 @@ index 3300104ad3e1f1e39cbe928ec6ad635e6ab76327..c18bc54721e90ed67312cd8baf52ccc8 + // Paper start - entity zap event - allow conversion to be cancelled during finalization } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 9655466953cf850b82716246821a3ebb968a5478..03d289abc30927793aa00f6758ed9db6fb765999 100644 +index 0562039114a90ddb64547eb8396920813d54f46b..54d3df0d34a786e63bf462b7ad1e93396129d41a 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1498,6 +1498,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -59,7 +59,7 @@ index 9655466953cf850b82716246821a3ebb968a5478..03d289abc30927793aa00f6758ed9db6 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index e52487a3537db6c7d6845f972355f8f437ea9156..624f06d630b55cdcaa97cb66736b69c7ad45dd83 100644 +index e7a63ff51d7046c2bea4c0ac98c93dd9077a545d..64a2c1b43541764c7ec454e709d7beb365f1fef1 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -834,11 +834,18 @@ public class Villager extends AbstractVillager implements ReputationEventHandler diff --git a/patches/unapplied/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch b/patches/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch similarity index 92% rename from patches/unapplied/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch rename to patches/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch index bf9d10bb7e..8bb1f855c4 100644 --- a/patches/unapplied/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch +++ b/patches/server/0108-Filter-bad-block-entity-nbt-data-from-falling-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Filter bad block entity nbt data from falling blocks diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index a5543a6b4811628ff5178a0ec01933ec4b30dfa4..72abeb4f37b70094498ed3b18e8f73346ba0ead0 100644 +index e8585c05c5db32eafa18f3ac1968ba7e0c6f4566..eb1745915190e69bb467fca2dbc46e0727530ba0 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -356,7 +356,7 @@ public class FallingBlockEntity extends Entity { diff --git a/patches/unapplied/server/0109-Cache-user-authenticator-threads.patch b/patches/server/0109-Cache-user-authenticator-threads.patch similarity index 100% rename from patches/unapplied/server/0109-Cache-user-authenticator-threads.patch rename to patches/server/0109-Cache-user-authenticator-threads.patch diff --git a/patches/unapplied/server/0110-Allow-Reloading-of-Command-Aliases.patch b/patches/server/0110-Allow-Reloading-of-Command-Aliases.patch similarity index 100% rename from patches/unapplied/server/0110-Allow-Reloading-of-Command-Aliases.patch rename to patches/server/0110-Allow-Reloading-of-Command-Aliases.patch diff --git a/patches/unapplied/server/0111-Add-source-to-PlayerExpChangeEvent.patch b/patches/server/0111-Add-source-to-PlayerExpChangeEvent.patch similarity index 93% rename from patches/unapplied/server/0111-Add-source-to-PlayerExpChangeEvent.patch rename to patches/server/0111-Add-source-to-PlayerExpChangeEvent.patch index cb2ac725a2..0d2e3b15be 100644 --- a/patches/unapplied/server/0111-Add-source-to-PlayerExpChangeEvent.patch +++ b/patches/server/0111-Add-source-to-PlayerExpChangeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add source to PlayerExpChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 8254f76a386bd6791b844a35b146370e817b09ad..7f3ac3e8631e30c968ef664f994ad208d05eb4a3 100644 +index b835e5bf605a34202a69a448eed72307a2c2b061..5109a63ff821afdf3d86a39464e39ae80586b95d 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -268,7 +268,7 @@ public class ExperienceOrb extends Entity { +@@ -270,7 +270,7 @@ public class ExperienceOrb extends Entity { int i = this.repairPlayerItems(entityplayer, this.value); if (i > 0) { diff --git a/patches/unapplied/server/0112-Add-ProjectileCollideEvent.patch b/patches/server/0112-Add-ProjectileCollideEvent.patch similarity index 100% rename from patches/unapplied/server/0112-Add-ProjectileCollideEvent.patch rename to patches/server/0112-Add-ProjectileCollideEvent.patch diff --git a/patches/unapplied/server/0113-Prevent-Pathfinding-out-of-World-Border.patch b/patches/server/0113-Prevent-Pathfinding-out-of-World-Border.patch similarity index 100% rename from patches/unapplied/server/0113-Prevent-Pathfinding-out-of-World-Border.patch rename to patches/server/0113-Prevent-Pathfinding-out-of-World-Border.patch diff --git a/patches/unapplied/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch b/patches/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch similarity index 87% rename from patches/unapplied/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch rename to patches/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch index 526301e39d..1db7bda571 100644 --- a/patches/unapplied/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch +++ b/patches/server/0114-Optimize-Level.hasChunkAt-BlockPosition-Z.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize Level.hasChunkAt(BlockPosition)Z Reduce method invocations for World.isLoaded(BlockPosition)Z diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 675dcb6eb5c33f6ec582ff20118d2f73745914a9..943c14b26cf5b1c9f9ea1acec058cecac3b93bf7 100644 +index 8891eab56b1bb2ed253fbced383e14a8c177966b..0d589ad5cd7887ce2143fd2f1af617fbe9226c2c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -340,6 +340,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -341,6 +341,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return chunk == null ? null : chunk.getFluidState(blockposition); } diff --git a/patches/unapplied/server/0115-Bound-Treasure-Maps-to-World-Border.patch b/patches/server/0115-Bound-Treasure-Maps-to-World-Border.patch similarity index 94% rename from patches/unapplied/server/0115-Bound-Treasure-Maps-to-World-Border.patch rename to patches/server/0115-Bound-Treasure-Maps-to-World-Border.patch index 0444bae2ba..88512f6d5b 100644 --- a/patches/unapplied/server/0115-Bound-Treasure-Maps-to-World-Border.patch +++ b/patches/server/0115-Bound-Treasure-Maps-to-World-Border.patch @@ -34,10 +34,10 @@ index 5aa04c48e04c067a366383b252a7b713d85eaee9..b50090df116697a12f5498d65dd2e5d6 return this.isWithinBounds(box.minX, box.minZ, box.maxX - 9.999999747378752E-6D, box.maxZ - 9.999999747378752E-6D); } diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index a84434a95dbe3c458f358d9824de87c503a8b1dc..115deba41ec48143570489e8494785a3a48cd789 100644 +index c037b08bcad40e5c2df3b7f98ab2071db3b3e48d..0acf8b62ddb5e005f8f861558934e8afc8673725 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -@@ -222,6 +222,7 @@ public abstract class ChunkGenerator { +@@ -223,6 +223,7 @@ public abstract class ChunkGenerator { while (iterator.hasNext()) { ChunkPos chunkcoordintpair = (ChunkPos) iterator.next(); diff --git a/patches/unapplied/server/0116-Configurable-Cartographer-Treasure-Maps.patch b/patches/server/0116-Configurable-Cartographer-Treasure-Maps.patch similarity index 95% rename from patches/unapplied/server/0116-Configurable-Cartographer-Treasure-Maps.patch rename to patches/server/0116-Configurable-Cartographer-Treasure-Maps.patch index 1ca587b32e..82178eca8e 100644 --- a/patches/unapplied/server/0116-Configurable-Cartographer-Treasure-Maps.patch +++ b/patches/server/0116-Configurable-Cartographer-Treasure-Maps.patch @@ -9,10 +9,10 @@ Also allow turning off treasure maps all together as they can eat up Map ID's which are limited in quantity. diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java b/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java -index 914134d274c4a484c99bbe59521e30881c120799..a20c23db72f207b069f4ae0eb83ab6b6dca12072 100644 +index e6592409abfed699e0be74256bbbca871e5cc09a..37d62ee36e6b41ce8e923fc210c5b30920275c48 100644 --- a/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java +++ b/src/main/java/net/minecraft/world/entity/npc/VillagerTrades.java -@@ -1826,7 +1826,8 @@ public class VillagerTrades { +@@ -1834,7 +1834,8 @@ public class VillagerTrades { return null; } else { ServerLevel serverLevel = (ServerLevel)entity.level(); diff --git a/patches/unapplied/server/0117-Add-API-methods-to-control-if-armor-stands-can-move.patch b/patches/server/0117-Add-API-methods-to-control-if-armor-stands-can-move.patch similarity index 100% rename from patches/unapplied/server/0117-Add-API-methods-to-control-if-armor-stands-can-move.patch rename to patches/server/0117-Add-API-methods-to-control-if-armor-stands-can-move.patch diff --git a/patches/unapplied/server/0118-String-based-Action-Bar-API.patch b/patches/server/0118-String-based-Action-Bar-API.patch similarity index 94% rename from patches/unapplied/server/0118-String-based-Action-Bar-API.patch rename to patches/server/0118-String-based-Action-Bar-API.patch index 56ae9b2920..2ee21e39f5 100644 --- a/patches/unapplied/server/0118-String-based-Action-Bar-API.patch +++ b/patches/server/0118-String-based-Action-Bar-API.patch @@ -5,7 +5,7 @@ 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 2664daa2ae772b2ad63bdab8942bcaeda0e457bc..4a3836a645f3efac6f9d4fd4cbaa3eb2e23bb4b9 100644 +index f32794e235fe58027bc6a13e2bbc593bbc9d713b..d5aa717e790a56109ddcdc573bd254ed4b161a00 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -395,6 +395,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0119-Properly-fix-item-duplication-bug.patch b/patches/server/0119-Properly-fix-item-duplication-bug.patch similarity index 91% rename from patches/unapplied/server/0119-Properly-fix-item-duplication-bug.patch rename to patches/server/0119-Properly-fix-item-duplication-bug.patch index 3fe8b5e902..7102e84e67 100644 --- a/patches/unapplied/server/0119-Properly-fix-item-duplication-bug.patch +++ b/patches/server/0119-Properly-fix-item-duplication-bug.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Properly fix item duplication bug Credit to prplz for figuring out the real issue diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a06a2c5acb677b2495fab223dfbde293dffca096..8e127c36cbcb14d39de20217564ce1e722a57bcc 100644 +index 7e5fb0abe6cb4f10c41dedb2076e70bd9ace5430..51e00fe2454af281ba28dd6d5d5a1151103c0ab4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2982,7 +2982,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2962,7 +2962,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public boolean isImmobile() { diff --git a/patches/unapplied/server/0120-Firework-API-s.patch b/patches/server/0120-Firework-API-s.patch similarity index 97% rename from patches/unapplied/server/0120-Firework-API-s.patch rename to patches/server/0120-Firework-API-s.patch index 5efca78eb3..19bd2cf51a 100644 --- a/patches/unapplied/server/0120-Firework-API-s.patch +++ b/patches/server/0120-Firework-API-s.patch @@ -44,10 +44,10 @@ index e5d245c71ce2b2a1fe7f156e69831dec73354221..8a4e7e1c0c4919d2ee34121c14f9665b private List getExplosions() { diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index 40cae3332a18e3f7be890d2ba8014bfe3d2d1c0e..710181cf04563f06690eee5b46a5a0d84844ac29 100644 +index a9d29c7981a98c3dd6355ca0db1f5a64b091cc05..a81e2f1e5abc20a95c562c1b9b1f7af489eaaaab 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java -@@ -163,7 +163,11 @@ public class CrossbowItem extends ProjectileWeaponItem { +@@ -164,7 +164,11 @@ public class CrossbowItem extends ProjectileWeaponItem { @Override protected Projectile createProjectile(Level world, LivingEntity shooter, ItemStack weaponStack, ItemStack projectileStack, boolean critical) { if (projectileStack.is(Items.FIREWORK_ROCKET)) { diff --git a/patches/unapplied/server/0121-PlayerTeleportEndGatewayEvent.patch b/patches/server/0121-PlayerTeleportEndGatewayEvent.patch similarity index 92% rename from patches/unapplied/server/0121-PlayerTeleportEndGatewayEvent.patch rename to patches/server/0121-PlayerTeleportEndGatewayEvent.patch index c86ce687bf..f136ae72e5 100644 --- a/patches/unapplied/server/0121-PlayerTeleportEndGatewayEvent.patch +++ b/patches/server/0121-PlayerTeleportEndGatewayEvent.patch @@ -7,10 +7,10 @@ Allows you to access the Gateway being used in a teleport event Fix the offset used for player teleportation diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8e127c36cbcb14d39de20217564ce1e722a57bcc..0432304139fada99dff884ebf8d08dbf9afc45c7 100644 +index 51e00fe2454af281ba28dd6d5d5a1151103c0ab4..bdf79f73ab219debd4eedff44018dd8ab705b4e8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1455,6 +1455,11 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1446,6 +1446,11 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { PositionMoveRotation absolutePosition = PositionMoveRotation.calculateAbsolute(PositionMoveRotation.of(this), PositionMoveRotation.of(teleportTarget), teleportTarget.relatives()); Location exit = (worldserver == null) ? null : CraftLocation.toBukkit(absolutePosition.position(), worldserver.getWorld(), absolutePosition.yRot(), absolutePosition.xRot()); PlayerTeleportEvent tpEvent = new PlayerTeleportEvent(this.getBukkitEntity(), enter, exit, teleportTarget.cause()); diff --git a/patches/unapplied/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch similarity index 92% rename from patches/unapplied/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch rename to patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch index 58b18fa417..fcff875035 100644 --- a/patches/unapplied/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch +++ b/patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch @@ -7,10 +7,10 @@ Provides counts without the ineffeciency of using .getEntities().size() which creates copy of the collections. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 943c14b26cf5b1c9f9ea1acec058cecac3b93bf7..e5eac1977f77b7ce1112bfe7ac1b77d9ef4d90f4 100644 +index 0d589ad5cd7887ce2143fd2f1af617fbe9226c2c..b628fbacf4a56f5df682dee8190a9dd6bb330803 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -116,7 +116,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -117,7 +117,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public static final int TICKS_PER_DAY = 24000; public static final int MAX_ENTITY_SPAWN_Y = 20000000; public static final int MIN_ENTITY_SPAWN_Y = -20000000; @@ -20,7 +20,7 @@ index 943c14b26cf5b1c9f9ea1acec058cecac3b93bf7..e5eac1977f77b7ce1112bfe7ac1b77d9 private final List 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 5612f66ec7b0e927824d5503b15dc28af0dfb168..9ad27a6908ac07d87dc0453b61f69d3b3037a971 100644 +index 1827df86bf21ca3ed297fd4316f3a962063a47fb..cf38f75050ef947d9f853374f40a25504ec987a6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -169,6 +169,48 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0123-Enforce-Sync-Player-Saves.patch b/patches/server/0123-Enforce-Sync-Player-Saves.patch similarity index 100% rename from patches/unapplied/server/0123-Enforce-Sync-Player-Saves.patch rename to patches/server/0123-Enforce-Sync-Player-Saves.patch diff --git a/patches/unapplied/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch similarity index 91% rename from patches/unapplied/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch rename to patches/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch index 50161ad69f..e3b9ff0f66 100644 --- a/patches/unapplied/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch +++ b/patches/server/0124-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch @@ -21,7 +21,7 @@ index 0de7b8b8d2670c6ec50eb56348ca28a315b961e5..73b6aa34ad2579d79f388c5660cdfbef return true; diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 7f3ac3e8631e30c968ef664f994ad208d05eb4a3..b9160ebca0d11dbbf96da5f0f5810d302cfcea9a 100644 +index 5109a63ff821afdf3d86a39464e39ae80586b95d..5999a77c803ee6f2a0dd05dea5f5817366bc70ea 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -44,9 +44,63 @@ public class ExperienceOrb extends Entity { @@ -88,7 +88,7 @@ index 7f3ac3e8631e30c968ef664f994ad208d05eb4a3..b9160ebca0d11dbbf96da5f0f5810d30 this.setPos(x, y, z); this.setYRot((float) (this.random.nextDouble() * 360.0D)); this.setDeltaMovement((this.random.nextDouble() * 0.20000000298023224D - 0.10000000149011612D) * 2.0D, this.random.nextDouble() * 0.2D * 2.0D, (this.random.nextDouble() * 0.20000000298023224D - 0.10000000149011612D) * 2.0D); -@@ -171,12 +225,20 @@ public class ExperienceOrb extends Entity { +@@ -173,12 +227,20 @@ public class ExperienceOrb extends Entity { } public static void award(ServerLevel world, Vec3 pos, int amount) { @@ -110,7 +110,7 @@ index 7f3ac3e8631e30c968ef664f994ad208d05eb4a3..b9160ebca0d11dbbf96da5f0f5810d30 } } -@@ -249,6 +311,7 @@ public class ExperienceOrb extends Entity { +@@ -251,6 +313,7 @@ public class ExperienceOrb extends Entity { nbt.putShort("Age", (short) this.age); nbt.putShort("Value", (short) this.value); nbt.putInt("Count", this.count); @@ -118,7 +118,7 @@ index 7f3ac3e8631e30c968ef664f994ad208d05eb4a3..b9160ebca0d11dbbf96da5f0f5810d30 } @Override -@@ -257,6 +320,7 @@ public class ExperienceOrb extends Entity { +@@ -259,6 +322,7 @@ public class ExperienceOrb extends Entity { this.age = nbt.getShort("Age"); this.value = nbt.getShort("Value"); this.count = Math.max(nbt.getInt("Count"), 1); @@ -127,10 +127,10 @@ index 7f3ac3e8631e30c968ef664f994ad208d05eb4a3..b9160ebca0d11dbbf96da5f0f5810d30 @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f8f4fa56881efabada7ec966d74db0a174907614..6c29a05e91a6bac634ca3e5394b90112b65cdbd6 100644 +index 4938b2caf5f8a32f6076f89fd2119fb965539e36..9dbd7ee7253bab6733d54283c5255c6fef222b8e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1835,7 +1835,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1846,7 +1846,7 @@ public abstract class LivingEntity extends Entity implements Attackable { protected void dropExperience(ServerLevel world, @Nullable Entity attacker) { // CraftBukkit start - Update getExpReward() above if the removed if() changes! if (!(this instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon)) { // CraftBukkit - SPIGOT-2420: Special case ender dragon will drop the xp over time @@ -172,7 +172,7 @@ index e359bb8e6366b0c695fe3bb14967556a875524f4..775bfac26aaa6db998c2647ec81247b6 // CraftBukkit end } diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 258fad440d4d2402a273c761da57130a57202b3c..faffc3a9ed8bc306277cad37bc43af2ef7303493 100644 +index 0fa76dddd028a793752048b8f4073ef37240f148..81bb457ddebcf06e14c772c5c5df584e43766e58 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -882,7 +882,7 @@ public class Fox extends Animal implements VariantHolder { @@ -198,7 +198,7 @@ index 81982515b7757febb964627e9c5046d52bf5edf5..a2c5042e99a8f4cd45d502320cf1c06e } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 95d69e3ca1a9095dfb340e9be0ec322ab6c5eb5e..0012ab1f56180081d210c8836e2a59d543b950b8 100644 +index e9246613702325375ac1e4cf03402839b3a93146..f10d0a03c2bb6487dd05869e05258276bfcec7eb 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -659,7 +659,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -210,17 +210,17 @@ index 95d69e3ca1a9095dfb340e9be0ec322ab6c5eb5e..0012ab1f56180081d210c8836e2a59d5 } if (this.dragonDeathTime == 1 && !this.isSilent()) { -@@ -691,7 +691,7 @@ public class EnderDragon extends Mob implements Enemy { - if (world instanceof ServerLevel) { - ServerLevel worldserver = (ServerLevel) world; // CraftBukkit - decompile error +@@ -705,7 +705,7 @@ public class EnderDragon extends Mob implements Enemy { + ServerLevel worldserver1 = (ServerLevel) world1; + if (true) { // CraftBukkit - SPIGOT-2420: Already checked for the game rule when calculating the xp -- ExperienceOrb.award(worldserver, this.position(), Mth.floor((float) short0 * 0.2F)); -+ ExperienceOrb.award(worldserver, this.position(), Mth.floor((float) short0 * 0.2F), org.bukkit.entity.ExperienceOrb.SpawnReason.ENTITY_DEATH, this.lastHurtByPlayer, this); // Paper +- ExperienceOrb.award(worldserver1, this.position(), Mth.floor((float) short0 * 0.2F)); ++ ExperienceOrb.award(worldserver1, this.position(), Mth.floor((float) short0 * 0.2F), org.bukkit.entity.ExperienceOrb.SpawnReason.ENTITY_DEATH, this.lastHurtByPlayer, this); // Paper } if (this.dragonFight != null) { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 624f06d630b55cdcaa97cb66736b69c7ad45dd83..83bb48891d03534468d61cf7683438b3efb131cf 100644 +index 64a2c1b43541764c7ec454e709d7beb365f1fef1..6681c8d9e76a7a1e470378479d2c55e62d05a0fe 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -630,7 +630,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -246,7 +246,7 @@ index 380a876b3cbd660b34dd504cd20f6031b35a613a..8034588a9a87b907c35e28e220280d46 } diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java -index ed378bc8135c329cb7423da06eb26fff69ee4954..9d24d4c3802c525546dae92530c9c5b3cf77924e 100644 +index bec8aa80dab4bfc9c75d50e4141f0bf18f4a39cb..d0c7dc98ead5c9c52e9d24afe59874b8c512a165 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java +++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java @@ -530,7 +530,7 @@ public class FishingHook extends Projectile { @@ -259,10 +259,10 @@ index ed378bc8135c329cb7423da06eb26fff69ee4954..9d24d4c3802c525546dae92530c9c5b3 // CraftBukkit end if (itemstack1.is(ItemTags.FISHES)) { diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java -index 89292bd47e80f7c8bd6a382a44b912a43037b58e..268e46777bdea5b539b0c6833eee08ea8a6c61c2 100644 +index 46c19edfa01bdab873053674f39b70c6774255a3..c808b177bb78804a8af7012da912572978baebdb 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownExperienceBottle.java -@@ -55,7 +55,7 @@ public class ThrownExperienceBottle extends ThrowableItemProjectile { +@@ -53,7 +53,7 @@ public class ThrownExperienceBottle extends ThrowableItemProjectile { } // CraftBukkit end @@ -285,7 +285,7 @@ index 56d8ed71861b0a47692fde4c5acc97aaba8166da..13bc52bc856031c930370828b0381e43 world.levelEvent(1042, blockposition, 0); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 27cbec37c6ea278232970ae035795fdecca71735..f1711f774f844024ca7b678385daaace6cda9f46 100644 +index 6c9920be736eba2947fd3a6903f052eba8533b32..533df8ff84ec4224637dfb0837104a6db1ea9901 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -354,8 +354,13 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -304,10 +304,10 @@ index 27cbec37c6ea278232970ae035795fdecca71735..f1711f774f844024ca7b678385daaace } diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 7341e14645eac007312889776a29d16fc390c5bf..119ea31f6e15185b6d6171053f790e39c24f6823 100644 +index a46c22c1bf004c5f17852505183f04a1c6385875..9f44f4ed56bf3cabd3d4a5409f7f6068273d7ff7 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -517,7 +517,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -512,7 +512,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit j = event.getExpToDrop(); // CraftBukkit end @@ -317,10 +317,10 @@ index 7341e14645eac007312889776a29d16fc390c5bf..119ea31f6e15185b6d6171053f790e39 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java -index 161301924f78593c6f398d4ca41dd80bf26b8d58..e0ff8e8ed03a6a78c9fd8e4630c8b95600bee10a 100644 +index 807e4a7a835c96284149cd405ce8169f65fe9b6b..0ebcf7ed1cb9e896de5fbac60afdb937ba86d15c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java -@@ -426,7 +426,7 @@ public final class CraftEntityTypes { +@@ -424,7 +424,7 @@ public final class CraftEntityTypes { return item; })); register(new EntityTypeData<>(EntityType.EXPERIENCE_ORB, ExperienceOrb.class, CraftExperienceOrb::new, diff --git a/patches/unapplied/server/0125-Cap-Entity-Collisions.patch b/patches/server/0125-Cap-Entity-Collisions.patch similarity index 89% rename from patches/unapplied/server/0125-Cap-Entity-Collisions.patch rename to patches/server/0125-Cap-Entity-Collisions.patch index abbc967c00..2d6114f426 100644 --- a/patches/unapplied/server/0125-Cap-Entity-Collisions.patch +++ b/patches/server/0125-Cap-Entity-Collisions.patch @@ -12,7 +12,7 @@ just as it does in Vanilla, but entity pushing logic will be capped. You can set this to 0 to disable collisions. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 30abcdfd4c18781563bed93642778424b4f9a417..9b0ae983caa12ea50284d9945a7f312429852795 100644 +index 68b89c03a20c051af8c5adb63eef310905e569bc..943dfab743ec9d5a49a9886b384fb4d8d894bb31 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -405,6 +405,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -24,10 +24,10 @@ index 30abcdfd4c18781563bed93642778424b4f9a417..9b0ae983caa12ea50284d9945a7f3124 @javax.annotation.Nullable private org.bukkit.util.Vector origin; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6c29a05e91a6bac634ca3e5394b90112b65cdbd6..009539fa39c81c610ac34747cc09082a0756c79d 100644 +index 9dbd7ee7253bab6733d54283c5255c6fef222b8e..bc708b5b98e33d65105b394d69d410ae3acde584 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3641,10 +3641,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3652,10 +3652,12 @@ public abstract class LivingEntity extends Entity implements Attackable { } Iterator iterator1 = list.iterator(); diff --git a/patches/unapplied/server/0126-Remove-CraftScheduler-Async-Task-Debugger.patch b/patches/server/0126-Remove-CraftScheduler-Async-Task-Debugger.patch similarity index 100% rename from patches/unapplied/server/0126-Remove-CraftScheduler-Async-Task-Debugger.patch rename to patches/server/0126-Remove-CraftScheduler-Async-Task-Debugger.patch diff --git a/patches/unapplied/server/0127-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch similarity index 99% rename from patches/unapplied/server/0127-Properly-handle-async-calls-to-restart-the-server.patch rename to patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch index 5af027525d..e2d2362447 100644 --- a/patches/unapplied/server/0127-Properly-handle-async-calls-to-restart-the-server.patch +++ b/patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch @@ -30,7 +30,7 @@ will have plugins and worlds saving to the disk has a high potential to result in corruption/dataloss. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 76d9f12e0c2d54ed35cee6a4463d982682d4d641..fc5176447b4e54aafdd9f2806ffbdce02bc20c9b 100644 +index 0eb856a27fefb8d7283617498a31b05f2a736192..b2396fe53d7db64f17671358880401ccc667a251 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -247,6 +247,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0.5F || this.isInWater()) || this.abilities.flying || this.isSleeping() || this.isInPowderSnow) { diff --git a/patches/unapplied/server/0129-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/server/0129-Add-configuration-option-to-prevent-player-names-fro.patch similarity index 100% rename from patches/unapplied/server/0129-Add-configuration-option-to-prevent-player-names-fro.patch rename to patches/server/0129-Add-configuration-option-to-prevent-player-names-fro.patch diff --git a/patches/unapplied/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch b/patches/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch similarity index 100% rename from patches/unapplied/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch rename to patches/server/0130-provide-a-configurable-option-to-disable-creeper-lin.patch diff --git a/patches/unapplied/server/0131-Item-canEntityPickup.patch b/patches/server/0131-Item-canEntityPickup.patch similarity index 94% rename from patches/unapplied/server/0131-Item-canEntityPickup.patch rename to patches/server/0131-Item-canEntityPickup.patch index d68202e1be..e0024acf5f 100644 --- a/patches/unapplied/server/0131-Item-canEntityPickup.patch +++ b/patches/server/0131-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 03d289abc30927793aa00f6758ed9db6fb765999..51381c32c8650400331a122a4b6c8d95c9d0632b 100644 +index 54d3df0d34a786e63bf462b7ad1e93396129d41a..f568ccec14cac96efa03dc888a4a2a0067515b39 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -672,6 +672,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -682,6 +682,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab ItemEntity entityitem = (ItemEntity) iterator.next(); if (!entityitem.isRemoved() && !entityitem.getItem().isEmpty() && !entityitem.hasPickUpDelay() && this.wantsToPickUp(worldserver, entityitem.getItem())) { diff --git a/patches/unapplied/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch similarity index 100% rename from patches/unapplied/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch rename to patches/server/0132-PlayerPickupItemEvent-setFlyAtPlayer.patch diff --git a/patches/unapplied/server/0133-PlayerAttemptPickupItemEvent.patch b/patches/server/0133-PlayerAttemptPickupItemEvent.patch similarity index 100% rename from patches/unapplied/server/0133-PlayerAttemptPickupItemEvent.patch rename to patches/server/0133-PlayerAttemptPickupItemEvent.patch diff --git a/patches/unapplied/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch b/patches/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch similarity index 98% rename from patches/unapplied/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch rename to patches/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch index 11222ddf7d..f050e6b300 100644 --- a/patches/unapplied/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch +++ b/patches/server/0134-Do-not-submit-profile-lookups-to-worldgen-threads.patch @@ -10,7 +10,7 @@ out due to a sync load, as the worldgen threads will be stalling on profile lookups. diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 2ff5a6517d717bbd4c944572040bd30866347341..8cac2075077b1d9c2b01e09c99780ff9e204abb2 100644 +index a88cfb92dea57d2f9abc029cea94a1b921f66766..3d5bca1b637234df48ca3228c7ffbce21116a0c7 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -95,6 +95,22 @@ public class Util { diff --git a/patches/unapplied/server/0135-Basic-PlayerProfile-API.patch b/patches/server/0135-Basic-PlayerProfile-API.patch similarity index 99% rename from patches/unapplied/server/0135-Basic-PlayerProfile-API.patch rename to patches/server/0135-Basic-PlayerProfile-API.patch index a81f8d765a..420fb11d4c 100644 --- a/patches/unapplied/server/0135-Basic-PlayerProfile-API.patch +++ b/patches/server/0135-Basic-PlayerProfile-API.patch @@ -591,10 +591,10 @@ index 0000000000000000000000000000000000000000..332700f84c5587e47a4d2056bfbb5413 + @NotNull ResolvableProfile buildResolvableProfile(); +} diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 7399358f18dc7869fbfe414186cf18414c1eaafc..a9dadd106ff0ac0f788c16048a73dfc3320b4944 100644 +index a9f09f2939a0fbf20be7f8bc27a6d8b961fb748a..577140660c96da69f68ec27ad5ab7da2c836974b 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java -@@ -168,7 +168,7 @@ public class Main { +@@ -170,7 +170,7 @@ public class Main { } File file = (File) optionset.valueOf("universe"); // CraftBukkit diff --git a/patches/unapplied/server/0136-Add-UnknownCommandEvent.patch b/patches/server/0136-Add-UnknownCommandEvent.patch similarity index 100% rename from patches/unapplied/server/0136-Add-UnknownCommandEvent.patch rename to patches/server/0136-Add-UnknownCommandEvent.patch diff --git a/patches/unapplied/server/0137-Shoulder-Entities-Release-API.patch b/patches/server/0137-Shoulder-Entities-Release-API.patch similarity index 94% rename from patches/unapplied/server/0137-Shoulder-Entities-Release-API.patch rename to patches/server/0137-Shoulder-Entities-Release-API.patch index 3c6d15f323..fe1aa46719 100644 --- a/patches/unapplied/server/0137-Shoulder-Entities-Release-API.patch +++ b/patches/server/0137-Shoulder-Entities-Release-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Shoulder Entities Release API diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index fb6b7be09fffbb9ffefba3f0c0c97b0f90ff6a94..357c71409af5f67a0a6aaa0cb08fd93a4a4f99de 100644 +index 2f4909a26d6473bcf1bf4f71d05d77d2212ad745..4dcc510061adfd07a15fa7007aa4863f7e5d0037 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1948,7 +1948,31 @@ public abstract class Player extends LivingEntity { +@@ -1951,7 +1951,31 @@ public abstract class Player extends LivingEntity { } @@ -40,7 +40,7 @@ index fb6b7be09fffbb9ffefba3f0c0c97b0f90ff6a94..357c71409af5f67a0a6aaa0cb08fd93a if (!this.level().isClientSide && !nbttagcompound.isEmpty()) { return EntityType.create(nbttagcompound, this.level(), EntitySpawnReason.LOAD).map((entity) -> { // CraftBukkit if (entity instanceof TamableAnimal) { -@@ -1956,11 +1980,11 @@ public abstract class Player extends LivingEntity { +@@ -1959,11 +1983,11 @@ public abstract class Player extends LivingEntity { } entity.setPos(this.getX(), this.getY() + 0.699999988079071D, this.getZ()); diff --git a/patches/unapplied/server/0138-Profile-Lookup-Events.patch b/patches/server/0138-Profile-Lookup-Events.patch similarity index 100% rename from patches/unapplied/server/0138-Profile-Lookup-Events.patch rename to patches/server/0138-Profile-Lookup-Events.patch diff --git a/patches/unapplied/server/0139-Block-player-logins-during-server-shutdown.patch b/patches/server/0139-Block-player-logins-during-server-shutdown.patch similarity index 100% rename from patches/unapplied/server/0139-Block-player-logins-during-server-shutdown.patch rename to patches/server/0139-Block-player-logins-during-server-shutdown.patch diff --git a/patches/unapplied/server/0140-Entity-fromMobSpawner.patch b/patches/server/0140-Entity-fromMobSpawner.patch similarity index 92% rename from patches/unapplied/server/0140-Entity-fromMobSpawner.patch rename to patches/server/0140-Entity-fromMobSpawner.patch index dc193e5905..69526e714c 100644 --- a/patches/unapplied/server/0140-Entity-fromMobSpawner.patch +++ b/patches/server/0140-Entity-fromMobSpawner.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity#fromMobSpawner() diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9b0ae983caa12ea50284d9945a7f312429852795..c22b1ef0751d244310dee880565eef83bdb61114 100644 +index 943dfab743ec9d5a49a9886b384fb4d8d894bb31..211886d55e19039768658b1c704f241ac93cf75a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -406,6 +406,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -16,7 +16,7 @@ index 9b0ae983caa12ea50284d9945a7f312429852795..c22b1ef0751d244310dee880565eef83 // Paper start - Entity origin API @javax.annotation.Nullable private org.bukkit.util.Vector origin; -@@ -2376,6 +2377,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2399,6 +2400,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } nbttagcompound.put("Paper.Origin", this.newDoubleList(origin.getX(), origin.getY(), origin.getZ())); } @@ -27,7 +27,7 @@ index 9b0ae983caa12ea50284d9945a7f312429852795..c22b1ef0751d244310dee880565eef83 // Paper end return nbttagcompound; } catch (Throwable throwable) { -@@ -2517,6 +2522,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2542,6 +2547,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.originWorld = originWorld; origin = new org.bukkit.util.Vector(originTag.getDouble(0), originTag.getDouble(1), originTag.getDouble(2)); } @@ -49,7 +49,7 @@ index 7b918001d36a8f14ed0d3ee4d6783588f48eb78f..e424c23c22809a307175b5dcc7f7b008 if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, pos).isCancelled()) { continue; diff --git a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java -index 28c8b8cd2ad0a368f7856a407d91742978490728..f0163b7fa8b27823db9df5b8d2b6adcb63023164 100644 +index 3e986b7c1cd4ad45241ea50a05a41a68947a1f94..150a525772dd87f0aca39ad74f0bcefa0693d7d8 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java +++ b/src/main/java/net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java @@ -230,6 +230,7 @@ public final class TrialSpawner { diff --git a/patches/unapplied/server/0141-Improve-the-Saddle-API-for-Horses.patch b/patches/server/0141-Improve-the-Saddle-API-for-Horses.patch similarity index 100% rename from patches/unapplied/server/0141-Improve-the-Saddle-API-for-Horses.patch rename to patches/server/0141-Improve-the-Saddle-API-for-Horses.patch diff --git a/patches/unapplied/server/0142-ensureServerConversions-API.patch b/patches/server/0142-ensureServerConversions-API.patch similarity index 87% rename from patches/unapplied/server/0142-ensureServerConversions-API.patch rename to patches/server/0142-ensureServerConversions-API.patch index 8c69d762bc..10b0036b6f 100644 --- a/patches/unapplied/server/0142-ensureServerConversions-API.patch +++ b/patches/server/0142-ensureServerConversions-API.patch @@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr to ensure it meets latest minecraft expectations. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 5d7e6b61102a6244c5426917c4ff280fa9e12cf1..91010267b8c4df582415a8f7cd7386723b556cc0 100644 +index 2f57af25e5cdeb2295675309d4cb7f36d15256c5..f71cd296bd43d67023f6008bc178b9aca44e2a45 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -226,4 +226,12 @@ public final class CraftItemFactory implements ItemFactory { +@@ -228,4 +228,12 @@ public final class CraftItemFactory implements ItemFactory { return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName()); } // Paper end - Adventure diff --git a/patches/unapplied/server/0143-Implement-getI18NDisplayName.patch b/patches/server/0143-Implement-getI18NDisplayName.patch similarity index 89% rename from patches/unapplied/server/0143-Implement-getI18NDisplayName.patch rename to patches/server/0143-Implement-getI18NDisplayName.patch index 32d65af2dc..19af50181c 100644 --- a/patches/unapplied/server/0143-Implement-getI18NDisplayName.patch +++ b/patches/server/0143-Implement-getI18NDisplayName.patch @@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this, You must replace the language file embedded in the server jar. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 91010267b8c4df582415a8f7cd7386723b556cc0..b407968b111ff9cb9f428319d211e5d9c4c99138 100644 +index f71cd296bd43d67023f6008bc178b9aca44e2a45..77150a80d3523a923e2c9ccadda4887d6d960799 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -234,4 +234,19 @@ public final class CraftItemFactory implements ItemFactory { +@@ -236,4 +236,19 @@ public final class CraftItemFactory implements ItemFactory { return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item)); } // Paper end - ensure server conversions API diff --git a/patches/unapplied/server/0144-ProfileWhitelistVerifyEvent.patch b/patches/server/0144-ProfileWhitelistVerifyEvent.patch similarity index 100% rename from patches/unapplied/server/0144-ProfileWhitelistVerifyEvent.patch rename to patches/server/0144-ProfileWhitelistVerifyEvent.patch diff --git a/patches/unapplied/server/0145-Fix-this-stupid-bullshit.patch b/patches/server/0145-Fix-this-stupid-bullshit.patch similarity index 88% rename from patches/unapplied/server/0145-Fix-this-stupid-bullshit.patch rename to patches/server/0145-Fix-this-stupid-bullshit.patch index 066446b1cb..a7caee64f2 100644 --- a/patches/unapplied/server/0145-Fix-this-stupid-bullshit.patch +++ b/patches/server/0145-Fix-this-stupid-bullshit.patch @@ -9,10 +9,10 @@ modified in order to prevent merge conflicts when Spigot changes/disables the wa and to provide some level of hint without being disruptive. diff --git a/src/main/java/net/minecraft/server/Bootstrap.java b/src/main/java/net/minecraft/server/Bootstrap.java -index 9abd1dea58ffc612114d5fd8e8944d4aa8c68236..4840893082cbcd9b00f79149df1a7805af279dcb 100644 +index 01c8d583a4addf43b8cad55a51989de7c3f73d90..b86839c170ef01455a05e71cb8ba40b047b1659e 100644 --- a/src/main/java/net/minecraft/server/Bootstrap.java +++ b/src/main/java/net/minecraft/server/Bootstrap.java -@@ -44,7 +44,7 @@ public class Bootstrap { +@@ -47,7 +47,7 @@ public class Bootstrap { public static void bootStrap() { if (!Bootstrap.isBootstrapped) { // CraftBukkit start @@ -21,7 +21,7 @@ index 9abd1dea58ffc612114d5fd8e8944d4aa8c68236..4840893082cbcd9b00f79149df1a7805 switch (name) { case "DispenserRegistry": break; -@@ -58,7 +58,7 @@ public class Bootstrap { +@@ -61,7 +61,7 @@ public class Bootstrap { System.err.println("*** WARNING: This server jar is unsupported, use at your own risk. ***"); System.err.println("**********************************************************************"); break; @@ -31,12 +31,12 @@ index 9abd1dea58ffc612114d5fd8e8944d4aa8c68236..4840893082cbcd9b00f79149df1a7805 Bootstrap.isBootstrapped = true; Instant instant = Instant.now(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 1a254cb043ae57afac80c3cfcf0a130089061ee3..2a95a42ade0e82a509f08e2bec7f0c64f55b185c 100644 +index ffb40be63a01221d81060356e2a3fec17c1fa603..bb3203dc75df1e480b221fb2de44909759bbf07f 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -249,10 +249,12 @@ public class Main { Calendar deadline = Calendar.getInstance(); - deadline.add(Calendar.DAY_OF_YEAR, -14); + deadline.add(Calendar.DAY_OF_YEAR, -2); if (buildDate.before(deadline.getTime())) { - System.err.println("*** Error, this build is outdated ***"); + // Paper start - This is some stupid bullshit diff --git a/patches/unapplied/server/0146-LivingEntity-setKiller.patch b/patches/server/0146-LivingEntity-setKiller.patch similarity index 93% rename from patches/unapplied/server/0146-LivingEntity-setKiller.patch rename to patches/server/0146-LivingEntity-setKiller.patch index 1a07e6b288..d87f9ff0df 100644 --- a/patches/unapplied/server/0146-LivingEntity-setKiller.patch +++ b/patches/server/0146-LivingEntity-setKiller.patch @@ -7,7 +7,7 @@ Subject: [PATCH] LivingEntity#setKiller public net.minecraft.world.entity.LivingEntity lastHurtByPlayerTime diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 6bb32e4eab357c5f67a3daafa2de035b0d125635..452fe788152f7c38ab4b6c627e3ba37da3d9b9d9 100644 +index 7d05d87e3c8ebbd65b15dcf09324e2e4f95959e5..445126b24a8c5c9104b14838661c53382bd65e53 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -417,6 +417,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch b/patches/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch similarity index 100% rename from patches/unapplied/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch rename to patches/server/0147-Ocelot-despawns-should-honor-nametags-and-leash.patch diff --git a/patches/unapplied/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/patches/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch similarity index 100% rename from patches/unapplied/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch rename to patches/server/0148-Reset-spawner-timer-when-spawner-event-is-cancelled.patch diff --git a/patches/unapplied/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch b/patches/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch similarity index 100% rename from patches/unapplied/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch rename to patches/server/0149-Allow-specifying-a-custom-authentication-servers-dow.patch diff --git a/patches/unapplied/server/0150-Add-PlayerJumpEvent.patch b/patches/server/0150-Add-PlayerJumpEvent.patch similarity index 94% rename from patches/unapplied/server/0150-Add-PlayerJumpEvent.patch rename to patches/server/0150-Add-PlayerJumpEvent.patch index 6e1404774e..5d7e98b9d6 100644 --- a/patches/unapplied/server/0150-Add-PlayerJumpEvent.patch +++ b/patches/server/0150-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 7be9c0054ae3bf0d9b9327271a4ddf56a81d6448..414077a1fed2955bd64ac7091af1daeda2a92e2c 100644 +index c459d32e85aaea647e3dc5239e1c4e106a69ad46..85b81b06e834e1575588a2a7e840a8bcc65c3306 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1209,7 +1209,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1270,7 +1270,34 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean flag1 = d7 > 0.0D; if (this.player.onGround() && !packet.isOnGround() && flag1) { diff --git a/patches/unapplied/server/0151-handle-ServerboundKeepAlivePacket-async.patch b/patches/server/0151-handle-ServerboundKeepAlivePacket-async.patch similarity index 100% rename from patches/unapplied/server/0151-handle-ServerboundKeepAlivePacket-async.patch rename to patches/server/0151-handle-ServerboundKeepAlivePacket-async.patch diff --git a/patches/unapplied/server/0152-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0152-Expose-client-protocol-version-and-virtual-host.patch similarity index 96% rename from patches/unapplied/server/0152-Expose-client-protocol-version-and-virtual-host.patch rename to patches/server/0152-Expose-client-protocol-version-and-virtual-host.patch index 8b7e39a071..752fc3a3d4 100644 --- a/patches/unapplied/server/0152-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0152-Expose-client-protocol-version-and-virtual-host.patch @@ -60,7 +60,7 @@ index 0000000000000000000000000000000000000000..a5a7624f1f372a26b982836cd31cff15 + +} diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index f5e6610d271ef2c997fb3d1a5f65e0bf0740805a..4ce0aaaeebe7b333491e3d8aece212c1378297c1 100644 +index 00bf34e1fd3593ad6d92bd292f3069cd3cbddfdd..d1a8e95da5d9b37a097e4f91b31f32c490e7f64b 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -120,6 +120,10 @@ public class Connection extends SimpleChannelInboundHandler> { @@ -90,7 +90,7 @@ index 7ae4279768b70a4fdc8f4438898871a17c8fe402..582bbb376c75ab5bf737f3015ce8ad45 private void beginLogin(ClientIntentionPacket packet, boolean transfer) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4a3836a645f3efac6f9d4fd4cbaa3eb2e23bb4b9..24339928fc75bc227a15921fb0a197a003ba0e5c 100644 +index d5aa717e790a56109ddcdc573bd254ed4b161a00..88b693ddaf301035d674fda835a51faa13842214 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -341,6 +341,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0153-revert-serverside-behavior-of-keepalives.patch b/patches/server/0153-revert-serverside-behavior-of-keepalives.patch similarity index 100% rename from patches/unapplied/server/0153-revert-serverside-behavior-of-keepalives.patch rename to patches/server/0153-revert-serverside-behavior-of-keepalives.patch diff --git a/patches/unapplied/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/patches/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch similarity index 92% rename from patches/unapplied/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch rename to patches/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch index af85833106..a144c45248 100644 --- a/patches/unapplied/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/patches/server/0154-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 357c71409af5f67a0a6aaa0cb08fd93a4a4f99de..1cc11284b0e155ea41c198641b3644028adda97d 100644 +index 4dcc510061adfd07a15fa7007aa4863f7e5d0037..d0df92c91420d1202e0ae7fc6b879b37154e962b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1227,7 +1227,7 @@ public abstract class Player extends LivingEntity { +@@ -1230,7 +1230,7 @@ public abstract class Player extends LivingEntity { boolean flag1; if (this.isSprinting() && flag) { @@ -18,7 +18,7 @@ index 357c71409af5f67a0a6aaa0cb08fd93a4a4f99de..1cc11284b0e155ea41c198641b364402 flag1 = true; } else { flag1 = false; -@@ -1308,7 +1308,7 @@ public abstract class Player extends LivingEntity { +@@ -1311,7 +1311,7 @@ public abstract class Player extends LivingEntity { } } @@ -27,7 +27,7 @@ index 357c71409af5f67a0a6aaa0cb08fd93a4a4f99de..1cc11284b0e155ea41c198641b364402 this.sweepAttack(); } -@@ -1336,15 +1336,15 @@ public abstract class Player extends LivingEntity { +@@ -1339,15 +1339,15 @@ public abstract class Player extends LivingEntity { } if (flag2) { @@ -46,7 +46,7 @@ index 357c71409af5f67a0a6aaa0cb08fd93a4a4f99de..1cc11284b0e155ea41c198641b364402 } } -@@ -1400,7 +1400,7 @@ public abstract class Player extends LivingEntity { +@@ -1403,7 +1403,7 @@ public abstract class Player extends LivingEntity { this.causeFoodExhaustion(this.level().spigotConfig.combatExhaustion, EntityExhaustionEvent.ExhaustionReason.ATTACK); // CraftBukkit - EntityExhaustionEvent // Spigot - Change to use configurable value } else { @@ -55,7 +55,7 @@ index 357c71409af5f67a0a6aaa0cb08fd93a4a4f99de..1cc11284b0e155ea41c198641b364402 // CraftBukkit start - resync on cancelled event if (this instanceof ServerPlayer) { ((ServerPlayer) this).getBukkitEntity().updateInventory(); -@@ -1784,6 +1784,14 @@ public abstract class Player extends LivingEntity { +@@ -1787,6 +1787,14 @@ public abstract class Player extends LivingEntity { public int getXpNeededForNextLevel() { return this.experienceLevel >= 30 ? 112 + (this.experienceLevel - 30) * 9 : (this.experienceLevel >= 15 ? 37 + (this.experienceLevel - 15) * 5 : 7 + this.experienceLevel * 2); } diff --git a/patches/unapplied/server/0155-Add-PlayerArmorChangeEvent.patch b/patches/server/0155-Add-PlayerArmorChangeEvent.patch similarity index 97% rename from patches/unapplied/server/0155-Add-PlayerArmorChangeEvent.patch rename to patches/server/0155-Add-PlayerArmorChangeEvent.patch index cd83cc1481..d4167c4563 100644 --- a/patches/unapplied/server/0155-Add-PlayerArmorChangeEvent.patch +++ b/patches/server/0155-Add-PlayerArmorChangeEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerArmorChangeEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 009539fa39c81c610ac34747cc09082a0756c79d..a03583daf6cac850c154e0e89dc3fa00a844903f 100644 +index bc708b5b98e33d65105b394d69d410ae3acde584..bddd731cbdf88b349598d92f45a5af30b46e34ef 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3280,10 +3280,17 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3291,10 +3291,17 @@ public abstract class LivingEntity extends Entity implements Attackable { throw new MatchException((String) null, (Throwable) null); } diff --git a/patches/unapplied/server/0156-Prevent-logins-from-being-processed-when-the-player-.patch b/patches/server/0156-Prevent-logins-from-being-processed-when-the-player-.patch similarity index 100% rename from patches/unapplied/server/0156-Prevent-logins-from-being-processed-when-the-player-.patch rename to patches/server/0156-Prevent-logins-from-being-processed-when-the-player-.patch diff --git a/patches/unapplied/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch b/patches/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch similarity index 88% rename from patches/unapplied/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch rename to patches/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch index 12f777016d..a4d23ced2f 100644 --- a/patches/unapplied/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch +++ b/patches/server/0157-Fix-MC-117075-Block-entity-unload-lag-spike.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix MC-117075: Block entity unload lag spike diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e5eac1977f77b7ce1112bfe7ac1b77d9ef4d90f4..b8a3116ab104405c26d97f4103eb426f5367071a 100644 +index b628fbacf4a56f5df682dee8190a9dd6bb330803..8f3dcda2bdfe2694a510bf842f0146cd029bb618 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -723,6 +723,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -724,6 +724,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { boolean flag = this.tickRateManager().runsNormally(); int tilesThisCycle = 0; @@ -17,7 +17,7 @@ index e5eac1977f77b7ce1112bfe7ac1b77d9ef4d90f4..b8a3116ab104405c26d97f4103eb426f for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition); -@@ -731,12 +733,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -732,12 +734,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (tickingblockentity.isRemoved()) { // Spigot start tilesThisCycle--; diff --git a/patches/unapplied/server/0158-use-CB-BlockState-implementations-for-captured-block.patch b/patches/server/0158-use-CB-BlockState-implementations-for-captured-block.patch similarity index 91% rename from patches/unapplied/server/0158-use-CB-BlockState-implementations-for-captured-block.patch rename to patches/server/0158-use-CB-BlockState-implementations-for-captured-block.patch index 983ff7742b..bac3aa91ec 100644 --- a/patches/unapplied/server/0158-use-CB-BlockState-implementations-for-captured-block.patch +++ b/patches/server/0158-use-CB-BlockState-implementations-for-captured-block.patch @@ -18,10 +18,10 @@ the blockstate that will be valid for restoration, as opposed to dropping information on restoration when the event is cancelled. diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b8a3116ab104405c26d97f4103eb426f5367071a..e0986a141384de0ede38c88c2b116e083c63efe4 100644 +index 8f3dcda2bdfe2694a510bf842f0146cd029bb618..fb4dd68648e6b7905e6b6469a829a0cad22ed3d7 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -151,7 +151,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -152,7 +152,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean preventPoiUpdated = false; // CraftBukkit - SPIGOT-5710 public boolean captureBlockStates = false; public boolean captureTreeGeneration = false; @@ -30,7 +30,7 @@ index b8a3116ab104405c26d97f4103eb426f5367071a..e0986a141384de0ede38c88c2b116e08 public Map capturedTileEntities = new HashMap<>(); public List captureDrops; public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); -@@ -382,7 +382,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -383,7 +383,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { @@ -39,7 +39,7 @@ index b8a3116ab104405c26d97f4103eb426f5367071a..e0986a141384de0ede38c88c2b116e08 if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); this.capturedBlockStates.put(pos.immutable(), blockstate); -@@ -403,7 +403,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -404,7 +404,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // CraftBukkit start - capture blockstates boolean captured = false; if (this.captureBlockStates && !this.capturedBlockStates.containsKey(pos)) { @@ -49,7 +49,7 @@ index b8a3116ab104405c26d97f4103eb426f5367071a..e0986a141384de0ede38c88c2b116e08 this.capturedBlockStates.put(pos.immutable(), blockstate); captured = true; } -@@ -606,7 +607,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -607,7 +608,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public BlockState getBlockState(BlockPos pos) { // CraftBukkit start - tree generation if (this.captureTreeGeneration) { diff --git a/patches/unapplied/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch similarity index 96% rename from patches/unapplied/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch rename to patches/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch index 97e12295c9..166431ff22 100644 --- a/patches/unapplied/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/patches/server/0159-API-to-get-a-BlockState-without-a-snapshot.patch @@ -13,10 +13,10 @@ also Avoid NPE during CraftBlockEntityState load if could not get TE If Tile Entity was null, correct Sign to return empty lines instead of null diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 3d7c5db5514f9d4401da22d2df88c5614051e568..50413d317ce0282752c57535637f87d529f4c09f 100644 +index 4c5ff6009f72ec3e56a1f440904c472fb2a4138a..8e091ac441acf88a5c8597c6d2923efa5662092e 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -@@ -54,6 +54,7 @@ public abstract class BlockEntity { +@@ -53,6 +53,7 @@ public abstract class BlockEntity { this.worldPosition = pos.immutable(); this.validateBlockState(state); this.blockState = state; @@ -24,7 +24,7 @@ index 3d7c5db5514f9d4401da22d2df88c5614051e568..50413d317ce0282752c57535637f87d5 } private void validateBlockState(BlockState state) { -@@ -87,7 +88,7 @@ public abstract class BlockEntity { +@@ -86,7 +87,7 @@ public abstract class BlockEntity { // CraftBukkit start - read container protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registries) { @@ -33,7 +33,7 @@ index 3d7c5db5514f9d4401da22d2df88c5614051e568..50413d317ce0282752c57535637f87d5 net.minecraft.nbt.Tag persistentDataTag = nbt.get("PublicBukkitValues"); if (persistentDataTag instanceof CompoundTag) { -@@ -375,8 +376,15 @@ public abstract class BlockEntity { +@@ -362,8 +363,15 @@ public abstract class BlockEntity { // CraftBukkit start - add method public InventoryHolder getOwner() { diff --git a/patches/unapplied/server/0160-AsyncTabCompleteEvent.patch b/patches/server/0160-AsyncTabCompleteEvent.patch similarity index 98% rename from patches/unapplied/server/0160-AsyncTabCompleteEvent.patch rename to patches/server/0160-AsyncTabCompleteEvent.patch index e02cf2d105..a10bfdb711 100644 --- a/patches/unapplied/server/0160-AsyncTabCompleteEvent.patch +++ b/patches/server/0160-AsyncTabCompleteEvent.patch @@ -16,10 +16,10 @@ Also adds isCommand and getLocation to the sync TabCompleteEvent Co-authored-by: Aikar diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 414077a1fed2955bd64ac7091af1daeda2a92e2c..79d9a58c66382fd94ab5f6020285e341b0114f6a 100644 +index 85b81b06e834e1575588a2a7e840a8bcc65c3306..f2b6162562a2f35c8f610c9386172984ae30bf17 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -722,21 +722,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -720,21 +720,58 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } diff --git a/patches/unapplied/server/0161-PlayerPickupExperienceEvent.patch b/patches/server/0161-PlayerPickupExperienceEvent.patch similarity index 88% rename from patches/unapplied/server/0161-PlayerPickupExperienceEvent.patch rename to patches/server/0161-PlayerPickupExperienceEvent.patch index a07fa0d160..21c06bdcf2 100644 --- a/patches/unapplied/server/0161-PlayerPickupExperienceEvent.patch +++ b/patches/server/0161-PlayerPickupExperienceEvent.patch @@ -6,10 +6,10 @@ Subject: [PATCH] PlayerPickupExperienceEvent Allows plugins to cancel a player picking up an experience orb diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index b9160ebca0d11dbbf96da5f0f5810d302cfcea9a..74a0bebbf829fdb2bbae87100c4e2523c34f95a0 100644 +index 5999a77c803ee6f2a0dd05dea5f5817366bc70ea..5a017ec91d2e0df8467fde4f38ef00571f15bd01 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -326,7 +326,7 @@ public class ExperienceOrb extends Entity { +@@ -328,7 +328,7 @@ public class ExperienceOrb extends Entity { @Override public void playerTouch(Player player) { if (player instanceof ServerPlayer entityplayer) { diff --git a/patches/unapplied/server/0162-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0162-Ability-to-apply-mending-to-XP-API.patch similarity index 97% rename from patches/unapplied/server/0162-Ability-to-apply-mending-to-XP-API.patch rename to patches/server/0162-Ability-to-apply-mending-to-XP-API.patch index cecc6533cf..a4f65af530 100644 --- a/patches/unapplied/server/0162-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0162-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 24339928fc75bc227a15921fb0a197a003ba0e5c..8b9fdcbea2dd31ca2d79b31cc389afdc792a9423 100644 +index 88b693ddaf301035d674fda835a51faa13842214..09974c95ead0f1e38a3b3be2e7fccb3e227c21c9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1665,7 +1665,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0163-PlayerNaturallySpawnCreaturesEvent.patch b/patches/server/0163-PlayerNaturallySpawnCreaturesEvent.patch similarity index 96% rename from patches/unapplied/server/0163-PlayerNaturallySpawnCreaturesEvent.patch rename to patches/server/0163-PlayerNaturallySpawnCreaturesEvent.patch index b510c92555..a9638abe21 100644 --- a/patches/unapplied/server/0163-PlayerNaturallySpawnCreaturesEvent.patch +++ b/patches/server/0163-PlayerNaturallySpawnCreaturesEvent.patch @@ -61,10 +61,10 @@ index 2e2976efcf99de269f67dec2c87cb910ff280562..f4fa64ab18573cb9a22a9bfb79a351c3 list1 = NaturalSpawner.getFilteredSpawningCategories(spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1, this.level); // CraftBukkit diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 0432304139fada99dff884ebf8d08dbf9afc45c7..8fd3802d8e293e35478666bd4e921d58e1ce5b41 100644 +index bdf79f73ab219debd4eedff44018dd8ab705b4e8..1ebd8d20e510b7af2cdf461fff9eb949a0017ae6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -314,6 +314,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -312,6 +312,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent // CraftBukkit end public boolean isRealPlayer; // Paper diff --git a/patches/unapplied/server/0164-Add-setPlayerProfile-API-for-Skulls.patch b/patches/server/0164-Add-setPlayerProfile-API-for-Skulls.patch similarity index 100% rename from patches/unapplied/server/0164-Add-setPlayerProfile-API-for-Skulls.patch rename to patches/server/0164-Add-setPlayerProfile-API-for-Skulls.patch diff --git a/patches/unapplied/server/0165-PreCreatureSpawnEvent.patch b/patches/server/0165-PreCreatureSpawnEvent.patch similarity index 86% rename from patches/unapplied/server/0165-PreCreatureSpawnEvent.patch rename to patches/server/0165-PreCreatureSpawnEvent.patch index 0f7306bfc5..857136240c 100644 --- a/patches/unapplied/server/0165-PreCreatureSpawnEvent.patch +++ b/patches/server/0165-PreCreatureSpawnEvent.patch @@ -15,28 +15,28 @@ instead and save a lot of server resources. See: https://github.com/PaperMC/Paper/issues/917 diff --git a/src/main/java/net/minecraft/util/SpawnUtil.java b/src/main/java/net/minecraft/util/SpawnUtil.java -index e139ed6bc6f2dd07fe546588b31309ba30ed9755..34c3bf85473b3ad89355ebc21b68c59b3c683b84 100644 +index 116c0fe87776ebea88f47d1c98fd31d6046f3b86..a8903f087c75c851e8111b96e5aa9f271d618392 100644 --- a/src/main/java/net/minecraft/util/SpawnUtil.java +++ b/src/main/java/net/minecraft/util/SpawnUtil.java @@ -22,10 +22,10 @@ public class SpawnUtil { - public static Optional trySpawnMob(EntityType entityType, EntitySpawnReason reason, ServerLevel world, BlockPos pos, int tries, int horizontalRange, int verticalRange, SpawnUtil.Strategy requirements) { + public static Optional trySpawnMob(EntityType entityType, EntitySpawnReason reason, ServerLevel world, BlockPos pos, int tries, int horizontalRange, int verticalRange, SpawnUtil.Strategy requirements, boolean requireEmptySpace) { // CraftBukkit start -- return SpawnUtil.trySpawnMob(entityType, reason, world, pos, tries, horizontalRange, verticalRange, requirements, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT); -+ return SpawnUtil.trySpawnMob(entityType, reason, world, pos, tries, horizontalRange, verticalRange, requirements, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT, null); // Paper +- return SpawnUtil.trySpawnMob(entityType, reason, world, pos, tries, horizontalRange, verticalRange, requirements, requireEmptySpace, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT); ++ return SpawnUtil.trySpawnMob(entityType, reason, world, pos, tries, horizontalRange, verticalRange, requirements, requireEmptySpace, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT, null); // Paper - pre creature spawn event } -- public static Optional trySpawnMob(EntityType entitytypes, EntitySpawnReason entityspawnreason, ServerLevel worldserver, BlockPos blockposition, int i, int j, int k, SpawnUtil.Strategy spawnutil_a, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { -+ public static Optional trySpawnMob(EntityType entitytypes, EntitySpawnReason entityspawnreason, ServerLevel worldserver, BlockPos blockposition, int i, int j, int k, SpawnUtil.Strategy spawnutil_a, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason, @javax.annotation.Nullable Runnable onAbort) { // Paper - pre creature spawn event +- public static Optional trySpawnMob(EntityType entitytypes, EntitySpawnReason entityspawnreason, ServerLevel worldserver, BlockPos blockposition, int i, int j, int k, SpawnUtil.Strategy spawnutil_a, boolean flag, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { ++ public static Optional trySpawnMob(EntityType entitytypes, EntitySpawnReason entityspawnreason, ServerLevel worldserver, BlockPos blockposition, int i, int j, int k, SpawnUtil.Strategy spawnutil_a, boolean flag, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason, @javax.annotation.Nullable Runnable onAbort) { // Paper - pre creature spawn event // CraftBukkit end BlockPos.MutableBlockPos blockposition_mutableblockposition = blockposition.mutable(); @@ -35,6 +35,22 @@ public class SpawnUtil { blockposition_mutableblockposition.setWithOffset(blockposition, i1, k, j1); - if (worldserver.getWorldBorder().isWithinBounds((BlockPos) blockposition_mutableblockposition) && SpawnUtil.moveToPossibleSpawnPosition(worldserver, k, blockposition_mutableblockposition, spawnutil_a)) { + if (worldserver.getWorldBorder().isWithinBounds((BlockPos) blockposition_mutableblockposition) && SpawnUtil.moveToPossibleSpawnPosition(worldserver, k, blockposition_mutableblockposition, spawnutil_a) && (!flag || worldserver.noCollision(entitytypes.getSpawnAABB((double) blockposition_mutableblockposition.getX() + 0.5D, (double) blockposition_mutableblockposition.getY(), (double) blockposition_mutableblockposition.getZ() + 0.5D)))) { + // Paper start - PreCreatureSpawnEvent -+ com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent( ++ final com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent event = new com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent( + io.papermc.paper.util.MCUtil.toLocation(worldserver, blockposition), + org.bukkit.craftbukkit.entity.CraftEntityType.minecraftToBukkit(entitytypes), + reason @@ -55,7 +55,7 @@ index e139ed6bc6f2dd07fe546588b31309ba30ed9755..34c3bf85473b3ad89355ebc21b68c59b 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 17ab230c95901f0533997ac117d5b3d852fcd467..8f4ec4f0ea7ff2f9a952120785aea65f6559f897 100644 +index bb68fcef4b0cd89605f57f42ee5529d9c8e7e73e..768edafa018961ce38306f87e5cfe6aa99537305 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -497,6 +497,16 @@ public class EntityType implements FeatureElement, EntityTypeT @@ -76,15 +76,15 @@ index 17ab230c95901f0533997ac117d5b3d852fcd467..8f4ec4f0ea7ff2f9a952120785aea65f if (t0 != null) { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 83bb48891d03534468d61cf7683438b3efb131cf..82ed0ce824e84ea09ea963caa61fbb75f6ce6fe7 100644 +index 6681c8d9e76a7a1e470378479d2c55e62d05a0fe..77c8c09b3d74b0dd88321bdfdf19d0f089d4e432 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -944,7 +944,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler }).limit(5L).toList(); if (list1.size() >= requiredCount) { -- if (!SpawnUtil.trySpawnMob(EntityType.IRON_GOLEM, EntitySpawnReason.MOB_SUMMONED, world, this.blockPosition(), 10, 8, 6, SpawnUtil.Strategy.LEGACY_IRON_GOLEM, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.VILLAGE_DEFENSE).isEmpty()) { // CraftBukkit -+ if (SpawnUtil.trySpawnMob(EntityType.IRON_GOLEM, EntitySpawnReason.MOB_SUMMONED, world, this.blockPosition(), 10, 8, 6, SpawnUtil.Strategy.LEGACY_IRON_GOLEM, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.VILLAGE_DEFENSE, () -> {GolemSensor.golemDetected(this);}).isPresent()) { // CraftBukkit // Paper - Set Golem Last Seen to stop it from spawning another one +- if (!SpawnUtil.trySpawnMob(EntityType.IRON_GOLEM, EntitySpawnReason.MOB_SUMMONED, world, this.blockPosition(), 10, 8, 6, SpawnUtil.Strategy.LEGACY_IRON_GOLEM, false, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.VILLAGE_DEFENSE).isEmpty()) { // CraftBukkit ++ if (SpawnUtil.trySpawnMob(EntityType.IRON_GOLEM, EntitySpawnReason.MOB_SUMMONED, world, this.blockPosition(), 10, 8, 6, SpawnUtil.Strategy.LEGACY_IRON_GOLEM, false, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.VILLAGE_DEFENSE, () -> {GolemSensor.golemDetected(this);}).isPresent()) { // CraftBukkit // Paper - Set Golem Last Seen to stop it from spawning another one list.forEach(GolemSensor::golemDetected); } } diff --git a/patches/unapplied/server/0166-Fill-Profile-Property-Events.patch b/patches/server/0166-Fill-Profile-Property-Events.patch similarity index 100% rename from patches/unapplied/server/0166-Fill-Profile-Property-Events.patch rename to patches/server/0166-Fill-Profile-Property-Events.patch diff --git a/patches/unapplied/server/0167-Add-PlayerAdvancementCriterionGrantEvent.patch b/patches/server/0167-Add-PlayerAdvancementCriterionGrantEvent.patch similarity index 100% rename from patches/unapplied/server/0167-Add-PlayerAdvancementCriterionGrantEvent.patch rename to patches/server/0167-Add-PlayerAdvancementCriterionGrantEvent.patch diff --git a/patches/unapplied/server/0168-Add-ArmorStand-Item-Meta.patch b/patches/server/0168-Add-ArmorStand-Item-Meta.patch similarity index 100% rename from patches/unapplied/server/0168-Add-ArmorStand-Item-Meta.patch rename to patches/server/0168-Add-ArmorStand-Item-Meta.patch diff --git a/patches/unapplied/server/0169-Extend-Player-Interact-cancellation.patch b/patches/server/0169-Extend-Player-Interact-cancellation.patch similarity index 100% rename from patches/unapplied/server/0169-Extend-Player-Interact-cancellation.patch rename to patches/server/0169-Extend-Player-Interact-cancellation.patch diff --git a/patches/unapplied/server/0170-Tameable-getOwnerUniqueId-API.patch b/patches/server/0170-Tameable-getOwnerUniqueId-API.patch similarity index 100% rename from patches/unapplied/server/0170-Tameable-getOwnerUniqueId-API.patch rename to patches/server/0170-Tameable-getOwnerUniqueId-API.patch diff --git a/patches/unapplied/server/0171-Toggleable-player-crits.patch b/patches/server/0171-Toggleable-player-crits.patch similarity index 86% rename from patches/unapplied/server/0171-Toggleable-player-crits.patch rename to patches/server/0171-Toggleable-player-crits.patch index 3a3f237d57..a4b16c6429 100644 --- a/patches/unapplied/server/0171-Toggleable-player-crits.patch +++ b/patches/server/0171-Toggleable-player-crits.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggleable player crits diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 1cc11284b0e155ea41c198641b3644028adda97d..35cb06706e1584cd6d25aa68ff5c9b40a5768e03 100644 +index d0df92c91420d1202e0ae7fc6b879b37154e962b..8d8a58fc8a2620abab212952df94e6690a3c953b 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1236,6 +1236,7 @@ public abstract class Player extends LivingEntity { +@@ -1239,6 +1239,7 @@ public abstract class Player extends LivingEntity { f += itemstack.getItem().getAttackDamageBonus(target, f, damagesource); boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity && !this.isSprinting(); diff --git a/patches/unapplied/server/0172-Disable-Explicit-Network-Manager-Flushing.patch b/patches/server/0172-Disable-Explicit-Network-Manager-Flushing.patch similarity index 94% rename from patches/unapplied/server/0172-Disable-Explicit-Network-Manager-Flushing.patch rename to patches/server/0172-Disable-Explicit-Network-Manager-Flushing.patch index 583fa8e586..23bdb7cb23 100644 --- a/patches/unapplied/server/0172-Disable-Explicit-Network-Manager-Flushing.patch +++ b/patches/server/0172-Disable-Explicit-Network-Manager-Flushing.patch @@ -12,7 +12,7 @@ flushing on the netty event loop, so it won't do the flush on the main thread. Renable flushing by passing -Dpaper.explicit-flush=true diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 4ce0aaaeebe7b333491e3d8aece212c1378297c1..c45b8b2c89ffec7bd6a6875963c61f11185d3ee1 100644 +index d1a8e95da5d9b37a097e4f91b31f32c490e7f64b..ca2125fe63d5c2bc5af0ecec177bb457c54b111a 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -123,6 +123,7 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/patches/unapplied/server/0173-Implement-extended-PaperServerListPingEvent.patch b/patches/server/0173-Implement-extended-PaperServerListPingEvent.patch similarity index 99% rename from patches/unapplied/server/0173-Implement-extended-PaperServerListPingEvent.patch rename to patches/server/0173-Implement-extended-PaperServerListPingEvent.patch index f229293b86..992120678b 100644 --- a/patches/unapplied/server/0173-Implement-extended-PaperServerListPingEvent.patch +++ b/patches/server/0173-Implement-extended-PaperServerListPingEvent.patch @@ -170,7 +170,7 @@ index 0000000000000000000000000000000000000000..30a19d10869f73d67b794e8e4c035bc5 + +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fc5176447b4e54aafdd9f2806ffbdce02bc20c9b..5e8a9801ff92c8fab9c5cb5a5888ebe9144b331d 100644 +index b2396fe53d7db64f17671358880401ccc667a251..c64d2c093c84bc2708df52a77138307d2b81cf38 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,6 +3,9 @@ package net.minecraft.server; diff --git a/patches/unapplied/server/0174-Add-more-fields-to-AsyncPreLoginEvent.patch b/patches/server/0174-Add-more-fields-to-AsyncPreLoginEvent.patch similarity index 100% rename from patches/unapplied/server/0174-Add-more-fields-to-AsyncPreLoginEvent.patch rename to patches/server/0174-Add-more-fields-to-AsyncPreLoginEvent.patch diff --git a/patches/unapplied/server/0175-Player.setPlayerProfile-API.patch b/patches/server/0175-Player.setPlayerProfile-API.patch similarity index 99% rename from patches/unapplied/server/0175-Player.setPlayerProfile-API.patch rename to patches/server/0175-Player.setPlayerProfile-API.patch index af417f4286..e555f43ee5 100644 --- a/patches/unapplied/server/0175-Player.setPlayerProfile-API.patch +++ b/patches/server/0175-Player.setPlayerProfile-API.patch @@ -64,7 +64,7 @@ index 818df09e9245b5d89b4180b1eaa51470b7539341..f6b2ca92fd3510a76cbf56d0ea55aa6c 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 8b9fdcbea2dd31ca2d79b31cc389afdc792a9423..2f956a9148601fec4bbf9502d692811a8bf47c55 100644 +index 09974c95ead0f1e38a3b3be2e7fccb3e227c21c9..7bb315c45a3b021ec6016c7ff70a88c1a371f799 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -254,11 +254,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0176-getPlayerUniqueId-API.patch b/patches/server/0176-getPlayerUniqueId-API.patch similarity index 100% rename from patches/unapplied/server/0176-getPlayerUniqueId-API.patch rename to patches/server/0176-getPlayerUniqueId-API.patch diff --git a/patches/unapplied/server/0177-Improved-Async-Task-Scheduler.patch b/patches/server/0177-Improved-Async-Task-Scheduler.patch similarity index 100% rename from patches/unapplied/server/0177-Improved-Async-Task-Scheduler.patch rename to patches/server/0177-Improved-Async-Task-Scheduler.patch diff --git a/patches/unapplied/server/0178-Make-legacy-ping-handler-more-reliable.patch b/patches/server/0178-Make-legacy-ping-handler-more-reliable.patch similarity index 100% rename from patches/unapplied/server/0178-Make-legacy-ping-handler-more-reliable.patch rename to patches/server/0178-Make-legacy-ping-handler-more-reliable.patch diff --git a/patches/unapplied/server/0179-Call-PaperServerListPingEvent-for-legacy-pings.patch b/patches/server/0179-Call-PaperServerListPingEvent-for-legacy-pings.patch similarity index 100% rename from patches/unapplied/server/0179-Call-PaperServerListPingEvent-for-legacy-pings.patch rename to patches/server/0179-Call-PaperServerListPingEvent-for-legacy-pings.patch diff --git a/patches/unapplied/server/0180-Flag-to-disable-the-channel-limit.patch b/patches/server/0180-Flag-to-disable-the-channel-limit.patch similarity index 95% rename from patches/unapplied/server/0180-Flag-to-disable-the-channel-limit.patch rename to patches/server/0180-Flag-to-disable-the-channel-limit.patch index c38b29f20b..d4be156693 100644 --- a/patches/unapplied/server/0180-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0180-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ 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 2f956a9148601fec4bbf9502d692811a8bf47c55..a94927944ebf952c8621c2cc4f4506eb934f0bfa 100644 +index 7bb315c45a3b021ec6016c7ff70a88c1a371f799..ce22bf772aa00e7d06328961bb69ff89eb3e52c6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -214,6 +214,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0181-Add-openSign-method-to-HumanEntity.patch b/patches/server/0181-Add-openSign-method-to-HumanEntity.patch similarity index 100% rename from patches/unapplied/server/0181-Add-openSign-method-to-HumanEntity.patch rename to patches/server/0181-Add-openSign-method-to-HumanEntity.patch diff --git a/patches/unapplied/server/0182-Configurable-sprint-interruption-on-attack.patch b/patches/server/0182-Configurable-sprint-interruption-on-attack.patch similarity index 87% rename from patches/unapplied/server/0182-Configurable-sprint-interruption-on-attack.patch rename to patches/server/0182-Configurable-sprint-interruption-on-attack.patch index 1fe54fe26f..419b298b51 100644 --- a/patches/unapplied/server/0182-Configurable-sprint-interruption-on-attack.patch +++ b/patches/server/0182-Configurable-sprint-interruption-on-attack.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable sprint interruption on attack If the sprint interruption is disabled players continue sprinting when they attack entities. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 35cb06706e1584cd6d25aa68ff5c9b40a5768e03..605f043bb132b21ff263ba7ab31a0f468a912d13 100644 +index 8d8a58fc8a2620abab212952df94e6690a3c953b..c43bc1d01e9116393d92e06b1929d09ed1abaefb 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1277,7 +1277,11 @@ public abstract class Player extends LivingEntity { +@@ -1280,7 +1280,11 @@ public abstract class Player extends LivingEntity { } this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); diff --git a/patches/unapplied/server/0183-EndermanEscapeEvent.patch b/patches/server/0183-EndermanEscapeEvent.patch similarity index 89% rename from patches/unapplied/server/0183-EndermanEscapeEvent.patch rename to patches/server/0183-EndermanEscapeEvent.patch index cd9bf53000..bc426f7325 100644 --- a/patches/unapplied/server/0183-EndermanEscapeEvent.patch +++ b/patches/server/0183-EndermanEscapeEvent.patch @@ -8,10 +8,10 @@ Fires an event anytime an enderman intends to teleport away from the player You may cancel this, enabling ranged attacks to damage the enderman for example. diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index a6c9ca2928216ed89f69c1d140590d3368b354d6..d7145b3a19402a03d0af02822ffcb0ef07eaa663 100644 +index 7257cfd299f2e9d49d7c303dcb5f9304f09e05d8..ba45d14724c29d227800e76c6a906e60ab6844d6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -121,6 +121,12 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -120,6 +120,12 @@ public class EnderMan extends Monster implements NeutralMob { this.setTarget(target, EntityTargetEvent.TargetReason.UNKNOWN, true); } @@ -24,7 +24,7 @@ index a6c9ca2928216ed89f69c1d140590d3368b354d6..d7145b3a19402a03d0af02822ffcb0ef @Override public boolean setTarget(LivingEntity entityliving, EntityTargetEvent.TargetReason reason, boolean fireEvent) { if (!super.setTarget(entityliving, reason, fireEvent)) { -@@ -257,7 +263,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -256,7 +262,7 @@ public class EnderMan extends Monster implements NeutralMob { if (world.isDay() && this.tickCount >= this.targetChangeTime + 600) { float f = this.getLightLevelDependentMagicValue(); @@ -33,7 +33,7 @@ index a6c9ca2928216ed89f69c1d140590d3368b354d6..d7145b3a19402a03d0af02822ffcb0ef this.setTarget((LivingEntity) null); this.teleport(); } -@@ -383,11 +389,13 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -382,11 +388,13 @@ public class EnderMan extends Monster implements NeutralMob { } else { flag1 = flag && this.hurtWithCleanWater(world, source, (ThrownPotion) source.getDirectEntity(), amount); @@ -47,7 +47,7 @@ index a6c9ca2928216ed89f69c1d140590d3368b354d6..d7145b3a19402a03d0af02822ffcb0ef return flag1; } -@@ -612,7 +620,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -611,7 +619,7 @@ public class EnderMan extends Monster implements NeutralMob { } else { if (this.target != null && !this.enderman.isPassenger()) { if (this.enderman.isBeingStaredBy((Player) this.target)) { diff --git a/patches/unapplied/server/0184-Enderman.teleportRandomly.patch b/patches/server/0184-Enderman.teleportRandomly.patch similarity index 100% rename from patches/unapplied/server/0184-Enderman.teleportRandomly.patch rename to patches/server/0184-Enderman.teleportRandomly.patch diff --git a/patches/unapplied/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch similarity index 73% rename from patches/unapplied/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch rename to patches/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch index 532ff4941f..eacc37f6ea 100644 --- a/patches/unapplied/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch +++ b/patches/server/0185-Expand-World.spawnParticle-API-and-add-Builder.patch @@ -10,20 +10,20 @@ Adds an option to control the force mode of the particle. This adds a new Builder API which is much friendlier to use. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3d54f52ed43ceef368804f7dce1dd95de3acc045..03161ef12960cab3b9c81c190dd808a9c5c476e1 100644 +index 9cb02b168384f597fce1251696e77a1e74f0d774..e80dc81423538e7e8a5510e5d82e97ab2097c225 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1541,12 +1541,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1542,12 +1542,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } - public int sendParticles(ServerPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { + public int sendParticlesSource(ServerPlayer sender, T t0, boolean flag, boolean flag1, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6) { + // Paper start - Particle API -+ return sendParticles(players, sender, t0, d0, d1, d2, i, d3, d4, d5, d6, force); ++ return this.sendParticlesSource(this.players, sender, t0, flag, flag1, d0, d1, d2, i, d3, d4, d5, d6); + } -+ public int sendParticles(List receivers, @Nullable ServerPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) { ++ public int sendParticlesSource(List receivers, ServerPlayer sender, T t0, boolean flag, boolean flag1, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6) { + // Paper end - Particle API - ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(t0, force, d0, d1, d2, (float) d3, (float) d4, (float) d5, (float) d6, i); // CraftBukkit end + ClientboundLevelParticlesPacket packetplayoutworldparticles = new ClientboundLevelParticlesPacket(t0, flag, flag1, d0, d1, d2, (float) d3, (float) d4, (float) d5, (float) d6, i); int j = 0; - for (int k = 0; k < this.players.size(); ++k) { @@ -32,9 +32,9 @@ index 3d54f52ed43ceef368804f7dce1dd95de3acc045..03161ef12960cab3b9c81c190dd808a9 + ServerPlayer entityplayer = (ServerPlayer) entityhuman; // Paper - Particle API if (sender != null && !entityplayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit - if (this.sendParticles(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit + if (this.sendParticles(entityplayer, flag, d0, d1, d2, packetplayoutworldparticles)) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9ad27a6908ac07d87dc0453b61f69d3b3037a971..51e5cd3e56487c3438d9b4ab1670e551790967ac 100644 +index cf38f75050ef947d9f853374f40a25504ec987a6..a403507c0729f5c26172c82caa9dca65214d0319 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1989,8 +1989,19 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -51,10 +51,10 @@ index 9ad27a6908ac07d87dc0453b61f69d3b3037a971..51e5cd3e56487c3438d9b4ab1670e551 + if (data != null) { + Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType()); + } - this.getHandle().sendParticles( + this.getHandle().sendParticlesSource( - null, // Sender + 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 + false, force, x, y, z, // Position - count, // Count diff --git a/patches/unapplied/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch b/patches/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch similarity index 94% rename from patches/unapplied/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch rename to patches/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch index 9b28d06fce..24b6027a1a 100644 --- a/patches/unapplied/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch +++ b/patches/server/0186-Fix-exploit-that-allowed-colored-signs-to-be-created.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix exploit that allowed colored signs to be created diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index cdaa050f237c6d6d5a0df0faf23daf3775249451..469d0046ba98289e98aa0f3f66e3ed27026a98a2 100644 +index 9e185afc561a4470055bba7dd1d256ee83805c8d..0e80e4f01e0175a9a2e90dc950ba0580af6b1520 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -202,9 +202,9 @@ public class SignBlockEntity extends BlockEntity { diff --git a/patches/unapplied/server/0187-EndermanAttackPlayerEvent.patch b/patches/server/0187-EndermanAttackPlayerEvent.patch similarity index 52% rename from patches/unapplied/server/0187-EndermanAttackPlayerEvent.patch rename to patches/server/0187-EndermanAttackPlayerEvent.patch index 7ec73bf7df..f416d418ac 100644 --- a/patches/unapplied/server/0187-EndermanAttackPlayerEvent.patch +++ b/patches/server/0187-EndermanAttackPlayerEvent.patch @@ -8,21 +8,21 @@ Allow control over whether or not an enderman aggros a player. This allows you to override/extend the pumpkin/stare logic. diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index d7145b3a19402a03d0af02822ffcb0ef07eaa663..5f1bbb4302013c2c1788db6b64eafba2a11a373a 100644 +index ba45d14724c29d227800e76c6a906e60ab6844d6..e9b28c7fea402cb15cfeefe6cd02e3056e54796d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -234,6 +234,14 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -233,6 +233,14 @@ public class EnderMan extends Monster implements NeutralMob { } boolean isBeingStaredBy(Player player) { -+ // Paper start - EndermanAttackPlayerEvent -+ boolean shouldAttack = isBeingStaredBy0(player); -+ com.destroystokyo.paper.event.entity.EndermanAttackPlayerEvent event = new com.destroystokyo.paper.event.entity.EndermanAttackPlayerEvent((org.bukkit.entity.Enderman) getBukkitEntity(), (org.bukkit.entity.Player) player.getBukkitEntity()); ++ // Paper start - EndermanAttackPlayerEvent ++ final boolean shouldAttack = isBeingStaredBy0(player); ++ final com.destroystokyo.paper.event.entity.EndermanAttackPlayerEvent event = new com.destroystokyo.paper.event.entity.EndermanAttackPlayerEvent((org.bukkit.entity.Enderman) getBukkitEntity(), (org.bukkit.entity.Player) player.getBukkitEntity()); + event.setCancelled(!shouldAttack); + return event.callEvent(); + } + private boolean isBeingStaredBy0(Player player) { -+ // Paper end - EndermanAttackPlayerEvent - return this.isLookingAtMe(player, 0.025D, true, false, LivingEntity.PLAYER_NOT_WEARING_DISGUISE_ITEM, new DoubleSupplier[]{this::getEyeY}); ++ // Paper end - EndermanAttackPlayerEvent + return !LivingEntity.PLAYER_NOT_WEARING_DISGUISE_ITEM.test(player) ? false : this.isLookingAtMe(player, 0.025D, true, false, new double[]{this.getEyeY()}); } diff --git a/patches/unapplied/server/0188-WitchConsumePotionEvent.patch b/patches/server/0188-WitchConsumePotionEvent.patch similarity index 100% rename from patches/unapplied/server/0188-WitchConsumePotionEvent.patch rename to patches/server/0188-WitchConsumePotionEvent.patch diff --git a/patches/unapplied/server/0189-WitchThrowPotionEvent.patch b/patches/server/0189-WitchThrowPotionEvent.patch similarity index 100% rename from patches/unapplied/server/0189-WitchThrowPotionEvent.patch rename to patches/server/0189-WitchThrowPotionEvent.patch diff --git a/patches/unapplied/server/0190-WitchReadyPotionEvent.patch b/patches/server/0190-WitchReadyPotionEvent.patch similarity index 100% rename from patches/unapplied/server/0190-WitchReadyPotionEvent.patch rename to patches/server/0190-WitchReadyPotionEvent.patch diff --git a/patches/unapplied/server/0191-ItemStack-getMaxItemUseDuration.patch b/patches/server/0191-ItemStack-getMaxItemUseDuration.patch similarity index 100% rename from patches/unapplied/server/0191-ItemStack-getMaxItemUseDuration.patch rename to patches/server/0191-ItemStack-getMaxItemUseDuration.patch diff --git a/patches/unapplied/server/0192-Add-EntityTeleportEndGatewayEvent.patch b/patches/server/0192-Add-EntityTeleportEndGatewayEvent.patch similarity index 93% rename from patches/unapplied/server/0192-Add-EntityTeleportEndGatewayEvent.patch rename to patches/server/0192-Add-EntityTeleportEndGatewayEvent.patch index 6431091971..d8a3152357 100644 --- a/patches/unapplied/server/0192-Add-EntityTeleportEndGatewayEvent.patch +++ b/patches/server/0192-Add-EntityTeleportEndGatewayEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityTeleportEndGatewayEvent diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c22b1ef0751d244310dee880565eef83bdb61114..7001d4f1da527ed3cfd548eebccfcdc284b6a2ee 100644 +index 211886d55e19039768658b1c704f241ac93cf75a..9175c61a5c0b8a79c46869649320beaf731a2ab4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3430,8 +3430,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3460,8 +3460,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit start PositionMoveRotation absolutePosition = PositionMoveRotation.calculateAbsolute(PositionMoveRotation.of(this), PositionMoveRotation.of(teleportTarget), teleportTarget.relatives()); Location to = CraftLocation.toBukkit(absolutePosition.position(), teleportTarget.newLevel().getWorld(), absolutePosition.yRot(), absolutePosition.xRot()); diff --git a/patches/unapplied/server/0193-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch b/patches/server/0193-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch similarity index 100% rename from patches/unapplied/server/0193-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch rename to patches/server/0193-Unset-Ignited-flag-on-cancel-of-Explosion-Event.patch diff --git a/patches/unapplied/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch b/patches/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch similarity index 97% rename from patches/unapplied/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch rename to patches/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch index 3a0c761449..8e4524f669 100644 --- a/patches/unapplied/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch +++ b/patches/server/0194-Improve-CraftEntity-and-CraftPlayer-equals-and-hashC.patch @@ -53,7 +53,7 @@ index 0480fbeffd19011d3cd63021225f376c464b480c..d6241e2db362de034ae610694c49c188 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a94927944ebf952c8621c2cc4f4506eb934f0bfa..b79d02ecccc74120f5e40cfc0542c8ac8c1f5909 100644 +index ce22bf772aa00e7d06328961bb69ff89eb3e52c6..6538a3ee384b36774480bc49c702102e5d0b7762 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -626,22 +626,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0195-Configurable-LootPool-luck-formula.patch b/patches/server/0195-Configurable-LootPool-luck-formula.patch similarity index 100% rename from patches/unapplied/server/0195-Configurable-LootPool-luck-formula.patch rename to patches/server/0195-Configurable-LootPool-luck-formula.patch diff --git a/patches/unapplied/server/0196-Print-Error-details-when-failing-to-save-player-data.patch b/patches/server/0196-Print-Error-details-when-failing-to-save-player-data.patch similarity index 100% rename from patches/unapplied/server/0196-Print-Error-details-when-failing-to-save-player-data.patch rename to patches/server/0196-Print-Error-details-when-failing-to-save-player-data.patch diff --git a/patches/unapplied/server/0197-Make-shield-blocking-delay-configurable.patch b/patches/server/0197-Make-shield-blocking-delay-configurable.patch similarity index 90% rename from patches/unapplied/server/0197-Make-shield-blocking-delay-configurable.patch rename to patches/server/0197-Make-shield-blocking-delay-configurable.patch index 87567dd988..810db5a600 100644 --- a/patches/unapplied/server/0197-Make-shield-blocking-delay-configurable.patch +++ b/patches/server/0197-Make-shield-blocking-delay-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a03583daf6cac850c154e0e89dc3fa00a844903f..349aa25d6e52190534ea68a31b6e2ae29a689944 100644 +index bddd731cbdf88b349598d92f45a5af30b46e34ef..9d0b7fc2e6beee1acb28a0dd473023beaafd86e5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4102,12 +4102,24 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4109,12 +4109,24 @@ public abstract class LivingEntity extends Entity implements Attackable { if (this.isUsingItem() && !this.useItem.isEmpty()) { Item item = this.useItem.getItem(); @@ -35,7 +35,7 @@ index a03583daf6cac850c154e0e89dc3fa00a844903f..349aa25d6e52190534ea68a31b6e2ae2 return this.isShiftKeyDown(); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 452fe788152f7c38ab4b6c627e3ba37da3d9b9d9..e5186fbd4030d7b39443090b711e855dcbc39426 100644 +index 445126b24a8c5c9104b14838661c53382bd65e53..4d09ba705220d397adedab27c31d604447c51319 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -873,5 +873,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0198-Improve-EntityShootBowEvent.patch b/patches/server/0198-Improve-EntityShootBowEvent.patch similarity index 94% rename from patches/unapplied/server/0198-Improve-EntityShootBowEvent.patch rename to patches/server/0198-Improve-EntityShootBowEvent.patch index 213e6f61c1..b38b2ff979 100644 --- a/patches/unapplied/server/0198-Improve-EntityShootBowEvent.patch +++ b/patches/server/0198-Improve-EntityShootBowEvent.patch @@ -9,10 +9,10 @@ Adds missing call to Illagers and also adds Arrow ItemStack to skeletons public net.minecraft.world.entity.projectile.AbstractArrow getPickupItem()Lnet.minecraft.world.item.ItemStack; diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index b16979ae9ad9636d91d3f2cd80baf01250ec534d..8f63e27d904abb33492daf627d48d33d1193deef 100644 +index 60b41fc25093789c362fa8d158272df42443fec1..b7b567192f14ca8bac24b533dcbb5b5bd4f5a3aa 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -@@ -208,7 +208,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -210,7 +210,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo if (world instanceof ServerLevel worldserver) { // CraftBukkit start diff --git a/patches/unapplied/server/0199-PlayerReadyArrowEvent.patch b/patches/server/0199-PlayerReadyArrowEvent.patch similarity index 93% rename from patches/unapplied/server/0199-PlayerReadyArrowEvent.patch rename to patches/server/0199-PlayerReadyArrowEvent.patch index 8d16572d48..e290640892 100644 --- a/patches/unapplied/server/0199-PlayerReadyArrowEvent.patch +++ b/patches/server/0199-PlayerReadyArrowEvent.patch @@ -7,10 +7,10 @@ Called when a player is firing a bow and the server is choosing an arrow to use. Plugins can skip selection of certain arrows and control which is used. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 605f043bb132b21ff263ba7ab31a0f468a912d13..df0cfd316d24e285f927c713ab1f9a912857928c 100644 +index c43bc1d01e9116393d92e06b1929d09ed1abaefb..3c02f29b3114220b2634d69b413a6724ee4cfdf8 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -2185,18 +2185,29 @@ public abstract class Player extends LivingEntity { +@@ -2188,18 +2188,29 @@ public abstract class Player extends LivingEntity { return ImmutableList.of(Pose.STANDING, Pose.CROUCHING, Pose.SWIMMING); } diff --git a/patches/unapplied/server/0200-Add-entity-knockback-events.patch b/patches/server/0200-Add-entity-knockback-events.patch similarity index 93% rename from patches/unapplied/server/0200-Add-entity-knockback-events.patch rename to patches/server/0200-Add-entity-knockback-events.patch index 54b98a893f..acd8ec13b9 100644 --- a/patches/unapplied/server/0200-Add-entity-knockback-events.patch +++ b/patches/server/0200-Add-entity-knockback-events.patch @@ -11,10 +11,10 @@ Co-authored-by: aerulion Co-authored-by: Jake Potrebic diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7001d4f1da527ed3cfd548eebccfcdc284b6a2ee..9f503da8895e85991f3d5e8f62c7aa065c61c93c 100644 +index 9175c61a5c0b8a79c46869649320beaf731a2ab4..3c29f5e1338754728e1acb4676526945b1e7f67c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2051,7 +2051,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -2074,7 +2074,21 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public void push(double deltaX, double deltaY, double deltaZ) { @@ -38,10 +38,10 @@ index 7001d4f1da527ed3cfd548eebccfcdc284b6a2ee..9f503da8895e85991f3d5e8f62c7aa06 } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 349aa25d6e52190534ea68a31b6e2ae29a689944..6b599427c2d61d4475af0f5af8294308940cf0c9 100644 +index 9d0b7fc2e6beee1acb28a0dd473023beaafd86e5..5fef8dad5469a1e9409700614a1c861547e42bc7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1563,7 +1563,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1531,7 +1531,7 @@ public abstract class LivingEntity extends Entity implements Attackable { d1 = source.getSourcePosition().z() - this.getZ(); } @@ -50,7 +50,7 @@ index 349aa25d6e52190534ea68a31b6e2ae29a689944..6b599427c2d61d4475af0f5af8294308 if (!flag) { this.indicateDamage(d0, d1); } -@@ -1620,7 +1620,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1631,7 +1631,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected void blockedByShield(LivingEntity target) { @@ -59,7 +59,7 @@ index 349aa25d6e52190534ea68a31b6e2ae29a689944..6b599427c2d61d4475af0f5af8294308 } private boolean checkTotemDeathProtection(DamageSource source) { -@@ -1906,10 +1906,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1917,10 +1917,10 @@ public abstract class LivingEntity extends Entity implements Attackable { public void knockback(double strength, double x, double z) { // CraftBukkit start - EntityKnockbackEvent @@ -72,7 +72,7 @@ index 349aa25d6e52190534ea68a31b6e2ae29a689944..6b599427c2d61d4475af0f5af8294308 d0 *= 1.0D - this.getAttributeValue(Attributes.KNOCKBACK_RESISTANCE); if (true || d0 > 0.0D) { // CraftBukkit - Call event even when force is 0 //this.hasImpulse = true; // CraftBukkit - Move down -@@ -1922,13 +1922,17 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1933,13 +1933,17 @@ public abstract class LivingEntity extends Entity implements Attackable { Vec3 vec3d1 = (new Vec3(d1, 0.0D, d2)).normalize().scale(d0); @@ -93,10 +93,10 @@ index 349aa25d6e52190534ea68a31b6e2ae29a689944..6b599427c2d61d4475af0f5af8294308 } } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 51381c32c8650400331a122a4b6c8d95c9d0632b..2b8bfccbf520f9a356f816522ac3a5caa51e44e1 100644 +index f568ccec14cac96efa03dc888a4a2a0067515b39..6d1f840a328a2081a59aab923595450eb54f685c 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1685,7 +1685,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1684,7 +1684,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab if (f1 > 0.0F && target instanceof LivingEntity) { entityliving = (LivingEntity) target; @@ -132,7 +132,7 @@ index dbae113f3447f66e154b302ce0634b0fe446381c..d0fb32feb10f75444e3ed0a50c70ef6f }); } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 0012ab1f56180081d210c8836e2a59d543b950b8..ba1bb0f82634054e02c5f4bc062c1822a356e2a6 100644 +index f10d0a03c2bb6487dd05869e05258276bfcec7eb..6e2e570aa1c85eced9ed9578188db43df132a290 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -441,7 +441,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -174,10 +174,10 @@ index 6a90feef8eb2d65c925c44bc97305a51e3fb7cf0..7dfbcb2ed831cff5d002d79fb81514e6 } diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index c4397afa53a36ecf867525c4dcf2231a52d058dd..32973d9c7bf4c4105d7bd82d3723e0b70cd79644 100644 +index 1d15465069c8aa57fa89521a8e75c1aeb1cfc096..6c909ea334310f1f9b2d9a2e2cc2f23f2badba37 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -@@ -292,7 +292,7 @@ public class Ravager extends Raider { +@@ -289,7 +289,7 @@ public class Ravager extends Raider { double d1 = entity.getZ() - this.getZ(); double d2 = Math.max(d0 * d0 + d1 * d1, 0.001D); @@ -200,10 +200,10 @@ index 8b80f5c2749106f634d962fd0f381aa20e7ef335..a1e3375519fe676b14788d6729a7e71d } } diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index df0cfd316d24e285f927c713ab1f9a912857928c..ba0ea4d6b67c9c52f170e0235e4b972aad3ce211 100644 +index 3c02f29b3114220b2634d69b413a6724ee4cfdf8..02d8ada43669134695e7edcf33fdac4599969f9d 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1271,9 +1271,9 @@ public abstract class Player extends LivingEntity { +@@ -1274,9 +1274,9 @@ public abstract class Player extends LivingEntity { if (target instanceof LivingEntity) { LivingEntity entityliving1 = (LivingEntity) target; @@ -215,7 +215,7 @@ index df0cfd316d24e285f927c713ab1f9a912857928c..ba0ea4d6b67c9c52f170e0235e4b972a } this.setDeltaMovement(this.getDeltaMovement().multiply(0.6D, 1.0D, 0.6D)); -@@ -1301,7 +1301,7 @@ public abstract class Player extends LivingEntity { +@@ -1304,7 +1304,7 @@ public abstract class Player extends LivingEntity { continue; } // CraftBukkit end @@ -225,10 +225,10 @@ index df0cfd316d24e285f927c713ab1f9a912857928c..ba0ea4d6b67c9c52f170e0235e4b972a Level world = this.level(); diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index eb9a82c8c0e342d2afb21c64da32412ce3a0be76..94fdfaa209406c23fc292982d1221c3ee82eea27 100644 +index dd115d514aeb3d124bc99456044f7d176850acab..a05fc651a952b57a8a2fcb32d26d024875037d38 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -553,7 +553,7 @@ public abstract class AbstractArrow extends Projectile { +@@ -568,7 +568,7 @@ public abstract class AbstractArrow extends Projectile { Vec3 vec3d = this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D).normalize().scale(d0 * 0.6D * d1); if (vec3d.lengthSqr() > 0.0D) { @@ -238,7 +238,7 @@ index eb9a82c8c0e342d2afb21c64da32412ce3a0be76..94fdfaa209406c23fc292982d1221c3e } diff --git a/src/main/java/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.java b/src/main/java/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.java -index 6541ab0d8da28785b19fa50d18d6a484ea38cef8..a325a223d06e155c01f664562db0edd0b180e356 100644 +index dd14e76ca0813e19a7a531e9009b8f156ae8d896..8022d2d9415d8b2dedee2db0e4f1f0aab8c55bde 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.java +++ b/src/main/java/net/minecraft/world/entity/projectile/windcharge/AbstractWindCharge.java @@ -101,7 +101,7 @@ public abstract class AbstractWindCharge extends AbstractHurtingProjectile imple @@ -251,7 +251,7 @@ index 6541ab0d8da28785b19fa50d18d6a484ea38cef8..a325a223d06e155c01f664562db0edd0 public abstract void explode(Vec3 pos); diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index 3afacd201683f46fd75cd6f9a7f3d43a7050cf4a..9f37d7284c81d529551107e2836627977efabd65 100644 +index e816e54daff781d54a94a007df5c59051347739d..fa22406002ae2c424b8eadbf78eabc2776f43945 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java @@ -258,13 +258,10 @@ public class ServerExplosion implements Explosion { @@ -271,7 +271,7 @@ index 3afacd201683f46fd75cd6f9a7f3d43a7050cf4a..9f37d7284c81d529551107e283662797 + // Paper end - knockback events } // CraftBukkit end - entity.setDeltaMovement(entity.getDeltaMovement().add(vec3d)); + entity.push(vec3d); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index f05a19f868be0d685c4fbf64e1dfbefda71131ac..60a16ac62a27a92b763bf90e72fab4ed01aeb592 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/patches/unapplied/server/0201-Expand-Explosions-API.patch b/patches/server/0201-Expand-Explosions-API.patch similarity index 93% rename from patches/unapplied/server/0201-Expand-Explosions-API.patch rename to patches/server/0201-Expand-Explosions-API.patch index 43d296102f..b10058e3c2 100644 --- a/patches/unapplied/server/0201-Expand-Explosions-API.patch +++ b/patches/server/0201-Expand-Explosions-API.patch @@ -9,10 +9,10 @@ Co-authored-by: Esoteric Enderman <90862990+EsotericEnderman@users.noreply.githu Co-authored-by: Bjarne Koll diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 03161ef12960cab3b9c81c190dd808a9c5c476e1..f0fc08bcc2988277b6a5e3107e6fc5c89bb67b93 100644 +index e80dc81423538e7e8a5510e5d82e97ab2097c225..74f7467caf7d86011f0b8aea7a8c1f5c644f690a 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1424,6 +1424,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1425,6 +1425,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe } public ServerExplosion explode0(@Nullable Entity entity, @Nullable DamageSource damagesource, @Nullable ExplosionDamageCalculator explosiondamagecalculator, double d0, double d1, double d2, float f, boolean flag, Level.ExplosionInteraction world_a, ParticleOptions particleparam, ParticleOptions particleparam1, Holder holder) { @@ -24,7 +24,7 @@ index 03161ef12960cab3b9c81c190dd808a9c5c476e1..f0fc08bcc2988277b6a5e3107e6fc5c8 // CraftBukkit end Explosion.BlockInteraction explosion_effect; -@@ -1455,6 +1460,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1456,6 +1461,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe Explosion.BlockInteraction explosion_effect1 = explosion_effect; Vec3 vec3d = new Vec3(d0, d1, d2); ServerExplosion serverexplosion = new ServerExplosion(this, entity, damagesource, explosiondamagecalculator, vec3d, f, flag, explosion_effect1); @@ -33,7 +33,7 @@ index 03161ef12960cab3b9c81c190dd808a9c5c476e1..f0fc08bcc2988277b6a5e3107e6fc5c8 serverexplosion.explode(); // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java -index 9f37d7284c81d529551107e2836627977efabd65..d1878f597c3d8119e9b248f4fe8af435ce8c9710 100644 +index fa22406002ae2c424b8eadbf78eabc2776f43945..4c03ec11fb2c36291b8b6cb73a7c63eabb9dcd4f 100644 --- a/src/main/java/net/minecraft/world/level/ServerExplosion.java +++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java @@ -63,6 +63,7 @@ public class ServerExplosion implements Explosion { @@ -54,7 +54,7 @@ index 9f37d7284c81d529551107e2836627977efabd65..d1878f597c3d8119e9b248f4fe8af435 while (iterator.hasNext()) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 51e5cd3e56487c3438d9b4ab1670e551790967ac..18c92df4fd68bf5374608dc34517e48ce0fb428a 100644 +index a403507c0729f5c26172c82caa9dca65214d0319..32b5fbbaf49bbede29a94d518663e9549411ee2f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -777,6 +777,11 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0202-LivingEntity-Active-Item-API.patch b/patches/server/0202-LivingEntity-Active-Item-API.patch similarity index 96% rename from patches/unapplied/server/0202-LivingEntity-Active-Item-API.patch rename to patches/server/0202-LivingEntity-Active-Item-API.patch index f7de817b6b..ae5cb5c4dc 100644 --- a/patches/unapplied/server/0202-LivingEntity-Active-Item-API.patch +++ b/patches/server/0202-LivingEntity-Active-Item-API.patch @@ -13,7 +13,7 @@ public net/minecraft/server/level/ServerPlayer completeUsingItem()V Co-authored-by: Jake Potrebic diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index e5186fbd4030d7b39443090b711e855dcbc39426..2033354daafc739a8bd9ddf4a6128d3204d32094 100644 +index 4d09ba705220d397adedab27c31d604447c51319..5799e385ca91f360a9b5d72b281c5a19ab03de48 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -884,4 +884,53 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0203-RangedEntity-API.patch b/patches/server/0203-RangedEntity-API.patch similarity index 100% rename from patches/unapplied/server/0203-RangedEntity-API.patch rename to patches/server/0203-RangedEntity-API.patch diff --git a/patches/unapplied/server/0204-Add-config-to-disable-ender-dragon-legacy-check.patch b/patches/server/0204-Add-config-to-disable-ender-dragon-legacy-check.patch similarity index 100% rename from patches/unapplied/server/0204-Add-config-to-disable-ender-dragon-legacy-check.patch rename to patches/server/0204-Add-config-to-disable-ender-dragon-legacy-check.patch diff --git a/patches/unapplied/server/0205-Implement-World.getEntity-UUID-API.patch b/patches/server/0205-Implement-World.getEntity-UUID-API.patch similarity index 91% rename from patches/unapplied/server/0205-Implement-World.getEntity-UUID-API.patch rename to patches/server/0205-Implement-World.getEntity-UUID-API.patch index 608b54079b..7836da0c0a 100644 --- a/patches/unapplied/server/0205-Implement-World.getEntity-UUID-API.patch +++ b/patches/server/0205-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 18c92df4fd68bf5374608dc34517e48ce0fb428a..8f231f693882a770bdc810b1e117eb31ef1ddadb 100644 +index 32b5fbbaf49bbede29a94d518663e9549411ee2f..1a3ea592ce33798d01425205fcde452a7bcb8790 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1130,6 +1130,15 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0206-InventoryCloseEvent-Reason-API.patch b/patches/server/0206-InventoryCloseEvent-Reason-API.patch similarity index 91% rename from patches/unapplied/server/0206-InventoryCloseEvent-Reason-API.patch rename to patches/server/0206-InventoryCloseEvent-Reason-API.patch index 179c54a7fa..39b8f269e4 100644 --- a/patches/unapplied/server/0206-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0206-InventoryCloseEvent-Reason-API.patch @@ -7,10 +7,10 @@ Allows you to determine why an inventory was closed, enabling plugin developers to "confirm" things based on if it was player triggered close or not. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f0fc08bcc2988277b6a5e3107e6fc5c89bb67b93..e03032b96e8f44ef83f52dcf3dc5a8856281e475 100644 +index 74f7467caf7d86011f0b8aea7a8c1f5c644f690a..99db41834d7e8fb8fbbe83bd70a4b8d7c016c3e2 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1209,7 +1209,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1210,7 +1210,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { if (tileentity instanceof net.minecraft.world.Container) { for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((net.minecraft.world.Container) tileentity).getViewers())) { @@ -19,7 +19,7 @@ index f0fc08bcc2988277b6a5e3107e6fc5c89bb67b93..e03032b96e8f44ef83f52dcf3dc5a885 } } } -@@ -2254,7 +2254,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -2260,7 +2260,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe // Spigot Start if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message for (org.bukkit.entity.HumanEntity h : Lists.newArrayList(((org.bukkit.inventory.InventoryHolder) entity.getBukkitEntity()).getInventory().getViewers())) { @@ -29,19 +29,19 @@ index f0fc08bcc2988277b6a5e3107e6fc5c89bb67b93..e03032b96e8f44ef83f52dcf3dc5a885 } // Spigot End diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8fd3802d8e293e35478666bd4e921d58e1ce5b41..8a3b570034d2ec7916b80b89186c0664e7bc73dd 100644 +index 1ebd8d20e510b7af2cdf461fff9eb949a0017ae6..0a5aeb9b50dfec3b791040348f6a9e929ef8e59c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -933,7 +933,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -930,7 +930,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } // Paper end - Configurable container update tick rate - if (!this.level().isClientSide && !this.containerMenu.stillValid(this)) { + if (!this.containerMenu.stillValid(this)) { - this.closeContainer(); + this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper - Inventory close reason this.containerMenu = this.inventoryMenu; } -@@ -1185,7 +1185,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1182,7 +1182,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { // SPIGOT-943 - only call if they have an inventory open if (this.containerMenu != this.inventoryMenu) { @@ -50,7 +50,7 @@ index 8fd3802d8e293e35478666bd4e921d58e1ce5b41..8a3b570034d2ec7916b80b89186c0664 } net.kyori.adventure.text.Component deathMessage = event.deathMessage() != null ? event.deathMessage() : net.kyori.adventure.text.Component.empty(); // Paper - Adventure -@@ -1859,7 +1859,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1842,7 +1842,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { } // CraftBukkit end if (this.containerMenu != this.inventoryMenu) { @@ -59,7 +59,7 @@ index 8fd3802d8e293e35478666bd4e921d58e1ce5b41..8a3b570034d2ec7916b80b89186c0664 } // this.nextContainerCounter(); // CraftBukkit - moved up -@@ -1889,7 +1889,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -1872,7 +1872,13 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { @Override public void closeContainer() { @@ -75,10 +75,10 @@ index 8fd3802d8e293e35478666bd4e921d58e1ce5b41..8a3b570034d2ec7916b80b89186c0664 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 79d9a58c66382fd94ab5f6020285e341b0114f6a..f36d72153c1ec0426790ed3033500c3cb766af2d 100644 +index f2b6162562a2f35c8f610c9386172984ae30bf17..b4edc64f3eacdbfb6187106989d190303b0541ac 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2638,10 +2638,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2714,10 +2714,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleContainerClose(ServerboundContainerClosePacket packet) { @@ -109,10 +109,10 @@ index ac5607fb1ac771f16b14d71e08a8d4183a39a002..06338f5fa552a390db05a90b5cc796a7 PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : io.papermc.paper.adventure.PaperAdventure.asAdventure(entityplayer.getDisplayName()))); // Paper - Adventure diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index ba0ea4d6b67c9c52f170e0235e4b972aad3ce211..7eb4563299e7c54ec4df53c966f6d1a86fb2ec4e 100644 +index 02d8ada43669134695e7edcf33fdac4599969f9d..833e2b338671b81401409fc390ab1515f3520442 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -279,7 +279,7 @@ public abstract class Player extends LivingEntity { +@@ -282,7 +282,7 @@ public abstract class Player extends LivingEntity { this.updateIsUnderwater(); super.tick(); if (!this.level().isClientSide && this.containerMenu != null && !this.containerMenu.stillValid(this)) { @@ -121,7 +121,7 @@ index ba0ea4d6b67c9c52f170e0235e4b972aad3ce211..7eb4563299e7c54ec4df53c966f6d1a8 this.containerMenu = this.inventoryMenu; } -@@ -531,6 +531,13 @@ public abstract class Player extends LivingEntity { +@@ -534,6 +534,13 @@ public abstract class Player extends LivingEntity { } @@ -165,7 +165,7 @@ index 6d4e0a90c70f7a66450cbb18ebec1d7bf9200af2..5ff159be1a6dfb4b1a5b9aa1e435d294 @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 b79d02ecccc74120f5e40cfc0542c8ac8c1f5909..5239ce2d507f48effc4f3e2bc462d9caef5caa92 100644 +index 6538a3ee384b36774480bc49c702102e5d0b7762..c76f5d21d6bc5c25b43503ebb0cbdd9f8f984743 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1278,7 +1278,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0207-Vex-get-setSummoner-API.patch b/patches/server/0207-Vex-get-setSummoner-API.patch similarity index 100% rename from patches/unapplied/server/0207-Vex-get-setSummoner-API.patch rename to patches/server/0207-Vex-get-setSummoner-API.patch diff --git a/patches/unapplied/server/0208-add-more-information-to-Entity.toString.patch b/patches/server/0208-add-more-information-to-Entity.toString.patch similarity index 91% rename from patches/unapplied/server/0208-add-more-information-to-Entity.toString.patch rename to patches/server/0208-add-more-information-to-Entity.toString.patch index 8541967ffd..1c7a508698 100644 --- a/patches/unapplied/server/0208-add-more-information-to-Entity.toString.patch +++ b/patches/server/0208-add-more-information-to-Entity.toString.patch @@ -6,10 +6,10 @@ Subject: [PATCH] add more information to Entity.toString() UUID, ticks lived, valid, dead diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9f503da8895e85991f3d5e8f62c7aa065c61c93c..e67d8da5be50e07cb0473b7bfe6d381da044155a 100644 +index 3c29f5e1338754728e1acb4676526945b1e7f67c..87ab16a82b4ba58fd469eb845d79e9ad98cf45bc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3407,7 +3407,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -3437,7 +3437,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public String toString() { String s = this.level() == null ? "~NULL~" : this.level().toString(); diff --git a/patches/unapplied/server/0209-EnderDragon-Events.patch b/patches/server/0209-EnderDragon-Events.patch similarity index 100% rename from patches/unapplied/server/0209-EnderDragon-Events.patch rename to patches/server/0209-EnderDragon-Events.patch diff --git a/patches/unapplied/server/0210-PlayerElytraBoostEvent.patch b/patches/server/0210-PlayerElytraBoostEvent.patch similarity index 98% rename from patches/unapplied/server/0210-PlayerElytraBoostEvent.patch rename to patches/server/0210-PlayerElytraBoostEvent.patch index 3042206c20..f36ab9b175 100644 --- a/patches/unapplied/server/0210-PlayerElytraBoostEvent.patch +++ b/patches/server/0210-PlayerElytraBoostEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerElytraBoostEvent diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index fed01aea47090b990939becde837add6c36bf418..f8ae12a3540c4a7aa7e2c1656cbd866e33e11f57 100644 +index d7d2d4b5eb49e286171a143e4cb4419290a117e0..e76dc69e1bdce789532c9e439ea73b54186d0afc 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -219,11 +219,34 @@ public abstract class Projectile extends Entity implements TraceableEntity { diff --git a/patches/unapplied/server/0211-PlayerLaunchProjectileEvent.patch b/patches/server/0211-PlayerLaunchProjectileEvent.patch similarity index 92% rename from patches/unapplied/server/0211-PlayerLaunchProjectileEvent.patch rename to patches/server/0211-PlayerLaunchProjectileEvent.patch index de1f0193b6..d029ba0031 100644 --- a/patches/unapplied/server/0211-PlayerLaunchProjectileEvent.patch +++ b/patches/server/0211-PlayerLaunchProjectileEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerLaunchProjectileEvent diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index f8ae12a3540c4a7aa7e2c1656cbd866e33e11f57..d6dfda0580d919eb8a000113e7f9dd9794117b45 100644 +index e76dc69e1bdce789532c9e439ea73b54186d0afc..9c36b42befab1ce490d1e8af1d8b1b032291f49f 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -197,7 +197,12 @@ public abstract class Projectile extends Entity implements TraceableEntity { @@ -23,16 +23,16 @@ index f8ae12a3540c4a7aa7e2c1656cbd866e33e11f57..d6dfda0580d919eb8a000113e7f9dd97 }); } diff --git a/src/main/java/net/minecraft/world/item/EggItem.java b/src/main/java/net/minecraft/world/item/EggItem.java -index 8ddc1fa76244265616309322170c3a1b821c5092..3ddd34e5d05fa1355a2affd329d72dea216cd0e4 100644 +index 30e2e3a15e7fd2af1dc04f319758e1383eceb964..6d559fef484036194e4d899b82aaa7b5d518311e 100644 --- a/src/main/java/net/minecraft/world/item/EggItem.java +++ b/src/main/java/net/minecraft/world/item/EggItem.java -@@ -26,7 +26,19 @@ public class EggItem extends Item implements ProjectileItem { +@@ -28,7 +28,20 @@ public class EggItem extends Item implements ProjectileItem { // world.playSound((EntityHuman) null, entityhuman.getX(), entityhuman.getY(), entityhuman.getZ(), SoundEffects.EGG_THROW, SoundCategory.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // CraftBukkit - moved down if (world instanceof ServerLevel worldserver) { // CraftBukkit start -- if (Projectile.spawnProjectileFromRotation(ThrownEgg::new, worldserver, itemstack, user, 0.0F, 1.5F, 1.0F).isRemoved()) { +- if (Projectile.spawnProjectileFromRotation(ThrownEgg::new, worldserver, itemstack, user, 0.0F, EggItem.PROJECTILE_SHOOT_POWER, 1.0F).isRemoved()) { + // Paper start - PlayerLaunchProjectileEvent -+ final Projectile.Delayed thrownEgg = Projectile.spawnProjectileFromRotationDelayed(ThrownEgg::new, worldserver, itemstack, user, 0.0F, 1.5F, 1.0F); ++ final Projectile.Delayed thrownEgg = Projectile.spawnProjectileFromRotationDelayed(ThrownEgg::new, worldserver, itemstack, user, 0.0F, EggItem.PROJECTILE_SHOOT_POWER, 1.0F); + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) thrownEgg.projectile().getBukkitEntity()); + if (event.callEvent() && thrownEgg.attemptSpawn()) { + if (event.shouldConsume()) { @@ -44,10 +44,11 @@ index 8ddc1fa76244265616309322170c3a1b821c5092..3ddd34e5d05fa1355a2affd329d72dea + world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.EGG_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); + user.awardStat(Stats.ITEM_USED.get(this)); + } else { ++ // Paper end - PlayerLaunchProjectileEvent if (user instanceof net.minecraft.server.level.ServerPlayer) { ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); } -@@ -35,9 +47,7 @@ public class EggItem extends Item implements ProjectileItem { +@@ -37,9 +50,7 @@ public class EggItem extends Item implements ProjectileItem { // CraftBukkit end } world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.EGG_THROW, SoundSource.PLAYERS, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); @@ -59,16 +60,16 @@ index 8ddc1fa76244265616309322170c3a1b821c5092..3ddd34e5d05fa1355a2affd329d72dea } diff --git a/src/main/java/net/minecraft/world/item/EnderpearlItem.java b/src/main/java/net/minecraft/world/item/EnderpearlItem.java -index b9e24451a8f87479377e3324b3a956c0efc3e53c..b232390d8ee8e449e61c0ea7f3af60df507abb97 100644 +index 03fad91dc87cb01589093ad65a73a585bf9e1ab2..eaee34054233c8f0296b65a09f1287ba515496f2 100644 --- a/src/main/java/net/minecraft/world/item/EnderpearlItem.java +++ b/src/main/java/net/minecraft/world/item/EnderpearlItem.java -@@ -23,7 +23,20 @@ public class EnderpearlItem extends Item { +@@ -25,7 +25,20 @@ public class EnderpearlItem extends Item { if (world instanceof ServerLevel worldserver) { // CraftBukkit start -- if (Projectile.spawnProjectileFromRotation(ThrownEnderpearl::new, worldserver, itemstack, user, 0.0F, 1.5F, 1.0F).isRemoved()) { +- if (Projectile.spawnProjectileFromRotation(ThrownEnderpearl::new, worldserver, itemstack, user, 0.0F, EnderpearlItem.PROJECTILE_SHOOT_POWER, 1.0F).isRemoved()) { + // Paper start - PlayerLaunchProjectileEvent -+ final Projectile.Delayed thrownEnderpearl = Projectile.spawnProjectileFromRotationDelayed(ThrownEnderpearl::new, worldserver, itemstack, user, 0.0F, 1.5F, 1.0F); ++ final Projectile.Delayed thrownEnderpearl = Projectile.spawnProjectileFromRotationDelayed(ThrownEnderpearl::new, worldserver, itemstack, user, 0.0F, EnderpearlItem.PROJECTILE_SHOOT_POWER, 1.0F); + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) thrownEnderpearl.projectile().getBukkitEntity()); + if (event.callEvent() && thrownEnderpearl.attemptSpawn()) { + if (event.shouldConsume()) { @@ -84,7 +85,7 @@ index b9e24451a8f87479377e3324b3a956c0efc3e53c..b232390d8ee8e449e61c0ea7f3af60df if (user instanceof net.minecraft.server.level.ServerPlayer) { ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); } -@@ -33,8 +46,7 @@ public class EnderpearlItem extends Item { +@@ -35,8 +48,7 @@ public class EnderpearlItem extends Item { world.playSound((Player) null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENDER_PEARL_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); // CraftBukkit end @@ -201,17 +202,17 @@ index 7a5045469bc2d383ed087dcc094b6f97df4ec7ab..fa92a1346825f00a585503d0a0825711 } } diff --git a/src/main/java/net/minecraft/world/item/SnowballItem.java b/src/main/java/net/minecraft/world/item/SnowballItem.java -index ada9bc42a788b5f472324a0765edf5766d729784..57872ebef6beb8cdc03c9f8f19de94652ee19062 100644 +index eda3f4172c0aed152d81742e85d9bcf22e2bfdb2..d3bba4665ae14cc279c0f937831f909f8831b12b 100644 --- a/src/main/java/net/minecraft/world/item/SnowballItem.java +++ b/src/main/java/net/minecraft/world/item/SnowballItem.java -@@ -26,17 +26,26 @@ public class SnowballItem extends Item implements ProjectileItem { +@@ -28,17 +28,26 @@ public class SnowballItem extends Item implements ProjectileItem { // CraftBukkit start - moved down // world.playSound((EntityHuman) null, entityhuman.getX(), entityhuman.getY(), entityhuman.getZ(), SoundEffects.SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); if (world instanceof ServerLevel worldserver) { -- if (Projectile.spawnProjectileFromRotation(Snowball::new, worldserver, itemstack, user, 0.0F, 1.5F, 1.0F).isAlive()) { +- if (Projectile.spawnProjectileFromRotation(Snowball::new, worldserver, itemstack, user, 0.0F, SnowballItem.PROJECTILE_SHOOT_POWER, 1.0F).isAlive()) { - itemstack.consume(1, user); + // Paper start - PlayerLaunchProjectileEvent -+ final Projectile.Delayed snowball = Projectile.spawnProjectileFromRotationDelayed(Snowball::new, worldserver, itemstack, user, 0.0F, 1.5F, 1.0F); ++ final Projectile.Delayed snowball = Projectile.spawnProjectileFromRotationDelayed(Snowball::new, worldserver, itemstack, user, 0.0F, SnowballItem.PROJECTILE_SHOOT_POWER, 1.0F); + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) snowball.projectile().getBukkitEntity()); + if (event.callEvent() && snowball.attemptSpawn()) { + user.awardStat(Stats.ITEM_USED.get(this)); @@ -260,16 +261,16 @@ index 6d622d276a632c9c29ab04a01fbe7adbf10c35cd..577e66a7ff64d9569ee2402ecc26b0aa } } diff --git a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java -index e3eb733f18c23ae3fcc4c271843d285b217d1a7d..fa9d2ae44fcdd06f8f33cd14ffca422b20a01451 100644 +index 77f28203ce4bf1e4b66b513ed5aff442735a1a01..e422881d1ab0f1a5bb2cb741d23089a2e35de2d4 100644 --- a/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java +++ b/src/main/java/net/minecraft/world/item/ThrowablePotionItem.java -@@ -20,11 +20,28 @@ public class ThrowablePotionItem extends PotionItem implements ProjectileItem { +@@ -22,11 +22,28 @@ public class ThrowablePotionItem extends PotionItem implements ProjectileItem { public InteractionResult use(Level world, Player user, InteractionHand hand) { ItemStack itemStack = user.getItemInHand(hand); if (world instanceof ServerLevel serverLevel) { -- Projectile.spawnProjectileFromRotation(ThrownPotion::new, serverLevel, itemStack, user, -20.0F, 0.5F, 1.0F); +- Projectile.spawnProjectileFromRotation(ThrownPotion::new, serverLevel, itemStack, user, -20.0F, PROJECTILE_SHOOT_POWER, 1.0F); + // Paper start - PlayerLaunchProjectileEvent -+ final Projectile.Delayed thrownPotion = Projectile.spawnProjectileFromRotationDelayed(ThrownPotion::new, serverLevel, itemStack, user, -20.0F, 0.5F, 1.0F); ++ final Projectile.Delayed thrownPotion = Projectile.spawnProjectileFromRotationDelayed(ThrownPotion::new, serverLevel, itemStack, user, -20.0F, PROJECTILE_SHOOT_POWER, 1.0F); + // Paper start - PlayerLaunchProjectileEvent + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) thrownPotion.projectile().getBukkitEntity()); + if (event.callEvent() && thrownPotion.attemptSpawn()) { @@ -296,10 +297,10 @@ index e3eb733f18c23ae3fcc4c271843d285b217d1a7d..fa9d2ae44fcdd06f8f33cd14ffca422b } diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 22aa715c4ef615c2c9d795cc2e11b7099d5167da..8b9a93ef71164cce8a616735b71d96d37e83b1a8 100644 +index ddba6f1a1392c4a80aa14ecae4ee0c129dba37ce..2b2af4b7cc2c8be8c3aed30885be26816c021bdc 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java -@@ -87,21 +87,26 @@ public class TridentItem extends Item implements ProjectileItem { +@@ -88,21 +88,26 @@ public class TridentItem extends Item implements ProjectileItem { // itemstack.hurtWithoutBreaking(1, entityhuman); // CraftBukkit - moved down if (f == 0.0F) { @@ -332,10 +333,10 @@ index 22aa715c4ef615c2c9d795cc2e11b7099d5167da..8b9a93ef71164cce8a616735b71d96d3 } diff --git a/src/main/java/net/minecraft/world/item/WindChargeItem.java b/src/main/java/net/minecraft/world/item/WindChargeItem.java -index 79fdb78a4c3c7e324f0ed84a3dad9a3a80a6456a..0ce52d239b5bfb63e09cf5df679eee177f7bc5b0 100644 +index d20df91acdfa9067c8820bb55e605a9185803ee0..42e1128a47f1352d838e02e0b9ee8aa57fa41bb1 100644 --- a/src/main/java/net/minecraft/world/item/WindChargeItem.java +++ b/src/main/java/net/minecraft/world/item/WindChargeItem.java -@@ -25,7 +25,7 @@ public class WindChargeItem extends Item implements ProjectileItem { +@@ -27,7 +27,7 @@ public class WindChargeItem extends Item implements ProjectileItem { public InteractionResult use(Level world, Player user, InteractionHand hand) { ItemStack itemStack = user.getItemInHand(hand); if (world instanceof ServerLevel serverLevel) { @@ -344,8 +345,8 @@ index 79fdb78a4c3c7e324f0ed84a3dad9a3a80a6456a..0ce52d239b5bfb63e09cf5df679eee17 (world2, shooter, stack) -> new WindCharge(user, world, user.position().x(), user.getEyePosition().y(), user.position().z()), serverLevel, itemStack, -@@ -34,6 +34,21 @@ public class WindChargeItem extends Item implements ProjectileItem { - 1.5F, +@@ -36,6 +36,21 @@ public class WindChargeItem extends Item implements ProjectileItem { + PROJECTILE_SHOOT_POWER, 1.0F ); + com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) windCharge.projectile().getBukkitEntity()); @@ -366,7 +367,7 @@ index 79fdb78a4c3c7e324f0ed84a3dad9a3a80a6456a..0ce52d239b5bfb63e09cf5df679eee17 } world.playSound( -@@ -46,8 +61,6 @@ public class WindChargeItem extends Item implements ProjectileItem { +@@ -48,8 +63,6 @@ public class WindChargeItem extends Item implements ProjectileItem { 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F) ); diff --git a/patches/unapplied/server/0212-Improve-BlockPosition-inlining.patch b/patches/server/0212-Improve-BlockPosition-inlining.patch similarity index 100% rename from patches/unapplied/server/0212-Improve-BlockPosition-inlining.patch rename to patches/server/0212-Improve-BlockPosition-inlining.patch diff --git a/patches/unapplied/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/patches/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch similarity index 92% rename from patches/unapplied/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch rename to patches/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 8f032f18fa..bac6654e61 100644 --- a/patches/unapplied/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/patches/server/0213-Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -17,10 +17,10 @@ index aea97a30a9226275f8fbf9cb2c15d5ddf36371ac..e9d6211eb0f955eb95d2f73ad96799ef Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index e0986a141384de0ede38c88c2b116e083c63efe4..fb68aff87670f545ae5ba26db9f074a34375031e 100644 +index fb4dd68648e6b7905e6b6469a829a0cad22ed3d7..dd1e3fea8a6dc132b0ab7c5f9addba86ec13a6f4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -759,6 +759,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -760,6 +760,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { // Paper end - Prevent block entity and entity crashes } } diff --git a/patches/unapplied/server/0214-Vanished-players-don-t-have-rights.patch b/patches/server/0214-Vanished-players-don-t-have-rights.patch similarity index 93% rename from patches/unapplied/server/0214-Vanished-players-don-t-have-rights.patch rename to patches/server/0214-Vanished-players-don-t-have-rights.patch index 4d196bf7d1..b316e0d269 100644 --- a/patches/unapplied/server/0214-Vanished-players-don-t-have-rights.patch +++ b/patches/server/0214-Vanished-players-don-t-have-rights.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Vanished players don't have rights diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index d6dfda0580d919eb8a000113e7f9dd9794117b45..6c7f644738548da30908a08dcfde8142b597c0b7 100644 +index 9c36b42befab1ce490d1e8af1d8b1b032291f49f..23b7894761ef8871a7771e228b39ff01702afbcd 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -387,6 +387,15 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -372,6 +372,15 @@ public abstract class Projectile extends Entity implements TraceableEntity { } else { Entity entity1 = this.getOwner(); @@ -25,7 +25,7 @@ index d6dfda0580d919eb8a000113e7f9dd9794117b45..6c7f644738548da30908a08dcfde8142 } } diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java -index 752929f3bcd6404b08dad1c67e9a0023b671f10d..407f5db0a4b3884440bc49bf4f00d9c035899e86 100644 +index 20848282d0559ded99f17c1d9a0e429db8aa9b1d..2527fea68885c6911d01cd5a9b08a347d30844c8 100644 --- a/src/main/java/net/minecraft/world/item/BlockItem.java +++ b/src/main/java/net/minecraft/world/item/BlockItem.java @@ -168,7 +168,8 @@ public class BlockItem extends Item { @@ -39,10 +39,10 @@ index 752929f3bcd6404b08dad1c67e9a0023b671f10d..407f5db0a4b3884440bc49bf4f00d9c0 BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(context.getLevel(), context.getClickedPos()), player, CraftBlockData.fromData(state), defaultReturn); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index fb68aff87670f545ae5ba26db9f074a34375031e..924b496aaaa19c7ef69498730725ae9287e46e28 100644 +index dd1e3fea8a6dc132b0ab7c5f9addba86ec13a6f4..09bcffea6b9510a108c5e7d2a32d2930c6abe6b3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -263,6 +263,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -264,6 +264,45 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); } diff --git a/patches/unapplied/server/0215-Allow-disabling-armor-stand-ticking.patch b/patches/server/0215-Allow-disabling-armor-stand-ticking.patch similarity index 100% rename from patches/unapplied/server/0215-Allow-disabling-armor-stand-ticking.patch rename to patches/server/0215-Allow-disabling-armor-stand-ticking.patch diff --git a/patches/unapplied/server/0216-SkeletonHorse-Additions.patch b/patches/server/0216-SkeletonHorse-Additions.patch similarity index 100% rename from patches/unapplied/server/0216-SkeletonHorse-Additions.patch rename to patches/server/0216-SkeletonHorse-Additions.patch diff --git a/patches/unapplied/server/0217-Expand-ArmorStand-API.patch b/patches/server/0217-Expand-ArmorStand-API.patch similarity index 100% rename from patches/unapplied/server/0217-Expand-ArmorStand-API.patch rename to patches/server/0217-Expand-ArmorStand-API.patch diff --git a/patches/unapplied/server/0218-AnvilDamageEvent.patch b/patches/server/0218-AnvilDamageEvent.patch similarity index 100% rename from patches/unapplied/server/0218-AnvilDamageEvent.patch rename to patches/server/0218-AnvilDamageEvent.patch diff --git a/patches/unapplied/server/0219-Add-TNTPrimeEvent.patch b/patches/server/0219-Add-TNTPrimeEvent.patch similarity index 97% rename from patches/unapplied/server/0219-Add-TNTPrimeEvent.patch rename to patches/server/0219-Add-TNTPrimeEvent.patch index 4cf9d43050..c9cfc333c7 100644 --- a/patches/unapplied/server/0219-Add-TNTPrimeEvent.patch +++ b/patches/server/0219-Add-TNTPrimeEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add TNTPrimeEvent diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index ba1bb0f82634054e02c5f4bc062c1822a356e2a6..25d2226c2a5dda411a9e35f7a0e3ab183110c227 100644 +index 6e2e570aa1c85eced9ed9578188db43df132a290..f5aee15f80e226c8d59e66b1a53f529e2fb524a5 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -543,6 +543,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -21,7 +21,7 @@ index ba1bb0f82634054e02c5f4bc062c1822a356e2a6..25d2226c2a5dda411a9e35f7a0e3ab18 this.level().removeBlock(blockposition, false); diff --git a/src/main/java/net/minecraft/world/level/block/FireBlock.java b/src/main/java/net/minecraft/world/level/block/FireBlock.java -index 88976aa06028adcb8f0c91e32b794887d0b55308..f44457c0d75efe323cc8242ef5173a3d5067fad0 100644 +index be6e65e66d60dbc8b356666b4505af835d367e20..422e5750669457bea6e4b8de799d289e8e315a09 100644 --- a/src/main/java/net/minecraft/world/level/block/FireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FireBlock.java @@ -302,12 +302,19 @@ public class FireBlock extends BaseFireBlock { diff --git a/patches/unapplied/server/0220-Break-up-and-make-tab-spam-limits-configurable.patch b/patches/server/0220-Break-up-and-make-tab-spam-limits-configurable.patch similarity index 92% rename from patches/unapplied/server/0220-Break-up-and-make-tab-spam-limits-configurable.patch rename to patches/server/0220-Break-up-and-make-tab-spam-limits-configurable.patch index 92f889e9c0..300f431158 100644 --- a/patches/unapplied/server/0220-Break-up-and-make-tab-spam-limits-configurable.patch +++ b/patches/server/0220-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 f36d72153c1ec0426790ed3033500c3cb766af2d..af519e9914bae40fa1605b0cd4cf02ca1d44f0e8 100644 +index b4edc64f3eacdbfb6187106989d190303b0541ac..0e1abdd619f26dbc334061f5f13ba126ee3006b5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -274,6 +274,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -276,6 +276,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private int tickCount; private int ackBlockChangesUpTo = -1; private final TickThrottler chatSpamThrottler = new TickThrottler(20, 200); @@ -33,7 +33,7 @@ index f36d72153c1ec0426790ed3033500c3cb766af2d..af519e9914bae40fa1605b0cd4cf02ca private final TickThrottler dropSpamThrottler = new TickThrottler(20, 1480); private double firstGoodX; private double firstGoodY; -@@ -389,6 +390,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -391,6 +392,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.keepConnectionAlive(); this.chatSpamThrottler.tick(); @@ -41,7 +41,7 @@ index f36d72153c1ec0426790ed3033500c3cb766af2d..af519e9914bae40fa1605b0cd4cf02ca this.dropSpamThrottler.tick(); 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 -@@ -730,7 +732,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -728,7 +730,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/unapplied/server/0221-Fix-NBT-type-issues.patch b/patches/server/0221-Fix-NBT-type-issues.patch similarity index 83% rename from patches/unapplied/server/0221-Fix-NBT-type-issues.patch rename to patches/server/0221-Fix-NBT-type-issues.patch index bae1fe4393..af51f3f8dc 100644 --- a/patches/unapplied/server/0221-Fix-NBT-type-issues.patch +++ b/patches/server/0221-Fix-NBT-type-issues.patch @@ -8,10 +8,10 @@ Addresses two issues: - Allay duplication cooldown is saved and exposed as a long, but loaded as an int diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index 74a0bebbf829fdb2bbae87100c4e2523c34f95a0..9d9e3daebc5da0af627c3d3cdb50029aacbc587b 100644 +index 5a017ec91d2e0df8467fde4f38ef00571f15bd01..9ef7227c2b88f9d0e92e70b33bbd97e22bd71eca 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -309,7 +309,7 @@ public class ExperienceOrb extends Entity { +@@ -311,7 +311,7 @@ public class ExperienceOrb extends Entity { public void addAdditionalSaveData(CompoundTag nbt) { nbt.putShort("Health", (short) this.health); nbt.putShort("Age", (short) this.age); @@ -20,7 +20,7 @@ index 74a0bebbf829fdb2bbae87100c4e2523c34f95a0..9d9e3daebc5da0af627c3d3cdb50029a nbt.putInt("Count", this.count); this.savePaperNBT(nbt); // Paper } -@@ -318,7 +318,7 @@ public class ExperienceOrb extends Entity { +@@ -320,7 +320,7 @@ public class ExperienceOrb extends Entity { public void readAdditionalSaveData(CompoundTag nbt) { this.health = nbt.getShort("Health"); this.age = nbt.getShort("Age"); @@ -30,10 +30,10 @@ index 74a0bebbf829fdb2bbae87100c4e2523c34f95a0..9d9e3daebc5da0af627c3d3cdb50029a this.loadPaperNBT(nbt); // Paper } diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index c0c054b604cdf87591e4ce7c9f15baa5c942aadc..05c3d43fafc781e2c2d762dd5f509753df8da3b3 100644 +index e64143d730bc473d6a78f5822b006c1f29aded80..b86f638390d386c838318a4d9b6571ac5514df8f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -@@ -495,7 +495,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS +@@ -499,7 +499,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS }); } diff --git a/patches/unapplied/server/0222-Remove-unnecessary-itemmeta-handling.patch b/patches/server/0222-Remove-unnecessary-itemmeta-handling.patch similarity index 88% rename from patches/unapplied/server/0222-Remove-unnecessary-itemmeta-handling.patch rename to patches/server/0222-Remove-unnecessary-itemmeta-handling.patch index d573a1e6f9..85d3bc9a5e 100644 --- a/patches/unapplied/server/0222-Remove-unnecessary-itemmeta-handling.patch +++ b/patches/server/0222-Remove-unnecessary-itemmeta-handling.patch @@ -5,10 +5,10 @@ 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 1ebaedc9617e5b79458fa119887fd72cb1f39852..957c112b4145fda5078a6f8f1689935fa0290806 100644 +index 1db50e72ad8e04e54bed9b462bd7276feb06ce4c..1e16482830556cf34f3b68fc2af8216663b075e4 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -165,7 +165,7 @@ public final class ItemStack implements DataComponentHolder { +@@ -166,7 +166,7 @@ public final class ItemStack implements DataComponentHolder { // CraftBukkit start ItemStack itemstack = new ItemStack(holder, i, datacomponentpatch); @@ -17,7 +17,7 @@ index 1ebaedc9617e5b79458fa119887fd72cb1f39852..957c112b4145fda5078a6f8f1689935f CraftItemStack.setItemMeta(itemstack, CraftItemStack.getItemMeta(itemstack)); } return itemstack; -@@ -179,8 +179,8 @@ public final class ItemStack implements DataComponentHolder { +@@ -180,8 +180,8 @@ public final class ItemStack implements DataComponentHolder { } else { registryfriendlybytebuf.writeVarInt(itemstack.getCount()); // Spigot start - filter diff --git a/patches/unapplied/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch similarity index 93% rename from patches/unapplied/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch rename to patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 15dfd12d29..9074301896 100644 --- a/patches/unapplied/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e03032b96e8f44ef83f52dcf3dc5a8856281e475..01c4f405692116813bbd3d851738f52a50b548a2 100644 +index 99db41834d7e8fb8fbbe83bd70a4b8d7c016c3e2..967357ec91036a03407eb7e410f717112fe96b16 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1171,6 +1171,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe +@@ -1172,6 +1172,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe // CraftBukkit start private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) { org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot diff --git a/patches/unapplied/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch b/patches/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch similarity index 99% rename from patches/unapplied/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch rename to patches/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch index 21a0005a08..509c2f5dfe 100644 --- a/patches/unapplied/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch +++ b/patches/server/0224-Add-Early-Warning-Feature-to-WatchDog.patch @@ -9,7 +9,7 @@ thread dumps at an interval until the point of crash. This will help diagnose what was going on in that time before the crash. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5e8a9801ff92c8fab9c5cb5a5888ebe9144b331d..af20a16e18673a629fc3033d8e7e07eba855b1c7 100644 +index c64d2c093c84bc2708df52a77138307d2b81cf38..65dee566937104e301b917d037f2db456751801c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1120,6 +1120,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop collidableExemptions = new HashSet<>(); public boolean bukkitPickUpLoot; public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper @@ -90,7 +90,7 @@ index 6a46d57d4941b1abbac4c2609272feb3fb8e45e6..d1a65777767f503275d41ed48db887ee @Override public float getBukkitYaw() { -@@ -1572,11 +1573,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1540,11 +1541,12 @@ public abstract class LivingEntity extends Entity implements Attackable { if (this.isDeadOrDying()) { if (!this.checkTotemDeathProtection(source)) { @@ -106,19 +106,19 @@ index 6a46d57d4941b1abbac4c2609272feb3fb8e45e6..d1a65777767f503275d41ed48db887ee } } else if (flag1) { this.playHurtSound(source); -@@ -1738,6 +1740,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1749,6 +1751,7 @@ public abstract class LivingEntity extends Entity implements Attackable { Entity entity = damageSource.getEntity(); LivingEntity entityliving = this.getKillCredit(); + /* // Paper - move down to make death event cancellable - this is the awardKillScore below - if (this.deathScore >= 0 && entityliving != null) { - entityliving.awardKillScore(this, this.deathScore, damageSource); + if (entityliving != null) { + entityliving.awardKillScore(this, damageSource); } -@@ -1749,24 +1752,59 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1760,24 +1763,59 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!this.level().isClientSide && this.hasCustomName()) { if (org.spigotmc.SpigotConfig.logNamedDeaths) LivingEntity.LOGGER.info("Named entity {} died: {}", this, this.getCombatTracker().getDeathMessage().getString()); // Spigot } -+ */ // Paper - move down to make death event cancellable - this is the awardKillScore below ++ */ // Paper - move down to make death event cancellable - this is the awardKillScore below this.dead = true; - this.getCombatTracker().recheckStatus(); @@ -132,8 +132,8 @@ index 6a46d57d4941b1abbac4c2609272feb3fb8e45e6..d1a65777767f503275d41ed48db887ee + // Paper start + org.bukkit.event.entity.EntityDeathEvent deathEvent = this.dropAllDeathLoot(worldserver, damageSource); + if (deathEvent == null || !deathEvent.isCancelled()) { -+ if (this.deathScore >= 0 && entityliving != null) { -+ entityliving.awardKillScore(this, this.deathScore, damageSource); ++ if (entityliving != null) { ++ entityliving.awardKillScore(this, damageSource); + } + // Paper start - clear equipment if event is not cancelled + if (this instanceof Mob) { @@ -178,7 +178,7 @@ index 6a46d57d4941b1abbac4c2609272feb3fb8e45e6..d1a65777767f503275d41ed48db887ee } } -@@ -1776,7 +1814,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1787,7 +1825,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (world instanceof ServerLevel worldserver) { boolean flag = false; @@ -187,7 +187,7 @@ index 6a46d57d4941b1abbac4c2609272feb3fb8e45e6..d1a65777767f503275d41ed48db887ee if (worldserver.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { BlockPos blockposition = this.blockPosition(); BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); -@@ -1805,24 +1843,37 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1816,24 +1854,37 @@ public abstract class LivingEntity extends Entity implements Attackable { } } @@ -228,7 +228,7 @@ index 6a46d57d4941b1abbac4c2609272feb3fb8e45e6..d1a65777767f503275d41ed48db887ee public int getExpReward(ServerLevel worldserver, @Nullable Entity entity) { // CraftBukkit if (!this.wasExperienceConsumed() && (this.isAlwaysExperienceDropper() || this.lastHurtByPlayerTime > 0 && this.shouldDropExperience() && worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT))) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 2b8bfccbf520f9a356f816522ac3a5caa51e44e1..a8ab3c03a6f96658ce2a3f5758225954a36de6a9 100644 +index 6d1f840a328a2081a59aab923595450eb54f685c..b3c27cdf7d336404403fe09553080835f2d3de49 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1117,6 +1117,12 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -267,7 +267,7 @@ index 2b8bfccbf520f9a356f816522ac3a5caa51e44e1..a8ab3c03a6f96658ce2a3f5758225954 } } diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index faffc3a9ed8bc306277cad37bc43af2ef7303493..205aefd38a185fa411ff17cfb0155769de8fc2fd 100644 +index 81bb457ddebcf06e14c772c5c5df584e43766e58..273ca38677223c28025629144c39e9e415145f70 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -689,16 +689,38 @@ public class Fox extends Animal implements VariantHolder { @@ -420,10 +420,10 @@ index 2caba38a50b7ea535337a3540aa5272d4a9f1878..e20565cf256aacd012a1722c5ebbf901 // CraftBukkit end this.gameEvent(GameEvent.ENTITY_DIE); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b9e325d32fabe77fe1ebd0d8b988db594b154284..054892e472636d1a5c7f06c46ee28ebe4736f24d 100644 +index c9c4696b17917fab03e8e6837a232f08290b05fe..63cc339b42c47879401628c8d0e0f62bd7dd76b4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2532,7 +2532,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2517,7 +2517,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void sendHealthUpdate() { FoodData foodData = this.getHandle().getFoodData(); diff --git a/patches/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch new file mode 100644 index 0000000000..71c7a234d6 --- /dev/null +++ b/patches/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sat, 8 Sep 2018 18:43:31 -0500 +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 1e16482830556cf34f3b68fc2af8216663b075e4..225206a055e2f6bf4dbb18434cb3401d02746387 100644 +--- a/src/main/java/net/minecraft/world/item/ItemStack.java ++++ b/src/main/java/net/minecraft/world/item/ItemStack.java +@@ -501,6 +501,7 @@ public final class ItemStack implements DataComponentHolder { + enuminteractionresult = InteractionResult.FAIL; // cancel placement + // PAIL: Remove this when MC-99075 fixed + placeEvent.getPlayer().updateInventory(); ++ world.capturedTileEntities.clear(); // Paper - Allow chests to be placed with NBT data; clear out block entities as chests and such will pop loot + // revert back all captured blocks + world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 + for (BlockState blockstate : blocks) { +diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java +index d602ab397e7deacd9cb9a43f9058cd7f7bb9dc07..63c5bc786010d96dc121ee14dbac99253b3c8168 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java +@@ -66,7 +66,7 @@ public class BlockEntityType { + public static final BlockEntityType CRAFTER = BlockEntityType.register("crafter", CrafterBlockEntity::new, Blocks.CRAFTER); + public static final BlockEntityType TRIAL_SPAWNER = BlockEntityType.register("trial_spawner", TrialSpawnerBlockEntity::new, Blocks.TRIAL_SPAWNER); + public static final BlockEntityType VAULT = BlockEntityType.register("vault", VaultBlockEntity::new, Blocks.VAULT); +- private static final Set> OP_ONLY_CUSTOM_DATA = Set.of(BlockEntityType.COMMAND_BLOCK, BlockEntityType.LECTERN, BlockEntityType.SIGN, BlockEntityType.HANGING_SIGN, BlockEntityType.MOB_SPAWNER, BlockEntityType.TRIAL_SPAWNER, BlockEntityType.CHEST); // CraftBukkit ++ private static final Set> OP_ONLY_CUSTOM_DATA = Set.of(BlockEntityType.COMMAND_BLOCK, BlockEntityType.LECTERN, BlockEntityType.SIGN, BlockEntityType.HANGING_SIGN, BlockEntityType.MOB_SPAWNER, BlockEntityType.TRIAL_SPAWNER); // CraftBukkit // Paper - Allow chests to be placed with NBT data + private final BlockEntityType.BlockEntitySupplier factory; + public final Set validBlocks; + private final Holder.Reference> builtInRegistryHolder; diff --git a/patches/unapplied/server/0242-Mob-Pathfinding-API.patch b/patches/server/0242-Mob-Pathfinding-API.patch similarity index 100% rename from patches/unapplied/server/0242-Mob-Pathfinding-API.patch rename to patches/server/0242-Mob-Pathfinding-API.patch diff --git a/patches/unapplied/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch b/patches/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch similarity index 95% rename from patches/unapplied/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch rename to patches/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch index a2789a6dfa..919b9b6aac 100644 --- a/patches/unapplied/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch +++ b/patches/server/0243-Prevent-various-interactions-from-causing-chunk-load.patch @@ -40,10 +40,10 @@ index 90f61511429799b1e852326d0d014551e5c35d5d..9d245d08be61d7edee9138196ae3bf52 return ichunkaccess == null ? false : ichunkaccess.getBlockState(pos).is(this.blockToRemove) && ichunkaccess.getBlockState(pos.above()).isAir() && ichunkaccess.getBlockState(pos.above(2)).isAir(); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 5f1bbb4302013c2c1788db6b64eafba2a11a373a..512de8e79a842d4389e8528983b94af4843ffd11 100644 +index e9b28c7fea402cb15cfeefe6cd02e3056e54796d..0ddbebbe6eea00c379f2a250f7a44ba9313c1de1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -489,7 +489,8 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -488,7 +488,8 @@ public class EnderMan extends Monster implements NeutralMob { int j = Mth.floor(this.enderman.getY() + randomsource.nextDouble() * 2.0D); int k = Mth.floor(this.enderman.getZ() - 1.0D + randomsource.nextDouble() * 2.0D); BlockPos blockposition = new BlockPos(i, j, k); @@ -53,7 +53,7 @@ index 5f1bbb4302013c2c1788db6b64eafba2a11a373a..512de8e79a842d4389e8528983b94af4 BlockPos blockposition1 = blockposition.below(); BlockState iblockdata1 = world.getBlockState(blockposition1); BlockState iblockdata2 = this.enderman.getCarriedBlock(); -@@ -533,7 +534,8 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -532,7 +533,8 @@ public class EnderMan extends Monster implements NeutralMob { int j = Mth.floor(this.enderman.getY() + randomsource.nextDouble() * 3.0D); int k = Mth.floor(this.enderman.getZ() - 2.0D + randomsource.nextDouble() * 4.0D); BlockPos blockposition = new BlockPos(i, j, k); @@ -77,7 +77,7 @@ index c02a2f9e1b4e727b1deeb73377e1f7193f5ee072..cdd1f6939ce33e62f6609f7eb3a5dff5 : new LodestoneTracker(Optional.empty(), true); } diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java -index 6850ac324ee4d202f112dbd057ea1bde9de17ea9..f39ccc0d2a4eea4e1e0b15608780c7c4a749e672 100644 +index f399d130d9bf4ab00f35090019a00c6287146490..6bf3019ff06501e82de5976417fd98a10ae6334a 100644 --- a/src/main/java/net/minecraft/world/level/BlockGetter.java +++ b/src/main/java/net/minecraft/world/level/BlockGetter.java @@ -71,7 +71,15 @@ public interface BlockGetter extends LevelHeightAccessor { diff --git a/patches/unapplied/server/0244-Prevent-mob-spawning-from-loading-generating-chunks.patch b/patches/server/0244-Prevent-mob-spawning-from-loading-generating-chunks.patch similarity index 100% rename from patches/unapplied/server/0244-Prevent-mob-spawning-from-loading-generating-chunks.patch rename to patches/server/0244-Prevent-mob-spawning-from-loading-generating-chunks.patch diff --git a/patches/unapplied/server/0245-Implement-furnace-cook-speed-multiplier-API.patch b/patches/server/0245-Implement-furnace-cook-speed-multiplier-API.patch similarity index 84% rename from patches/unapplied/server/0245-Implement-furnace-cook-speed-multiplier-API.patch rename to patches/server/0245-Implement-furnace-cook-speed-multiplier-API.patch index 3a04c8b1ea..48795a8667 100644 --- a/patches/unapplied/server/0245-Implement-furnace-cook-speed-multiplier-API.patch +++ b/patches/server/0245-Implement-furnace-cook-speed-multiplier-API.patch @@ -12,24 +12,19 @@ public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity getTota Co-authored-by: Eric Su diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index 119ea31f6e15185b6d6171053f790e39c24f6823..187f380eae3948eb5e37e8703db6ea785aaf833d 100644 +index 9f44f4ed56bf3cabd3d4a5409f7f6068273d7ff7..b2c0de191fdc84d4a007373309a5df81cacd5466 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -74,11 +74,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit - protected NonNullList items; - public int litTime; - int litDuration; -+ public double cookSpeedMultiplier = 1.0; // Paper - cook speed multiplier API - public int cookingProgress; - public int cookingTotalTime; +@@ -78,6 +78,8 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit protected final ContainerData dataAccess; public final Reference2IntOpenHashMap>> recipesUsed; private final RecipeManager.CachedCheck quickCheck; + public final RecipeType recipeType; // Paper - cook speed multiplier API ++ public double cookSpeedMultiplier = 1.0; // Paper - cook speed multiplier API protected AbstractFurnaceBlockEntity(BlockEntityType blockEntityType, BlockPos pos, BlockState state, RecipeType recipeType) { super(blockEntityType, pos, state); -@@ -126,6 +128,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -124,6 +126,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit }; this.recipesUsed = new Reference2IntOpenHashMap(); this.quickCheck = RecipeManager.createCheck((RecipeType) recipeType); // CraftBukkit - decompile error // Eclipse fail @@ -37,7 +32,7 @@ index 119ea31f6e15185b6d6171053f790e39c24f6823..187f380eae3948eb5e37e8703db6ea78 } // CraftBukkit start - add fields and methods -@@ -180,6 +183,11 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -178,6 +181,11 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit this.recipesUsed.put(ResourceKey.create(Registries.RECIPE, ResourceLocation.parse(s)), nbttagcompound1.getInt(s)); } @@ -49,15 +44,15 @@ index 119ea31f6e15185b6d6171053f790e39c24f6823..187f380eae3948eb5e37e8703db6ea78 } @Override -@@ -188,6 +196,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit - nbt.putShort("BurnTime", (short) this.litTime); - nbt.putShort("CookTime", (short) this.cookingProgress); - nbt.putShort("CookTimeTotal", (short) this.cookingTotalTime); +@@ -187,6 +195,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit + nbt.putShort("cooking_total_time", (short) this.cookingTotalTime); + nbt.putShort("lit_time_remaining", (short) this.litTimeRemaining); + nbt.putShort("lit_total_time", (short) this.litTotalTime); + nbt.putDouble("Paper.CookSpeedMultiplier", this.cookSpeedMultiplier); // Paper - cook speed multiplier API ContainerHelper.saveAllItems(nbt, this.items, registries); CompoundTag nbttagcompound1 = new CompoundTag(); -@@ -263,7 +272,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -258,7 +267,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit CraftItemStack source = CraftItemStack.asCraftMirror(blockEntity.items.get(0)); CookingRecipe recipe = (CookingRecipe) recipeholder.toBukkitRecipe(); @@ -66,19 +61,19 @@ index 119ea31f6e15185b6d6171053f790e39c24f6823..187f380eae3948eb5e37e8703db6ea78 world.getCraftServer().getPluginManager().callEvent(event); blockEntity.cookingTotalTime = event.getTotalCookTime(); -@@ -271,9 +280,9 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -266,9 +275,9 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit // CraftBukkit end - ++blockEntity.cookingProgress; -- if (blockEntity.cookingProgress == blockEntity.cookingTotalTime) { -+ if (blockEntity.cookingProgress >= blockEntity.cookingTotalTime) { // Paper - cook speed multiplier API - blockEntity.cookingProgress = 0; + ++blockEntity.cookingTimer; +- if (blockEntity.cookingTimer == blockEntity.cookingTotalTime) { ++ if (blockEntity.cookingTimer >= blockEntity.cookingTotalTime) { // Paper - cook speed multiplier API + blockEntity.cookingTimer = 0; - blockEntity.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(world, blockEntity); + blockEntity.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(world, blockEntity, blockEntity.recipeType, blockEntity.cookSpeedMultiplier); // Paper - cook speed multiplier API if (AbstractFurnaceBlockEntity.burn(blockEntity.level, blockEntity.worldPosition, world.registryAccess(), recipeholder, singlerecipeinput, blockEntity.items, i)) { // CraftBukkit blockEntity.setRecipeUsed(recipeholder); } -@@ -367,13 +376,14 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -362,13 +371,14 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit return fuelRegistry.burnDuration(stack); } @@ -98,13 +93,13 @@ index 119ea31f6e15185b6d6171053f790e39c24f6823..187f380eae3948eb5e37e8703db6ea78 } @Override -@@ -419,12 +429,11 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit +@@ -414,12 +424,11 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit if (world instanceof ServerLevel) { ServerLevel worldserver = (ServerLevel) world; - this.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(worldserver, this); + this.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(worldserver, this, this.recipeType, this.cookSpeedMultiplier); // Paper - cook speed multiplier API - this.cookingProgress = 0; + this.cookingTimer = 0; this.setChanged(); } } @@ -113,7 +108,7 @@ index 119ea31f6e15185b6d6171053f790e39c24f6823..187f380eae3948eb5e37e8703db6ea78 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java -index 7ed43bc29a4bc0f6db2cabd3cd4c8489ed81ee81..7b5f35779ac63b5f9b3a88cc4dcde38147fea2b7 100644 +index 7a642b1b95b36b91698455d50ae85b846d520611..fd2f28ee785283bcc979c7a146308827f2ce2ba9 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java @@ -88,4 +88,20 @@ public abstract class CraftFurnace extends diff --git a/patches/unapplied/server/0246-Honor-EntityAgeable.ageLock.patch b/patches/server/0246-Honor-EntityAgeable.ageLock.patch similarity index 87% rename from patches/unapplied/server/0246-Honor-EntityAgeable.ageLock.patch rename to patches/server/0246-Honor-EntityAgeable.ageLock.patch index aaaf81b894..66ebf48179 100644 --- a/patches/unapplied/server/0246-Honor-EntityAgeable.ageLock.patch +++ b/patches/server/0246-Honor-EntityAgeable.ageLock.patch @@ -17,10 +17,10 @@ index d7020068a9ea3e5e1cacfe53ef19a88139687205..119856b22df5bbcd4e5bf5f95645156f int k = j; diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index f3687ecd2d757b22b224346bbb8342d83221efdb..0fab8826e14af9184f07bc1262555a71effcd84b 100644 +index 268394088dbb1e63ab5d550a3cad5df0d2807108..333189cf01ce571993e8152f5851b8c362ba4b70 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -@@ -447,6 +447,7 @@ public class BeehiveBlockEntity extends BlockEntity { +@@ -442,6 +442,7 @@ public class BeehiveBlockEntity extends BlockEntity { } private static void setBeeReleaseData(int ticksInHive, Bee beeEntity) { @@ -28,7 +28,7 @@ index f3687ecd2d757b22b224346bbb8342d83221efdb..0fab8826e14af9184f07bc1262555a71 int j = beeEntity.getAge(); if (j < 0) { -@@ -456,6 +457,7 @@ public class BeehiveBlockEntity extends BlockEntity { +@@ -451,6 +452,7 @@ public class BeehiveBlockEntity extends BlockEntity { } beeEntity.setInLoveTime(Math.max(0, beeEntity.getInLoveTime() - ticksInHive)); diff --git a/patches/unapplied/server/0247-Configurable-connection-throttle-kick-message.patch b/patches/server/0247-Configurable-connection-throttle-kick-message.patch similarity index 100% rename from patches/unapplied/server/0247-Configurable-connection-throttle-kick-message.patch rename to patches/server/0247-Configurable-connection-throttle-kick-message.patch diff --git a/patches/unapplied/server/0248-Prevent-chunk-loading-from-Fluid-Flowing.patch b/patches/server/0248-Prevent-chunk-loading-from-Fluid-Flowing.patch similarity index 100% rename from patches/unapplied/server/0248-Prevent-chunk-loading-from-Fluid-Flowing.patch rename to patches/server/0248-Prevent-chunk-loading-from-Fluid-Flowing.patch diff --git a/patches/unapplied/server/0249-PreSpawnerSpawnEvent.patch b/patches/server/0249-PreSpawnerSpawnEvent.patch similarity index 100% rename from patches/unapplied/server/0249-PreSpawnerSpawnEvent.patch rename to patches/server/0249-PreSpawnerSpawnEvent.patch diff --git a/patches/unapplied/server/0250-Add-LivingEntity-getTargetEntity.patch b/patches/server/0250-Add-LivingEntity-getTargetEntity.patch similarity index 94% rename from patches/unapplied/server/0250-Add-LivingEntity-getTargetEntity.patch rename to patches/server/0250-Add-LivingEntity-getTargetEntity.patch index 7a6786a2ee..2840c31b54 100644 --- a/patches/unapplied/server/0250-Add-LivingEntity-getTargetEntity.patch +++ b/patches/server/0250-Add-LivingEntity-getTargetEntity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d1a65777767f503275d41ed48db887eedafe6324..7ba5e60eae4fc230c86956ed8ee895c9e1585d42 100644 +index 4250056b003588e6e57efdf9d4276216009adb71..df7dce2bff49023d22622c90795428222dc489ce 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4177,6 +4177,38 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -4184,6 +4184,38 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.level().clip(raytrace); } @@ -48,7 +48,7 @@ index d1a65777767f503275d41ed48db887eedafe6324..7ba5e60eae4fc230c86956ed8ee895c9 public int getShieldBlockingDelay() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 0c7bf4124d67258ebca9b9b73b92c2e0efbdaa86..c4c83b4e17aac23794fdb51acfba4e7ef8451e2c 100644 +index 6797ced32f54f0d135301849902b30d9ec829327..db21f7eeeca48f1df95b37ffa7e9bf7f71f37d5d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -232,6 +232,39 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0251-Add-sun-related-API.patch b/patches/server/0251-Add-sun-related-API.patch similarity index 94% rename from patches/unapplied/server/0251-Add-sun-related-API.patch rename to patches/server/0251-Add-sun-related-API.patch index 280661a416..cfa9ddac01 100644 --- a/patches/unapplied/server/0251-Add-sun-related-API.patch +++ b/patches/server/0251-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 269853764c75382e921e0846c4dc3001bac0395c..74b65238eb4fe53d361ab70447c1be385b5a3951 100644 +index b01bbddb8621a4215337c9d04197d5b1f22c8b3b..c310a8bae84af6c20f7d976fb7cd683885407cc8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -755,6 +755,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0252-Turtle-API.patch b/patches/server/0252-Turtle-API.patch similarity index 100% rename from patches/unapplied/server/0252-Turtle-API.patch rename to patches/server/0252-Turtle-API.patch diff --git a/patches/unapplied/server/0253-Call-player-spectator-target-events-and-improve-impl.patch b/patches/server/0253-Call-player-spectator-target-events-and-improve-impl.patch similarity index 93% rename from patches/unapplied/server/0253-Call-player-spectator-target-events-and-improve-impl.patch rename to patches/server/0253-Call-player-spectator-target-events-and-improve-impl.patch index a5b2f09843..b98bbbcb38 100644 --- a/patches/unapplied/server/0253-Call-player-spectator-target-events-and-improve-impl.patch +++ b/patches/server/0253-Call-player-spectator-target-events-and-improve-impl.patch @@ -19,10 +19,10 @@ spectate the target entity. Co-authored-by: Spottedleaf diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ca32fad1fbb5eeb0b6fb8c74f645277e92f63c33..419476f7ee7c55552655ef0098da0ddbc2434361 100644 +index cec8e2b8867e348d8c92e76983211e29edd46ed1..e73377782c388c9f750f0548f3c427bc52246fbc 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2441,6 +2441,21 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { +@@ -2421,6 +2421,21 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player { this.camera = (Entity) (entity == null ? this : entity); if (entity1 != this.camera) { diff --git a/patches/unapplied/server/0254-Add-more-Witch-API.patch b/patches/server/0254-Add-more-Witch-API.patch similarity index 100% rename from patches/unapplied/server/0254-Add-more-Witch-API.patch rename to patches/server/0254-Add-more-Witch-API.patch diff --git a/patches/unapplied/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch b/patches/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch similarity index 90% rename from patches/unapplied/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch rename to patches/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch index 34b444c109..ce3b6e56c4 100644 --- a/patches/unapplied/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch +++ b/patches/server/0255-Check-Drowned-for-Villager-Aggression-Config.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Check Drowned for Villager Aggression Config diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 95e0a5d464398c17dfaa2f919a17f63c63925551..2e73917ce9270de7483bb1d4e9bf312a31ec9b1e 100644 +index 22d6b36cbac0bc3bb6c63bbad0e7eaac60fcc1cf..c6c86913c0a48501a9109a3838a3e56685d16d79 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -@@ -82,7 +82,7 @@ public class Drowned extends Zombie implements RangedAttackMob { +@@ -85,7 +85,7 @@ public class Drowned extends Zombie implements RangedAttackMob { this.goalSelector.addGoal(7, new RandomStrollGoal(this, 1.0)); this.targetSelector.addGoal(1, new HurtByTargetGoal(this, Drowned.class).setAlertOthers(ZombifiedPiglin.class)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, (target, world) -> this.okTarget(target))); diff --git a/patches/unapplied/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch b/patches/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch similarity index 83% rename from patches/unapplied/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch rename to patches/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch index a382aa3965..84c4327a00 100644 --- a/patches/unapplied/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch +++ b/patches/server/0256-Add-option-to-prevent-players-from-moving-into-unloa.patch @@ -6,23 +6,23 @@ 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 af519e9914bae40fa1605b0cd4cf02ca1d44f0e8..f57c133de5e974d2c86145f697d3636347a29d65 100644 +index 0e1abdd619f26dbc334061f5f13ba126ee3006b5..8aacca1e3b310125a618de02b9277aedc949268f 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 +@@ -500,9 +500,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl double d0 = entity.getX(); double d1 = entity.getY(); double d2 = entity.getZ(); -- double d3 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX()); -- double d4 = ServerGamePacketListenerImpl.clampVertical(packet.getY()); -- double d5 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ()); -+ 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 - float f = Mth.wrapDegrees(packet.getYRot()); - float f1 = Mth.wrapDegrees(packet.getXRot()); +- double d3 = ServerGamePacketListenerImpl.clampHorizontal(packet.position().x()); +- double d4 = ServerGamePacketListenerImpl.clampVertical(packet.position().y()); +- double d5 = ServerGamePacketListenerImpl.clampHorizontal(packet.position().z()); ++ double d3 = ServerGamePacketListenerImpl.clampHorizontal(packet.position().x()); final double toX = d3; // Paper - OBFHELPER ++ double d4 = ServerGamePacketListenerImpl.clampVertical(packet.position().y()); final double toY = d4; // Paper - OBFHELPER ++ double d5 = ServerGamePacketListenerImpl.clampHorizontal(packet.position().z()); final double toZ = d5; // Paper - OBFHELPER + float f = Mth.wrapDegrees(packet.yRot()); + float f1 = Mth.wrapDegrees(packet.xRot()); double d6 = d3 - this.vehicleFirstGoodX; -@@ -534,6 +534,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -536,6 +536,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } speed *= 2f; // TODO: Get the speed of the vehicle instead of the player @@ -39,10 +39,10 @@ index af519e9914bae40fa1605b0cd4cf02ca1d44f0e8..f57c133de5e974d2c86145f697d36363 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}); -@@ -1167,9 +1177,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1228,9 +1238,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } - if (!this.updateAwaitingTeleport()) { + if (!this.updateAwaitingTeleport() && this.player.hasClientLoaded()) { - double d0 = ServerGamePacketListenerImpl.clampHorizontal(packet.getX(this.player.getX())); - double d1 = ServerGamePacketListenerImpl.clampVertical(packet.getY(this.player.getY())); - double d2 = ServerGamePacketListenerImpl.clampHorizontal(packet.getZ(this.player.getZ())); @@ -52,7 +52,7 @@ index af519e9914bae40fa1605b0cd4cf02ca1d44f0e8..f57c133de5e974d2c86145f697d36363 float f = Mth.wrapDegrees(packet.getYRot(this.player.getYRot())); float f1 = Mth.wrapDegrees(packet.getXRot(this.player.getXRot())); -@@ -1227,6 +1237,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1288,6 +1298,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } else { speed = this.player.getAbilities().walkingSpeed * 10f; } diff --git a/patches/unapplied/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch b/patches/unapplied/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch deleted file mode 100644 index 4b282589d9..0000000000 --- a/patches/unapplied/server/0241-Allow-chests-to-be-placed-with-NBT-data.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: BillyGalbreath -Date: Sat, 8 Sep 2018 18:43:31 -0500 -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 957c112b4145fda5078a6f8f1689935fa0290806..f00b756fe5dad616323e3b11e35e27353f347042 100644 ---- a/src/main/java/net/minecraft/world/item/ItemStack.java -+++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -496,6 +496,7 @@ public final class ItemStack implements DataComponentHolder { - enuminteractionresult = InteractionResult.FAIL; // cancel placement - // PAIL: Remove this when MC-99075 fixed - placeEvent.getPlayer().updateInventory(); -+ world.capturedTileEntities.clear(); // Paper - Allow chests to be placed with NBT data; clear out block entities as chests and such will pop loot - // revert back all captured blocks - world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 - for (BlockState blockstate : blocks) { -diff --git a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java -index a3cdb4af2b7a3c7f884c8af2cba0d3d5e1c184a6..8847617f6a23e6d2fe9bf7444a2072dc53f741b8 100644 ---- a/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java -+++ b/src/main/java/net/minecraft/world/level/block/entity/ChestBlockEntity.java -@@ -238,7 +238,7 @@ public class ChestBlockEntity extends RandomizableContainerBlockEntity implement - // CraftBukkit start - @Override - public boolean onlyOpCanSetNbt() { -- return true; -+ return false; // Paper - Allow chests to be placed with NBT data - } - // CraftBukkit end - }