From 6f17a3da52ca57ed1647593b8b37e4306fff8b70 Mon Sep 17 00:00:00 2001 From: granny Date: Mon, 25 Dec 2023 20:15:34 -0800 Subject: [PATCH] add back pufferfish patches \o/ --- .../api/0001-Pufferfish-API-Changes.patch | 10 +- .../0002-Fix-pufferfish-issues.patch} | 2 +- ...s.patch => 0003-Purpur-config-files.patch} | 0 ....patch => 0004-Build-System-Changes.patch} | 4 +- ...patch => 0005-Purpur-client-support.patch} | 0 ...s.patch => 0006-Default-permissions.patch} | 0 ...005-Ridables.patch => 0007-Ridables.patch} | 0 ...ch => 0008-Allow-inventory-resizing.patch} | 0 ...7-Llama-API.patch => 0009-Llama-API.patch} | 0 ...{0008-AFK-API.patch => 0010-AFK-API.patch} | 0 ...atch => 0011-Bring-back-server-name.patch} | 0 ...t.patch => 0012-ExecuteCommandEvent.patch} | 0 ... 0013-LivingEntity-safeFallDistance.patch} | 0 ...old.patch => 0014-Lagging-threshold.patch} | 0 ...15-PlayerSetSpawnerTypeWithEggEvent.patch} | 0 ...4-Anvil-API.patch => 0016-Anvil-API.patch} | 0 ... 0017-ItemStack-convenience-methods.patch} | 0 ...d-to-crystals-and-crystals-shoot-ph.patch} | 0 ...atch => 0019-ChatColor-conveniences.patch} | 0 ...020-LivingEntity-broadcastItemBreak.patch} | 0 ...atch => 0021-Item-entity-immunities.patch} | 0 ...able-zombie-aggressiveness-towards-.patch} | 0 ...-to-recipe-s-ExactChoice-ingredient.patch} | 0 ...lf-API.patch => 0024-Rabid-Wolf-API.patch} | 0 ...tch => 0025-PlayerBookTooLargeEvent.patch} | 0 ...herite-armor-grants-fire-resistance.patch} | 0 ...027-Add-EntityTeleportHinderedEvent.patch} | 0 ...tment-target-for-bows-and-crossbows.patch} | 0 ...> 0029-Iron-golem-poppy-calms-anger.patch} | 0 ...30-API-for-any-mob-to-burn-daylight.patch} | 0 ...d-back-player-spawned-endermite-API.patch} | 0 ... 0032-Fix-default-permission-system.patch} | 0 ...oner-API.patch => 0033-Summoner-API.patch} | 0 ...034-Clean-up-version-command-output.patch} | 0 ... => 0035-Extended-OfflinePlayer-API.patch} | 0 ...he-ability-to-add-combustible-items.patch} | 0 ....patch => 0037-Potion-NamespacedKey.patch} | 0 ...ne-API.patch => 0038-Grindstone-API.patch} | 0 ...Shears-can-have-looting-enchantment.patch} | 0 ... => 0040-Lobotomize-stuck-villagers.patch} | 0 ...ch => 0041-Add-local-difficulty-api.patch} | 0 ...imings.patch => 0042-Remove-Timings.patch} | 0 ...d-Bee-API.patch => 0043-Add-Bee-API.patch} | 0 ...-API.patch => 0044-Debug-Marker-API.patch} | 0 ....patch => 0045-Add-death-screen-API.patch} | 0 ...046-Add-item-packet-serialize-event.patch} | 0 ...uage-API.patch => 0047-Language-API.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 2 +- ...API.patch => 0049-Fire-Immunity-API.patch} | 0 ....patch => 0050-Added-goat-ram-event.patch} | 0 ....patch => 0051-Add-PreExplodeEvents.patch} | 0 ...ee-API.patch => 0052-Stored-Bee-API.patch} | 0 ...-API.patch => 0053-Explorer-Map-API.patch} | 0 ...I.patch => 0054-Add-hover-lines-API.patch} | 0 .../0001-Pufferfish-Server-Changes.patch | 268 ++++++++--------- ...{0001-Rebrand.patch => 0002-Rebrand.patch} | 56 ++-- .../0003-Fix-pufferfish-issues.patch} | 16 +- ...s.patch => 0004-Purpur-config-files.patch} | 20 +- ...patch => 0005-Purpur-client-support.patch} | 0 ....patch => 0006-Fix-decompile-errors.patch} | 0 ...0007-Component-related-conveniences.patch} | 6 +- ...006-Ridables.patch => 0008-Ridables.patch} | 143 ++++----- ...Configurable-entity-base-attributes.patch} | 30 +- ...0010-Barrels-and-enderchests-6-rows.patch} | 2 +- ...9-Llama-API.patch => 0011-Llama-API.patch} | 0 ...{0010-AFK-API.patch => 0012-AFK-API.patch} | 12 +- ...atch => 0013-Bring-back-server-name.patch} | 4 +- ...> 0014-Configurable-server-mod-name.patch} | 10 +- ... 0015-LivingEntity-safeFallDistance.patch} | 10 +- ...old.patch => 0016-Lagging-threshold.patch} | 8 +- ...17-PlayerSetSpawnerTypeWithEggEvent.patch} | 6 +- ...6-Anvil-API.patch => 0018-Anvil-API.patch} | 0 ...0019-Alternative-Keepalive-Handling.patch} | 0 ...s.patch => 0020-Silk-touch-spawners.patch} | 0 ...> 0021-Add-turtle-egg-block-options.patch} | 0 ...settings-suppressing-pointless-logs.patch} | 2 +- ...> 0023-Disable-outdated-build-check.patch} | 2 +- ...gs.patch => 0024-Giants-AI-settings.patch} | 0 ...> 0025-Zombie-horse-naturally-spawn.patch} | 4 +- ...026-Charged-creeper-naturally-spawn.patch} | 2 +- ...it-naturally-spawn-toast-and-killer.patch} | 0 ...er-showing-in-ping-before-server-fu.patch} | 0 ...atch => 0029-Tulips-change-fox-type.patch} | 0 ...patch => 0030-Breedable-Polar-Bears.patch} | 0 ...atch => 0031-Chickens-can-retaliate.patch} | 0 ...ption-to-set-armorstand-step-height.patch} | 2 +- ....patch => 0033-Cat-spawning-options.patch} | 0 ...ms.patch => 0034-Cows-eat-mushrooms.patch} | 0 ...ow-rotation-when-shearing-mooshroom.patch} | 0 ...patch => 0036-Pigs-give-saddle-back.patch} | 0 ...7-Snowman-drop-and-put-back-pumpkin.patch} | 0 ...8-Ender-dragon-always-drop-full-exp.patch} | 0 ...oisten-from-water-directly-under-it.patch} | 0 ...Minecart-settings-and-WASD-controls.patch} | 2 +- ...ble-loot-drops-on-death-by-cramming.patch} | 6 +- ...tion-to-toggle-milk-curing-bad-omen.patch} | 0 ...ould-check-if-entity-can-use-portal.patch} | 2 +- ...Skip-events-if-there-s-no-listeners.patch} | 0 ... 0045-Add-permission-for-F3-N-debug.patch} | 0 ...ch => 0046-Configurable-TPS-Catchup.patch} | 6 +- ...ow-loyalty-on-tridents-to-work-in-t.patch} | 0 ...erman-and-creeper-griefing-controls.patch} | 8 +- ...049-Villagers-follow-emerald-blocks.patch} | 4 +- ...ch => 0050-Allow-leashing-villagers.patch} | 8 +- ... => 0051-Implement-infinite-liquids.patch} | 6 +- ...2-Make-lava-flow-speed-configurable.patch} | 0 ...dd-player-death-exp-control-options.patch} | 0 ...rable-void-damage-height-and-damage.patch} | 8 +- ...=> 0055-Add-canSaveToDisk-to-Entity.patch} | 4 +- ...spenser-curse-of-binding-protection.patch} | 4 +- ...-for-boats-to-eject-players-on-land.patch} | 0 ...-mends-most-damages-equipment-first.patch} | 0 ...059-Add-5-second-tps-average-in-tps.patch} | 10 +- ...h => 0060-Implement-elytra-settings.patch} | 4 +- ...atch => 0061-Item-entity-immunities.patch} | 2 +- ...mand.patch => 0062-Add-ping-command.patch} | 2 +- ...mand.patch => 0063-Add-demo-command.patch} | 2 +- ...d.patch => 0064-Add-credits-command.patch} | 2 +- ...=> 0065-Configurable-jockey-options.patch} | 0 ...d-to-crystals-and-crystals-shoot-ph.patch} | 0 ...> 0067-Add-phantom-spawning-options.patch} | 0 ...068-Implement-bed-explosion-options.patch} | 0 ...nt-respawn-anchor-explosion-options.patch} | 0 ...Add-allow-water-in-end-world-option.patch} | 4 +- ... => 0071-Allow-color-codes-in-books.patch} | 10 +- ...espan.patch => 0072-Entity-lifespan.patch} | 16 +- ...eport-to-spawn-if-outside-world-bor.patch} | 4 +- ...ty.patch => 0074-Squid-EAR-immunity.patch} | 4 +- ...atch => 0075-Phantoms-burn-in-light.patch} | 0 ...0076-Configurable-villager-breeding.patch} | 4 +- ... 0077-Redstone-deactivates-spawners.patch} | 0 ...ch => 0078-Totems-work-in-inventory.patch} | 4 +- ...-Add-vindicator-johnny-spawn-chance.patch} | 0 ...0080-Dispensers-place-anvils-option.patch} | 0 ...rs.patch => 0081-Allow-anvil-colors.patch} | 0 ...-disable-dolphin-treasure-searching.patch} | 0 ...patch => 0083-Short-enderman-height.patch} | 10 +- ...top-squids-floating-on-top-of-water.patch} | 6 +- ...ng-obsidian-valid-for-portal-frames.patch} | 2 +- ...ities-can-use-portals-configuration.patch} | 6 +- ...087-LivingEntity-broadcastItemBreak.patch} | 0 ...tomizable-wither-health-and-healing.patch} | 4 +- ...gling-special-MobSpawners-per-world.patch} | 2 +- ...patch => 0090-Raid-cooldown-setting.patch} | 0 ...-config-options-per-projectile-type.patch} | 0 ...able-zombie-aggressiveness-towards-.patch} | 0 ...-to-recipe-s-ExactChoice-ingredient.patch} | 0 ...y.patch => 0094-Flying-squids-Oh-my.patch} | 0 ...patch => 0095-Infinity-bow-settings.patch} | 0 ...=> 0096-Configurable-daylight-cycle.patch} | 10 +- ...e-and-mending-enchantments-together.patch} | 2 +- ...8-Furnace-uses-lava-from-underneath.patch} | 0 ...ws-should-not-reset-despawn-counter.patch} | 0 ...e-add-farmland-mechanics-from-Alpha.patch} | 0 ...ustable-breeding-cooldown-to-config.patch} | 4 +- ...-entity-breeding-times-configurable.patch} | 10 +- ...es-from-item-forms-of-entities-to-e.patch} | 0 ...when-using-a-Name-Tag-on-an-Armor-S.patch} | 0 ...lowing-Endermen-to-despawn-even-whi.patch} | 4 +- ...06-Add-configurable-snowball-damage.patch} | 0 ...7-Changeable-Mob-Left-Handed-Chance.patch} | 4 +- ...=> 0108-Add-boat-fall-damage-config.patch} | 2 +- ...0109-Snow-Golem-rate-of-fire-config.patch} | 0 ...-Configurable-disable-give-dropping.patch} | 0 ...illager-Clerics-to-farm-Nether-Wart.patch} | 6 +- ...ied-Piglin-death-always-counting-as.patch} | 0 ...le-chance-for-wolves-to-spawn-rabid.patch} | 0 ...4-Configurable-default-collar-color.patch} | 0 ...tch => 0115-Phantom-flames-on-swoop.patch} | 0 ...-to-open-even-with-a-solid-block-on.patch} | 0 ...SBar.patch => 0117-Implement-TPSBar.patch} | 10 +- ...h => 0118-Striders-give-saddle-back.patch} | 0 ...tch => 0119-PlayerBookTooLargeEvent.patch} | 6 +- ...herite-armor-grants-fire-resistance.patch} | 0 ...121-Fix-rotating-UP-DOWN-CW-and-CCW.patch} | 0 ...efing-bypass-to-everything-affected.patch} | 26 +- ...llow-Note-Block-sounds-when-blocked.patch} | 0 ...124-Add-EntityTeleportHinderedEvent.patch} | 4 +- ... => 0125-Farmland-trampling-changes.patch} | 0 ...6-Movement-options-for-armor-stands.patch} | 4 +- ....patch => 0127-Fix-stuck-in-portals.patch} | 6 +- ...ggle-for-water-sensitive-mob-damage.patch} | 22 +- ...9-Config-to-always-tame-in-Creative.patch} | 0 ... 0130-End-crystal-explosion-options.patch} | 0 ...ther-Ender-Dragon-can-ride-vehicles.patch} | 4 +- ...atch => 0132-Dont-run-with-scissors.patch} | 8 +- ...nch-Man.patch => 0133-One-Punch-Man.patch} | 4 +- ...r-Pearl-cooldown-damage-and-Endermi.patch} | 0 ...to-ignore-nearby-mobs-when-sleeping.patch} | 2 +- ...d-back-player-spawned-endermite-API.patch} | 0 ...n-aggressiveness-towards-Endermites.patch} | 2 +- ...Dragon-Head-wearers-and-stare-aggro.patch} | 2 +- ...ig.patch => 0139-Tick-fluids-config.patch} | 0 ...40-Config-to-disable-Llama-caravans.patch} | 0 ...g-to-make-Creepers-explode-on-death.patch} | 2 +- ...rable-ravager-griefable-blocks-list.patch} | 0 ...143-Sneak-to-bulk-process-composter.patch} | 0 ...h => 0144-Config-for-skipping-night.patch} | 2 +- ...145-Add-config-for-villager-trading.patch} | 4 +- ...=> 0146-Allow-infinity-on-crossbows.patch} | 2 +- ...ngs.patch => 0147-Drowning-Settings.patch} | 10 +- ...reak-individual-slabs-when-sneaking.patch} | 0 ...to-disable-hostile-mob-spawn-on-ice.patch} | 0 ...g-to-show-Armor-Stand-arms-on-spawn.patch} | 0 ...tion-to-make-doors-require-redstone.patch} | 0 ...Config-to-allow-for-unsafe-enchants.patch} | 2 +- ...0153-Configurable-sponge-absorption.patch} | 0 ...ch => 0154-Projectile-offset-config.patch} | 0 ...or-powered-rail-activation-distance.patch} | 0 ...> 0156-Piglin-portal-spawn-modifier.patch} | 0 ...Config-to-change-max-number-of-bees.patch} | 2 +- ...-Config-for-wither-explosion-radius.patch} | 0 ... => 0159-Gamemode-extra-permissions.patch} | 4 +- ...0160-Configurable-piston-push-limit.patch} | 0 ...161-Configurable-broadcast-settings.patch} | 4 +- ... => 0162-Configurable-mob-blindness.patch} | 4 +- ...hidden-players-from-entity-selector.patch} | 2 +- ...-to-impact-Creeper-explosion-radius.patch} | 2 +- ... 0165-Iron-golem-calm-anger-options.patch} | 0 ...ots.patch => 0166-Breedable-parrots.patch} | 0 ...gurable-powered-rail-boost-modifier.patch} | 2 +- ...ge-multiplier-critical-damage-value.patch} | 0 ...n-to-disable-dragon-egg-teleporting.patch} | 0 ...fig-for-unverified-username-message.patch} | 2 +- ...-anvil-cumulative-cost-configurable.patch} | 2 +- ...e-can-work-when-raining-or-at-night.patch} | 0 ...73-API-for-any-mob-to-burn-daylight.patch} | 18 +- ...h => 0174-Config-MobEffect-by-world.patch} | 0 ...eacon-Activation-Range-Configurable.patch} | 0 ...0176-Add-toggle-for-sand-duping-fix.patch} | 0 ...gle-for-end-portal-safe-teleporting.patch} | 4 +- ...ke-lightning-rod-range-configurable.patch} | 6 +- ...fter-eating-food-fills-hunger-bar-c.patch} | 0 ...ayer-join-full-server-by-permission.patch} | 0 ...> 0181-Add-portal-permission-bypass.patch} | 0 ...2-Shulker-spawn-from-bullet-options.patch} | 0 ...ating-glow-berries-adds-glow-effect.patch} | 0 ...-Option-to-make-drowned-break-doors.patch} | 0 ...nfigurable-hunger-starvation-damage.patch} | 0 ...patch => 0186-Enhance-SysoutCatcher.patch} | 0 ...nd.patch => 0187-Add-uptime-command.patch} | 4 +- ...tch => 0188-Tool-actionable-options.patch} | 0 ...9-Store-placer-on-Block-when-placed.patch} | 0 ...oner-API.patch => 0190-Summoner-API.patch} | 2 +- ...mizable-sleeping-actionbar-messages.patch} | 8 +- ...-shulker-box-items-from-dropping-co.patch} | 2 +- ...tch => 0193-Big-dripleaf-tilt-delay.patch} | 0 ...0194-Player-ridable-in-water-option.patch} | 2 +- ...-Enderman-teleport-on-projectile-hi.patch} | 4 +- ...d.patch => 0196-Add-compass-command.patch} | 0 ...h => 0197-Toggle-for-kinetic-damage.patch} | 6 +- ...-Option-for-disable-observer-clocks.patch} | 2 +- ...zeable-Zombie-Villager-curing-times.patch} | 0 ...for-sponges-to-work-on-lava-and-mud.patch} | 0 ...201-Toggle-for-Wither-s-spawn-sound.patch} | 4 +- ...-breaks-from-solid-neighbors-config.patch} | 0 ...move-curse-of-binding-with-weakness.patch} | 2 +- ...0204-Conduit-behavior-configuration.patch} | 0 ...patch => 0205-Cauldron-fill-chances.patch} | 0 ...o-allow-mobs-to-pathfind-over-rails.patch} | 2 +- ... 0207-Shulker-change-color-with-dye.patch} | 0 ... => 0208-Extended-OfflinePlayer-API.patch} | 2 +- ...he-ability-to-add-combustible-items.patch} | 4 +- ...in-and-thunder-should-stop-on-sleep.patch} | 8 +- ...-blocks-to-grow-into-trees-naturall.patch} | 0 ...-right-click-to-use-exp-for-mending.patch} | 6 +- ...urally-aggressive-to-players-chance.patch} | 0 ...urally-aggressive-to-players-chance.patch} | 0 ...r-beds-to-explode-on-villager-sleep.patch} | 4 +- ...Halloween-options-and-optimizations.patch} | 12 +- ...atch => 0217-Config-for-grindstones.patch} | 2 +- ....patch => 0218-UPnP-Port-Forwarding.patch} | 10 +- ...Campfire-option-for-lit-when-placed.patch} | 0 ...tinguish-fire-blocks-with-snowballs.patch} | 2 +- ...on-to-disable-zombie-villagers-cure.patch} | 0 ...nt-BlockEntity-Lore-and-DisplayName.patch} | 2 +- ...tch => 0223-Signs-allow-color-codes.patch} | 4 +- ...-and-twisting-vines-configurable-ma.patch} | 2 +- ...=> 0225-Mobs-always-drop-experience.patch} | 22 +- ....patch => 0226-Potion-NamespacedKey.patch} | 0 ...ne-API.patch => 0227-Grindstone-API.patch} | 0 ...e-to-replant-crops-and-nether-warts.patch} | 0 ...ring-jeb-produces-random-color-wool.patch} | 0 ...urtle-eggs-random-tick-crack-chance.patch} | 0 ...=> 0231-Mob-head-visibility-percent.patch} | 4 +- ...able-valid-characters-for-usernames.patch} | 2 +- ...Shears-can-have-looting-enchantment.patch} | 2 +- ...Stop-bees-from-dying-after-stinging.patch} | 0 ...ounts-in-beehives-to-Purpur-clients.patch} | 10 +- ...onfigurable-farmland-trample-height.patch} | 0 ...onfigurable-player-pickup-exp-delay.patch} | 2 +- ...ng.patch => 0238-Allow-void-trading.patch} | 6 +- ...h => 0239-Configurable-phantom-size.patch} | 0 ...> 0240-Configurable-food-attributes.patch} | 2 +- ....patch => 0241-Max-joins-per-second.patch} | 4 +- ...figurable-minimum-demand-for-trades.patch} | 4 +- ... => 0243-Lobotomize-stuck-villagers.patch} | 13 +- ...ion-for-villager-display-trade-item.patch} | 0 ...wner-not-spawning-water-animals-cor.patch} | 0 ...ig-for-mob-last-hurt-by-player-time.patch} | 4 +- ...=> 0247-Anvil-repair-damage-options.patch} | 0 ...-turtle-egg-trampling-with-feather-.patch} | 0 ...d-toggle-for-enchant-level-clamping.patch} | 2 +- ...kip-junit-tests-for-purpur-commands.patch} | 0 ...rable-search-radius-for-villagers-t.patch} | 4 +- ...ge.patch => 0252-Stonecutter-damage.patch} | 0 ...le-damage-settings-for-magma-blocks.patch} | 0 ...254-Add-config-for-snow-on-blue-ice.patch} | 0 ... => 0255-Skeletons-eat-wither-roses.patch} | 0 ...56-Enchantment-Table-Persists-Lapis.patch} | 0 ...ofiler.patch => 0257-Spark-Profiler.patch} | 0 ...-disable-kick-for-out-of-order-chat.patch} | 6 +- ...for-sculk-shrieker-can_summon-state.patch} | 0 ...=> 0260-Config-to-not-let-coral-die.patch} | 0 ...ch => 0261-Add-local-difficulty-api.patch} | 0 ...262-Add-toggle-for-RNG-manipulation.patch} | 4 +- ... 0263-Send-client-custom-name-of-BE.patch} | 0 ...=> 0264-Allow-custom-ChatDecorators.patch} | 4 +- ...imings.patch => 0265-Remove-Timings.patch} | 109 +++---- ...atch => 0266-Remove-Mojang-Profiler.patch} | 282 ++++++++++-------- ...r-output-for-invalid-movement-kicks.patch} | 4 +- ...d-Bee-API.patch => 0268-Add-Bee-API.patch} | 0 ...-API.patch => 0269-Debug-Marker-API.patch} | 4 +- ...g-option-to-ignore-creative-players.patch} | 4 +- ...71-Add-skeleton-bow-accuracy-option.patch} | 0 ...atch => 0272-Allay-respect-item-NBT.patch} | 4 +- ....patch => 0273-Add-death-screen-API.patch} | 0 ...-Make-pufferfish-config-relocatable.patch} | 6 +- ...5-Implement-ram-and-rambar-commands.patch} | 0 ...276-Add-item-packet-serialize-event.patch} | 10 +- ...n-to-fix-MC-3304-projectile-looting.patch} | 2 +- ...Configurable-block-blast-resistance.patch} | 2 +- ...gurable-block-fall-damage-modifiers.patch} | 2 +- ...uage-API.patch => 0280-Language-API.patch} | 2 +- ... 0281-Milk-Keeps-Beneficial-Effects.patch} | 6 +- ...s-not-looking-up-and-down-when-stra.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 2 +- ...ow-creeper-to-encircle-target-when-.patch} | 0 ...API.patch => 0285-Fire-Immunity-API.patch} | 10 +- ...eport-to-spawn-on-nether-ceiling-da.patch} | 4 +- ...t.patch => 0287-Added-got-ram-event.patch} | 4 +- ... 0288-Log-skipped-entity-s-position.patch} | 4 +- ....patch => 0289-End-Crystal-Cramming.patch} | 0 ...eacon-effects-when-covered-by-tinte.patch} | 0 ...ute-clamping-and-armor-limit-config.patch} | 2 +- ...ig-to-remove-explosion-radius-clamp.patch} | 4 +- ...ble-sugarcane-cactus-and-netherwart.patch} | 0 ....patch => 0294-Add-PreExplodeEvents.patch} | 2 +- ...5-Improve-output-of-plugins-command.patch} | 0 ...atch => 0296-Add-mending-multiplier.patch} | 2 +- ....patch => 0297-Make-GUI-Great-Again.patch} | 2 +- ...ee-API.patch => 0298-Stored-Bee-API.patch} | 0 ...patch => 0299-Shears-can-defuse-TNT.patch} | 0 ...-API.patch => 0300-Explorer-Map-API.patch} | 0 ...Option-Ocelot-Spawn-Under-Sea-Level.patch} | 0 ...-piglins-to-ignore-gold-trimmed-arm.patch} | 0 ...ways-showing-item-in-player-death-m.patch} | 2 +- ...0304-place-end-crystal-on-any-block.patch} | 2 +- ...I.patch => 0305-Add-hover-lines-API.patch} | 0 ...able-the-copper-oxidation-proximity.patch} | 2 +- 360 files changed, 842 insertions(+), 821 deletions(-) rename patches/{unapplied => }/api/0001-Pufferfish-API-Changes.patch (98%) rename patches/{unapplied/api/0001-Fix-pufferfish-issues.patch => api/0002-Fix-pufferfish-issues.patch} (90%) rename patches/api/{0001-Purpur-config-files.patch => 0003-Purpur-config-files.patch} (100%) rename patches/api/{0002-Build-System-Changes.patch => 0004-Build-System-Changes.patch} (85%) rename patches/api/{0003-Purpur-client-support.patch => 0005-Purpur-client-support.patch} (100%) rename patches/api/{0004-Default-permissions.patch => 0006-Default-permissions.patch} (100%) rename patches/api/{0005-Ridables.patch => 0007-Ridables.patch} (100%) rename patches/api/{0006-Allow-inventory-resizing.patch => 0008-Allow-inventory-resizing.patch} (100%) rename patches/api/{0007-Llama-API.patch => 0009-Llama-API.patch} (100%) rename patches/api/{0008-AFK-API.patch => 0010-AFK-API.patch} (100%) rename patches/api/{0009-Bring-back-server-name.patch => 0011-Bring-back-server-name.patch} (100%) rename patches/api/{0010-ExecuteCommandEvent.patch => 0012-ExecuteCommandEvent.patch} (100%) rename patches/api/{0011-LivingEntity-safeFallDistance.patch => 0013-LivingEntity-safeFallDistance.patch} (100%) rename patches/api/{0012-Lagging-threshold.patch => 0014-Lagging-threshold.patch} (100%) rename patches/api/{0013-PlayerSetSpawnerTypeWithEggEvent.patch => 0015-PlayerSetSpawnerTypeWithEggEvent.patch} (100%) rename patches/api/{0014-Anvil-API.patch => 0016-Anvil-API.patch} (100%) rename patches/api/{0015-ItemStack-convenience-methods.patch => 0017-ItemStack-convenience-methods.patch} (100%) rename patches/api/{0016-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch => 0018-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch} (100%) rename patches/api/{0017-ChatColor-conveniences.patch => 0019-ChatColor-conveniences.patch} (100%) rename patches/api/{0018-LivingEntity-broadcastItemBreak.patch => 0020-LivingEntity-broadcastItemBreak.patch} (100%) rename patches/api/{0019-Item-entity-immunities.patch => 0021-Item-entity-immunities.patch} (100%) rename patches/api/{0020-Add-option-to-disable-zombie-aggressiveness-towards-.patch => 0022-Add-option-to-disable-zombie-aggressiveness-towards-.patch} (100%) rename patches/api/{0021-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch => 0023-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch} (100%) rename patches/api/{0022-Rabid-Wolf-API.patch => 0024-Rabid-Wolf-API.patch} (100%) rename patches/api/{0023-PlayerBookTooLargeEvent.patch => 0025-PlayerBookTooLargeEvent.patch} (100%) rename patches/api/{0024-Full-netherite-armor-grants-fire-resistance.patch => 0026-Full-netherite-armor-grants-fire-resistance.patch} (100%) rename patches/api/{0025-Add-EntityTeleportHinderedEvent.patch => 0027-Add-EntityTeleportHinderedEvent.patch} (100%) rename patches/api/{0026-Add-enchantment-target-for-bows-and-crossbows.patch => 0028-Add-enchantment-target-for-bows-and-crossbows.patch} (100%) rename patches/api/{0027-Iron-golem-poppy-calms-anger.patch => 0029-Iron-golem-poppy-calms-anger.patch} (100%) rename patches/api/{0028-API-for-any-mob-to-burn-daylight.patch => 0030-API-for-any-mob-to-burn-daylight.patch} (100%) rename patches/api/{0029-Add-back-player-spawned-endermite-API.patch => 0031-Add-back-player-spawned-endermite-API.patch} (100%) rename patches/api/{0030-Fix-default-permission-system.patch => 0032-Fix-default-permission-system.patch} (100%) rename patches/api/{0031-Summoner-API.patch => 0033-Summoner-API.patch} (100%) rename patches/api/{0032-Clean-up-version-command-output.patch => 0034-Clean-up-version-command-output.patch} (100%) rename patches/api/{0033-Extended-OfflinePlayer-API.patch => 0035-Extended-OfflinePlayer-API.patch} (100%) rename patches/api/{0034-Added-the-ability-to-add-combustible-items.patch => 0036-Added-the-ability-to-add-combustible-items.patch} (100%) rename patches/api/{0035-Potion-NamespacedKey.patch => 0037-Potion-NamespacedKey.patch} (100%) rename patches/api/{0036-Grindstone-API.patch => 0038-Grindstone-API.patch} (100%) rename patches/api/{0037-Shears-can-have-looting-enchantment.patch => 0039-Shears-can-have-looting-enchantment.patch} (100%) rename patches/api/{0038-Lobotomize-stuck-villagers.patch => 0040-Lobotomize-stuck-villagers.patch} (100%) rename patches/api/{0039-Add-local-difficulty-api.patch => 0041-Add-local-difficulty-api.patch} (100%) rename patches/api/{0040-Remove-Timings.patch => 0042-Remove-Timings.patch} (100%) rename patches/api/{0041-Add-Bee-API.patch => 0043-Add-Bee-API.patch} (100%) rename patches/api/{0042-Debug-Marker-API.patch => 0044-Debug-Marker-API.patch} (100%) rename patches/api/{0043-Add-death-screen-API.patch => 0045-Add-death-screen-API.patch} (100%) rename patches/api/{0044-Add-item-packet-serialize-event.patch => 0046-Add-item-packet-serialize-event.patch} (100%) rename patches/api/{0045-Language-API.patch => 0047-Language-API.patch} (100%) rename patches/api/{0046-Add-log-suppression-for-LibraryLoader.patch => 0048-Add-log-suppression-for-LibraryLoader.patch} (96%) rename patches/api/{0047-Fire-Immunity-API.patch => 0049-Fire-Immunity-API.patch} (100%) rename patches/api/{0048-Added-goat-ram-event.patch => 0050-Added-goat-ram-event.patch} (100%) rename patches/api/{0049-Add-PreExplodeEvents.patch => 0051-Add-PreExplodeEvents.patch} (100%) rename patches/api/{0050-Stored-Bee-API.patch => 0052-Stored-Bee-API.patch} (100%) rename patches/api/{0051-Explorer-Map-API.patch => 0053-Explorer-Map-API.patch} (100%) rename patches/api/{0052-Add-hover-lines-API.patch => 0054-Add-hover-lines-API.patch} (100%) rename patches/{unapplied => }/server/0001-Pufferfish-Server-Changes.patch (93%) rename patches/server/{0001-Rebrand.patch => 0002-Rebrand.patch} (96%) rename patches/{unapplied/server/0002-Fix-pufferfish-issues.patch => server/0003-Fix-pufferfish-issues.patch} (89%) rename patches/server/{0002-Purpur-config-files.patch => 0004-Purpur-config-files.patch} (96%) rename patches/server/{0003-Purpur-client-support.patch => 0005-Purpur-client-support.patch} (100%) rename patches/server/{0004-Fix-decompile-errors.patch => 0006-Fix-decompile-errors.patch} (100%) rename patches/server/{0005-Component-related-conveniences.patch => 0007-Component-related-conveniences.patch} (94%) rename patches/server/{0006-Ridables.patch => 0008-Ridables.patch} (97%) rename patches/server/{0007-Configurable-entity-base-attributes.patch => 0009-Configurable-entity-base-attributes.patch} (99%) rename patches/server/{0008-Barrels-and-enderchests-6-rows.patch => 0010-Barrels-and-enderchests-6-rows.patch} (99%) rename patches/server/{0009-Llama-API.patch => 0011-Llama-API.patch} (100%) rename patches/server/{0010-AFK-API.patch => 0012-AFK-API.patch} (97%) rename patches/server/{0011-Bring-back-server-name.patch => 0013-Bring-back-server-name.patch} (91%) rename patches/server/{0012-Configurable-server-mod-name.patch => 0014-Configurable-server-mod-name.patch} (74%) rename patches/server/{0013-LivingEntity-safeFallDistance.patch => 0015-LivingEntity-safeFallDistance.patch} (92%) rename patches/server/{0014-Lagging-threshold.patch => 0016-Lagging-threshold.patch} (89%) rename patches/server/{0015-PlayerSetSpawnerTypeWithEggEvent.patch => 0017-PlayerSetSpawnerTypeWithEggEvent.patch} (93%) rename patches/server/{0016-Anvil-API.patch => 0018-Anvil-API.patch} (100%) rename patches/server/{0017-Alternative-Keepalive-Handling.patch => 0019-Alternative-Keepalive-Handling.patch} (100%) rename patches/server/{0018-Silk-touch-spawners.patch => 0020-Silk-touch-spawners.patch} (100%) rename patches/server/{0019-Add-turtle-egg-block-options.patch => 0021-Add-turtle-egg-block-options.patch} (100%) rename patches/server/{0020-Logger-settings-suppressing-pointless-logs.patch => 0022-Logger-settings-suppressing-pointless-logs.patch} (98%) rename patches/server/{0021-Disable-outdated-build-check.patch => 0023-Disable-outdated-build-check.patch} (92%) rename patches/server/{0022-Giants-AI-settings.patch => 0024-Giants-AI-settings.patch} (100%) rename patches/server/{0023-Zombie-horse-naturally-spawn.patch => 0025-Zombie-horse-naturally-spawn.patch} (95%) rename patches/server/{0024-Charged-creeper-naturally-spawn.patch => 0026-Charged-creeper-naturally-spawn.patch} (96%) rename patches/server/{0025-Rabbit-naturally-spawn-toast-and-killer.patch => 0027-Rabbit-naturally-spawn-toast-and-killer.patch} (100%) rename patches/server/{0026-Fix-outdated-server-showing-in-ping-before-server-fu.patch => 0028-Fix-outdated-server-showing-in-ping-before-server-fu.patch} (100%) rename patches/server/{0027-Tulips-change-fox-type.patch => 0029-Tulips-change-fox-type.patch} (100%) rename patches/server/{0028-Breedable-Polar-Bears.patch => 0030-Breedable-Polar-Bears.patch} (100%) rename patches/server/{0029-Chickens-can-retaliate.patch => 0031-Chickens-can-retaliate.patch} (100%) rename patches/server/{0030-Add-option-to-set-armorstand-step-height.patch => 0032-Add-option-to-set-armorstand-step-height.patch} (96%) rename patches/server/{0031-Cat-spawning-options.patch => 0033-Cat-spawning-options.patch} (100%) rename patches/server/{0032-Cows-eat-mushrooms.patch => 0034-Cows-eat-mushrooms.patch} (100%) rename patches/server/{0033-Fix-cow-rotation-when-shearing-mooshroom.patch => 0035-Fix-cow-rotation-when-shearing-mooshroom.patch} (100%) rename patches/server/{0034-Pigs-give-saddle-back.patch => 0036-Pigs-give-saddle-back.patch} (100%) rename patches/server/{0035-Snowman-drop-and-put-back-pumpkin.patch => 0037-Snowman-drop-and-put-back-pumpkin.patch} (100%) rename patches/server/{0036-Ender-dragon-always-drop-full-exp.patch => 0038-Ender-dragon-always-drop-full-exp.patch} (100%) rename patches/server/{0037-Allow-soil-to-moisten-from-water-directly-under-it.patch => 0039-Allow-soil-to-moisten-from-water-directly-under-it.patch} (100%) rename patches/server/{0038-Minecart-settings-and-WASD-controls.patch => 0040-Minecart-settings-and-WASD-controls.patch} (99%) rename patches/server/{0039-Disable-loot-drops-on-death-by-cramming.patch => 0041-Disable-loot-drops-on-death-by-cramming.patch} (91%) rename patches/server/{0040-Option-to-toggle-milk-curing-bad-omen.patch => 0042-Option-to-toggle-milk-curing-bad-omen.patch} (100%) rename patches/server/{0041-End-gateway-should-check-if-entity-can-use-portal.patch => 0043-End-gateway-should-check-if-entity-can-use-portal.patch} (91%) rename patches/server/{0042-Skip-events-if-there-s-no-listeners.patch => 0044-Skip-events-if-there-s-no-listeners.patch} (100%) rename patches/server/{0043-Add-permission-for-F3-N-debug.patch => 0045-Add-permission-for-F3-N-debug.patch} (100%) rename patches/server/{0044-Configurable-TPS-Catchup.patch => 0046-Configurable-TPS-Catchup.patch} (88%) rename patches/server/{0045-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch => 0047-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch} (100%) rename patches/server/{0046-Add-enderman-and-creeper-griefing-controls.patch => 0048-Add-enderman-and-creeper-griefing-controls.patch} (93%) rename patches/server/{0047-Villagers-follow-emerald-blocks.patch => 0049-Villagers-follow-emerald-blocks.patch} (97%) rename patches/server/{0048-Allow-leashing-villagers.patch => 0050-Allow-leashing-villagers.patch} (94%) rename patches/server/{0049-Implement-infinite-liquids.patch => 0051-Implement-infinite-liquids.patch} (95%) rename patches/server/{0050-Make-lava-flow-speed-configurable.patch => 0052-Make-lava-flow-speed-configurable.patch} (100%) rename patches/server/{0051-Add-player-death-exp-control-options.patch => 0053-Add-player-death-exp-control-options.patch} (100%) rename patches/server/{0052-Configurable-void-damage-height-and-damage.patch => 0054-Configurable-void-damage-height-and-damage.patch} (90%) rename patches/server/{0053-Add-canSaveToDisk-to-Entity.patch => 0055-Add-canSaveToDisk-to-Entity.patch} (96%) rename patches/server/{0054-Dispenser-curse-of-binding-protection.patch => 0056-Dispenser-curse-of-binding-protection.patch} (95%) rename patches/server/{0055-Add-option-for-boats-to-eject-players-on-land.patch => 0057-Add-option-for-boats-to-eject-players-on-land.patch} (100%) rename patches/server/{0056-Mending-mends-most-damages-equipment-first.patch => 0058-Mending-mends-most-damages-equipment-first.patch} (100%) rename patches/server/{0057-Add-5-second-tps-average-in-tps.patch => 0059-Add-5-second-tps-average-in-tps.patch} (94%) rename patches/server/{0058-Implement-elytra-settings.patch => 0060-Implement-elytra-settings.patch} (98%) rename patches/server/{0059-Item-entity-immunities.patch => 0061-Item-entity-immunities.patch} (98%) rename patches/server/{0060-Add-ping-command.patch => 0062-Add-ping-command.patch} (97%) rename patches/server/{0061-Add-demo-command.patch => 0063-Add-demo-command.patch} (97%) rename patches/server/{0062-Add-credits-command.patch => 0064-Add-credits-command.patch} (97%) rename patches/server/{0063-Configurable-jockey-options.patch => 0065-Configurable-jockey-options.patch} (100%) rename patches/server/{0064-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch => 0066-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch} (100%) rename patches/server/{0065-Add-phantom-spawning-options.patch => 0067-Add-phantom-spawning-options.patch} (100%) rename patches/server/{0066-Implement-bed-explosion-options.patch => 0068-Implement-bed-explosion-options.patch} (100%) rename patches/server/{0067-Implement-respawn-anchor-explosion-options.patch => 0069-Implement-respawn-anchor-explosion-options.patch} (100%) rename patches/server/{0068-Add-allow-water-in-end-world-option.patch => 0070-Add-allow-water-in-end-world-option.patch} (96%) rename patches/server/{0069-Allow-color-codes-in-books.patch => 0071-Allow-color-codes-in-books.patch} (92%) rename patches/server/{0070-Entity-lifespan.patch => 0072-Entity-lifespan.patch} (89%) rename patches/server/{0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch => 0073-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch} (96%) rename patches/server/{0072-Squid-EAR-immunity.patch => 0074-Squid-EAR-immunity.patch} (94%) rename patches/server/{0073-Phantoms-burn-in-light.patch => 0075-Phantoms-burn-in-light.patch} (100%) rename patches/server/{0074-Configurable-villager-breeding.patch => 0076-Configurable-villager-breeding.patch} (93%) rename patches/server/{0075-Redstone-deactivates-spawners.patch => 0077-Redstone-deactivates-spawners.patch} (100%) rename patches/server/{0076-Totems-work-in-inventory.patch => 0078-Totems-work-in-inventory.patch} (94%) rename patches/server/{0077-Add-vindicator-johnny-spawn-chance.patch => 0079-Add-vindicator-johnny-spawn-chance.patch} (100%) rename patches/server/{0078-Dispensers-place-anvils-option.patch => 0080-Dispensers-place-anvils-option.patch} (100%) rename patches/server/{0079-Allow-anvil-colors.patch => 0081-Allow-anvil-colors.patch} (100%) rename patches/server/{0080-Add-option-to-disable-dolphin-treasure-searching.patch => 0082-Add-option-to-disable-dolphin-treasure-searching.patch} (100%) rename patches/server/{0081-Short-enderman-height.patch => 0083-Short-enderman-height.patch} (87%) rename patches/server/{0082-Stop-squids-floating-on-top-of-water.patch => 0084-Stop-squids-floating-on-top-of-water.patch} (92%) rename patches/server/{0083-Crying-obsidian-valid-for-portal-frames.patch => 0085-Crying-obsidian-valid-for-portal-frames.patch} (96%) rename patches/server/{0084-Entities-can-use-portals-configuration.patch => 0086-Entities-can-use-portals-configuration.patch} (93%) rename patches/server/{0085-LivingEntity-broadcastItemBreak.patch => 0087-LivingEntity-broadcastItemBreak.patch} (100%) rename patches/server/{0086-Customizable-wither-health-and-healing.patch => 0088-Customizable-wither-health-and-healing.patch} (94%) rename patches/server/{0087-Allow-toggling-special-MobSpawners-per-world.patch => 0089-Allow-toggling-special-MobSpawners-per-world.patch} (98%) rename patches/server/{0088-Raid-cooldown-setting.patch => 0090-Raid-cooldown-setting.patch} (100%) rename patches/server/{0089-Despawn-rate-config-options-per-projectile-type.patch => 0091-Despawn-rate-config-options-per-projectile-type.patch} (100%) rename patches/server/{0090-Add-option-to-disable-zombie-aggressiveness-towards-.patch => 0092-Add-option-to-disable-zombie-aggressiveness-towards-.patch} (100%) rename patches/server/{0091-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch => 0093-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch} (100%) rename patches/server/{0092-Flying-squids-Oh-my.patch => 0094-Flying-squids-Oh-my.patch} (100%) rename patches/server/{0093-Infinity-bow-settings.patch => 0095-Infinity-bow-settings.patch} (100%) rename patches/server/{0094-Configurable-daylight-cycle.patch => 0096-Configurable-daylight-cycle.patch} (93%) rename patches/server/{0095-Allow-infinite-and-mending-enchantments-together.patch => 0097-Allow-infinite-and-mending-enchantments-together.patch} (95%) rename patches/server/{0096-Furnace-uses-lava-from-underneath.patch => 0098-Furnace-uses-lava-from-underneath.patch} (100%) rename patches/server/{0097-Arrows-should-not-reset-despawn-counter.patch => 0099-Arrows-should-not-reset-despawn-counter.patch} (100%) rename patches/server/{0098-Ability-to-re-add-farmland-mechanics-from-Alpha.patch => 0100-Ability-to-re-add-farmland-mechanics-from-Alpha.patch} (100%) rename patches/server/{0099-Add-adjustable-breeding-cooldown-to-config.patch => 0101-Add-adjustable-breeding-cooldown-to-config.patch} (98%) rename patches/server/{0100-Make-entity-breeding-times-configurable.patch => 0102-Make-entity-breeding-times-configurable.patch} (99%) rename patches/server/{0101-Apply-display-names-from-item-forms-of-entities-to-e.patch => 0103-Apply-display-names-from-item-forms-of-entities-to-e.patch} (100%) rename patches/server/{0102-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch => 0104-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch} (100%) rename patches/server/{0103-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch => 0105-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch} (93%) rename patches/server/{0104-Add-configurable-snowball-damage.patch => 0106-Add-configurable-snowball-damage.patch} (100%) rename patches/server/{0105-Changeable-Mob-Left-Handed-Chance.patch => 0107-Changeable-Mob-Left-Handed-Chance.patch} (91%) rename patches/server/{0106-Add-boat-fall-damage-config.patch => 0108-Add-boat-fall-damage-config.patch} (97%) rename patches/server/{0107-Snow-Golem-rate-of-fire-config.patch => 0109-Snow-Golem-rate-of-fire-config.patch} (100%) rename patches/server/{0108-EMC-Configurable-disable-give-dropping.patch => 0110-EMC-Configurable-disable-give-dropping.patch} (100%) rename patches/server/{0109-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch => 0111-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch} (98%) rename patches/server/{0110-Toggle-for-Zombified-Piglin-death-always-counting-as.patch => 0112-Toggle-for-Zombified-Piglin-death-always-counting-as.patch} (100%) rename patches/server/{0111-Configurable-chance-for-wolves-to-spawn-rabid.patch => 0113-Configurable-chance-for-wolves-to-spawn-rabid.patch} (100%) rename patches/server/{0112-Configurable-default-collar-color.patch => 0114-Configurable-default-collar-color.patch} (100%) rename patches/server/{0113-Phantom-flames-on-swoop.patch => 0115-Phantom-flames-on-swoop.patch} (100%) rename patches/server/{0114-Option-for-chests-to-open-even-with-a-solid-block-on.patch => 0116-Option-for-chests-to-open-even-with-a-solid-block-on.patch} (100%) rename patches/server/{0115-Implement-TPSBar.patch => 0117-Implement-TPSBar.patch} (97%) rename patches/server/{0116-Striders-give-saddle-back.patch => 0118-Striders-give-saddle-back.patch} (100%) rename patches/server/{0117-PlayerBookTooLargeEvent.patch => 0119-PlayerBookTooLargeEvent.patch} (92%) rename patches/server/{0118-Full-netherite-armor-grants-fire-resistance.patch => 0120-Full-netherite-armor-grants-fire-resistance.patch} (100%) rename patches/server/{0119-Fix-rotating-UP-DOWN-CW-and-CCW.patch => 0121-Fix-rotating-UP-DOWN-CW-and-CCW.patch} (100%) rename patches/server/{0120-Add-mobGriefing-bypass-to-everything-affected.patch => 0122-Add-mobGriefing-bypass-to-everything-affected.patch} (97%) rename patches/server/{0121-Config-to-allow-Note-Block-sounds-when-blocked.patch => 0123-Config-to-allow-Note-Block-sounds-when-blocked.patch} (100%) rename patches/server/{0122-Add-EntityTeleportHinderedEvent.patch => 0124-Add-EntityTeleportHinderedEvent.patch} (98%) rename patches/server/{0123-Farmland-trampling-changes.patch => 0125-Farmland-trampling-changes.patch} (100%) rename patches/server/{0124-Movement-options-for-armor-stands.patch => 0126-Movement-options-for-armor-stands.patch} (96%) rename patches/server/{0125-Fix-stuck-in-portals.patch => 0127-Fix-stuck-in-portals.patch} (93%) rename patches/server/{0126-Toggle-for-water-sensitive-mob-damage.patch => 0128-Toggle-for-water-sensitive-mob-damage.patch} (99%) rename patches/server/{0127-Config-to-always-tame-in-Creative.patch => 0129-Config-to-always-tame-in-Creative.patch} (100%) rename patches/server/{0128-End-crystal-explosion-options.patch => 0130-End-crystal-explosion-options.patch} (100%) rename patches/server/{0129-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch => 0131-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch} (96%) rename patches/server/{0130-Dont-run-with-scissors.patch => 0132-Dont-run-with-scissors.patch} (96%) rename patches/server/{0131-One-Punch-Man.patch => 0133-One-Punch-Man.patch} (94%) rename patches/server/{0132-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch => 0134-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch} (100%) rename patches/server/{0133-Config-to-ignore-nearby-mobs-when-sleeping.patch => 0135-Config-to-ignore-nearby-mobs-when-sleeping.patch} (96%) rename patches/server/{0134-Add-back-player-spawned-endermite-API.patch => 0136-Add-back-player-spawned-endermite-API.patch} (100%) rename patches/server/{0135-Config-Enderman-aggressiveness-towards-Endermites.patch => 0137-Config-Enderman-aggressiveness-towards-Endermites.patch} (97%) rename patches/server/{0136-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch => 0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch} (96%) rename patches/server/{0137-Tick-fluids-config.patch => 0139-Tick-fluids-config.patch} (100%) rename patches/server/{0138-Config-to-disable-Llama-caravans.patch => 0140-Config-to-disable-Llama-caravans.patch} (100%) rename patches/server/{0139-Config-to-make-Creepers-explode-on-death.patch => 0141-Config-to-make-Creepers-explode-on-death.patch} (97%) rename patches/server/{0140-Configurable-ravager-griefable-blocks-list.patch => 0142-Configurable-ravager-griefable-blocks-list.patch} (100%) rename patches/server/{0141-Sneak-to-bulk-process-composter.patch => 0143-Sneak-to-bulk-process-composter.patch} (100%) rename patches/server/{0142-Config-for-skipping-night.patch => 0144-Config-for-skipping-night.patch} (96%) rename patches/server/{0143-Add-config-for-villager-trading.patch => 0145-Add-config-for-villager-trading.patch} (96%) rename patches/server/{0144-Allow-infinity-on-crossbows.patch => 0146-Allow-infinity-on-crossbows.patch} (98%) rename patches/server/{0145-Drowning-Settings.patch => 0147-Drowning-Settings.patch} (89%) rename patches/server/{0146-Break-individual-slabs-when-sneaking.patch => 0148-Break-individual-slabs-when-sneaking.patch} (100%) rename patches/server/{0147-Config-to-disable-hostile-mob-spawn-on-ice.patch => 0149-Config-to-disable-hostile-mob-spawn-on-ice.patch} (100%) rename patches/server/{0148-Config-to-show-Armor-Stand-arms-on-spawn.patch => 0150-Config-to-show-Armor-Stand-arms-on-spawn.patch} (100%) rename patches/server/{0149-Option-to-make-doors-require-redstone.patch => 0151-Option-to-make-doors-require-redstone.patch} (100%) rename patches/server/{0150-Config-to-allow-for-unsafe-enchants.patch => 0152-Config-to-allow-for-unsafe-enchants.patch} (98%) rename patches/server/{0151-Configurable-sponge-absorption.patch => 0153-Configurable-sponge-absorption.patch} (100%) rename patches/server/{0152-Projectile-offset-config.patch => 0154-Projectile-offset-config.patch} (100%) rename patches/server/{0153-Config-for-powered-rail-activation-distance.patch => 0155-Config-for-powered-rail-activation-distance.patch} (100%) rename patches/server/{0154-Piglin-portal-spawn-modifier.patch => 0156-Piglin-portal-spawn-modifier.patch} (100%) rename patches/server/{0155-Config-to-change-max-number-of-bees.patch => 0157-Config-to-change-max-number-of-bees.patch} (96%) rename patches/server/{0156-Config-for-wither-explosion-radius.patch => 0158-Config-for-wither-explosion-radius.patch} (100%) rename patches/server/{0157-Gamemode-extra-permissions.patch => 0159-Gamemode-extra-permissions.patch} (97%) rename patches/server/{0158-Configurable-piston-push-limit.patch => 0160-Configurable-piston-push-limit.patch} (100%) rename patches/server/{0159-Configurable-broadcast-settings.patch => 0161-Configurable-broadcast-settings.patch} (94%) rename patches/server/{0160-Configurable-mob-blindness.patch => 0162-Configurable-mob-blindness.patch} (95%) rename patches/server/{0161-Hide-hidden-players-from-entity-selector.patch => 0163-Hide-hidden-players-from-entity-selector.patch} (98%) rename patches/server/{0162-Config-for-health-to-impact-Creeper-explosion-radius.patch => 0164-Config-for-health-to-impact-Creeper-explosion-radius.patch} (96%) rename patches/server/{0163-Iron-golem-calm-anger-options.patch => 0165-Iron-golem-calm-anger-options.patch} (100%) rename patches/server/{0164-Breedable-parrots.patch => 0166-Breedable-parrots.patch} (100%) rename patches/server/{0165-Configurable-powered-rail-boost-modifier.patch => 0167-Configurable-powered-rail-boost-modifier.patch} (96%) rename patches/server/{0166-Add-config-change-multiplier-critical-damage-value.patch => 0168-Add-config-change-multiplier-critical-damage-value.patch} (100%) rename patches/server/{0167-Option-to-disable-dragon-egg-teleporting.patch => 0169-Option-to-disable-dragon-egg-teleporting.patch} (100%) rename patches/server/{0168-Config-for-unverified-username-message.patch => 0170-Config-for-unverified-username-message.patch} (97%) rename patches/server/{0169-Make-anvil-cumulative-cost-configurable.patch => 0171-Make-anvil-cumulative-cost-configurable.patch} (95%) rename patches/server/{0170-Bee-can-work-when-raining-or-at-night.patch => 0172-Bee-can-work-when-raining-or-at-night.patch} (100%) rename patches/server/{0171-API-for-any-mob-to-burn-daylight.patch => 0173-API-for-any-mob-to-burn-daylight.patch} (96%) rename patches/server/{0172-Config-MobEffect-by-world.patch => 0174-Config-MobEffect-by-world.patch} (100%) rename patches/server/{0173-Beacon-Activation-Range-Configurable.patch => 0175-Beacon-Activation-Range-Configurable.patch} (100%) rename patches/server/{0174-Add-toggle-for-sand-duping-fix.patch => 0176-Add-toggle-for-sand-duping-fix.patch} (100%) rename patches/server/{0175-Add-toggle-for-end-portal-safe-teleporting.patch => 0177-Add-toggle-for-end-portal-safe-teleporting.patch} (95%) rename patches/server/{0176-Make-lightning-rod-range-configurable.patch => 0178-Make-lightning-rod-range-configurable.patch} (89%) rename patches/server/{0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch => 0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch} (100%) rename patches/server/{0178-Allow-player-join-full-server-by-permission.patch => 0180-Allow-player-join-full-server-by-permission.patch} (100%) rename patches/server/{0179-Add-portal-permission-bypass.patch => 0181-Add-portal-permission-bypass.patch} (100%) rename patches/server/{0180-Shulker-spawn-from-bullet-options.patch => 0182-Shulker-spawn-from-bullet-options.patch} (100%) rename patches/server/{0181-Eating-glow-berries-adds-glow-effect.patch => 0183-Eating-glow-berries-adds-glow-effect.patch} (100%) rename patches/server/{0182-Option-to-make-drowned-break-doors.patch => 0184-Option-to-make-drowned-break-doors.patch} (100%) rename patches/server/{0183-Configurable-hunger-starvation-damage.patch => 0185-Configurable-hunger-starvation-damage.patch} (100%) rename patches/server/{0184-Enhance-SysoutCatcher.patch => 0186-Enhance-SysoutCatcher.patch} (100%) rename patches/server/{0185-Add-uptime-command.patch => 0187-Add-uptime-command.patch} (97%) rename patches/server/{0186-Tool-actionable-options.patch => 0188-Tool-actionable-options.patch} (100%) rename patches/server/{0187-Store-placer-on-Block-when-placed.patch => 0189-Store-placer-on-Block-when-placed.patch} (100%) rename patches/server/{0188-Summoner-API.patch => 0190-Summoner-API.patch} (99%) rename patches/server/{0189-Customizable-sleeping-actionbar-messages.patch => 0191-Customizable-sleeping-actionbar-messages.patch} (94%) rename patches/server/{0190-option-to-disable-shulker-box-items-from-dropping-co.patch => 0192-option-to-disable-shulker-box-items-from-dropping-co.patch} (96%) rename patches/server/{0191-Big-dripleaf-tilt-delay.patch => 0193-Big-dripleaf-tilt-delay.patch} (100%) rename patches/server/{0192-Player-ridable-in-water-option.patch => 0194-Player-ridable-in-water-option.patch} (96%) rename patches/server/{0193-Config-to-disable-Enderman-teleport-on-projectile-hi.patch => 0195-Config-to-disable-Enderman-teleport-on-projectile-hi.patch} (94%) rename patches/server/{0194-Add-compass-command.patch => 0196-Add-compass-command.patch} (100%) rename patches/server/{0195-Toggle-for-kinetic-damage.patch => 0197-Toggle-for-kinetic-damage.patch} (89%) rename patches/server/{0196-Add-Option-for-disable-observer-clocks.patch => 0198-Add-Option-for-disable-observer-clocks.patch} (95%) rename patches/server/{0197-Customizeable-Zombie-Villager-curing-times.patch => 0199-Customizeable-Zombie-Villager-curing-times.patch} (100%) rename patches/server/{0198-Option-for-sponges-to-work-on-lava-and-mud.patch => 0200-Option-for-sponges-to-work-on-lava-and-mud.patch} (100%) rename patches/server/{0199-Toggle-for-Wither-s-spawn-sound.patch => 0201-Toggle-for-Wither-s-spawn-sound.patch} (93%) rename patches/server/{0200-Cactus-breaks-from-solid-neighbors-config.patch => 0202-Cactus-breaks-from-solid-neighbors-config.patch} (100%) rename patches/server/{0201-Config-to-remove-curse-of-binding-with-weakness.patch => 0203-Config-to-remove-curse-of-binding-with-weakness.patch} (96%) rename patches/server/{0202-Conduit-behavior-configuration.patch => 0204-Conduit-behavior-configuration.patch} (100%) rename patches/server/{0203-Cauldron-fill-chances.patch => 0205-Cauldron-fill-chances.patch} (100%) rename patches/server/{0204-Config-to-allow-mobs-to-pathfind-over-rails.patch => 0206-Config-to-allow-mobs-to-pathfind-over-rails.patch} (97%) rename patches/server/{0205-Shulker-change-color-with-dye.patch => 0207-Shulker-change-color-with-dye.patch} (100%) rename patches/server/{0206-Extended-OfflinePlayer-API.patch => 0208-Extended-OfflinePlayer-API.patch} (99%) rename patches/server/{0207-Added-the-ability-to-add-combustible-items.patch => 0209-Added-the-ability-to-add-combustible-items.patch} (96%) rename patches/server/{0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch => 0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch} (90%) rename patches/server/{0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch => 0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch} (100%) rename patches/server/{0210-Shift-right-click-to-use-exp-for-mending.patch => 0212-Shift-right-click-to-use-exp-for-mending.patch} (94%) rename patches/server/{0211-Dolphins-naturally-aggressive-to-players-chance.patch => 0213-Dolphins-naturally-aggressive-to-players-chance.patch} (100%) rename patches/server/{0212-Cows-naturally-aggressive-to-players-chance.patch => 0214-Cows-naturally-aggressive-to-players-chance.patch} (100%) rename patches/server/{0213-Option-for-beds-to-explode-on-villager-sleep.patch => 0215-Option-for-beds-to-explode-on-villager-sleep.patch} (94%) rename patches/server/{0214-Halloween-options-and-optimizations.patch => 0216-Halloween-options-and-optimizations.patch} (92%) rename patches/server/{0215-Config-for-grindstones.patch => 0217-Config-for-grindstones.patch} (98%) rename patches/server/{0216-UPnP-Port-Forwarding.patch => 0218-UPnP-Port-Forwarding.patch} (90%) rename patches/server/{0217-Campfire-option-for-lit-when-placed.patch => 0219-Campfire-option-for-lit-when-placed.patch} (100%) rename patches/server/{0218-options-to-extinguish-fire-blocks-with-snowballs.patch => 0220-options-to-extinguish-fire-blocks-with-snowballs.patch} (98%) rename patches/server/{0219-Add-option-to-disable-zombie-villagers-cure.patch => 0221-Add-option-to-disable-zombie-villagers-cure.patch} (100%) rename patches/server/{0220-Persistent-BlockEntity-Lore-and-DisplayName.patch => 0222-Persistent-BlockEntity-Lore-and-DisplayName.patch} (99%) rename patches/server/{0221-Signs-allow-color-codes.patch => 0223-Signs-allow-color-codes.patch} (97%) rename patches/server/{0222-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch => 0224-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch} (99%) rename patches/server/{0223-Mobs-always-drop-experience.patch => 0225-Mobs-always-drop-experience.patch} (99%) rename patches/server/{0224-Potion-NamespacedKey.patch => 0226-Potion-NamespacedKey.patch} (100%) rename patches/server/{0225-Grindstone-API.patch => 0227-Grindstone-API.patch} (100%) rename patches/server/{0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch => 0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch} (100%) rename patches/server/{0227-Shearing-jeb-produces-random-color-wool.patch => 0229-Shearing-jeb-produces-random-color-wool.patch} (100%) rename patches/server/{0228-Turtle-eggs-random-tick-crack-chance.patch => 0230-Turtle-eggs-random-tick-crack-chance.patch} (100%) rename patches/server/{0229-Mob-head-visibility-percent.patch => 0231-Mob-head-visibility-percent.patch} (97%) rename patches/server/{0230-Configurable-valid-characters-for-usernames.patch => 0232-Configurable-valid-characters-for-usernames.patch} (95%) rename patches/server/{0231-Shears-can-have-looting-enchantment.patch => 0233-Shears-can-have-looting-enchantment.patch} (99%) rename patches/server/{0232-Stop-bees-from-dying-after-stinging.patch => 0234-Stop-bees-from-dying-after-stinging.patch} (100%) rename patches/server/{0233-Give-bee-counts-in-beehives-to-Purpur-clients.patch => 0235-Give-bee-counts-in-beehives-to-Purpur-clients.patch} (92%) rename patches/server/{0234-Configurable-farmland-trample-height.patch => 0236-Configurable-farmland-trample-height.patch} (100%) rename patches/server/{0235-Configurable-player-pickup-exp-delay.patch => 0237-Configurable-player-pickup-exp-delay.patch} (97%) rename patches/server/{0236-Allow-void-trading.patch => 0238-Allow-void-trading.patch} (91%) rename patches/server/{0237-Configurable-phantom-size.patch => 0239-Configurable-phantom-size.patch} (100%) rename patches/server/{0238-Configurable-food-attributes.patch => 0240-Configurable-food-attributes.patch} (98%) rename patches/server/{0239-Max-joins-per-second.patch => 0241-Max-joins-per-second.patch} (92%) rename patches/server/{0240-Configurable-minimum-demand-for-trades.patch => 0242-Configurable-minimum-demand-for-trades.patch} (95%) rename patches/server/{0241-Lobotomize-stuck-villagers.patch => 0243-Lobotomize-stuck-villagers.patch} (91%) rename patches/server/{0242-Option-for-villager-display-trade-item.patch => 0244-Option-for-villager-display-trade-item.patch} (100%) rename patches/server/{0243-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch => 0245-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch} (100%) rename patches/server/{0244-Config-for-mob-last-hurt-by-player-time.patch => 0246-Config-for-mob-last-hurt-by-player-time.patch} (96%) rename patches/server/{0245-Anvil-repair-damage-options.patch => 0247-Anvil-repair-damage-options.patch} (100%) rename patches/server/{0246-Option-to-disable-turtle-egg-trampling-with-feather-.patch => 0248-Option-to-disable-turtle-egg-trampling-with-feather-.patch} (100%) rename patches/server/{0247-Add-toggle-for-enchant-level-clamping.patch => 0249-Add-toggle-for-enchant-level-clamping.patch} (97%) rename patches/server/{0248-Skip-junit-tests-for-purpur-commands.patch => 0250-Skip-junit-tests-for-purpur-commands.patch} (100%) rename patches/server/{0249-Implement-configurable-search-radius-for-villagers-t.patch => 0251-Implement-configurable-search-radius-for-villagers-t.patch} (94%) rename patches/server/{0250-Stonecutter-damage.patch => 0252-Stonecutter-damage.patch} (100%) rename patches/server/{0251-Configurable-damage-settings-for-magma-blocks.patch => 0253-Configurable-damage-settings-for-magma-blocks.patch} (100%) rename patches/server/{0252-Add-config-for-snow-on-blue-ice.patch => 0254-Add-config-for-snow-on-blue-ice.patch} (100%) rename patches/server/{0253-Skeletons-eat-wither-roses.patch => 0255-Skeletons-eat-wither-roses.patch} (100%) rename patches/server/{0254-Enchantment-Table-Persists-Lapis.patch => 0256-Enchantment-Table-Persists-Lapis.patch} (100%) rename patches/server/{0255-Spark-Profiler.patch => 0257-Spark-Profiler.patch} (100%) rename patches/server/{0256-Option-to-disable-kick-for-out-of-order-chat.patch => 0258-Option-to-disable-kick-for-out-of-order-chat.patch} (87%) rename patches/server/{0257-Config-for-sculk-shrieker-can_summon-state.patch => 0259-Config-for-sculk-shrieker-can_summon-state.patch} (100%) rename patches/server/{0258-Config-to-not-let-coral-die.patch => 0260-Config-to-not-let-coral-die.patch} (100%) rename patches/server/{0259-Add-local-difficulty-api.patch => 0261-Add-local-difficulty-api.patch} (100%) rename patches/server/{0260-Add-toggle-for-RNG-manipulation.patch => 0262-Add-toggle-for-RNG-manipulation.patch} (94%) rename patches/server/{0261-Send-client-custom-name-of-BE.patch => 0263-Send-client-custom-name-of-BE.patch} (100%) rename patches/server/{0262-Allow-custom-ChatDecorators.patch => 0264-Allow-custom-ChatDecorators.patch} (90%) rename patches/server/{0263-Remove-Timings.patch => 0265-Remove-Timings.patch} (92%) rename patches/server/{0264-Remove-Mojang-Profiler.patch => 0266-Remove-Mojang-Profiler.patch} (88%) rename patches/server/{0265-Add-more-logger-output-for-invalid-movement-kicks.patch => 0267-Add-more-logger-output-for-invalid-movement-kicks.patch} (94%) rename patches/server/{0266-Add-Bee-API.patch => 0268-Add-Bee-API.patch} (100%) rename patches/server/{0267-Debug-Marker-API.patch => 0269-Debug-Marker-API.patch} (97%) rename patches/server/{0268-mob-spawning-option-to-ignore-creative-players.patch => 0270-mob-spawning-option-to-ignore-creative-players.patch} (92%) rename patches/server/{0269-Add-skeleton-bow-accuracy-option.patch => 0271-Add-skeleton-bow-accuracy-option.patch} (100%) rename patches/server/{0270-Allay-respect-item-NBT.patch => 0272-Allay-respect-item-NBT.patch} (94%) rename patches/server/{0271-Add-death-screen-API.patch => 0273-Add-death-screen-API.patch} (100%) rename patches/{unapplied/server/0275-Make-pufferfish-config-relocatable.patch => server/0274-Make-pufferfish-config-relocatable.patch} (90%) rename patches/server/{0272-Implement-ram-and-rambar-commands.patch => 0275-Implement-ram-and-rambar-commands.patch} (100%) rename patches/server/{0273-Add-item-packet-serialize-event.patch => 0276-Add-item-packet-serialize-event.patch} (90%) rename patches/server/{0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch => 0277-Add-an-option-to-fix-MC-3304-projectile-looting.patch} (98%) rename patches/server/{0275-Configurable-block-blast-resistance.patch => 0278-Configurable-block-blast-resistance.patch} (96%) rename patches/server/{0276-Configurable-block-fall-damage-modifiers.patch => 0279-Configurable-block-fall-damage-modifiers.patch} (98%) rename patches/server/{0277-Language-API.patch => 0280-Language-API.patch} (93%) rename patches/server/{0278-Milk-Keeps-Beneficial-Effects.patch => 0281-Milk-Keeps-Beneficial-Effects.patch} (94%) rename patches/server/{0279-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch => 0282-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch} (100%) rename patches/server/{0280-Add-log-suppression-for-LibraryLoader.patch => 0283-Add-log-suppression-for-LibraryLoader.patch} (94%) rename patches/server/{0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0284-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (100%) rename patches/server/{0282-Fire-Immunity-API.patch => 0285-Fire-Immunity-API.patch} (91%) rename patches/server/{0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (94%) rename patches/server/{0284-Added-got-ram-event.patch => 0287-Added-got-ram-event.patch} (86%) rename patches/server/{0285-Log-skipped-entity-s-position.patch => 0288-Log-skipped-entity-s-position.patch} (86%) rename patches/server/{0286-End-Crystal-Cramming.patch => 0289-End-Crystal-Cramming.patch} (100%) rename patches/server/{0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0290-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (100%) rename patches/server/{0288-Add-attribute-clamping-and-armor-limit-config.patch => 0291-Add-attribute-clamping-and-armor-limit-config.patch} (97%) rename patches/server/{0289-Config-to-remove-explosion-radius-clamp.patch => 0292-Config-to-remove-explosion-radius-clamp.patch} (91%) rename patches/server/{0290-bonemealable-sugarcane-cactus-and-netherwart.patch => 0293-bonemealable-sugarcane-cactus-and-netherwart.patch} (100%) rename patches/server/{0291-Add-PreExplodeEvents.patch => 0294-Add-PreExplodeEvents.patch} (94%) rename patches/server/{0292-Improve-output-of-plugins-command.patch => 0295-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0293-Add-mending-multiplier.patch => 0296-Add-mending-multiplier.patch} (96%) rename patches/server/{0294-Make-GUI-Great-Again.patch => 0297-Make-GUI-Great-Again.patch} (99%) rename patches/server/{0295-Stored-Bee-API.patch => 0298-Stored-Bee-API.patch} (100%) rename patches/server/{0296-Shears-can-defuse-TNT.patch => 0299-Shears-can-defuse-TNT.patch} (100%) rename patches/server/{0297-Explorer-Map-API.patch => 0300-Explorer-Map-API.patch} (100%) rename patches/server/{0298-Option-Ocelot-Spawn-Under-Sea-Level.patch => 0301-Option-Ocelot-Spawn-Under-Sea-Level.patch} (100%) rename patches/server/{0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch => 0302-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch} (100%) rename patches/server/{0300-Add-option-for-always-showing-item-in-player-death-m.patch => 0303-Add-option-for-always-showing-item-in-player-death-m.patch} (97%) rename patches/server/{0301-place-end-crystal-on-any-block.patch => 0304-place-end-crystal-on-any-block.patch} (96%) rename patches/server/{0302-Add-hover-lines-API.patch => 0305-Add-hover-lines-API.patch} (100%) rename patches/server/{0303-Add-option-to-disable-the-copper-oxidation-proximity.patch => 0306-Add-option-to-disable-the-copper-oxidation-proximity.patch} (96%) diff --git a/patches/unapplied/api/0001-Pufferfish-API-Changes.patch b/patches/api/0001-Pufferfish-API-Changes.patch similarity index 98% rename from patches/unapplied/api/0001-Pufferfish-API-Changes.patch rename to patches/api/0001-Pufferfish-API-Changes.patch index 1a44d100e9..39f27823db 100644 --- a/patches/unapplied/api/0001-Pufferfish-API-Changes.patch +++ b/patches/api/0001-Pufferfish-API-Changes.patch @@ -20,18 +20,18 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index e827ee211e3c65dc68ac5867fd8476639df63645..b9c75a190dbd7a90ac5ef0fbc6e6fe34806acc4e 100644 +index bf01892c248b988531d21d9fb0f74d0adf2205ac..80833c13a2d19e31d6f648e7ef5b3456025e767e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -47,6 +47,7 @@ dependencies { +@@ -51,6 +51,7 @@ dependencies { apiAndDocs("net.kyori:adventure-text-logger-slf4j") api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion") + api("io.sentry:sentry:5.4.0") // Pufferfish - implementation("org.ow2.asm:asm:9.4") - implementation("org.ow2.asm:asm-commons:9.4") -@@ -106,6 +107,13 @@ val generateApiVersioningFile by tasks.registering { + implementation("org.ow2.asm:asm:9.5") + implementation("org.ow2.asm:asm-commons:9.5") +@@ -109,6 +110,13 @@ val generateApiVersioningFile by tasks.registering { } } diff --git a/patches/unapplied/api/0001-Fix-pufferfish-issues.patch b/patches/api/0002-Fix-pufferfish-issues.patch similarity index 90% rename from patches/unapplied/api/0001-Fix-pufferfish-issues.patch rename to patches/api/0002-Fix-pufferfish-issues.patch index 08bd8a159f..00aeb75396 100644 --- a/patches/unapplied/api/0001-Fix-pufferfish-issues.patch +++ b/patches/api/0002-Fix-pufferfish-issues.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix pufferfish issues diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java -index 06e96e5c98f1a7a68c8b4b5e527314c1aa774e38..49bba9a7a02b9cf3a552583315eff2b7dbe060c0 100644 +index 88f1ca89fa640a686231b8eec87e70419b2d73ef..d6b91c49a267c89d7df2ddee7ccfe64675d117be 100644 --- a/src/test/java/org/bukkit/AnnotationTest.java +++ b/src/test/java/org/bukkit/AnnotationTest.java @@ -47,6 +47,10 @@ public class AnnotationTest { diff --git a/patches/api/0001-Purpur-config-files.patch b/patches/api/0003-Purpur-config-files.patch similarity index 100% rename from patches/api/0001-Purpur-config-files.patch rename to patches/api/0003-Purpur-config-files.patch diff --git a/patches/api/0002-Build-System-Changes.patch b/patches/api/0004-Build-System-Changes.patch similarity index 85% rename from patches/api/0002-Build-System-Changes.patch rename to patches/api/0004-Build-System-Changes.patch index 654c620794..26cdf44bec 100644 --- a/patches/api/0002-Build-System-Changes.patch +++ b/patches/api/0004-Build-System-Changes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Build System Changes diff --git a/build.gradle.kts b/build.gradle.kts -index 9d817bf3f26ffd484945a00a6538970eca22ee20..dc322b5d5458163c5b1de2a74d3d2edb1a4dac76 100644 +index 80833c13a2d19e31d6f648e7ef5b3456025e767e..0a33275fdf16bda47771bab9ddfeb2bf8616c2dc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -121,6 +121,8 @@ tasks.jar { +@@ -129,6 +129,8 @@ tasks.jar { } tasks.withType { diff --git a/patches/api/0003-Purpur-client-support.patch b/patches/api/0005-Purpur-client-support.patch similarity index 100% rename from patches/api/0003-Purpur-client-support.patch rename to patches/api/0005-Purpur-client-support.patch diff --git a/patches/api/0004-Default-permissions.patch b/patches/api/0006-Default-permissions.patch similarity index 100% rename from patches/api/0004-Default-permissions.patch rename to patches/api/0006-Default-permissions.patch diff --git a/patches/api/0005-Ridables.patch b/patches/api/0007-Ridables.patch similarity index 100% rename from patches/api/0005-Ridables.patch rename to patches/api/0007-Ridables.patch diff --git a/patches/api/0006-Allow-inventory-resizing.patch b/patches/api/0008-Allow-inventory-resizing.patch similarity index 100% rename from patches/api/0006-Allow-inventory-resizing.patch rename to patches/api/0008-Allow-inventory-resizing.patch diff --git a/patches/api/0007-Llama-API.patch b/patches/api/0009-Llama-API.patch similarity index 100% rename from patches/api/0007-Llama-API.patch rename to patches/api/0009-Llama-API.patch diff --git a/patches/api/0008-AFK-API.patch b/patches/api/0010-AFK-API.patch similarity index 100% rename from patches/api/0008-AFK-API.patch rename to patches/api/0010-AFK-API.patch diff --git a/patches/api/0009-Bring-back-server-name.patch b/patches/api/0011-Bring-back-server-name.patch similarity index 100% rename from patches/api/0009-Bring-back-server-name.patch rename to patches/api/0011-Bring-back-server-name.patch diff --git a/patches/api/0010-ExecuteCommandEvent.patch b/patches/api/0012-ExecuteCommandEvent.patch similarity index 100% rename from patches/api/0010-ExecuteCommandEvent.patch rename to patches/api/0012-ExecuteCommandEvent.patch diff --git a/patches/api/0011-LivingEntity-safeFallDistance.patch b/patches/api/0013-LivingEntity-safeFallDistance.patch similarity index 100% rename from patches/api/0011-LivingEntity-safeFallDistance.patch rename to patches/api/0013-LivingEntity-safeFallDistance.patch diff --git a/patches/api/0012-Lagging-threshold.patch b/patches/api/0014-Lagging-threshold.patch similarity index 100% rename from patches/api/0012-Lagging-threshold.patch rename to patches/api/0014-Lagging-threshold.patch diff --git a/patches/api/0013-PlayerSetSpawnerTypeWithEggEvent.patch b/patches/api/0015-PlayerSetSpawnerTypeWithEggEvent.patch similarity index 100% rename from patches/api/0013-PlayerSetSpawnerTypeWithEggEvent.patch rename to patches/api/0015-PlayerSetSpawnerTypeWithEggEvent.patch diff --git a/patches/api/0014-Anvil-API.patch b/patches/api/0016-Anvil-API.patch similarity index 100% rename from patches/api/0014-Anvil-API.patch rename to patches/api/0016-Anvil-API.patch diff --git a/patches/api/0015-ItemStack-convenience-methods.patch b/patches/api/0017-ItemStack-convenience-methods.patch similarity index 100% rename from patches/api/0015-ItemStack-convenience-methods.patch rename to patches/api/0017-ItemStack-convenience-methods.patch diff --git a/patches/api/0016-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/api/0018-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 100% rename from patches/api/0016-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to patches/api/0018-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch diff --git a/patches/api/0017-ChatColor-conveniences.patch b/patches/api/0019-ChatColor-conveniences.patch similarity index 100% rename from patches/api/0017-ChatColor-conveniences.patch rename to patches/api/0019-ChatColor-conveniences.patch diff --git a/patches/api/0018-LivingEntity-broadcastItemBreak.patch b/patches/api/0020-LivingEntity-broadcastItemBreak.patch similarity index 100% rename from patches/api/0018-LivingEntity-broadcastItemBreak.patch rename to patches/api/0020-LivingEntity-broadcastItemBreak.patch diff --git a/patches/api/0019-Item-entity-immunities.patch b/patches/api/0021-Item-entity-immunities.patch similarity index 100% rename from patches/api/0019-Item-entity-immunities.patch rename to patches/api/0021-Item-entity-immunities.patch diff --git a/patches/api/0020-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/api/0022-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 100% rename from patches/api/0020-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/api/0022-Add-option-to-disable-zombie-aggressiveness-towards-.patch diff --git a/patches/api/0021-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/api/0023-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 100% rename from patches/api/0021-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/api/0023-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch diff --git a/patches/api/0022-Rabid-Wolf-API.patch b/patches/api/0024-Rabid-Wolf-API.patch similarity index 100% rename from patches/api/0022-Rabid-Wolf-API.patch rename to patches/api/0024-Rabid-Wolf-API.patch diff --git a/patches/api/0023-PlayerBookTooLargeEvent.patch b/patches/api/0025-PlayerBookTooLargeEvent.patch similarity index 100% rename from patches/api/0023-PlayerBookTooLargeEvent.patch rename to patches/api/0025-PlayerBookTooLargeEvent.patch diff --git a/patches/api/0024-Full-netherite-armor-grants-fire-resistance.patch b/patches/api/0026-Full-netherite-armor-grants-fire-resistance.patch similarity index 100% rename from patches/api/0024-Full-netherite-armor-grants-fire-resistance.patch rename to patches/api/0026-Full-netherite-armor-grants-fire-resistance.patch diff --git a/patches/api/0025-Add-EntityTeleportHinderedEvent.patch b/patches/api/0027-Add-EntityTeleportHinderedEvent.patch similarity index 100% rename from patches/api/0025-Add-EntityTeleportHinderedEvent.patch rename to patches/api/0027-Add-EntityTeleportHinderedEvent.patch diff --git a/patches/api/0026-Add-enchantment-target-for-bows-and-crossbows.patch b/patches/api/0028-Add-enchantment-target-for-bows-and-crossbows.patch similarity index 100% rename from patches/api/0026-Add-enchantment-target-for-bows-and-crossbows.patch rename to patches/api/0028-Add-enchantment-target-for-bows-and-crossbows.patch diff --git a/patches/api/0027-Iron-golem-poppy-calms-anger.patch b/patches/api/0029-Iron-golem-poppy-calms-anger.patch similarity index 100% rename from patches/api/0027-Iron-golem-poppy-calms-anger.patch rename to patches/api/0029-Iron-golem-poppy-calms-anger.patch diff --git a/patches/api/0028-API-for-any-mob-to-burn-daylight.patch b/patches/api/0030-API-for-any-mob-to-burn-daylight.patch similarity index 100% rename from patches/api/0028-API-for-any-mob-to-burn-daylight.patch rename to patches/api/0030-API-for-any-mob-to-burn-daylight.patch diff --git a/patches/api/0029-Add-back-player-spawned-endermite-API.patch b/patches/api/0031-Add-back-player-spawned-endermite-API.patch similarity index 100% rename from patches/api/0029-Add-back-player-spawned-endermite-API.patch rename to patches/api/0031-Add-back-player-spawned-endermite-API.patch diff --git a/patches/api/0030-Fix-default-permission-system.patch b/patches/api/0032-Fix-default-permission-system.patch similarity index 100% rename from patches/api/0030-Fix-default-permission-system.patch rename to patches/api/0032-Fix-default-permission-system.patch diff --git a/patches/api/0031-Summoner-API.patch b/patches/api/0033-Summoner-API.patch similarity index 100% rename from patches/api/0031-Summoner-API.patch rename to patches/api/0033-Summoner-API.patch diff --git a/patches/api/0032-Clean-up-version-command-output.patch b/patches/api/0034-Clean-up-version-command-output.patch similarity index 100% rename from patches/api/0032-Clean-up-version-command-output.patch rename to patches/api/0034-Clean-up-version-command-output.patch diff --git a/patches/api/0033-Extended-OfflinePlayer-API.patch b/patches/api/0035-Extended-OfflinePlayer-API.patch similarity index 100% rename from patches/api/0033-Extended-OfflinePlayer-API.patch rename to patches/api/0035-Extended-OfflinePlayer-API.patch diff --git a/patches/api/0034-Added-the-ability-to-add-combustible-items.patch b/patches/api/0036-Added-the-ability-to-add-combustible-items.patch similarity index 100% rename from patches/api/0034-Added-the-ability-to-add-combustible-items.patch rename to patches/api/0036-Added-the-ability-to-add-combustible-items.patch diff --git a/patches/api/0035-Potion-NamespacedKey.patch b/patches/api/0037-Potion-NamespacedKey.patch similarity index 100% rename from patches/api/0035-Potion-NamespacedKey.patch rename to patches/api/0037-Potion-NamespacedKey.patch diff --git a/patches/api/0036-Grindstone-API.patch b/patches/api/0038-Grindstone-API.patch similarity index 100% rename from patches/api/0036-Grindstone-API.patch rename to patches/api/0038-Grindstone-API.patch diff --git a/patches/api/0037-Shears-can-have-looting-enchantment.patch b/patches/api/0039-Shears-can-have-looting-enchantment.patch similarity index 100% rename from patches/api/0037-Shears-can-have-looting-enchantment.patch rename to patches/api/0039-Shears-can-have-looting-enchantment.patch diff --git a/patches/api/0038-Lobotomize-stuck-villagers.patch b/patches/api/0040-Lobotomize-stuck-villagers.patch similarity index 100% rename from patches/api/0038-Lobotomize-stuck-villagers.patch rename to patches/api/0040-Lobotomize-stuck-villagers.patch diff --git a/patches/api/0039-Add-local-difficulty-api.patch b/patches/api/0041-Add-local-difficulty-api.patch similarity index 100% rename from patches/api/0039-Add-local-difficulty-api.patch rename to patches/api/0041-Add-local-difficulty-api.patch diff --git a/patches/api/0040-Remove-Timings.patch b/patches/api/0042-Remove-Timings.patch similarity index 100% rename from patches/api/0040-Remove-Timings.patch rename to patches/api/0042-Remove-Timings.patch diff --git a/patches/api/0041-Add-Bee-API.patch b/patches/api/0043-Add-Bee-API.patch similarity index 100% rename from patches/api/0041-Add-Bee-API.patch rename to patches/api/0043-Add-Bee-API.patch diff --git a/patches/api/0042-Debug-Marker-API.patch b/patches/api/0044-Debug-Marker-API.patch similarity index 100% rename from patches/api/0042-Debug-Marker-API.patch rename to patches/api/0044-Debug-Marker-API.patch diff --git a/patches/api/0043-Add-death-screen-API.patch b/patches/api/0045-Add-death-screen-API.patch similarity index 100% rename from patches/api/0043-Add-death-screen-API.patch rename to patches/api/0045-Add-death-screen-API.patch diff --git a/patches/api/0044-Add-item-packet-serialize-event.patch b/patches/api/0046-Add-item-packet-serialize-event.patch similarity index 100% rename from patches/api/0044-Add-item-packet-serialize-event.patch rename to patches/api/0046-Add-item-packet-serialize-event.patch diff --git a/patches/api/0045-Language-API.patch b/patches/api/0047-Language-API.patch similarity index 100% rename from patches/api/0045-Language-API.patch rename to patches/api/0047-Language-API.patch diff --git a/patches/api/0046-Add-log-suppression-for-LibraryLoader.patch b/patches/api/0048-Add-log-suppression-for-LibraryLoader.patch similarity index 96% rename from patches/api/0046-Add-log-suppression-for-LibraryLoader.patch rename to patches/api/0048-Add-log-suppression-for-LibraryLoader.patch index 4948f9b897..95e4cd2ac2 100644 --- a/patches/api/0046-Add-log-suppression-for-LibraryLoader.patch +++ b/patches/api/0048-Add-log-suppression-for-LibraryLoader.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add log suppression for LibraryLoader diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java -index eaefbb00e9993d54906cc8cf35cf753c0d6c7707..f1e58639213be0c43cd2ff090b625e7d0a67e8be 100644 +index 301e82369603f3dd6e6c1bd380da4bacacd7ef6c..0c6ca7588fb3d6b6497ddf032fe75e5c6c9719e5 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -55,6 +55,7 @@ public final class JavaPluginLoader implements PluginLoader { diff --git a/patches/api/0047-Fire-Immunity-API.patch b/patches/api/0049-Fire-Immunity-API.patch similarity index 100% rename from patches/api/0047-Fire-Immunity-API.patch rename to patches/api/0049-Fire-Immunity-API.patch diff --git a/patches/api/0048-Added-goat-ram-event.patch b/patches/api/0050-Added-goat-ram-event.patch similarity index 100% rename from patches/api/0048-Added-goat-ram-event.patch rename to patches/api/0050-Added-goat-ram-event.patch diff --git a/patches/api/0049-Add-PreExplodeEvents.patch b/patches/api/0051-Add-PreExplodeEvents.patch similarity index 100% rename from patches/api/0049-Add-PreExplodeEvents.patch rename to patches/api/0051-Add-PreExplodeEvents.patch diff --git a/patches/api/0050-Stored-Bee-API.patch b/patches/api/0052-Stored-Bee-API.patch similarity index 100% rename from patches/api/0050-Stored-Bee-API.patch rename to patches/api/0052-Stored-Bee-API.patch diff --git a/patches/api/0051-Explorer-Map-API.patch b/patches/api/0053-Explorer-Map-API.patch similarity index 100% rename from patches/api/0051-Explorer-Map-API.patch rename to patches/api/0053-Explorer-Map-API.patch diff --git a/patches/api/0052-Add-hover-lines-API.patch b/patches/api/0054-Add-hover-lines-API.patch similarity index 100% rename from patches/api/0052-Add-hover-lines-API.patch rename to patches/api/0054-Add-hover-lines-API.patch diff --git a/patches/unapplied/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch similarity index 93% rename from patches/unapplied/server/0001-Pufferfish-Server-Changes.patch rename to patches/server/0001-Pufferfish-Server-Changes.patch index 25b54b2969..41289052fb 100644 --- a/patches/unapplied/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/build.gradle.kts b/build.gradle.kts -index 64479f0a892d6847f987d844efe282a6080d607b..9525f76103136dfc900c70f97416864115f75ed5 100644 +index 58da26ad2f128ba0b66f86820f60853f4be352f0..5134bd15ff55d3407dec6756663394535a0ddf69 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -39,8 +39,8 @@ index 64479f0a892d6847f987d844efe282a6080d607b..9525f76103136dfc900c70f974168641 implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") @@ -51,6 +55,13 @@ dependencies { - runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") - runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3") + runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + // Pufferfish start + implementation("org.yaml:snakeyaml:1.32") @@ -55,7 +55,7 @@ index 64479f0a892d6847f987d844efe282a6080d607b..9525f76103136dfc900c70f974168641 @@ -58,6 +69,14 @@ dependencies { } - val craftbukkitPackageVersion = "1_20_R2" // Paper + val craftbukkitPackageVersion = "1_20_R3" // Paper + +// Pufferfish Start +tasks.withType { @@ -625,10 +625,10 @@ index 0000000000000000000000000000000000000000..020368da69b9a492155f6de6297f7473 +} diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..cc66657cb4f978aa2df3ca1be6c683759952cc7a +index 0000000000000000000000000000000000000000..0dd3374468e05f7a312ba5856b9cf8a4787dfa59 --- /dev/null +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -@@ -0,0 +1,294 @@ +@@ -0,0 +1,293 @@ +package gg.pufferfish.pufferfish; + +import gg.pufferfish.pufferfish.simd.SIMDDetection; @@ -913,7 +913,6 @@ index 0000000000000000000000000000000000000000..cc66657cb4f978aa2df3ca1be6c68375 + "the ender dragon whenever a player places an end crystal."); + } + -+ + public static boolean disableMethodProfiler; + public static boolean disableOutOfOrderChat; + private static void miscSettings() { @@ -1464,10 +1463,10 @@ index 0000000000000000000000000000000000000000..facd55463d44cb7e3d2ca6892982f549 + } +} diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index 8240bb085b619f257f8c0a25775e0b15068e440f..6d9668d993bb922ae9d2b76a4d766903cc3f98a4 100644 +index 200ed770b57e1a9240abf0473968d4b85cbefe3c..0acc7cfc0fb0264dd76a58f7582e79d83fa040eb 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -213,7 +213,7 @@ public final class MCUtil { +@@ -212,7 +212,7 @@ public final class MCUtil { } public static long getCoordinateKey(final Entity entity) { @@ -1476,11 +1475,24 @@ index 8240bb085b619f257f8c0a25775e0b15068e440f..6d9668d993bb922ae9d2b76a4d766903 } public static long getCoordinateKey(final ChunkPos pair) { +diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java +index 85a8a687b1568a56e3e646b37ef78b562c1b8a82..69971b2c59e541ac4100b84c84e2972de1b44ca9 100644 +--- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java ++++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java +@@ -38,7 +38,7 @@ public class SignedMessageChain { + throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.chain_broken"), false); // Paper - diff on change (if disconnects, need a new kick event cause) + } else if (playerPublicKey.data().hasExpired()) { + throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey", org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY), false); // Paper - kick event causes +- } else if (body.timeStamp().isBefore(this.lastTimeStamp)) { ++ } else if (!gg.pufferfish.pufferfish.PufferfishConfig.disableOutOfOrderChat && body.timeStamp().isBefore(this.lastTimeStamp)) { // Pufferfish + throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat", org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT), true); // Paper - kick event causes + } else { + this.lastTimeStamp = body.timeStamp(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8f31413c939cc2b0454ad3d9a1b618dbae449d00..58d076e2a8fa1cf56c4c8d15a502e85fcf48aa90 100644 +index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..53d0a930ae5ec34c1f3a58e96e92f54dd9c7881c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -308,6 +308,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -1697,7 +1699,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop needsChangeBroadcasting = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<>(); @@ -1540,7 +1552,7 @@ index caa73632aee15583c6b6ed12a668c8f49b794708..3abec84383a445d3ad0d3b5f613246b6 // Paper end - optimise chunk tick iteration public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier persistentStateManagerFactory, int viewDistance, boolean dsync) { -@@ -1464,8 +1464,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1463,8 +1463,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance); } @@ -1569,7 +1581,7 @@ index caa73632aee15583c6b6ed12a668c8f49b794708..3abec84383a445d3ad0d3b5f613246b6 Iterator iterator = this.entity.getIndirectPassengers().iterator(); while (iterator.hasNext()) { -@@ -1477,6 +1497,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1476,6 +1496,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider i = j; } } @@ -1580,10 +1592,10 @@ index caa73632aee15583c6b6ed12a668c8f49b794708..3abec84383a445d3ad0d3b5f613246b6 return this.scaledRange(i); } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 8c33a12ca879c46893150d6adfb8aa4d397c6b4c..5d26364c0f4ed03bd9994077683c93b9883e5327 100644 +index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..5cf74fe0214191d42e74fc104eba150a95894e0f 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -75,6 +75,9 @@ public class ServerChunkCache extends ChunkSource { +@@ -73,6 +73,9 @@ public class ServerChunkCache extends ChunkSource { final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f); private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4]; @@ -1594,77 +1606,57 @@ index 8c33a12ca879c46893150d6adfb8aa4d397c6b4c..5d26364c0f4ed03bd9994077683c93b9 private static int getChunkCacheKey(int x, int z) { return x & 3 | ((z & 3) << 2); @@ -521,6 +524,7 @@ public class ServerChunkCache extends ChunkSource { - ProfilerFiller gameprofilerfiller = this.level.getProfiler(); - gameprofilerfiller.push("pollingChunks"); + // Paper - optimise chunk tick iteration + + this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random - int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); - boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit - -@@ -530,28 +534,35 @@ public class ServerChunkCache extends ChunkSource { - // Paper start - per player mob spawning - NaturalSpawner.SpawnState spawnercreature_d; // moved down - if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled -- // re-set mob counts -- for (ServerPlayer player : this.level.players) { -- // Paper start - per player mob spawning backoff -- for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { -- player.mobCounts[ii] = 0; -- -- int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? -- if (newBackoff < 0) { -- newBackoff = 0; -+ // Pufferfish start - moved down when async processing -+ if (!gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) { -+ // re-set mob counts -+ for (ServerPlayer player : this.level.players) { -+ // Paper start - per player mob spawning backoff -+ for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { -+ player.mobCounts[ii] = 0; -+ -+ int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? -+ if (newBackoff < 0) { -+ newBackoff = 0; -+ } -+ player.mobBackoffCounts[ii] = newBackoff; + if (this.level.getServer().tickRateManager().runsNormally()) { + gameprofilerfiller.popPush("naturalSpawnCount"); + this.level.timings.countNaturalMobs.startTiming(); // Paper - timings +@@ -529,6 +533,7 @@ public class ServerChunkCache extends ChunkSource { + int naturalSpawnChunkCount = k; + NaturalSpawner.SpawnState spawnercreature_d; // moved down + if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled ++ if (!gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) { // Pufferfish - moved down when async processing + // re-set mob counts + for (ServerPlayer player : this.level.players) { + // Paper start - per player mob spawning backoff +@@ -543,14 +548,18 @@ public class ServerChunkCache extends ChunkSource { } -- player.mobBackoffCounts[ii] = newBackoff; -+ // Paper end - per player mob spawning backoff + // Paper end - per player mob spawning backoff } -- // Paper end - per player mob spawning backoff -+ lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true); +- spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); ++ lastSpawnState = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, null, true); // Pufferfish - async mob spawning ++ } // Pufferfish - (endif) moved down when async processing + } else { +- spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); ++ // Pufferfish start - async mob spawning ++ lastSpawnState = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); ++ _pufferfish_spawnCountsReady.set(true); ++ // Pufferfish end } -- spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true); -+ // Pufferfish end - } else { -- spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); -+ // Pufferfish start -+ lastSpawnState = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); -+ _pufferfish_spawnCountsReady.set(true); -+ // Pufferfish end - } - // Paper end - this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings - -- this.lastSpawnState = spawnercreature_d; -+ //this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously - gameprofilerfiller.popPush("filteringLoadedChunks"); - // Paper - optimise chunk tick iteration - // Paper - optimise chunk tick iteration -@@ -644,8 +655,8 @@ public class ServerChunkCache extends ChunkSource { - // Paper end - optimise chunk tick iteration - if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) { // Paper - optimise chunk tick iteration - chunk1.incrementInhabitedTime(j); -- if (spawn && flag2 && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration -- NaturalSpawner.spawnForChunk(this.level, chunk1, spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1); -+ if (spawn && flag2 && (!gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning || _pufferfish_spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Pufferfish -+ NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); // Pufferfish - } + // Paper end + this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings + +- this.lastSpawnState = spawnercreature_d; ++ // this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously + gameprofilerfiller.popPush("spawnAndTick"); + boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit + +@@ -640,8 +649,8 @@ public class ServerChunkCache extends ChunkSource { + if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) { + // Paper end - optimise chunk tick iteration + chunk1.incrementInhabitedTime(j); +- if (spawn && flag && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration +- NaturalSpawner.spawnForChunk(this.level, chunk1, spawnercreature_d, this.spawnFriendlies, this.spawnEnemies, flag1); ++ if (spawn && flag && (!gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning || _pufferfish_spawnCountsReady.get()) && (this.spawnEnemies || this.spawnFriendlies) && this.level.getWorldBorder().isWithinBounds(chunkcoordintpair)) { // Spigot // Paper - optimise chunk tick iteration // Pufferfish ++ NaturalSpawner.spawnForChunk(this.level, chunk1, lastSpawnState, this.spawnFriendlies, this.spawnEnemies, flag1); // Pufferfish + } - if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration -@@ -691,6 +702,40 @@ public class ServerChunkCache extends ChunkSource { + if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration +@@ -688,6 +697,40 @@ public class ServerChunkCache extends ChunkSource { + gameprofilerfiller.pop(); gameprofilerfiller.pop(); - this.chunkMap.tick(); } + + // Pufferfish start - optimize mob spawning @@ -1726,10 +1718,10 @@ index 35674f92a67f93382103c2766df4b678ba5c862f..d46e61640b241d32df05240dedd2c23f this.wasOnGround = this.entity.onGround(); this.teleportDelay = 0; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c88d5b9125f6ee43bf2be60fd1745d836f271b78..945783d090e44ebed1d4968c1d1ec0b68f6d494f 100644 +index b78a9628a88f2a495ef6de74446a02a14d41a1f6..66cbea2fd146bdabf1241dae72bd76dc256afe45 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -878,6 +878,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -895,6 +895,7 @@ public class ServerLevel extends Level implements WorldGenLevel { org.spigotmc.ActivationRange.activateEntities(this); // Spigot this.timings.entityTick.startTiming(); // Spigot this.entityTickList.forEach((entity) -> { @@ -1737,7 +1729,7 @@ index c88d5b9125f6ee43bf2be60fd1745d836f271b78..945783d090e44ebed1d4968c1d1ec0b6 if (!entity.isRemoved()) { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); -@@ -897,7 +898,20 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -914,7 +915,20 @@ public class ServerLevel extends Level implements WorldGenLevel { } gameprofilerfiller.push("tick"); @@ -1759,7 +1751,7 @@ index c88d5b9125f6ee43bf2be60fd1745d836f271b78..945783d090e44ebed1d4968c1d1ec0b6 gameprofilerfiller.pop(); } } -@@ -962,9 +976,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -979,9 +993,11 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); @@ -1772,7 +1764,7 @@ index c88d5b9125f6ee43bf2be60fd1745d836f271b78..945783d090e44ebed1d4968c1d1ec0b6 public void tickChunk(LevelChunk chunk, int randomTickSpeed) { ChunkPos chunkcoordintpair = chunk.getPos(); boolean flag = this.isRaining(); -@@ -975,7 +991,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -992,7 +1008,7 @@ public class ServerLevel extends Level implements WorldGenLevel { gameprofilerfiller.push("thunder"); final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change @@ -1782,10 +1774,10 @@ index c88d5b9125f6ee43bf2be60fd1745d836f271b78..945783d090e44ebed1d4968c1d1ec0b6 if (this.isRainingAt(blockposition)) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 65bb221993147a558995b36fb835f7b82e0eb4bd..6cc9271ba058f4af759eae34e2f6e9f892b4f6da 100644 +index 30ccbab1586a656e0ae41d7406525fb02d9e025b..20cd751a602593740e87eb79d5059b5fc7856cb5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1119,6 +1119,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1124,6 +1124,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -1793,14 +1785,6 @@ index 65bb221993147a558995b36fb835f7b82e0eb4bd..6cc9271ba058f4af759eae34e2f6e9f8 // Paper start if (!this.cserver.isPrimaryThread()) { List pageList = packet.getPages(); -@@ -2274,6 +2275,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - } - - private boolean updateChatOrder(Instant timestamp) { -+ if (gg.pufferfish.pufferfish.PufferfishConfig.disableOutOfOrderChat) return true; - Instant instant1; - - do { diff --git a/src/main/java/net/minecraft/world/CompoundContainer.java b/src/main/java/net/minecraft/world/CompoundContainer.java index 241fec02e6869c638d3a160819b32173a081467b..6a8f9e8f5bf108674c47018def28906e2d0a729c 100644 --- a/src/main/java/net/minecraft/world/CompoundContainer.java @@ -1914,10 +1898,10 @@ index d6cbe98e67fdbf8db46338a88ab1356dd63b50a3..20dd3a63b2f955b05a75eb240e33ae4c int LARGE_MAX_STACK_SIZE = 64; int DEFAULT_DISTANCE_LIMIT = 8; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0bf55da454 100644 +index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b8810cce6f4995d78dca3691b0a1cbd133a05e06 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -306,7 +306,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -307,7 +307,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public double yo; public double zo; private Vec3 position; @@ -1926,7 +1910,7 @@ index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0b private ChunkPos chunkPosition; private Vec3 deltaMovement; private float yRot; -@@ -434,6 +434,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -438,6 +438,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.originWorld; } // Paper end @@ -1939,7 +1923,7 @@ index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0b public float getBukkitYaw() { return this.yRot; } -@@ -798,6 +804,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -802,6 +808,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public void tick() { @@ -1952,7 +1936,7 @@ index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0b this.baseTick(); } -@@ -4362,16 +4374,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4399,16 +4411,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -1978,7 +1962,7 @@ index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0b double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4379,14 +4393,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4416,14 +4430,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2046,7 +2030,7 @@ index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0b if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4408,9 +4469,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4445,9 +4506,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end } } @@ -2060,10 +2044,10 @@ index fece91254b10b59474056aa730fd420f90cd7bec..80c9a523e94704f73e833e2255af6b0b if (vec3d.length() > 0.0D) { if (k1 > 0) { diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 73871f456a85bda1e51f54986d0e61fb629822e8..2561e74ffdf595a9b6ae13dcd738662c772db442 100644 +index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..a63399eedb896c06e96c7fba5cac7102e1c40ba6 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -301,6 +301,8 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -305,6 +305,8 @@ public class EntityType implements FeatureElement, EntityTypeT private final boolean canSpawnFarFromPlayer; private final int clientTrackingRange; private final int updateInterval; @@ -2073,7 +2057,7 @@ index 73871f456a85bda1e51f54986d0e61fb629822e8..2561e74ffdf595a9b6ae13dcd738662c private String descriptionId; @Nullable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 15e1d8c09fad181406a6acb8b3f177cd5e6c0f52..3b9ee3324a084271862ed790e8fc0d469e877ec1 100644 +index 96885946be3b8e129984353f3dfe4330e73ad84a..88f736e67107d34514eec231070f42d2ee008e5c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -2084,7 +2068,7 @@ index 15e1d8c09fad181406a6acb8b3f177cd5e6c0f52..3b9ee3324a084271862ed790e8fc0d46 public abstract class LivingEntity extends Entity implements Attackable { -@@ -414,7 +413,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -413,7 +412,7 @@ public abstract class LivingEntity extends Entity implements Attackable { boolean flag = this instanceof net.minecraft.world.entity.player.Player; if (!this.level().isClientSide) { @@ -2093,7 +2077,7 @@ index 15e1d8c09fad181406a6acb8b3f177cd5e6c0f52..3b9ee3324a084271862ed790e8fc0d46 this.hurt(this.damageSources().inWall(), 1.0F); } else if (flag && !this.level().getWorldBorder().isWithinBounds(this.getBoundingBox())) { double d0 = this.level().getWorldBorder().getDistanceToBorder(this) + this.level().getWorldBorder().getDamageSafeZone(); -@@ -1409,6 +1408,19 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1408,6 +1407,19 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.getHealth() <= 0.0F; } @@ -2113,7 +2097,7 @@ index 15e1d8c09fad181406a6acb8b3f177cd5e6c0f52..3b9ee3324a084271862ed790e8fc0d46 @Override public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { -@@ -2004,6 +2016,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2001,6 +2013,20 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } @@ -2135,10 +2119,10 @@ index 15e1d8c09fad181406a6acb8b3f177cd5e6c0f52..3b9ee3324a084271862ed790e8fc0d46 if (this.isSpectator()) { return false; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 956d05e2ae59978ea9623ca0e167c0afe0b87306..944c22ea172796492a683d2f2bddfb0938d7a8c9 100644 +index 5af48151159135b869ec4753bbcf79dd257c1570..1d65d8b3e21373b0f0d2c633742da52d6b208942 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -220,14 +220,16 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting { return this.lookControl; } @@ -2157,7 +2141,7 @@ index 956d05e2ae59978ea9623ca0e167c0afe0b87306..944c22ea172796492a683d2f2bddfb09 this.targetSelector.tick(); } } -@@ -911,16 +913,20 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -912,16 +914,20 @@ public abstract class Mob extends LivingEntity implements Targeting { if (i % 2 != 0 && this.tickCount > 1) { this.level().getProfiler().push("targetSelector"); @@ -2245,7 +2229,7 @@ index b738ee2d3801fadfd09313f05ae24593e56b0ec6..1635818fc4b1788c0d397085239df6dd public boolean hasTasks() { for (WrappedGoal task : this.availableGoals) { diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java -index 34f319ad09276c6f68dde449c79351de0d7d86f5..a719af0b512d9ef243d0d54f3b744b1b1a5f2772 100644 +index 4bbc36404b396500df0d9db380cf223b5897662e..382e9d18b81bcbeb20cb3b828b66260f07a845e6 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java @@ -119,6 +119,7 @@ public abstract class MoveToBlockGoal extends Goal { @@ -2282,10 +2266,10 @@ index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..ac5e5676b194a2a99e5cf53eb89c1152 return false; } diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 5beaa849a250ea005733250ad3edfa8382224667..2c91fe46355c9a201507de5577f693ed4f5fb974 100644 +index 6b614818b14ecfc8fc82b523eeb7e21fdf9bf1ba..8820905ac733a8915cc1697259b2bef14d97e471 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -@@ -237,13 +237,22 @@ public class Bat extends AmbientCreature { +@@ -241,13 +241,22 @@ public class Bat extends AmbientCreature { } } @@ -2326,10 +2310,10 @@ index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..d241ca4d0295f9fce39c11197bd435cf this.level().getProfiler().pop(); this.level().getProfiler().push("allayActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index d5b97d4316390028f54aa9bb9fa52b0b003e32a0..b4793b88688bd568a428aa520e880f0038de45a7 100644 +index 387006271c246362b0df1bfcadca7b7096660003..9158c5a507904c46a8fe2fdad9a0b6ba3a9b2460 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -@@ -280,9 +280,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder { - return true; +@@ -159,9 +159,11 @@ public class Frog extends Animal implements VariantHolder { + } + private int behaviorTick = 0; // Pufferfish @@ -2464,10 +2448,10 @@ index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..cfdc1650783d6855e0d4f33ec68aab48 this.level().getProfiler().pop(); PiglinAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index b2bc3a832c310448046ccde37a04918aa6d63197..5e43912708f9074dee1bb351efa737a7e6796fc3 100644 +index 9f1b7c629644931074293151ed58a523ca6d488c..58a7e61e02b7d72326ed4d57ee514adb63b3873c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -@@ -272,11 +272,13 @@ public class Warden extends Monster implements VibrationSystem { +@@ -273,11 +273,13 @@ public class Warden extends Monster implements VibrationSystem { } @@ -2482,7 +2466,7 @@ index b2bc3a832c310448046ccde37a04918aa6d63197..5e43912708f9074dee1bb351efa737a7 this.level().getProfiler().pop(); super.customServerAiStep(); 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 cbe2a37f74f4fb2abd0b3297699e54335aaed64f..2460768aaa7b8e6d183c03c1f0f2ccd6cb61a16f 100644 +index 11935e5b16324af572b07c5b173708f5a91f8289..6b869c05bbdb13e23ecaa2c38e0cb05bda5a083d 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -2548,10 +2532,10 @@ index 96d664c28738d6090f7067761c2978dd1aa0fd0e..b1c24a02b87aca7b180a6efbce177f23 return false; } 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 a90317100d32974e481e14476843f66997a2cf3a..cd0629581bae5f805842157af36c2d838e01bee3 100644 +index 2f058cec80c6ef7a5a5ca065dc6c9fe353c521de..a7653d8d7291a537c997364c6222bb84d45f7277 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -44,6 +44,36 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -45,6 +45,36 @@ public abstract class Projectile extends Entity implements TraceableEntity { super(type, world); } @@ -2589,7 +2573,7 @@ index a90317100d32974e481e14476843f66997a2cf3a..cd0629581bae5f805842157af36c2d83 if (entity != null) { this.ownerUUID = entity.getUUID(); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java -index 00187fbbeddfc17e1b6887f8bf0f50da23938470..f64edfdb03f99624daf1e05b5dc86d845c3018b6 100644 +index 6d23c39e4eadf23616080d6d08672e13b5d3c37d..e7115f1635821e0aab32e8aeea6914388dc24639 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java @@ -27,7 +27,10 @@ import org.bukkit.inventory.InventoryHolder; @@ -2649,7 +2633,7 @@ index 5a19875cbc603acea95193d969d2e1dc1e0bfd78..3688e9f8c6c6d1239095e3a87060ccca } } diff --git a/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java b/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java -index 38f7d1ece27ec1a3deda21fb6a6f0e788c8ed718..252fc22844682c0f67dc02a87478e01e49b6430d 100644 +index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b6878314ea2717 100644 --- a/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java +++ b/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java @@ -26,8 +26,13 @@ public class ShapelessRecipe extends io.papermc.paper.inventory.recipe.RecipeBoo @@ -2696,10 +2680,10 @@ index 38f7d1ece27ec1a3deda21fb6a6f0e788c8ed718..252fc22844682c0f67dc02a87478e01e autorecipestackmanager.initialize(this); // Paper - better exact choice recipes int i = 0; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..99e1c645871be28d130319b65700a1b8db093de4 100644 +index f8e519684d02dff0e26734eb89eca54ae1d9b1ee..3fb317e5df780abb7fa8c3d78717306cad2bc650 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -210,6 +210,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -213,6 +213,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -2708,7 +2692,7 @@ index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..99e1c645871be28d130319b65700a1b8 protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper -@@ -1308,13 +1310,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1313,13 +1315,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick @@ -2724,7 +2708,7 @@ index 2354a0e5d15e9be633d9fe3a1a9feefe7b9b7782..99e1c645871be28d130319b65700a1b8 // Paper end } } -@@ -1779,6 +1781,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1793,6 +1795,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { @@ -2754,7 +2738,7 @@ index 3cdddda9c0618e95288b81b975d499c8dd30c05f..9c2d62feff1816f5729060c6192269a5 return new BlockPos(i, l, j); } diff --git a/src/main/java/net/minecraft/world/level/biome/Biome.java b/src/main/java/net/minecraft/world/level/biome/Biome.java -index 65012a12e1430956ef55ced56773e6354ac26444..ed439b7e94646141c93a7dd3704d1cdeb5c27e16 100644 +index 4f9187d9d640618c40a2fa528f36b845017b4777..efca73d4de33028cf9df944f36e51b7b50f7a4c5 100644 --- a/src/main/java/net/minecraft/world/level/biome/Biome.java +++ b/src/main/java/net/minecraft/world/level/biome/Biome.java @@ -66,14 +66,20 @@ public final class Biome { @@ -2978,10 +2962,10 @@ index d4dcf7fe26474ae07374e7761d823bc5c8b54f97..1d13fabb3f34023b4fbb1be9ad02ebc6 public static void entityInside(Level world, BlockPos pos, BlockState state, Entity entity, HopperBlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index 3e638f12956e57548f76c7e2403ba370f7baa249..02364a148b347e3669275553004391e31d77c0b5 100644 +index 64875525df244db838560f5fefb7b1b07b0f1f51..1436fdbe31c8cdf05ac56f20224fe91de4b1c0c3 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -@@ -96,12 +96,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc +@@ -94,12 +94,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc public boolean isEmpty() { this.unpackLootTable((Player)null); // Paper start @@ -3269,10 +3253,10 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 356107688a5d40d1c462b164f61af82f4dfd3926..2ecb8bfd98c141e9f5e7f4e441c8df91e1b9fbc2 100644 +index e011cfcdda2e0a609d4158b0454bdf046b04c9d9..6550d4ea03b5b56159b19e297f03b0b141c59c62 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -269,7 +269,7 @@ import javax.annotation.Nullable; // Paper +@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { @@ -3281,7 +3265,7 @@ index 356107688a5d40d1c462b164f61af82f4dfd3926..2ecb8bfd98c141e9f5e7f4e441c8df91 private final String serverVersion; private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); -@@ -1124,6 +1124,11 @@ public final class CraftServer implements Server { +@@ -1120,6 +1120,11 @@ public final class CraftServer implements Server { plugin.getPluginMeta().getDisplayName(), "This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies." )); @@ -3306,10 +3290,10 @@ index 96d772eb02f79f8c478f5e6f065e387aa7665b18..c5ce412f321b8b4f31cc042893659e21 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 548c77592a3520e8053483644eba805079a14f1a..397c10f64db3a4d7296fe18585b56851bc3a1f01 100644 +index ec2396f0e5d62b10450eaa7239a8c5479638b3c3..c909efd2060dc95bd3ecb8c9fec36a1e69a642ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -485,7 +485,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -482,7 +482,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0002-Rebrand.patch similarity index 96% rename from patches/server/0001-Rebrand.patch rename to patches/server/0002-Rebrand.patch index 68e911c0fe..a9776ca711 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -5,27 +5,29 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index 58da26ad2f128ba0b66f86820f60853f4be352f0..12f4b3d753b56947e3759888ba3d98fa693c2a3f 100644 +index 5134bd15ff55d3407dec6756663394535a0ddf69..a627c4b4814cde0581884145eba498a76baed0b2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { +@@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { val alsoShade: Configuration by configurations.creating dependencies { -- implementation(project(":paper-api")) -- implementation(project(":paper-mojangapi")) +- implementation(project(":pufferfish-api")) // Pufferfish // Paper +- // Pufferfish start +- implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") { + // Purpur start + implementation(project(":purpur-api")) + implementation("io.papermc.paper:paper-mojangapi:${project.version}") { -+ exclude("io.papermc.paper", "paper-api") -+ } + exclude("io.papermc.paper", "paper-api") + } +- // Pufferfish end + // Purpur end // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -51,6 +55,10 @@ dependencies { - runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") - runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") +@@ -62,6 +62,10 @@ dependencies { + } + // Pufferfish end + implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur + implementation("org.mozilla:rhino-engine:1.7.14") // Purpur @@ -34,16 +36,16 @@ index 58da26ad2f128ba0b66f86820f60853f4be352f0..12f4b3d753b56947e3759888ba3d98fa testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") testImplementation("org.hamcrest:hamcrest:2.2") -@@ -70,7 +78,7 @@ tasks.jar { +@@ -89,7 +93,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", -- "Implementation-Version" to "git-Paper-$implementationVersion", -+ "Implementation-Version" to "git-Purpur-$implementationVersion", // Purpur +- "Implementation-Version" to "git-Pufferfish-$implementationVersion", // Pufferfish ++ "Implementation-Version" to "git-Purpur-$implementationVersion", // Pufferfish // Purpur "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -154,7 +162,7 @@ fun TaskContainer.registerRunTask( +@@ -173,7 +177,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -175,10 +177,10 @@ index e047dee632022abfe05865d1e71838be8d5d053a..888e31a0454888c36cb27602a28619f1 stringbuilder.append(CrashReport.getErrorComment()); stringbuilder.append("\n\n"); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..88b79cd90e936e1c48b84d7f762f425e1ae09259 100644 +index 53d0a930ae5ec34c1f3a58e96e92f54dd9c7881c..6e8d7a22e9301704fd8d3e08e806b186f2578038 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -954,7 +954,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop // Spigot - Spigot > // CraftBukkit - cb > vanilla! -+ return "Purpur"; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! +- return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! ++ return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! } public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e011cfcdda2e0a609d4158b0454bdf046b04c9d9..ace8ef2a55cf8e87d092f0b67b2d64b3a9e4f366 100644 +index 6550d4ea03b5b56159b19e297f03b0b141c59c62..aa4ec4d17880230bb59b0fa8aabdb2212e95015f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { -- private final String serverName = "Paper"; // Paper -+ private final String serverName = "Purpur"; // Paper // Purpur +- private final String serverName = "Pufferfish"; // Paper // Pufferfish ++ private final String serverName = "Purpur"; // Paper // Pufferfish // Purpur private final String serverVersion; private final String bukkitVersion = Versioning.getBukkitVersion(); private final Logger logger = Logger.getLogger("Minecraft"); @@ -263,28 +265,28 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..d1b1bc4845fc9519fc892e962c3e7d89 // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index ec2396f0e5d62b10450eaa7239a8c5479638b3c3..72bb60535d2f35435ae8b96faced60a1b8d70db6 100644 +index c909efd2060dc95bd3ecb8c9fec36a1e69a642ff..6eeebfaf577263316f3562a8f968310acd616763 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -482,7 +482,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { -- return new com.destroystokyo.paper.PaperVersionFetcher(); -+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur - TODO: Pufferfish +- return new gg.pufferfish.pufferfish.PufferfishVersionFetcher(); // Pufferfish ++ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java -index 774556a62eb240da42e84db4502e2ed43495be17..fb87620c742ff7912f5e8ccd2a7930dd605576d9 100644 +index 80553face9c70c2a3d897681e7761df85b22d464..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java @@ -11,7 +11,7 @@ public final class Versioning { public static String getBukkitVersion() { String result = "Unknown-Version"; -- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/io.papermc.paper/paper-api/pom.properties"); -+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Purpur +- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/gg.pufferfish.pufferfish/pufferfish-api/pom.properties"); // Pufferfish ++ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Pufferfish // Purpur Properties properties = new Properties(); if (stream != null) { diff --git a/patches/unapplied/server/0002-Fix-pufferfish-issues.patch b/patches/server/0003-Fix-pufferfish-issues.patch similarity index 89% rename from patches/unapplied/server/0002-Fix-pufferfish-issues.patch rename to patches/server/0003-Fix-pufferfish-issues.patch index 6ded7b179a..330f063d98 100644 --- a/patches/unapplied/server/0002-Fix-pufferfish-issues.patch +++ b/patches/server/0003-Fix-pufferfish-issues.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix pufferfish issues diff --git a/build.gradle.kts b/build.gradle.kts -index 57739f9dd7d045d1a585a9fc1be290a1a007db6a..f8b27b3992f1d59bf0e95bba0961540e88345754 100644 +index a627c4b4814cde0581884145eba498a76baed0b2..790835a0c4889d17b4efd06cb463744973642a48 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -229,5 +229,7 @@ val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> +@@ -233,5 +233,7 @@ val runtimeClasspathForRunDev = sourceSets.main.flatMap { src -> } tasks.registerRunTask("runDev") { description = "Spin up a non-relocated Mojang-mapped test server" @@ -18,7 +18,7 @@ index 57739f9dd7d045d1a585a9fc1be290a1a007db6a..f8b27b3992f1d59bf0e95bba0961540e + jvmArgs("-DPaper.isRunDev=true") } diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -index cc66657cb4f978aa2df3ca1be6c683759952cc7a..26f08b7fb16484c39135ed172c246f76c9e089c7 100644 +index 0dd3374468e05f7a312ba5856b9cf8a4787dfa59..960c0555a001fe63de78d77d5ea47d08a520d029 100644 --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java @@ -224,7 +224,7 @@ public class PufferfishConfig { @@ -40,10 +40,10 @@ index cc66657cb4f978aa2df3ca1be6c683759952cc7a..26f08b7fb16484c39135ed172c246f76 "This can improve performance by a few percent, but has minor gameplay implications."); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c1b03e4c37ea85ddf283479682d0eb2eca57ee3c..cf2fd8eba6aa4cf15cac924577507a700f7f72b5 100644 +index 66cbea2fd146bdabf1241dae72bd76dc256afe45..5493e7e8ec1de5bb52ee7bd145e436fdb03e59b6 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -976,7 +976,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -993,7 +993,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper start - optimise random block ticking private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos(); @@ -53,10 +53,10 @@ index c1b03e4c37ea85ddf283479682d0eb2eca57ee3c..cf2fd8eba6aa4cf15cac924577507a70 private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 1e2620338f0b6fd1c160a8f8d6b659e273f2f1c9..6c0e33323922de72dcb941a10883a07c72808b5f 100644 +index 3fb317e5df780abb7fa8c3d78717306cad2bc650..879f9ba2395b2856e8cd0c78a2b25782e29a7234 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -210,7 +210,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -213,7 +213,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -66,7 +66,7 @@ index 1e2620338f0b6fd1c160a8f8d6b659e273f2f1c9..6c0e33323922de72dcb941a10883a07c protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index b78476223637722efe12520d3c2e301603abd8a1..e2ea90469352346b43f0a86746179a6adc53d82a 100644 +index 7fd68d4aba72b15b2e21e5c88b44e677b794fe57..b9aca339851cdaa6325c04e5cea847904752c63c 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0002-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch similarity index 96% rename from patches/server/0002-Purpur-config-files.patch rename to patches/server/0004-Purpur-config-files.patch index 9a29d40b2d..52daf6d043 100644 --- a/patches/server/0002-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -5,15 +5,15 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 4b002e8b75d117b726b0de274a76d3596fce015b..9713263c3bd34ab8a3bfc0a8797ba0b1b88ed733 100644 +index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java @@ -593,7 +593,7 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { -- Metrics metrics = new Metrics("Paper", serverUUID, logFailedRequests, Bukkit.getLogger()); -+ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Purpur +- Metrics metrics = new Metrics("Pufferfish", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish ++ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish // Purpur metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); @@ -26,11 +26,11 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..9713263c3bd34ab8a3bfc0a8797ba0b1 - final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion(); - if (implVersion != null) { - final String buildOrHash = implVersion.substring(implVersion.lastIndexOf('-') + 1); -- paperVersion = "git-Paper-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); +- paperVersion = "git-Pufferfish-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); // Pufferfish - } else { - paperVersion = "unknown"; - } -- metrics.addCustomChart(new Metrics.SimplePie("paper_version", () -> paperVersion)); +- metrics.addCustomChart(new Metrics.SimplePie("pufferfish_version", () -> paperVersion)); // Pufferfish + metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur + metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() != null) ? org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() : "unknown")); // Purpur @@ -72,7 +72,7 @@ index 14f4c0a93372a58cf36dc95265b5e210ea1605e5..ff27787313a3337e29eac6f623b08f1f boolean flag1 = this.source.acceptsSuccess() && !this.silent; boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent; diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 58536aabf607015939a1326f80207c0a06eed8ff..e5aa98430309eef04770fb68fd8314ac97fde167 100644 +index 3b8c810a228a59bf02a8557b229e5eca56c16562..5ebe7e5c4f12ccb8a91a1e6a0f029d0f54b09e15 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -218,6 +218,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -92,7 +92,7 @@ index 58536aabf607015939a1326f80207c0a06eed8ff..e5aa98430309eef04770fb68fd8314ac io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider // Paper end diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0b56e5f7f18fc4286992af22d402205b771165a3..d89e36f90c7d84eaa627ef1dd9002ea0a03d8a79 100644 +index 879f9ba2395b2856e8cd0c78a2b25782e29a7234..b13b0be860df85af973c36f0ef10bfe09aa0aaf9 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -179,6 +179,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -103,7 +103,7 @@ index 0b56e5f7f18fc4286992af22d402205b771165a3..d89e36f90c7d84eaa627ef1dd9002ea0 public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -216,6 +217,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -218,6 +219,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper @@ -112,7 +112,7 @@ index 0b56e5f7f18fc4286992af22d402205b771165a3..d89e36f90c7d84eaa627ef1dd9002ea0 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ace8ef2a55cf8e87d092f0b67b2d64b3a9e4f366..29f28a197d39b58c6eb3eac14b788dafb7768d91 100644 +index aa4ec4d17880230bb59b0fa8aabdb2212e95015f..eb6b2727d43ca991ef99a88413de95c1546b7696 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1037,6 +1037,7 @@ public final class CraftServer implements Server { @@ -139,7 +139,7 @@ index ace8ef2a55cf8e87d092f0b67b2d64b3a9e4f366..29f28a197d39b58c6eb3eac14b788daf this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -3011,6 +3014,18 @@ public final class CraftServer implements Server { +@@ -3016,6 +3019,18 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/patches/server/0003-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch similarity index 100% rename from patches/server/0003-Purpur-client-support.patch rename to patches/server/0005-Purpur-client-support.patch diff --git a/patches/server/0004-Fix-decompile-errors.patch b/patches/server/0006-Fix-decompile-errors.patch similarity index 100% rename from patches/server/0004-Fix-decompile-errors.patch rename to patches/server/0006-Fix-decompile-errors.patch diff --git a/patches/server/0005-Component-related-conveniences.patch b/patches/server/0007-Component-related-conveniences.patch similarity index 94% rename from patches/server/0005-Component-related-conveniences.patch rename to patches/server/0007-Component-related-conveniences.patch index c415bd65f3..fe14a57ff1 100644 --- a/patches/server/0005-Component-related-conveniences.patch +++ b/patches/server/0007-Component-related-conveniences.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 86cf69de7a35f1ac8e2c56f988e74832332470d2..b0e698b2532ed6af84ca2dd0d8b1c795921c5823 100644 +index 393edc13408ed8b3aad36121891eddf75ea321ff..ae9dfb2719ff2372e3a73adc2163330db886dfbe 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1883,6 +1883,26 @@ public class ServerPlayer extends Player { @@ -81,10 +81,10 @@ index 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9 return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf 100644 +index b8810cce6f4995d78dca3691b0a1cbd133a05e06..acb0f8ff57e4e08bdbcb93994064d9d216ac69b5 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4125,6 +4125,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4137,6 +4137,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return SlotAccess.NULL; } diff --git a/patches/server/0006-Ridables.patch b/patches/server/0008-Ridables.patch similarity index 97% rename from patches/server/0006-Ridables.patch rename to patches/server/0008-Ridables.patch index 6bd067d10a..0af4dcca02 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -22,10 +22,10 @@ index 83cab746d1d6fe25c043c8aee28c39412b90c127..ec6b58dae525c81bbb1c0e2d96fbded6 super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 88b79cd90e936e1c48b84d7f762f425e1ae09259..81e4b7254e1c3cb714a9c37d941ff1b5d9e758ed 100644 +index 6e8d7a22e9301704fd8d3e08e806b186f2578038..2dd32f61efa12689b08a54f30deac397ec49cef4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1698,6 +1698,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper @@ -34,7 +34,7 @@ index 88b79cd90e936e1c48b84d7f762f425e1ae09259..81e4b7254e1c3cb714a9c37d941ff1b5 this.profiler.push(() -> { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b78a9628a88f2a495ef6de74446a02a14d41a1f6..d328cc90fc6e333ea3079e462046a017a6cfc6f8 100644 +index 5493e7e8ec1de5bb52ee7bd145e436fdb03e59b6..53131fc1fc02df8f60f0a44dd8c3a5a53e24fddb 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -225,6 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -46,7 +46,7 @@ index b78a9628a88f2a495ef6de74446a02a14d41a1f6..d328cc90fc6e333ea3079e462046a017 final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date()); io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index b0e698b2532ed6af84ca2dd0d8b1c795921c5823..d5940e560ea890f7f017ff9c37939a485be94540 100644 +index ae9dfb2719ff2372e3a73adc2163330db886dfbe..f709667d2efab5f7dac22bb6e4b0bf32917f71e4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -763,6 +763,15 @@ public class ServerPlayer extends Player { @@ -66,10 +66,10 @@ index b0e698b2532ed6af84ca2dd0d8b1c795921c5823..d5940e560ea890f7f017ff9c37939a48 public void doTick() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 30ccbab1586a656e0ae41d7406525fb02d9e025b..bec249a47f1fbcabd6a121399d19d71e21edccae 100644 +index 20cd751a602593740e87eb79d5059b5fc7856cb5..44b8b9dfc9182a6ce0d01b003749946e90e3aedb 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2714,6 +2714,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2715,6 +2715,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -79,7 +79,7 @@ index 30ccbab1586a656e0ae41d7406525fb02d9e025b..bec249a47f1fbcabd6a121399d19d71e if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3f363138e 100644 +index acb0f8ff57e4e08bdbcb93994064d9d216ac69b5..7fc1887f68092da224a1ea1c56de474b471a8aee 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -377,7 +377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -91,7 +91,7 @@ index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3 private float eyeHeight; public boolean isInPowderSnow; public boolean wasInPowderSnow; -@@ -2996,6 +2996,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3008,6 +3008,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.passengers = ImmutableList.copyOf(list); } @@ -105,7 +105,7 @@ index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3 this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); } } -@@ -3036,6 +3043,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3048,6 +3055,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return false; } // Spigot end @@ -120,7 +120,7 @@ index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3 if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { this.passengers = ImmutableList.of(); } else { -@@ -4925,4 +4940,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4989,4 +5004,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); } // Paper end @@ -190,10 +190,10 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..75c278b67ad2b78766efd8f89c4c2ca7 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e0839a927915 100644 +index 88f736e67107d34514eec231070f42d2ee008e5c..bab5a6c1bcff734620ccb015f071d73b70bbc901 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -218,9 +218,9 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable { protected int deathScore; public float lastHurt; public boolean jumping; @@ -206,7 +206,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083 protected int lerpSteps; protected double lerpX; protected double lerpY; -@@ -286,7 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -285,7 +285,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.effectsDirty = true; this.useItem = ItemStack.EMPTY; this.lastClimbablePos = Optional.empty(); @@ -215,7 +215,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083 this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit // CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue()); -@@ -337,6 +337,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -336,6 +336,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public static AttributeSupplier.Builder createLivingAttributes() { return AttributeSupplier.builder().add(Attributes.MAX_HEALTH).add(Attributes.KNOCKBACK_RESISTANCE).add(Attributes.MOVEMENT_SPEED).add(Attributes.ARMOR).add(Attributes.ARMOR_TOUGHNESS).add(Attributes.MAX_ABSORPTION); } @@ -223,7 +223,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083 @Override protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) { -@@ -2701,7 +2702,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2727,7 +2728,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected long lastJumpTime = 0L; // Paper @@ -232,7 +232,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083 Vec3 vec3d = this.getDeltaMovement(); // Paper start long time = System.nanoTime(); -@@ -3479,8 +3480,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3505,8 +3506,10 @@ public abstract class LivingEntity extends Entity implements Attackable { this.pushEntities(); this.level().getProfiler().pop(); // Paper start @@ -245,7 +245,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083 Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); Location to = new Location (this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone()); -@@ -3490,6 +3493,21 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3516,6 +3519,21 @@ public abstract class LivingEntity extends Entity implements Attackable { this.absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch()); } } @@ -268,7 +268,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083 // Paper end if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de035aef688 100644 +index 1d65d8b3e21373b0f0d2c633742da52d6b208942..05eecaf3147051c44f9c4abce178c3126385c825 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -282,7 +282,7 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de0 this.jumpControl = new JumpControl(this); this.bodyRotationControl = this.createBodyControl(); this.navigation = this.createNavigation(world); -@@ -1384,7 +1384,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1390,7 +1390,7 @@ public abstract class Mob extends LivingEntity implements Targeting { protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -291,7 +291,7 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de0 } public boolean isWithinRestriction() { -@@ -1769,4 +1769,56 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1775,4 +1775,56 @@ public abstract class Mob extends LivingEntity implements Targeting { return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } @@ -349,13 +349,13 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de0 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -index 7204b973c3ad9239e82355513f6d538107102e48..ffd1ae235e6602e73c6585f60c6ef5dd21844a12 100644 +index 3087f8359b098682a345399c85395de8a15b6eed..6b0855cffb901dbc7dcc5fd44506275206bc9a2d 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -@@ -23,13 +23,20 @@ public class AttributeMap { - private final Map attributes = Maps.newHashMap(); +@@ -24,14 +24,21 @@ public class AttributeMap { private final Set dirtyAttributes = Sets.newHashSet(); private final AttributeSupplier supplier; + private final java.util.function.Function createInstance; // Pufferfish + private final net.minecraft.world.entity.LivingEntity entity; // Purpur public AttributeMap(AttributeSupplier defaultAttributes) { @@ -366,6 +366,7 @@ index 7204b973c3ad9239e82355513f6d538107102e48..ffd1ae235e6602e73c6585f60c6ef5dd + this.entity = entity; + // Purpur end this.supplier = defaultAttributes; + this.createInstance = attribute -> this.supplier.createInstance(this::onAttributeModified, attribute); // Pufferfish } private void onAttributeModified(AttributeInstance instance) { @@ -374,7 +375,7 @@ index 7204b973c3ad9239e82355513f6d538107102e48..ffd1ae235e6602e73c6585f60c6ef5dd this.dirtyAttributes.add(instance); } -@@ -41,7 +48,7 @@ public class AttributeMap { +@@ -43,7 +50,7 @@ public class AttributeMap { public Collection getSyncableAttributes() { return this.attributes.values().stream().filter((attribute) -> { @@ -526,7 +527,7 @@ index 7df56705a4a0de2dc4ff7ab133fc26612c219162..384bed4505b6cabb1ae151cd2c4eb5e5 --this.lookAtCooldown; this.getYRotD().ifPresent((yaw) -> { diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 6b614818b14ecfc8fc82b523eeb7e21fdf9bf1ba..74b28d8a27b702896906603e7a39b91c79561ac5 100644 +index 8820905ac733a8915cc1697259b2bef14d97e471..384fa039b11fb70c2d04df447b689aef3e808968 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -19,6 +19,7 @@ import net.minecraft.world.entity.EntityDimensions; @@ -2125,7 +2126,7 @@ index eecb7511582e5e316b71fa4a4734881424be5ca7..2efa2e19485f9d959a55115ab62f9854 this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); 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 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..80ff5b8b2041afd7ffef99c33ecd4f5252e827fe 100644 +index d241ca4d0295f9fce39c11197bd435cfac7f6e54..09f796ec491f21520e1fcc454249e4696dad3b1b 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 @@ -100,10 +100,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @@ -2182,16 +2183,17 @@ index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..80ff5b8b2041afd7ffef99c33ecd4f52 @Override protected Brain.Provider brainProvider() { return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES); -@@ -224,6 +259,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS +@@ -225,7 +260,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @Override protected void customServerAiStep() { this.level().getProfiler().push("allayBrain"); -+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish +- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish ++ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); this.level().getProfiler().pop(); this.level().getProfiler().push("allayActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 387006271c246362b0df1bfcadca7b7096660003..12fc57798dae50ffdd6118202309c872ab6b332d 100644 +index 9158c5a507904c46a8fe2fdad9a0b6ba3a9b2460..877c1050e4c38943f6e8c3f81fa4f2884aba5b11 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -98,6 +98,23 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder getModelRotationValues() { return this.modelRotationValues; -@@ -278,6 +295,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder { @@ -2350,15 +2353,16 @@ index 295769d039f2a1e4f48912a60f9dbe267d8992c1..57a224aa5a1008aa6bdbe268099974f9 @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); -@@ -162,6 +211,7 @@ public class Frog extends Animal implements VariantHolder { +@@ -163,7 +212,7 @@ public class Frog extends Animal implements VariantHolder { @Override protected void customServerAiStep() { this.level().getProfiler().push("frogBrain"); -+ // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish +- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish ++ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel)this.level(), this); this.level().getProfiler().pop(); this.level().getProfiler().push("frogActivityUpdate"); -@@ -347,7 +397,7 @@ public class Frog extends Animal implements VariantHolder { +@@ -349,7 +398,7 @@ public class Frog extends Animal implements VariantHolder { return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos); } @@ -2368,7 +2372,7 @@ index 295769d039f2a1e4f48912a60f9dbe267d8992c1..57a224aa5a1008aa6bdbe268099974f9 super(entity); } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..e46475c2d44923167da7c654cb8af6b6278c7149 100644 +index 6ed4ac06c76b8d0d6e8db778cade15dbd1e3e5f5..3103df74b7ae5a5ed841bf97794284cd43ad59de 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -45,13 +45,50 @@ public class Tadpole extends AbstractFish { @@ -2423,17 +2427,18 @@ index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..e46475c2d44923167da7c654cb8af6b6 @Override protected PathNavigation createNavigation(Level world) { return new WaterBoundPathNavigation(this, world); -@@ -80,7 +117,7 @@ public class Tadpole extends AbstractFish { +@@ -81,8 +118,7 @@ public class Tadpole extends AbstractFish { @Override protected void customServerAiStep() { this.level().getProfiler().push("tadpoleBrain"); +- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish - this.getBrain().tick((ServerLevel) this.level(), this); -+ // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish ++ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.level().getProfiler().pop(); this.level().getProfiler().push("tadpoleActivityUpdate"); TadpoleAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 111a244087e24f25ba8524a46a228da10cd9498a..e48ff5d0592f0d91974a49fd7ed1d0ee97172abe 100644 +index ff12ba2b79cb2e7e0bfd0e3b58ff6cb9e770092b..fef3b7d193d20c4fdd50b38c6a0371f05165a49d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -92,6 +92,23 @@ public class Goat extends Animal { @@ -2460,11 +2465,12 @@ index 111a244087e24f25ba8524a46a228da10cd9498a..e48ff5d0592f0d91974a49fd7ed1d0ee @Override protected Brain.Provider brainProvider() { return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES); -@@ -194,6 +211,7 @@ public class Goat extends Animal { +@@ -195,7 +212,7 @@ public class Goat extends Animal { @Override protected void customServerAiStep() { this.level().getProfiler().push("goatBrain"); -+ // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish +- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish ++ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); this.level().getProfiler().pop(); this.level().getProfiler().push("goatActivityUpdate"); @@ -2929,7 +2935,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..152111ff4c29e6cf13afeba8c9707f40 this.dragonFight.updateDragon(this); } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..f0fa5f69985dde27d0e7dd1ed2c96d31137be647 100644 +index 256598e058db1fd34d36390e45ab9903768343cb..e03a01940eb5a5d7a3924a5ad1214258ce0f4b46 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -84,16 +84,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -3078,7 +3084,7 @@ index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..f0fa5f69985dde27d0e7dd1ed2c96d31 this.targetSelector.addGoal(1, new HurtByTargetGoal(this, new Class[0])); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 0, false, false, WitherBoss.LIVING_ENTITY_SELECTOR)); } -@@ -256,6 +370,16 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -263,6 +377,16 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @Override protected void customServerAiStep() { @@ -3095,7 +3101,7 @@ index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..f0fa5f69985dde27d0e7dd1ed2c96d31 int i; if (this.getInvulnerableTicks() > 0) { -@@ -576,11 +700,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -583,11 +707,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob } public int getAlternativeTarget(int headIndex) { @@ -3440,7 +3446,7 @@ index efc1d49c5bfea7d1674b8a9de2c8b617657eda0f..37afe706c5c453003ea96e62f376f45d return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } 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 bd5996eef2d946e9d7765b6b315bc5951158810e..14c614dfdffd27756298b0105f0dbe139047e251 100644 +index 0d51f435f18f3f9d59a3241a0b7fa1c4af841b72..21e5102761876ceafce87fc824bf8392c354341a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -98,9 +98,27 @@ public class EnderMan extends Monster implements NeutralMob { @@ -3488,7 +3494,7 @@ index bd5996eef2d946e9d7765b6b315bc5951158810e..14c614dfdffd27756298b0105f0dbe13 float f = this.getLightLevelDependentMagicValue(); if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper -@@ -409,6 +428,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -415,6 +434,7 @@ public class EnderMan extends Monster implements NeutralMob { public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { return false; @@ -4831,7 +4837,7 @@ index 1afe8a8694c1fd0bf43ce3c0c36a83fda9aec141..252d2994fac423ea1fef36bdc7c09778 public void setPersistentAngerTarget(@Nullable UUID angryAt) { this.persistentAngerTarget = angryAt; diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 4257f2282152aee09533c9a2e53018d3e49effa4..e2ff79328877e417193849a81ae5342a5d0701e2 100644 +index e703320717ff620a19ff76d1c10066117c9895d5..d040198ce528293ed95adcdb17ddf0acbc5a93e0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -69,6 +69,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -4858,16 +4864,17 @@ index 4257f2282152aee09533c9a2e53018d3e49effa4..e2ff79328877e417193849a81ae5342a @Override public boolean canBeLeashed(Player player) { return !this.isLeashed(); -@@ -131,6 +148,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { +@@ -132,7 +149,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @Override protected void customServerAiStep() { this.level().getProfiler().push("hoglinBrain"); -+ // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish +- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish ++ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel)this.level(), this); this.level().getProfiler().pop(); HoglinAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..89d2a5b17b7f948fff041d8aec51424b54d3ea49 100644 +index cfdc1650783d6855e0d4f33ec68aab48dbee09f0..f57d7fee1ece00aba9bc7b07dda8398e7acc73c3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -96,6 +96,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -4894,11 +4901,12 @@ index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..89d2a5b17b7f948fff041d8aec51424b @Override public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); -@@ -303,6 +320,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -304,7 +321,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override protected void customServerAiStep() { this.level().getProfiler().push("piglinBrain"); -+ // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish +- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish ++ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); this.level().getProfiler().pop(); PiglinAi.updateActivity(this); @@ -4939,7 +4947,7 @@ index e1be4a77fae0b9120781f460079269b85c993930..2d842c0dfce1c7e7229bd42b2a92c024 this.level().getProfiler().pop(); PiglinBruteAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index 9f1b7c629644931074293151ed58a523ca6d488c..53035057b715401381b4f5438c82a61fe6012a7e 100644 +index 58a7e61e02b7d72326ed4d57ee514adb63b3873c..63e4688d8055cf4a8883477f7943bf63520c0693 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java @@ -123,8 +123,32 @@ public class Warden extends Monster implements VibrationSystem { @@ -4975,7 +4983,7 @@ index 9f1b7c629644931074293151ed58a523ca6d488c..53035057b715401381b4f5438c82a61f @Override public Packet getAddEntityPacket() { return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0); -@@ -396,19 +420,16 @@ public class Warden extends Monster implements VibrationSystem { +@@ -398,19 +422,16 @@ public class Warden extends Monster implements VibrationSystem { @Contract("null->false") public boolean canTargetEntity(@Nullable Entity entity) { @@ -4999,10 +5007,10 @@ index 9f1b7c629644931074293151ed58a523ca6d488c..53035057b715401381b4f5438c82a61f public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) { 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 11935e5b16324af572b07c5b173708f5a91f8289..42cfa847b29d8f265c7059bf4f93319ce938ee05 100644 +index 6b869c05bbdb13e23ecaa2c38e0cb05bda5a083d..4ae36a344143c5aed4266dfef2920ff3d83b1b48 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -155,6 +155,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -157,6 +157,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE)); } @@ -5031,21 +5039,22 @@ index 11935e5b16324af572b07c5b173708f5a91f8289..42cfa847b29d8f265c7059bf4f93319c @Override public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error -@@ -254,7 +276,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -257,11 +279,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler protected void customServerAiStep(final boolean inactive) { // Paper end this.level().getProfiler().push("villagerBrain"); -- if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper +- // Pufferfish start +- if (!inactive && this.behaviorTick++ % this.activatedPriority == 0) { + // Purpur start -+ // if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish -+ if (!inactive && (getRider() == null || !this.isControllable())) { // Purpur - only use brain if no rider -+ this.getBrain().tick((ServerLevel) this.level(), this); // Paper -+ } ++ if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider + this.getBrain().tick((ServerLevel) this.level(), this); // Paper + } +- // Pufferfish end + // Purpur end this.level().getProfiler().pop(); if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; -@@ -311,7 +338,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -318,7 +340,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) { if (this.isBaby()) { this.setUnhappy(); @@ -5054,7 +5063,7 @@ index 11935e5b16324af572b07c5b173708f5a91f8289..42cfa847b29d8f265c7059bf4f93319c } else { boolean flag = this.getOffers().isEmpty(); -@@ -324,8 +351,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -331,8 +353,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } if (flag) { @@ -5163,7 +5172,7 @@ index 78dd3365dc4d1265fc2102f740d75a384f5df5c5..4a2331c22a022881d66bcfd4134b0ffe public boolean isPickable() { return false; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 1727e932ac6b9ca09b5df96f9547ff125114e15a..f8ac77be62ee1220e0373ade55fdee1cb32750e9 100644 +index 17113544383fb4e6373d8f6151c536fecb00e0be..1c89cbf1a582604ed4be0849bd65dae5eb17f28a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch similarity index 99% rename from patches/server/0007-Configurable-entity-base-attributes.patch rename to patches/server/0009-Configurable-entity-base-attributes.patch index 3aa2dae309..aefc5e19be 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index eed3fa6b14b1e93f8d6571bba5675796e3418f49..dc685733cbbd83408437085602e7a7c18d109e29 100644 +index 7fc1887f68092da224a1ea1c56de474b471a8aee..90c3abe376a89179662022bed1ed390c89ec4279 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -157,7 +157,7 @@ import org.bukkit.plugin.PluginManager; @@ -34,10 +34,10 @@ index 75c278b67ad2b78766efd8f89c4c2ca7eb7cdcb2..dc99e7f0e6f173c1313c0d5e9ea5dd6b protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 629cfd889ebfbf79b06fc42d81d7e0839a927915..23a59cf45f89f3d4d9ac98aada26a9027c2485f0 100644 +index bab5a6c1bcff734620ccb015f071d73b70bbc901..0ec25e8bc94b8abb144b47d60e6cfa54c360156f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -287,6 +287,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.useItem = ItemStack.EMPTY; this.lastClimbablePos = Optional.empty(); this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur @@ -45,7 +45,7 @@ index 629cfd889ebfbf79b06fc42d81d7e0839a927915..23a59cf45f89f3d4d9ac98aada26a902 this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit // CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue()); -@@ -302,6 +303,8 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -301,6 +302,8 @@ public abstract class LivingEntity extends Entity implements Attackable { this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (Tag) dynamicopsnbt.emptyMap())))); } @@ -55,7 +55,7 @@ index 629cfd889ebfbf79b06fc42d81d7e0839a927915..23a59cf45f89f3d4d9ac98aada26a902 return this.brain; } diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 74b28d8a27b702896906603e7a39b91c79561ac5..6aec149f450e0559c613dcc272ba48634d0083c0 100644 +index 384fa039b11fb70c2d04df447b689aef3e808968..92777e7f6c6293c5b5689cfa5f992335629d05eb 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -268,6 +268,18 @@ public class Bat extends AmbientCreature { @@ -459,7 +459,7 @@ index 2efa2e19485f9d959a55115ab62f985454689379..eecdb1f1d49951cb8a294d176afd12c6 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 12fc57798dae50ffdd6118202309c872ab6b332d..287fa341c3ec5c3e63c6646b0f88485fcbbdbe51 100644 +index 877c1050e4c38943f6e8c3f81fa4f2884aba5b11..c7d9c34582b52d0bb088c624bd909ad5acb248fa 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -115,6 +115,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder= items.length) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8ad548fc059568d37675e017548b171d4dd1d555..7937023274acf3a1efdd21bbdd2f933f4399baeb 100644 +index 463af65182c0894a75a138df8100f3f616143f4c..a0eb18409f72afe393581e6dc8e2260b3a25197f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -177,4 +177,39 @@ public class PurpurConfig { diff --git a/patches/server/0009-Llama-API.patch b/patches/server/0011-Llama-API.patch similarity index 100% rename from patches/server/0009-Llama-API.patch rename to patches/server/0011-Llama-API.patch diff --git a/patches/server/0010-AFK-API.patch b/patches/server/0012-AFK-API.patch similarity index 97% rename from patches/server/0010-AFK-API.patch rename to patches/server/0012-AFK-API.patch index a2b380dcc3..24f8600aca 100644 --- a/patches/server/0010-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -78,7 +78,7 @@ index f709667d2efab5f7dac22bb6e4b0bf32917f71e4..387e2423d820e4df1d226ce6159a361d return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bec249a47f1fbcabd6a121399d19d71e21edccae..85d927e7970480f98ceeb7926e27413f893ec5a6 100644 +index 44b8b9dfc9182a6ce0d01b003749946e90e3aedb..57fb7dc5bb61f4433c6569c8d46656762dcc0cc1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -124,7 +124,7 @@ index bec249a47f1fbcabd6a121399d19d71e21edccae..85d927e7970480f98ceeb7926e27413f // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1494,7 +1516,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1495,7 +1517,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (!event.isAllowed()) { flag2 = true; // Paper - diff on change, this should be moved wrongly if (event.getLogWarning()) @@ -133,7 +133,7 @@ index bec249a47f1fbcabd6a121399d19d71e21edccae..85d927e7970480f98ceeb7926e27413f } // Paper end } -@@ -1556,6 +1578,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1557,6 +1579,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -177,7 +177,7 @@ index 2986c3b1c9dd7f3a00ed7f25b25bfc2b513b35eb..8d199ed2f0b2f50a57f9854cc1400548 private EntitySelector() {} // Paper start diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java -index c157309ac78e7af084d3acb6e8b2bcd469a39d5e..631b6f26c96e7de65c8ab5377f1b82c7f56df96c 100644 +index ac5e5676b194a2a99e5cf53eb89c1152cac963b8..872454743f6dedc27519a13566559195c47cc9f8 100644 --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java @@ -64,6 +64,10 @@ public class TargetingConditions { @@ -317,10 +317,10 @@ index e248395ad5f5f012aeefecf367d54f90cade0996..70f53ccb22de2c05c9ead68f8bd29d0b public boolean untamedTamablesAreRidable = true; public boolean useNightVisionWhenRiding = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 59103744ac6beeb12719fdefcda54eeff498229e..30050800118a474dfd0a23cb66fd55de4c65ca1e 100644 +index c0333ba8e57cd284bb8ab15181da6b39d55872f9..282a57df4e2e5708e9cfd9c76b1d7de2a8a23900 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -199,6 +199,7 @@ public class ActivationRange +@@ -203,6 +203,7 @@ public class ActivationRange continue; } diff --git a/patches/server/0011-Bring-back-server-name.patch b/patches/server/0013-Bring-back-server-name.patch similarity index 91% rename from patches/server/0011-Bring-back-server-name.patch rename to patches/server/0013-Bring-back-server-name.patch index b147679cb2..c5b93a6cb3 100644 --- a/patches/server/0011-Bring-back-server-name.patch +++ b/patches/server/0013-Bring-back-server-name.patch @@ -17,10 +17,10 @@ index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed public final boolean spawnNpcs = this.get("spawn-npcs", true); public final boolean pvp = this.get("pvp", true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 29f28a197d39b58c6eb3eac14b788dafb7768d91..519a42c881c05db60f7e9efd22f1692ccf7359d3 100644 +index eb6b2727d43ca991ef99a88413de95c1546b7696..95ecdbc0d06d4ca7afb1be62d25a09cda33a236b 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3244,4 +3244,11 @@ public final class CraftServer implements Server { +@@ -3249,4 +3249,11 @@ public final class CraftServer implements Server { } // Paper end diff --git a/patches/server/0012-Configurable-server-mod-name.patch b/patches/server/0014-Configurable-server-mod-name.patch similarity index 74% rename from patches/server/0012-Configurable-server-mod-name.patch rename to patches/server/0014-Configurable-server-mod-name.patch index 699e110d88..c6cba83793 100644 --- a/patches/server/0012-Configurable-server-mod-name.patch +++ b/patches/server/0014-Configurable-server-mod-name.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 81e4b7254e1c3cb714a9c37d941ff1b5d9e758ed..6339131c21398928e771a3172603da3a9c02561b 100644 +index 2dd32f61efa12689b08a54f30deac397ec49cef4..c19d456168d36c1c2ea7823f47b25644798a97c7 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1867,7 +1867,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! -+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! +- return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! ++ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! } public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 3fba9f640ef03219c89a2a405e4d5a5870e366bf..bb7acf61cf2928181d014a17166d4d1414218e01 100644 +index 7312ae7323032a0ba3c47aa7bdfe5dffe9674535..881c5654f181ea9b66e1cdf3bc3bf46869e8557f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -188,6 +188,11 @@ public class PurpurConfig { diff --git a/patches/server/0013-LivingEntity-safeFallDistance.patch b/patches/server/0015-LivingEntity-safeFallDistance.patch similarity index 92% rename from patches/server/0013-LivingEntity-safeFallDistance.patch rename to patches/server/0015-LivingEntity-safeFallDistance.patch index 4c56e241d4..808fa632e6 100644 --- a/patches/server/0013-LivingEntity-safeFallDistance.patch +++ b/patches/server/0015-LivingEntity-safeFallDistance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity safeFallDistance diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039c8f0750a 100644 +index 0ec25e8bc94b8abb144b47d60e6cfa54c360156f..0dceaee37d67d64f73d0434f480934aab320b0e6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -253,6 +253,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -252,6 +252,7 @@ public abstract class LivingEntity extends Entity implements Attackable { protected boolean skipDropExperience; // CraftBukkit start public int expToDrop; @@ -16,7 +16,7 @@ index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039 public boolean forceDrops; public ArrayList drops = new ArrayList<>(); // Paper public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes; -@@ -353,7 +354,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -352,7 +353,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.tryAddSoulSpeed(); } @@ -25,7 +25,7 @@ index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039 double d1 = this.getX(); double d2 = this.getY(); double d3 = this.getZ(); -@@ -368,7 +369,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -367,7 +368,7 @@ public abstract class LivingEntity extends Entity implements Attackable { d3 = (double) landedPosition.getZ() + 0.5D + d5 / d6 * 0.5D; } @@ -34,7 +34,7 @@ index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039 double d7 = Math.min((double) (0.2F + f / 15.0F), 2.5D); int i = (int) (150.0D * d7); -@@ -2068,7 +2069,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2094,7 +2095,7 @@ public abstract class LivingEntity extends Entity implements Attackable { MobEffectInstance mobeffect = this.getEffect(MobEffects.JUMP); float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1); diff --git a/patches/server/0014-Lagging-threshold.patch b/patches/server/0016-Lagging-threshold.patch similarity index 89% rename from patches/server/0014-Lagging-threshold.patch rename to patches/server/0016-Lagging-threshold.patch index 566fa0db31..6becde6287 100644 --- a/patches/server/0014-Lagging-threshold.patch +++ b/patches/server/0016-Lagging-threshold.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lagging threshold diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6339131c21398928e771a3172603da3a9c02561b..c442cf9a6856715ab7c404eb8e287bd67e20ae06 100644 +index c19d456168d36c1c2ea7823f47b25644798a97c7..9c176d77420ffe0acdb57b333602c5e2102660a6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -307,6 +307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements FeatureElement, EntityTypeT +@@ -320,6 +320,16 @@ public class EntityType implements FeatureElement, EntityTypeT return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType) type.build(id)); // CraftBukkit - decompile error } @@ -25,7 +25,7 @@ index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..b04f03d422a9ed4c6bf090e895a2d9a7 public static ResourceLocation getKey(EntityType type) { return BuiltInRegistries.ENTITY_TYPE.getKey(type); } -@@ -533,6 +543,16 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -535,6 +545,16 @@ public class EntityType implements FeatureElement, EntityTypeT return this.category; } diff --git a/patches/server/0016-Anvil-API.patch b/patches/server/0018-Anvil-API.patch similarity index 100% rename from patches/server/0016-Anvil-API.patch rename to patches/server/0018-Anvil-API.patch diff --git a/patches/server/0017-Alternative-Keepalive-Handling.patch b/patches/server/0019-Alternative-Keepalive-Handling.patch similarity index 100% rename from patches/server/0017-Alternative-Keepalive-Handling.patch rename to patches/server/0019-Alternative-Keepalive-Handling.patch diff --git a/patches/server/0018-Silk-touch-spawners.patch b/patches/server/0020-Silk-touch-spawners.patch similarity index 100% rename from patches/server/0018-Silk-touch-spawners.patch rename to patches/server/0020-Silk-touch-spawners.patch diff --git a/patches/server/0019-Add-turtle-egg-block-options.patch b/patches/server/0021-Add-turtle-egg-block-options.patch similarity index 100% rename from patches/server/0019-Add-turtle-egg-block-options.patch rename to patches/server/0021-Add-turtle-egg-block-options.patch diff --git a/patches/server/0020-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch similarity index 98% rename from patches/server/0020-Logger-settings-suppressing-pointless-logs.patch rename to patches/server/0022-Logger-settings-suppressing-pointless-logs.patch index 810a3a38a3..c74a616ec3 100644 --- a/patches/server/0020-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch @@ -53,7 +53,7 @@ index 2677e21d8239bf0361a3bc5c9a50c328e54d70f6..544a79d5da661aff19e2019f7b83a3a4 if (MinecraftServer.getServer() != null && MinecraftServer.getServer().isDebugging()) { new Exception().printStackTrace(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ad239ba9259c5a63b40261ebc44224893496b47d..308d7556f5b12c0aa5b2fde5a23ef6fbacb303de 100644 +index a14cf3a5dc2ba265de5e400404afcbd9faa3f25a..a14879f4266c71b7493c05e105114590c6709045 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -237,4 +237,15 @@ public class PurpurConfig { diff --git a/patches/server/0021-Disable-outdated-build-check.patch b/patches/server/0023-Disable-outdated-build-check.patch similarity index 92% rename from patches/server/0021-Disable-outdated-build-check.patch rename to patches/server/0023-Disable-outdated-build-check.patch index 18c82283b4..e2fc69e4ca 100644 --- a/patches/server/0021-Disable-outdated-build-check.patch +++ b/patches/server/0023-Disable-outdated-build-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable outdated build check diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index fa38d6dd3a7439de3b2503a90637eabb3e6dd8ec..f93c8a4ca38e7d892b6941d3669445789c2fc227 100644 +index 4f81321727b754c0e101bb05bc6474203412e89e..cce747b8a2d87d81429dfaf1e0073b1ea4b1a5d2 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -301,7 +301,7 @@ public class Main { diff --git a/patches/server/0022-Giants-AI-settings.patch b/patches/server/0024-Giants-AI-settings.patch similarity index 100% rename from patches/server/0022-Giants-AI-settings.patch rename to patches/server/0024-Giants-AI-settings.patch diff --git a/patches/server/0023-Zombie-horse-naturally-spawn.patch b/patches/server/0025-Zombie-horse-naturally-spawn.patch similarity index 95% rename from patches/server/0023-Zombie-horse-naturally-spawn.patch rename to patches/server/0025-Zombie-horse-naturally-spawn.patch index e84f9f7345..7bad0655a0 100644 --- a/patches/server/0023-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0025-Zombie-horse-naturally-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 35cc427755cccb123a866220bd2a72cdbd723465..231d4065b1129815d443e76269eefba45857b59a 100644 +index 53131fc1fc02df8f60f0a44dd8c3a5a53e24fddb..7126dacffb7302927a6ca88ce3bfdec975ee342f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1001,10 +1001,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1017,10 +1017,18 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper if (flag1) { diff --git a/patches/server/0024-Charged-creeper-naturally-spawn.patch b/patches/server/0026-Charged-creeper-naturally-spawn.patch similarity index 96% rename from patches/server/0024-Charged-creeper-naturally-spawn.patch rename to patches/server/0026-Charged-creeper-naturally-spawn.patch index 17b39e0148..8442e2226d 100644 --- a/patches/server/0024-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0026-Charged-creeper-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index e31094f270117dec3053620c06e409953fb6d710..a1e3f29ce49dc41ad70f74ee224250fe9ebea175 100644 +index 33ba948bafc879f6e9cd28f7fe6bce85628cc463..7770880c9525805b67199f3c6b54618af15d106f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -255,6 +255,14 @@ public class Creeper extends Monster implements PowerableMob { diff --git a/patches/server/0025-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0027-Rabbit-naturally-spawn-toast-and-killer.patch similarity index 100% rename from patches/server/0025-Rabbit-naturally-spawn-toast-and-killer.patch rename to patches/server/0027-Rabbit-naturally-spawn-toast-and-killer.patch diff --git a/patches/server/0026-Fix-outdated-server-showing-in-ping-before-server-fu.patch b/patches/server/0028-Fix-outdated-server-showing-in-ping-before-server-fu.patch similarity index 100% rename from patches/server/0026-Fix-outdated-server-showing-in-ping-before-server-fu.patch rename to patches/server/0028-Fix-outdated-server-showing-in-ping-before-server-fu.patch diff --git a/patches/server/0027-Tulips-change-fox-type.patch b/patches/server/0029-Tulips-change-fox-type.patch similarity index 100% rename from patches/server/0027-Tulips-change-fox-type.patch rename to patches/server/0029-Tulips-change-fox-type.patch diff --git a/patches/server/0028-Breedable-Polar-Bears.patch b/patches/server/0030-Breedable-Polar-Bears.patch similarity index 100% rename from patches/server/0028-Breedable-Polar-Bears.patch rename to patches/server/0030-Breedable-Polar-Bears.patch diff --git a/patches/server/0029-Chickens-can-retaliate.patch b/patches/server/0031-Chickens-can-retaliate.patch similarity index 100% rename from patches/server/0029-Chickens-can-retaliate.patch rename to patches/server/0031-Chickens-can-retaliate.patch diff --git a/patches/server/0030-Add-option-to-set-armorstand-step-height.patch b/patches/server/0032-Add-option-to-set-armorstand-step-height.patch similarity index 96% rename from patches/server/0030-Add-option-to-set-armorstand-step-height.patch rename to patches/server/0032-Add-option-to-set-armorstand-step-height.patch index 811dd9eab4..2bb7ff6f8d 100644 --- a/patches/server/0030-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0032-Add-option-to-set-armorstand-step-height.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to set armorstand step height diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4e21ff640261d95f7db1134793fb5e2e91015fd6..e664ca676c21b1c7fdc9df00797060053901e1f7 100644 +index 90c3abe376a89179662022bed1ed390c89ec4279..5cc0caee5ba7d63fb1ec4144623ec9a94401c86c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -335,7 +335,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0031-Cat-spawning-options.patch b/patches/server/0033-Cat-spawning-options.patch similarity index 100% rename from patches/server/0031-Cat-spawning-options.patch rename to patches/server/0033-Cat-spawning-options.patch diff --git a/patches/server/0032-Cows-eat-mushrooms.patch b/patches/server/0034-Cows-eat-mushrooms.patch similarity index 100% rename from patches/server/0032-Cows-eat-mushrooms.patch rename to patches/server/0034-Cows-eat-mushrooms.patch diff --git a/patches/server/0033-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0035-Fix-cow-rotation-when-shearing-mooshroom.patch similarity index 100% rename from patches/server/0033-Fix-cow-rotation-when-shearing-mooshroom.patch rename to patches/server/0035-Fix-cow-rotation-when-shearing-mooshroom.patch diff --git a/patches/server/0034-Pigs-give-saddle-back.patch b/patches/server/0036-Pigs-give-saddle-back.patch similarity index 100% rename from patches/server/0034-Pigs-give-saddle-back.patch rename to patches/server/0036-Pigs-give-saddle-back.patch diff --git a/patches/server/0035-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch similarity index 100% rename from patches/server/0035-Snowman-drop-and-put-back-pumpkin.patch rename to patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch diff --git a/patches/server/0036-Ender-dragon-always-drop-full-exp.patch b/patches/server/0038-Ender-dragon-always-drop-full-exp.patch similarity index 100% rename from patches/server/0036-Ender-dragon-always-drop-full-exp.patch rename to patches/server/0038-Ender-dragon-always-drop-full-exp.patch diff --git a/patches/server/0037-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0039-Allow-soil-to-moisten-from-water-directly-under-it.patch similarity index 100% rename from patches/server/0037-Allow-soil-to-moisten-from-water-directly-under-it.patch rename to patches/server/0039-Allow-soil-to-moisten-from-water-directly-under-it.patch diff --git a/patches/server/0038-Minecart-settings-and-WASD-controls.patch b/patches/server/0040-Minecart-settings-and-WASD-controls.patch similarity index 99% rename from patches/server/0038-Minecart-settings-and-WASD-controls.patch rename to patches/server/0040-Minecart-settings-and-WASD-controls.patch index ff29305452..cccdbf9517 100644 --- a/patches/server/0038-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0040-Minecart-settings-and-WASD-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f9db41f311ad564380587bb2a0b69129e93ef87c..cf38a82b53d98aae4938fededcdad7d9110f3c40 100644 +index 387e2423d820e4df1d226ce6159a361d6a808fd9..e2e25a4ac86156f0915a0b9886a6f62b2812920b 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1111,6 +1111,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0039-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0041-Disable-loot-drops-on-death-by-cramming.patch similarity index 91% rename from patches/server/0039-Disable-loot-drops-on-death-by-cramming.patch rename to patches/server/0041-Disable-loot-drops-on-death-by-cramming.patch index 9de211d4e4..cb6cab43cc 100644 --- a/patches/server/0039-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0041-Disable-loot-drops-on-death-by-cramming.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a8d09f76361cc3146aaeba72b7338049b30eb2cb..ade6fcdf6f6fd80bc91ffc313226a41ba0c4e18d 100644 +index 0dceaee37d67d64f73d0434f480934aab320b0e6..4d0332666d705610d3e48c96462ef655f2fd2ed5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1828,6 +1828,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1840,6 +1840,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.dropEquipment(); // CraftBukkit - from below if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { @@ -16,7 +16,7 @@ index a8d09f76361cc3146aaeba72b7338049b30eb2cb..ade6fcdf6f6fd80bc91ffc313226a41b this.dropFromLootTable(source, flag); // Paper start final boolean prev = this.clearEquipmentSlots; -@@ -1836,6 +1837,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1848,6 +1849,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // Paper end this.dropCustomDeathLoot(source, i, flag); this.clearEquipmentSlots = prev; // Paper diff --git a/patches/server/0040-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0042-Option-to-toggle-milk-curing-bad-omen.patch similarity index 100% rename from patches/server/0040-Option-to-toggle-milk-curing-bad-omen.patch rename to patches/server/0042-Option-to-toggle-milk-curing-bad-omen.patch diff --git a/patches/server/0041-End-gateway-should-check-if-entity-can-use-portal.patch b/patches/server/0043-End-gateway-should-check-if-entity-can-use-portal.patch similarity index 91% rename from patches/server/0041-End-gateway-should-check-if-entity-can-use-portal.patch rename to patches/server/0043-End-gateway-should-check-if-entity-can-use-portal.patch index bfc7326f31..7d51111f6e 100644 --- a/patches/server/0041-End-gateway-should-check-if-entity-can-use-portal.patch +++ b/patches/server/0043-End-gateway-should-check-if-entity-can-use-portal.patch @@ -5,7 +5,7 @@ Subject: [PATCH] End gateway should check if entity can use portal diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index 1ec80f9c901dff1c9f29befa5a8e3c3f6f37aaf7..9717b37aef9f487502e696c209ae209ab3b8f000 100644 +index 7491e075baebc7d412d35593bb844b200e304447..2e264b8b13df9da9163a80b3dd4345af3cff431c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java @@ -177,6 +177,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { diff --git a/patches/server/0042-Skip-events-if-there-s-no-listeners.patch b/patches/server/0044-Skip-events-if-there-s-no-listeners.patch similarity index 100% rename from patches/server/0042-Skip-events-if-there-s-no-listeners.patch rename to patches/server/0044-Skip-events-if-there-s-no-listeners.patch diff --git a/patches/server/0043-Add-permission-for-F3-N-debug.patch b/patches/server/0045-Add-permission-for-F3-N-debug.patch similarity index 100% rename from patches/server/0043-Add-permission-for-F3-N-debug.patch rename to patches/server/0045-Add-permission-for-F3-N-debug.patch diff --git a/patches/server/0044-Configurable-TPS-Catchup.patch b/patches/server/0046-Configurable-TPS-Catchup.patch similarity index 88% rename from patches/server/0044-Configurable-TPS-Catchup.patch rename to patches/server/0046-Configurable-TPS-Catchup.patch index f2f87875a5..bc442083be 100644 --- a/patches/server/0044-Configurable-TPS-Catchup.patch +++ b/patches/server/0046-Configurable-TPS-Catchup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c442cf9a6856715ab7c404eb8e287bd67e20ae06..0d4d62757e7b15767ec62f59e287ab3a94be8c03 100644 +index 9c176d77420ffe0acdb57b333602c5e2102660a6..9b757a89bc00deef41bd9adc614bbeff30975034 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1218,7 +1218,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return Component.Serializer.toJson(Component.literal(s)); -@@ -1251,10 +1254,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1252,10 +1255,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -44,7 +44,7 @@ index 34a369dd615c4701d1bfb66a51623eab8e0b3080..2d29caa16c754b06cbfe91038b673668 Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1264,11 +1270,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1265,11 +1271,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl for (int j = list.size(); i < j; ++i) { FilteredText filteredtext = (FilteredText) list.get(i); @@ -58,7 +58,7 @@ index 34a369dd615c4701d1bfb66a51623eab8e0b3080..2d29caa16c754b06cbfe91038b673668 } } -@@ -1281,6 +1287,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1282,6 +1288,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } diff --git a/patches/server/0070-Entity-lifespan.patch b/patches/server/0072-Entity-lifespan.patch similarity index 89% rename from patches/server/0070-Entity-lifespan.patch rename to patches/server/0072-Entity-lifespan.patch index 096a3e99c3..bfc4acf231 100644 --- a/patches/server/0070-Entity-lifespan.patch +++ b/patches/server/0072-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 22e0370498dac0f56e29ae483097bf453a277450..224e0453fc51224e8a4937a1d089053e54b6f9e0 100644 +index 166943d26c1123d07080cb1d0e0f081cfff06246..18c614881388610fb78bd5101c54ffbb3c753e55 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2741,6 +2741,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2742,6 +2742,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { @@ -17,7 +17,7 @@ index 22e0370498dac0f56e29ae483097bf453a277450..224e0453fc51224e8a4937a1d089053e private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b997397cc 100644 +index a05a7cf2c28b62011a3477c5155a05a93ecab548..906f3ed7883cd220734a92a5f032ec89674f5b97 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -136,6 +136,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @@ -28,7 +28,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b public boolean aware = true; // CraftBukkit protected Mob(EntityType type, Level world) { -@@ -323,6 +324,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -325,6 +326,7 @@ public abstract class Mob extends LivingEntity implements Targeting { entityliving = null; } } @@ -36,7 +36,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b this.target = entityliving; return true; // CraftBukkit end -@@ -370,8 +372,28 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -372,8 +374,28 @@ public abstract class Mob extends LivingEntity implements Targeting { } this.level().getProfiler().pop(); @@ -65,7 +65,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b @Override protected void playHurtSound(DamageSource source) { this.resetAmbientSoundTime(); -@@ -561,6 +583,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -563,6 +585,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit @@ -73,7 +73,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b } @Override -@@ -631,6 +654,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -633,6 +656,11 @@ public abstract class Mob extends LivingEntity implements Targeting { this.aware = nbt.getBoolean("Bukkit.Aware"); } // CraftBukkit end @@ -85,7 +85,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b } @Override -@@ -1703,6 +1731,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1709,6 +1737,7 @@ public abstract class Mob extends LivingEntity implements Targeting { this.setLastHurtMob(target); } diff --git a/patches/server/0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0073-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch similarity index 96% rename from patches/server/0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch rename to patches/server/0073-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 4aedb8e9be..260e98fd42 100644 --- a/patches/server/0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0073-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -36,10 +36,10 @@ index e2e25a4ac86156f0915a0b9886a6f62b2812920b..47cc6799f0d48debe4b63280a6814ead + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 83e74527b730a644a69f582b218dbc8d4f35ee61..1ba0b1975135eb29d59f1153e9f5c5019e488bd8 100644 +index 57ffb039cf27117ec1ec1c822f9693a8ef03f6b7..f3d882c889fc6eab2ced0efd0f17404ca6905a5d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -427,6 +427,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -426,6 +426,7 @@ public abstract class LivingEntity extends Entity implements Attackable { double d1 = this.level().getWorldBorder().getDamagePerBlock(); if (d1 > 0.0D) { diff --git a/patches/server/0072-Squid-EAR-immunity.patch b/patches/server/0074-Squid-EAR-immunity.patch similarity index 94% rename from patches/server/0072-Squid-EAR-immunity.patch rename to patches/server/0074-Squid-EAR-immunity.patch index e308ba494c..6b08525111 100644 --- a/patches/server/0072-Squid-EAR-immunity.patch +++ b/patches/server/0074-Squid-EAR-immunity.patch @@ -25,7 +25,7 @@ index 3d7726bd54781e922f9d2b5b1fea510d6295919e..3557d668d5117aaaef2fde0792b58c7e public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 30050800118a474dfd0a23cb66fd55de4c65ca1e..3fb2ae23bcbf0c397e91a958796f13a2dfedd152 100644 +index 282a57df4e2e5708e9cfd9c76b1d7de2a8a23900..a7ecbd77d0017a298b94cceeddc049eff713f60f 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; @@ -36,7 +36,7 @@ index 30050800118a474dfd0a23cb66fd55de4c65ca1e..3fb2ae23bcbf0c397e91a958796f13a2 import net.minecraft.world.entity.animal.WaterAnimal; import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.boss.EnderDragonPart; -@@ -379,6 +380,7 @@ public class ActivationRange +@@ -402,6 +403,7 @@ public class ActivationRange */ public static boolean checkIfActive(Entity entity) { diff --git a/patches/server/0073-Phantoms-burn-in-light.patch b/patches/server/0075-Phantoms-burn-in-light.patch similarity index 100% rename from patches/server/0073-Phantoms-burn-in-light.patch rename to patches/server/0075-Phantoms-burn-in-light.patch diff --git a/patches/server/0074-Configurable-villager-breeding.patch b/patches/server/0076-Configurable-villager-breeding.patch similarity index 93% rename from patches/server/0074-Configurable-villager-breeding.patch rename to patches/server/0076-Configurable-villager-breeding.patch index db9640681e..adbfde3fc9 100644 --- a/patches/server/0074-Configurable-villager-breeding.patch +++ b/patches/server/0076-Configurable-villager-breeding.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding 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 0df7acbdf1c8d0546eb57291bfa952943a5f6520..ee8661840ddfbdf4a4726f96da61253a96878dfc 100644 +index f4ed6ae7e8f122a0a2ce7f4488b0fe1ed0c7da3d..ce450d4b0d42443a47861dcb54b78a01ede734d1 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -784,7 +784,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -786,7 +786,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public boolean canBreed() { diff --git a/patches/server/0075-Redstone-deactivates-spawners.patch b/patches/server/0077-Redstone-deactivates-spawners.patch similarity index 100% rename from patches/server/0075-Redstone-deactivates-spawners.patch rename to patches/server/0077-Redstone-deactivates-spawners.patch diff --git a/patches/server/0076-Totems-work-in-inventory.patch b/patches/server/0078-Totems-work-in-inventory.patch similarity index 94% rename from patches/server/0076-Totems-work-in-inventory.patch rename to patches/server/0078-Totems-work-in-inventory.patch index 5bb581d077..f87153669a 100644 --- a/patches/server/0076-Totems-work-in-inventory.patch +++ b/patches/server/0078-Totems-work-in-inventory.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8148c9596a17396d37b820cac40f50c2073a0c00..d512d16abc1dff33e9b430d9ba5b960f1460f9ab 100644 +index f3d882c889fc6eab2ced0efd0f17404ca6905a5d..1ff77c524464a256913b063bf621b850255885ba 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1618,6 +1618,18 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1630,6 +1630,18 @@ public abstract class LivingEntity extends Entity implements Attackable { } } diff --git a/patches/server/0077-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0079-Add-vindicator-johnny-spawn-chance.patch similarity index 100% rename from patches/server/0077-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0079-Add-vindicator-johnny-spawn-chance.patch diff --git a/patches/server/0078-Dispensers-place-anvils-option.patch b/patches/server/0080-Dispensers-place-anvils-option.patch similarity index 100% rename from patches/server/0078-Dispensers-place-anvils-option.patch rename to patches/server/0080-Dispensers-place-anvils-option.patch diff --git a/patches/server/0079-Allow-anvil-colors.patch b/patches/server/0081-Allow-anvil-colors.patch similarity index 100% rename from patches/server/0079-Allow-anvil-colors.patch rename to patches/server/0081-Allow-anvil-colors.patch diff --git a/patches/server/0080-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0082-Add-option-to-disable-dolphin-treasure-searching.patch similarity index 100% rename from patches/server/0080-Add-option-to-disable-dolphin-treasure-searching.patch rename to patches/server/0082-Add-option-to-disable-dolphin-treasure-searching.patch diff --git a/patches/server/0081-Short-enderman-height.patch b/patches/server/0083-Short-enderman-height.patch similarity index 87% rename from patches/server/0081-Short-enderman-height.patch rename to patches/server/0083-Short-enderman-height.patch index b9b018f25e..3359afa181 100644 --- a/patches/server/0081-Short-enderman-height.patch +++ b/patches/server/0083-Short-enderman-height.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Short enderman height diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index b04f03d422a9ed4c6bf090e895a2d9a74f48ea61..ef01a87a77954f19f017129ab186afea9e6389a2 100644 +index 44aa32b49fa32fbaf86625c0eed7c2e01d8f212c..e5aa1bac908f947f2ed70a05194bf30b4cb55115 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -311,7 +311,8 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -313,7 +313,8 @@ public class EntityType implements FeatureElement, EntityTypeT private Component description; @Nullable private ResourceLocation lootTable; @@ -19,10 +19,10 @@ index b04f03d422a9ed4c6bf090e895a2d9a74f48ea61..ef01a87a77954f19f017129ab186afea private static EntityType register(String id, EntityType.Builder type) { // CraftBukkit - decompile error 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 4530193e6b5d67cc6a1783b6ea537764bb5725cd..6f7f4dd703a6a2cf2d90102b23538bb2104fb464 100644 +index 2af9b2334a4baa15620b06ffddfbc60833bd4187..760a26722144da3f547802975484b01c377afe17 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -434,6 +434,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -440,6 +440,7 @@ public class EnderMan extends Monster implements NeutralMob { if (this.isInvulnerableTo(source)) { return false; } else if (getRider() != null && this.isControllable()) { return super.hurt(source, amount); // Purpur - no teleporting on damage @@ -31,7 +31,7 @@ index 4530193e6b5d67cc6a1783b6ea537764bb5725cd..6f7f4dd703a6a2cf2d90102b23538bb2 boolean flag = source.getDirectEntity() instanceof ThrownPotion; boolean flag1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 387da71594b75a43100790e8e8d69d9246598537..e813c87f4cc90fd31a4a48fcfffbe2b4407e5f5d 100644 +index de202a20cdc133d68fb44c56ee017cca153e1cf8..98cadc2f78cc259e3e81958bdc89ef81b8b6b1c3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -244,6 +244,12 @@ public class PurpurConfig { diff --git a/patches/server/0082-Stop-squids-floating-on-top-of-water.patch b/patches/server/0084-Stop-squids-floating-on-top-of-water.patch similarity index 92% rename from patches/server/0082-Stop-squids-floating-on-top-of-water.patch rename to patches/server/0084-Stop-squids-floating-on-top-of-water.patch index 8338b1296b..fba12436a7 100644 --- a/patches/server/0082-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0084-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bc59457a526232f7b962d3fb575d0678524eba0a..8f8a17180f8010a62af9b59faf035ec10bd8967a 100644 +index c1d82f042da0628450cbbf4b45f6db7552ba268a..38bed7071513e9449d970ecfb628bd1ba37cd45f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4431,6 +4431,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -4443,6 +4443,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.yRotO = this.getYRot(); } @@ -19,7 +19,7 @@ index bc59457a526232f7b962d3fb575d0678524eba0a..8f8a17180f8010a62af9b59faf035ec1 + // Purpur end + public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { - if (this.touchingUnloadedChunk()) { + if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip return false; diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java index 913b66be2111da862e706d4978825c64cfe8b00b..f68c18b6645981126329b58379946308bbb8ccf8 100644 diff --git a/patches/server/0083-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0085-Crying-obsidian-valid-for-portal-frames.patch similarity index 96% rename from patches/server/0083-Crying-obsidian-valid-for-portal-frames.patch rename to patches/server/0085-Crying-obsidian-valid-for-portal-frames.patch index 0263d28aea..2b58bd680d 100644 --- a/patches/server/0083-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0085-Crying-obsidian-valid-for-portal-frames.patch @@ -18,7 +18,7 @@ index 590cd053a1b1c2a489772a2879998725fe0d783c..ba3f79cc1f7e672f0a9d32d262122ec6 private static final float SAFE_TRAVEL_MAX_ENTITY_XY = 4.0F; private static final double SAFE_TRAVEL_MAX_VERTICAL_DELTA = 1.0D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index e813c87f4cc90fd31a4a48fcfffbe2b4407e5f5d..6470f383b6f044877f0a4d8c91119d0eae451b8f 100644 +index 98cadc2f78cc259e3e81958bdc89ef81b8b6b1c3..0f67955a289d904ea72f7c24d097f2f1c5a4a8f2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -212,6 +212,7 @@ public class PurpurConfig { diff --git a/patches/server/0084-Entities-can-use-portals-configuration.patch b/patches/server/0086-Entities-can-use-portals-configuration.patch similarity index 93% rename from patches/server/0084-Entities-can-use-portals-configuration.patch rename to patches/server/0086-Entities-can-use-portals-configuration.patch index 550c923595..4b1d40c040 100644 --- a/patches/server/0084-Entities-can-use-portals-configuration.patch +++ b/patches/server/0086-Entities-can-use-portals-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8f8a17180f8010a62af9b59faf035ec10bd8967a..77ada6859c6fcc6929be5da350ac0f483dd1ae00 100644 +index 38bed7071513e9449d970ecfb628bd1ba37cd45f..6651c11dfa81d4289637555f24c91f5f03a8c750 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3137,7 +3137,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3149,7 +3149,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S public void handleInsidePortal(BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index 8f8a17180f8010a62af9b59faf035ec10bd8967a..77ada6859c6fcc6929be5da350ac0f48 if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3846,7 +3846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3858,7 +3858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean canChangeDimensions() { diff --git a/patches/server/0085-LivingEntity-broadcastItemBreak.patch b/patches/server/0087-LivingEntity-broadcastItemBreak.patch similarity index 100% rename from patches/server/0085-LivingEntity-broadcastItemBreak.patch rename to patches/server/0087-LivingEntity-broadcastItemBreak.patch diff --git a/patches/server/0086-Customizable-wither-health-and-healing.patch b/patches/server/0088-Customizable-wither-health-and-healing.patch similarity index 94% rename from patches/server/0086-Customizable-wither-health-and-healing.patch rename to patches/server/0088-Customizable-wither-health-and-healing.patch index f1c6b72540..4f63bad7b7 100644 --- a/patches/server/0086-Customizable-wither-health-and-healing.patch +++ b/patches/server/0088-Customizable-wither-health-and-healing.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 8dc320e1b5bdb042d87d4d0f6380ca19bf50a1f3..61abb5ac7de7a71d7d652b134e3b75551a14961d 100644 +index 8ae399d7e0ff706b0486f198b16dadfe8b5ca32a..84bd2cf1797f68eadbd0a21f2cfb6ce85710d928 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -518,8 +518,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -525,8 +525,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob } } diff --git a/patches/server/0087-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch similarity index 98% rename from patches/server/0087-Allow-toggling-special-MobSpawners-per-world.patch rename to patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch index 43620fb3ba..44352f0495 100644 --- a/patches/server/0087-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0089-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 231d4065b1129815d443e76269eefba45857b59a..361037daa20a2b262b68d9b717ee35dbc8a5c41b 100644 +index 7126dacffb7302927a6ca88ce3bfdec975ee342f..dfec321501523e1d953811961d1b5495cb41d815 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -709,7 +709,24 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0088-Raid-cooldown-setting.patch b/patches/server/0090-Raid-cooldown-setting.patch similarity index 100% rename from patches/server/0088-Raid-cooldown-setting.patch rename to patches/server/0090-Raid-cooldown-setting.patch diff --git a/patches/server/0089-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0091-Despawn-rate-config-options-per-projectile-type.patch similarity index 100% rename from patches/server/0089-Despawn-rate-config-options-per-projectile-type.patch rename to patches/server/0091-Despawn-rate-config-options-per-projectile-type.patch diff --git a/patches/server/0090-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0092-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 100% rename from patches/server/0090-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/server/0092-Add-option-to-disable-zombie-aggressiveness-towards-.patch diff --git a/patches/server/0091-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/server/0093-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 100% rename from patches/server/0091-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/server/0093-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch diff --git a/patches/server/0092-Flying-squids-Oh-my.patch b/patches/server/0094-Flying-squids-Oh-my.patch similarity index 100% rename from patches/server/0092-Flying-squids-Oh-my.patch rename to patches/server/0094-Flying-squids-Oh-my.patch diff --git a/patches/server/0093-Infinity-bow-settings.patch b/patches/server/0095-Infinity-bow-settings.patch similarity index 100% rename from patches/server/0093-Infinity-bow-settings.patch rename to patches/server/0095-Infinity-bow-settings.patch diff --git a/patches/server/0094-Configurable-daylight-cycle.patch b/patches/server/0096-Configurable-daylight-cycle.patch similarity index 93% rename from patches/server/0094-Configurable-daylight-cycle.patch rename to patches/server/0096-Configurable-daylight-cycle.patch index e6ecc17283..c586f6a854 100644 --- a/patches/server/0094-Configurable-daylight-cycle.patch +++ b/patches/server/0096-Configurable-daylight-cycle.patch @@ -18,10 +18,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { this.gameTime = time; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6206d19c2861996699ced5eccfff8ee8ab3a7727..de211102edf78f645d3129e690e9214b47935003 100644 +index 2bc4073bb331e4b3beae9cccb06d3ca46f9d3b24..9de37c25f7a970326dc96a3dd4b2fddf59f404c9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1690,7 +1690,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { @@ -346,7 +346,7 @@ index 57a224aa5a1008aa6bdbe268099974f9b8bf70d3..44a0c13c57e0823938938de4d89921cb protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index e48ff5d0592f0d91974a49fd7ed1d0ee97172abe..599a980c1b66215c4430a5b11acfbc4e451f724f 100644 +index fef3b7d193d20c4fdd50b38c6a0371f05165a49d..93295d9683293121f2267350194f18e97b2421c2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -109,6 +109,11 @@ public class Goat extends Animal { @@ -506,7 +506,7 @@ index 9b853fd05a3a851cb08d7f849b51f2b220780982..10136a5062d154456c962e7d1a99c2de BlockPos.MutableBlockPos blockposition_mutableblockposition = pos.mutable(); diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 3a98f2fab709cd83f853f59a5678fdd4b7bd70d3..e2c26768fe87ee6a8e4dada7280c09a6e5210503 100644 +index 22788892f7286f3fa6b40059b2bedaf0c6ec5ef3..80f91a11c04763c1c9ed2bd242b88b5a473560d7 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -91,6 +91,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { diff --git a/patches/server/0101-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0103-Apply-display-names-from-item-forms-of-entities-to-e.patch similarity index 100% rename from patches/server/0101-Apply-display-names-from-item-forms-of-entities-to-e.patch rename to patches/server/0103-Apply-display-names-from-item-forms-of-entities-to-e.patch diff --git a/patches/server/0102-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0104-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch similarity index 100% rename from patches/server/0102-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch rename to patches/server/0104-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch diff --git a/patches/server/0103-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0105-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch similarity index 93% rename from patches/server/0103-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch rename to patches/server/0105-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 8053050674..b803c2a6a0 100644 --- a/patches/server/0103-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0105-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -8,10 +8,10 @@ This should help to reduce the amount of dirt, gravel, grass, and etc. that Endermen like to randomly place all over the world. 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 6f7f4dd703a6a2cf2d90102b23538bb2104fb464..2566cabec8ede95d2b7ea7c063ae9cb8a1a0bdf1 100644 +index 760a26722144da3f547802975484b01c377afe17..c8f1d2de8682761ef8d4d50302c211f32b086783 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -495,7 +495,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -501,7 +501,7 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean requiresCustomPersistence() { diff --git a/patches/server/0104-Add-configurable-snowball-damage.patch b/patches/server/0106-Add-configurable-snowball-damage.patch similarity index 100% rename from patches/server/0104-Add-configurable-snowball-damage.patch rename to patches/server/0106-Add-configurable-snowball-damage.patch diff --git a/patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0107-Changeable-Mob-Left-Handed-Chance.patch similarity index 91% rename from patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch rename to patches/server/0107-Changeable-Mob-Left-Handed-Chance.patch index 9e3c2f3516..e6476f8e5c 100644 --- a/patches/server/0105-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0107-Changeable-Mob-Left-Handed-Chance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index b98bf8243e8014f8ef4aa0cfaddf301b997397cc..9794b8262028db136e7282c5451e18b7f5d70f88 100644 +index 906f3ed7883cd220734a92a5f032ec89674f5b97..f04fd84be60d5fc866aa6bf0b711c7e34c5c6369 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1298,7 +1298,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1304,7 +1304,7 @@ public abstract class Mob extends LivingEntity implements Targeting { RandomSource randomsource = world.getRandom(); this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.MULTIPLY_BASE)); diff --git a/patches/server/0106-Add-boat-fall-damage-config.patch b/patches/server/0108-Add-boat-fall-damage-config.patch similarity index 97% rename from patches/server/0106-Add-boat-fall-damage-config.patch rename to patches/server/0108-Add-boat-fall-damage-config.patch index 01f2bb01b9..36ecd720c6 100644 --- a/patches/server/0106-Add-boat-fall-damage-config.patch +++ b/patches/server/0108-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f1260f9d4bd386c1bfddf977dc47a41082bce4f2..16058e98dbe426791637682316cf0b11160d30f1 100644 +index 47cc6799f0d48debe4b63280a6814eadf9aecb7d..82a551caa75fbd50d75a5109cf7e897e829acf19 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1111,7 +1111,16 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0107-Snow-Golem-rate-of-fire-config.patch b/patches/server/0109-Snow-Golem-rate-of-fire-config.patch similarity index 100% rename from patches/server/0107-Snow-Golem-rate-of-fire-config.patch rename to patches/server/0109-Snow-Golem-rate-of-fire-config.patch diff --git a/patches/server/0108-EMC-Configurable-disable-give-dropping.patch b/patches/server/0110-EMC-Configurable-disable-give-dropping.patch similarity index 100% rename from patches/server/0108-EMC-Configurable-disable-give-dropping.patch rename to patches/server/0110-EMC-Configurable-disable-give-dropping.patch diff --git a/patches/server/0109-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0111-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch similarity index 98% rename from patches/server/0109-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch rename to patches/server/0111-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 59acbaf7b6..d63ac52e49 100644 --- a/patches/server/0109-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0111-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -136,10 +136,10 @@ index cb1d91f9fe98f21c2afbe3894dfd9bca3bdd3ba6..d2703432af207c74ea8d298a784329c3 brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); } else { 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 ee8661840ddfbdf4a4726f96da61253a96878dfc..192e6af840ce939fd8e008a80ee0c6ad43cb51e6 100644 +index ce450d4b0d42443a47861dcb54b78a01ede734d1..833db485054338cd4a5e626b35ec050c35f15477 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -222,7 +222,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -224,7 +224,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F)); } else { brain.setSchedule(Schedule.VILLAGER_DEFAULT); @@ -148,7 +148,7 @@ index ee8661840ddfbdf4a4726f96da61253a96878dfc..192e6af840ce939fd8e008a80ee0c6ad } brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F)); -@@ -977,6 +977,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -979,6 +979,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler public boolean hasFarmSeeds() { return this.getInventory().hasAnyMatching((itemstack) -> { diff --git a/patches/server/0110-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0112-Toggle-for-Zombified-Piglin-death-always-counting-as.patch similarity index 100% rename from patches/server/0110-Toggle-for-Zombified-Piglin-death-always-counting-as.patch rename to patches/server/0112-Toggle-for-Zombified-Piglin-death-always-counting-as.patch diff --git a/patches/server/0111-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0113-Configurable-chance-for-wolves-to-spawn-rabid.patch similarity index 100% rename from patches/server/0111-Configurable-chance-for-wolves-to-spawn-rabid.patch rename to patches/server/0113-Configurable-chance-for-wolves-to-spawn-rabid.patch diff --git a/patches/server/0112-Configurable-default-collar-color.patch b/patches/server/0114-Configurable-default-collar-color.patch similarity index 100% rename from patches/server/0112-Configurable-default-collar-color.patch rename to patches/server/0114-Configurable-default-collar-color.patch diff --git a/patches/server/0113-Phantom-flames-on-swoop.patch b/patches/server/0115-Phantom-flames-on-swoop.patch similarity index 100% rename from patches/server/0113-Phantom-flames-on-swoop.patch rename to patches/server/0115-Phantom-flames-on-swoop.patch diff --git a/patches/server/0114-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0116-Option-for-chests-to-open-even-with-a-solid-block-on.patch similarity index 100% rename from patches/server/0114-Option-for-chests-to-open-even-with-a-solid-block-on.patch rename to patches/server/0116-Option-for-chests-to-open-even-with-a-solid-block-on.patch diff --git a/patches/server/0115-Implement-TPSBar.patch b/patches/server/0117-Implement-TPSBar.patch similarity index 97% rename from patches/server/0115-Implement-TPSBar.patch rename to patches/server/0117-Implement-TPSBar.patch index 5b206f85fe..5215c5c12e 100644 --- a/patches/server/0115-Implement-TPSBar.patch +++ b/patches/server/0117-Implement-TPSBar.patch @@ -17,10 +17,10 @@ index 575f026c086e24663b5d38222915460923937723..77cced190bd287ff3f5bc8697f16b333 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index de211102edf78f645d3129e690e9214b47935003..e7f3034fbb3cb6c606724bb6e2a8e0102b06b56f 100644 +index 9de37c25f7a970326dc96a3dd4b2fddf59f404c9..fb3b7f0d6e1577f4bba4589dc454ed6d064bd49f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1052,6 +1052,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1180,6 +1185,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1181,6 +1186,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/server/0118-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0120-Full-netherite-armor-grants-fire-resistance.patch similarity index 100% rename from patches/server/0118-Full-netherite-armor-grants-fire-resistance.patch rename to patches/server/0120-Full-netherite-armor-grants-fire-resistance.patch diff --git a/patches/server/0119-Fix-rotating-UP-DOWN-CW-and-CCW.patch b/patches/server/0121-Fix-rotating-UP-DOWN-CW-and-CCW.patch similarity index 100% rename from patches/server/0119-Fix-rotating-UP-DOWN-CW-and-CCW.patch rename to patches/server/0121-Fix-rotating-UP-DOWN-CW-and-CCW.patch diff --git a/patches/server/0120-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0122-Add-mobGriefing-bypass-to-everything-affected.patch similarity index 97% rename from patches/server/0120-Add-mobGriefing-bypass-to-everything-affected.patch rename to patches/server/0122-Add-mobGriefing-bypass-to-everything-affected.patch index ccb40a3c2f..800b3923f4 100644 --- a/patches/server/0120-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0122-Add-mobGriefing-bypass-to-everything-affected.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d512d16abc1dff33e9b430d9ba5b960f1460f9ab..ae3be8f490a245a76a76a85d12ba26906c499981 100644 +index 1ff77c524464a256913b063bf621b850255885ba..b0071e7f3b540569364a53bc6c5c022d2ea8a7cf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1795,7 +1795,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1807,7 +1807,7 @@ public abstract class LivingEntity extends Entity implements Attackable { boolean flag = false; if (this.dead && adversary instanceof WitherBoss) { // Paper @@ -18,10 +18,10 @@ index d512d16abc1dff33e9b430d9ba5b960f1460f9ab..ae3be8f490a245a76a76a85d12ba2690 BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 9794b8262028db136e7282c5451e18b7f5d70f88..ab459c32467e67b1a813ecdc56a12e2372e03faa 100644 +index f04fd84be60d5fc866aa6bf0b711c7e34c5c6369..7de69da2c723f1ad4a2e62e792a49cbc47202977 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -703,7 +703,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -705,7 +705,7 @@ public abstract class Mob extends LivingEntity implements Targeting { public void aiStep() { super.aiStep(); this.level().getProfiler().push("looting"); @@ -144,10 +144,10 @@ index cfe7086b0259eefcd221a54529c111f7eb1adc38..5381ee91770a0f1012b5478d66155402 // flag1 = this.level().removeBlock(blockposition, false) || flag1; flag1 = true; diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 61abb5ac7de7a71d7d652b134e3b75551a14961d..16c88fc3c865652496f0ecf6b7e92a97d20eeb00 100644 +index 84bd2cf1797f68eadbd0a21f2cfb6ce85710d928..bd4658651ba8bccdc5b8a7d59e70e527942615dd 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -485,7 +485,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -492,7 +492,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob if (this.destroyBlocksTick > 0) { --this.destroyBlocksTick; @@ -157,10 +157,10 @@ index 61abb5ac7de7a71d7d652b134e3b75551a14961d..16c88fc3c865652496f0ecf6b7e92a97 j = Mth.floor(this.getX()); int i1 = Mth.floor(this.getZ()); 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 2566cabec8ede95d2b7ea7c063ae9cb8a1a0bdf1..c17a01a995eb3fe46403f241effec86694ad0eaf 100644 +index c8f1d2de8682761ef8d4d50302c211f32b086783..51524661a62cbfe5ff7a3b7d640260e911902b23 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -543,7 +543,15 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -549,7 +549,15 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean canUse() { if (!enderman.level().purpurConfig.endermanAllowGriefing) return false; // Purpur @@ -177,7 +177,7 @@ index 2566cabec8ede95d2b7ea7c063ae9cb8a1a0bdf1..c17a01a995eb3fe46403f241effec866 } @Override -@@ -589,7 +597,15 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -595,7 +603,15 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean canUse() { if (!enderman.level().purpurConfig.endermanAllowGriefing) return false; // Purpur @@ -243,10 +243,10 @@ index 1738f0a251e4cab2eb3f122e83366afb02201765..49a37d294bac8205ac0a795daa300ccc BlockPos blockposition = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ()).relative(this.selectedDirection); BlockState iblockdata = this.mob.level().getBlockState(blockposition); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 7c1e3bdd68433319681c67251c82c6810e69dbcb..92d90700cf06ac06b6c13abc78f6dc771e11bd7a 100644 +index d9b1bde3ce458b7e50f7645d07ee578d13006a0a..d133820c47ecda733aa8242acdb2cd3ba0f0b677 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -423,7 +423,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -424,7 +424,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override public boolean wantsToPickUp(ItemStack stack) { @@ -284,10 +284,10 @@ index 6b67eec90cd0dc1b20762514eac97f75fdbdf182..2dec28091d1816e9d4c749a5155e8303 // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); 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 2f058cec80c6ef7a5a5ca065dc6c9fe353c521de..e8036e3b124b9357a54a0f30e8610cbd885f5644 100644 +index a7653d8d7291a537c997364c6222bb84d45f7277..9daf8a85ed3f429bfb287d099be23bca847a7671 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -@@ -304,7 +304,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -334,7 +334,7 @@ public abstract class Projectile extends Entity implements TraceableEntity { public boolean mayInteract(Level world, BlockPos pos) { Entity entity = this.getOwner(); diff --git a/patches/server/0121-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0123-Config-to-allow-Note-Block-sounds-when-blocked.patch similarity index 100% rename from patches/server/0121-Config-to-allow-Note-Block-sounds-when-blocked.patch rename to patches/server/0123-Config-to-allow-Note-Block-sounds-when-blocked.patch diff --git a/patches/server/0122-Add-EntityTeleportHinderedEvent.patch b/patches/server/0124-Add-EntityTeleportHinderedEvent.patch similarity index 98% rename from patches/server/0122-Add-EntityTeleportHinderedEvent.patch rename to patches/server/0124-Add-EntityTeleportHinderedEvent.patch index ca91c17d8b..405bcc9376 100644 --- a/patches/server/0122-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0124-Add-EntityTeleportHinderedEvent.patch @@ -74,7 +74,7 @@ index 2e264b8b13df9da9163a80b3dd4345af3cff431c..7b27852682909b7d19942bbb517e6107 blockEntity.teleportCooldown = 100; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index f8ac77be62ee1220e0373ade55fdee1cb32750e9..fb80b7e2edebf915a98ef608d5b2e27a6c9ae79c 100644 +index 1c89cbf1a582604ed4be0849bd65dae5eb17f28a..98d2ef7870c921093a9dbaf0f4de77d86ef81d44 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -252,6 +252,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -89,7 +89,7 @@ index f8ac77be62ee1220e0373ade55fdee1cb32750e9..fb80b7e2edebf915a98ef608d5b2e27a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 72bd74a2fd6c9f7aec79ee7e4003cecbb4a3f95a..a7a702ccb7cab7d68758078927544f2928a5ea62 100644 +index 5f8b485ed8e0444c8c7e2a438cb65113d35bec68..df8f06c898155955fed05c0b41b8ce14b13ec920 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1368,6 +1368,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0123-Farmland-trampling-changes.patch b/patches/server/0125-Farmland-trampling-changes.patch similarity index 100% rename from patches/server/0123-Farmland-trampling-changes.patch rename to patches/server/0125-Farmland-trampling-changes.patch diff --git a/patches/server/0124-Movement-options-for-armor-stands.patch b/patches/server/0126-Movement-options-for-armor-stands.patch similarity index 96% rename from patches/server/0124-Movement-options-for-armor-stands.patch rename to patches/server/0126-Movement-options-for-armor-stands.patch index 062b6ae1d7..8dfcddde5f 100644 --- a/patches/server/0124-Movement-options-for-armor-stands.patch +++ b/patches/server/0126-Movement-options-for-armor-stands.patch @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 77ada6859c6fcc6929be5da350ac0f483dd1ae00..63c195ece6a96940bc059251bb40ab9129196fe1 100644 +index 6651c11dfa81d4289637555f24c91f5f03a8c750..fe793f51e9f81d14d6b2614c2da33f6d9e347fd2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1858,7 +1858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1870,7 +1870,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return this.isInWater() || flag; } diff --git a/patches/server/0125-Fix-stuck-in-portals.patch b/patches/server/0127-Fix-stuck-in-portals.patch similarity index 93% rename from patches/server/0125-Fix-stuck-in-portals.patch rename to patches/server/0127-Fix-stuck-in-portals.patch index 3d584387a9..e376d7c68f 100644 --- a/patches/server/0125-Fix-stuck-in-portals.patch +++ b/patches/server/0127-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3349082af08600894fbca04533f9ab4a9bf2dfd9..c63502c452c3804fafe31fe4daf2aed8f16427a0 100644 +index 448394f5ff2d55b099549b49b77114483f0e58bd..f2c388370be9765c15982f522a13cb21ad0f3f1d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1270,6 +1270,7 @@ public class ServerPlayer extends Player { @@ -17,10 +17,10 @@ index 3349082af08600894fbca04533f9ab4a9bf2dfd9..c63502c452c3804fafe31fe4daf2aed8 // CraftBukkit end this.setServerLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 63c195ece6a96940bc059251bb40ab9129196fe1..1bf2960f34b120f258bc75bba6552c8b22ce9ed7 100644 +index fe793f51e9f81d14d6b2614c2da33f6d9e347fd2..0647431984d263fcd90ca4273626973c44716734 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3134,12 +3134,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3146,12 +3146,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return Vec3.directionFromRotation(this.getRotationVector()); } diff --git a/patches/server/0126-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch similarity index 99% rename from patches/server/0126-Toggle-for-water-sensitive-mob-damage.patch rename to patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch index c758ae8d32..4d726d82b3 100644 --- a/patches/server/0126-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch @@ -21,7 +21,7 @@ index 19f95ddb2fa9dd264947a8b0033dd7437ee66c7f..d04e48d6a0a6dc7825a3e3d4cf854e29 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 6aec149f450e0559c613dcc272ba48634d0083c0..0ed3d4f4cb9e2d11391c39633267becfd457102d 100644 +index 92777e7f6c6293c5b5689cfa5f992335629d05eb..39dc169eedc407284452380a883e8a2735cc46cb 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -280,6 +280,11 @@ public class Bat extends AmbientCreature { @@ -411,7 +411,7 @@ index bbecb3894d0f4a24442e8833f4d828e6173287da..f79dff635b09300f8d2cff0562f71587 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 216e7ad8c096d526d91b1099932070128e200b0c..fb5b7e88825348e1c05c9b9f9621bc60a6b7114e 100644 +index 4e8f5d80949f251af2740f2e1ceee203783cc839..9d52d0f1b57565bdea0333626d8dba9c01607a30 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -125,6 +125,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder getModelRotationValues() { return this.modelRotationValues; diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 599a980c1b66215c4430a5b11acfbc4e451f724f..b41509e26808a025bc247fa209d3b9df10368013 100644 +index 93295d9683293121f2267350194f18e97b2421c2..26062173d137e26abdc452f7b2e0be0ee6dddfa3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -114,6 +114,11 @@ public class Goat extends Animal { @@ -571,7 +571,7 @@ index 5381ee91770a0f1012b5478d6615540263e46533..5643f35f02fff5a2d4072d246f864677 return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 16c88fc3c865652496f0ecf6b7e92a97d20eeb00..138e38945fdfff919b1afabcfdf3424267027161 100644 +index bd4658651ba8bccdc5b8a7d59e70e527942615dd..aea64f97be2430e92cb45d43e1b50c0e32eebdf9 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -117,6 +117,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -625,7 +625,7 @@ index c8bac8cb738ad96003a014b468681c43512ac4c4..5dc0b3d04bfc01cd2cb004c182798408 public boolean doHurtTarget(Entity target) { if (super.doHurtTarget(target)) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 5bfeb39a23a72f57523a3c2db1d79c7aef70eb02..e8191f0df3420d5a531cf226547a177732ff65ea 100644 +index 54184d7641e435654e987f866162b610a9352947..63d51f6f792f951a1db5f8f7c9b359898968cd85 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -263,6 +263,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -673,7 +673,7 @@ index 971210c1199ec48f28446e75d8d796a1f3f9a734..cd1f830bf28b1c68e2b9cc7daa77f696 return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } 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 c17a01a995eb3fe46403f241effec86694ad0eaf..145726402118057161982f5f1cf712177c81d4de 100644 +index 51524661a62cbfe5ff7a3b7d640260e911902b23..013fd016d384f1bf94b875bc71139e0ea4e12d21 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -95,7 +95,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -935,7 +935,7 @@ index 28ee425910a6c2412dc4b4a7f7986e479be06b88..9363ec4aad2179274e4076c2acae5779 public boolean dismountsUnderwater() { return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.slimeRidableInWater; diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index f8e842327375497416783aef486e6960653b0184..0f41e7127ece3c60500ab3cbb2e5bbc9c0bf013b 100644 +index 333b064383e9ee3b075429f8cd14b4b71cec1853..93eaa95e38304a4b86cda693289f60ad4923b5b8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -75,6 +75,11 @@ public class Spider extends Monster { @@ -1117,7 +1117,7 @@ index b2d77117309e81db60e7e50911247793fa829755..3574a1e641d8af34a0ff7ea8dcfb0864 public boolean jockeyOnlyBaby() { return level().purpurConfig.zombifiedPiglinJockeyOnlyBaby; diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index e2c26768fe87ee6a8e4dada7280c09a6e5210503..d1501c1048417defdf1766366b572f2c98989cc9 100644 +index 80f91a11c04763c1c9ed2bd242b88b5a473560d7..d0144c99cf5c755c81fc0f9457b462c98ff3e804 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -96,6 +96,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -1133,7 +1133,7 @@ index e2c26768fe87ee6a8e4dada7280c09a6e5210503..d1501c1048417defdf1766366b572f2c public boolean canBeLeashed(Player player) { return !this.isLeashed(); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 92d90700cf06ac06b6c13abc78f6dc771e11bd7a..f9e03dc7178c76ea70e45f265d9b42f9d2fe960d 100644 +index d133820c47ecda733aa8242acdb2cd3ba0f0b677..e506dcf390ecb5cce8ae6993df7ec91b3ebc125e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -118,6 +118,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -1165,10 +1165,10 @@ index 04e54c241078e6cd6419a21ba1bf913fd3b413d1..b63d87df0f48dd63c89118f91b31dc4e return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D); } 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 192e6af840ce939fd8e008a80ee0c6ad43cb51e6..375192fbc04bd4dd5fa178bd26eaa1b00c9b58db 100644 +index 833db485054338cd4a5e626b35ec050c35f15477..9ed51efc1a42a792b652e7c958c06fa5b572e4bf 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -188,6 +188,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -190,6 +190,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return level().purpurConfig.villagerCanBeLeashed && !this.isLeashed(); } diff --git a/patches/server/0127-Config-to-always-tame-in-Creative.patch b/patches/server/0129-Config-to-always-tame-in-Creative.patch similarity index 100% rename from patches/server/0127-Config-to-always-tame-in-Creative.patch rename to patches/server/0129-Config-to-always-tame-in-Creative.patch diff --git a/patches/server/0128-End-crystal-explosion-options.patch b/patches/server/0130-End-crystal-explosion-options.patch similarity index 100% rename from patches/server/0128-End-crystal-explosion-options.patch rename to patches/server/0130-End-crystal-explosion-options.patch diff --git a/patches/server/0129-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0131-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch similarity index 96% rename from patches/server/0129-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch rename to patches/server/0131-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 32841fab20..733c95e29a 100644 --- a/patches/server/0129-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0131-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -17,10 +17,10 @@ index 5643f35f02fff5a2d4072d246f8646772695b797..dc7804371b65c43367ec87e79433106e } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 138e38945fdfff919b1afabcfdf3424267027161..b0d0ed64919a0acea70554b6600cf6ba9566a178 100644 +index aea64f97be2430e92cb45d43e1b50c0e32eebdf9..81084ec809a2c4602d92f3736fab4eeaf80e6fa4 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -731,6 +731,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -738,6 +738,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @Override protected boolean canRide(Entity entity) { diff --git a/patches/server/0130-Dont-run-with-scissors.patch b/patches/server/0132-Dont-run-with-scissors.patch similarity index 96% rename from patches/server/0130-Dont-run-with-scissors.patch rename to patches/server/0132-Dont-run-with-scissors.patch index 80a12a00e8..edc1fdcf64 100644 --- a/patches/server/0130-Dont-run-with-scissors.patch +++ b/patches/server/0132-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5ab5c85a4c3d03dba2a3943462ccff0a3e725555..0b5c6557afa83fb018bf3843f2f290e3d1925487 100644 +index 935d8b9f81d243716f340b0a16f6f99bc0bf88a8..78dcf97e46b6888d25cc685bc4216f02b4b079da 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1640,6 +1640,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1641,6 +1641,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.resetFallDistance(); } @@ -22,7 +22,7 @@ index 5ab5c85a4c3d03dba2a3943462ccff0a3e725555..0b5c6557afa83fb018bf3843f2f290e3 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1691,6 +1698,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1692,6 +1699,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl return false; } // Paper end - optimise out extra getCubes @@ -82,7 +82,7 @@ index 4604f8b38460e9113e966889a679d4547f24aff6..813916852774d6482791989252ecb67b + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 61e3bce901bdbf111ffc06521b0e6d5369fce051..ea9d99990b718beaef4bee3ff75340656f3c76c5 100644 +index 57734b187e3a66d0d244db2f7968256884957ff2..6714c095714c3a34464b9190be964ceaac718d45 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -183,6 +183,7 @@ public class PurpurConfig { diff --git a/patches/server/0131-One-Punch-Man.patch b/patches/server/0133-One-Punch-Man.patch similarity index 94% rename from patches/server/0131-One-Punch-Man.patch rename to patches/server/0133-One-Punch-Man.patch index 4a8aecfcb2..f0b8fa4594 100644 --- a/patches/server/0131-One-Punch-Man.patch +++ b/patches/server/0133-One-Punch-Man.patch @@ -5,10 +5,10 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ae3be8f490a245a76a76a85d12ba26906c499981..e8d6b832ae9a04e4505eaf9e693454cc6e85962e 100644 +index b0071e7f3b540569364a53bc6c5c022d2ea8a7cf..5ac686c5d3fc20d55899eb7ffafa48c4130344cf 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2307,6 +2307,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2333,6 +2333,20 @@ public abstract class LivingEntity extends Entity implements Attackable { } } diff --git a/patches/server/0132-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0134-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 100% rename from patches/server/0132-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/server/0134-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch diff --git a/patches/server/0133-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0135-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 96% rename from patches/server/0133-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/server/0135-Config-to-ignore-nearby-mobs-when-sleeping.patch index 7cfd76c770..f7118d8fe4 100644 --- a/patches/server/0133-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0135-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c63502c452c3804fafe31fe4daf2aed8f16427a0..ab259fb1e247ae53a3af57f297ebaa4ce8959ba6 100644 +index f2c388370be9765c15982f522a13cb21ad0f3f1d..6ae52065abb4559ee53e2603224f2555952e50af 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1427,7 +1427,7 @@ public class ServerPlayer extends Player { diff --git a/patches/server/0134-Add-back-player-spawned-endermite-API.patch b/patches/server/0136-Add-back-player-spawned-endermite-API.patch similarity index 100% rename from patches/server/0134-Add-back-player-spawned-endermite-API.patch rename to patches/server/0136-Add-back-player-spawned-endermite-API.patch diff --git a/patches/server/0135-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0137-Config-Enderman-aggressiveness-towards-Endermites.patch similarity index 97% rename from patches/server/0135-Config-Enderman-aggressiveness-towards-Endermites.patch rename to patches/server/0137-Config-Enderman-aggressiveness-towards-Endermites.patch index 1a82d64c61..c3a9201ece 100644 --- a/patches/server/0135-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0137-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites 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 145726402118057161982f5f1cf712177c81d4de..c0fbb6687b2f83287f371e2158b37309fea64c3d 100644 +index 013fd016d384f1bf94b875bc71139e0ea4e12d21..cf9eb1ac36a5c9d3c73b981e1649bb23c7bfaf39 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -134,7 +134,7 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0136-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 96% rename from patches/server/0136-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index aa5aa2caab..4a11dbbb07 100644 --- a/patches/server/0136-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! 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 c0fbb6687b2f83287f371e2158b37309fea64c3d..6519fb56a7c6fd2e9ce3f4a0504053ed05eb0e14 100644 +index cf9eb1ac36a5c9d3c73b981e1649bb23c7bfaf39..ca0269c2977b07cf77f7e0e1faa4cb16008ac74d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -271,7 +271,7 @@ public class EnderMan extends Monster implements NeutralMob { diff --git a/patches/server/0137-Tick-fluids-config.patch b/patches/server/0139-Tick-fluids-config.patch similarity index 100% rename from patches/server/0137-Tick-fluids-config.patch rename to patches/server/0139-Tick-fluids-config.patch diff --git a/patches/server/0138-Config-to-disable-Llama-caravans.patch b/patches/server/0140-Config-to-disable-Llama-caravans.patch similarity index 100% rename from patches/server/0138-Config-to-disable-Llama-caravans.patch rename to patches/server/0140-Config-to-disable-Llama-caravans.patch diff --git a/patches/server/0139-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0141-Config-to-make-Creepers-explode-on-death.patch similarity index 97% rename from patches/server/0139-Config-to-make-Creepers-explode-on-death.patch rename to patches/server/0141-Config-to-make-Creepers-explode-on-death.patch index 571f65efc9..25e8c394e9 100644 --- a/patches/server/0139-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0141-Config-to-make-Creepers-explode-on-death.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death Creepers exploded after being killed in the alpha days. This brings that back. diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index e8191f0df3420d5a531cf226547a177732ff65ea..fd3b1e92a626402112bbd371a0ac1264a2c19c32 100644 +index 63d51f6f792f951a1db5f8f7c9b359898968cd85..f043b6da9649c8c9e6a9cf5172e95470d167443b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -63,6 +63,7 @@ public class Creeper extends Monster implements PowerableMob { diff --git a/patches/server/0140-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0142-Configurable-ravager-griefable-blocks-list.patch similarity index 100% rename from patches/server/0140-Configurable-ravager-griefable-blocks-list.patch rename to patches/server/0142-Configurable-ravager-griefable-blocks-list.patch diff --git a/patches/server/0141-Sneak-to-bulk-process-composter.patch b/patches/server/0143-Sneak-to-bulk-process-composter.patch similarity index 100% rename from patches/server/0141-Sneak-to-bulk-process-composter.patch rename to patches/server/0143-Sneak-to-bulk-process-composter.patch diff --git a/patches/server/0142-Config-for-skipping-night.patch b/patches/server/0144-Config-for-skipping-night.patch similarity index 96% rename from patches/server/0142-Config-for-skipping-night.patch rename to patches/server/0144-Config-for-skipping-night.patch index a8ad4f17c1..6f68736c2b 100644 --- a/patches/server/0142-Config-for-skipping-night.patch +++ b/patches/server/0144-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e07d38b987cef9bddce3bee592f597a0e279f7e3..2d8cb768429a77547ae2904b11614d66459332fd 100644 +index 3f95ede3602c3dea611ba9a6b4f6891419638283..b8bb7281208a03202bd0575e8dc998190751d46e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -841,7 +841,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0143-Add-config-for-villager-trading.patch b/patches/server/0145-Add-config-for-villager-trading.patch similarity index 96% rename from patches/server/0143-Add-config-for-villager-trading.patch rename to patches/server/0145-Add-config-for-villager-trading.patch index 1e885c7bcd..d7ea956dec 100644 --- a/patches/server/0143-Add-config-for-villager-trading.patch +++ b/patches/server/0145-Add-config-for-villager-trading.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add config for villager trading 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 375192fbc04bd4dd5fa178bd26eaa1b00c9b58db..29916aa09d867ef3fa4dc8248b174bf8f97853b7 100644 +index 9ed51efc1a42a792b652e7c958c06fa5b572e4bf..6857eeb9a93850594cbdb634dfbdf6cb6d82ced5 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -370,7 +370,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -372,7 +372,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return tryRide(player, hand, InteractionResult.sidedSuccess(this.level().isClientSide)); // Purpur } else { if (level().purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur diff --git a/patches/server/0144-Allow-infinity-on-crossbows.patch b/patches/server/0146-Allow-infinity-on-crossbows.patch similarity index 98% rename from patches/server/0144-Allow-infinity-on-crossbows.patch rename to patches/server/0146-Allow-infinity-on-crossbows.patch index 4ae0f46531..fce993e235 100644 --- a/patches/server/0144-Allow-infinity-on-crossbows.patch +++ b/patches/server/0146-Allow-infinity-on-crossbows.patch @@ -77,7 +77,7 @@ index 4daf2c54c7127e8e091ffc49362f288594956143..f81faaf6d69b09f635d71491303fca1d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ea9d99990b718beaef4bee3ff75340656f3c76c5..55963ed03a2e552636035b498cf7441bd4c3ee59 100644 +index 6714c095714c3a34464b9190be964ceaac718d45..0e254b7b1709f745a7d7c0e3cefda96d726de556 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -284,6 +284,7 @@ public class PurpurConfig { diff --git a/patches/server/0145-Drowning-Settings.patch b/patches/server/0147-Drowning-Settings.patch similarity index 89% rename from patches/server/0145-Drowning-Settings.patch rename to patches/server/0147-Drowning-Settings.patch index 376c73c210..03089f61fa 100644 --- a/patches/server/0145-Drowning-Settings.patch +++ b/patches/server/0147-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1bf2960f34b120f258bc75bba6552c8b22ce9ed7..c45e7caa0ecbeaa1b37f722abba2884a6148ca20 100644 +index 0647431984d263fcd90ca4273626973c44716734..7ecc956aa2907090c9b0c9dcaf674330bb18f3d3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3383,7 +3383,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3395,7 +3395,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public int getMaxAirSupply() { @@ -18,10 +18,10 @@ index 1bf2960f34b120f258bc75bba6552c8b22ce9ed7..c45e7caa0ecbeaa1b37f722abba2884a public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e8d6b832ae9a04e4505eaf9e693454cc6e85962e..6efffa178d2f051c2d50672d861aee854f1ff874 100644 +index 5ac686c5d3fc20d55899eb7ffafa48c4130344cf..b320b4bc692efdd9f7efd4f3fa195bc26512cf66 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -439,7 +439,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -438,7 +438,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (flag1) { this.setAirSupply(this.decreaseAirSupply(this.getAirSupply())); @@ -30,7 +30,7 @@ index e8d6b832ae9a04e4505eaf9e693454cc6e85962e..6efffa178d2f051c2d50672d861aee85 this.setAirSupply(0); Vec3 vec3d = this.getDeltaMovement(); -@@ -451,7 +451,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -450,7 +450,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().addParticle(ParticleTypes.BUBBLE, this.getX() + d2, this.getY() + d3, this.getZ() + d4, vec3d.x, vec3d.y, vec3d.z); } diff --git a/patches/server/0146-Break-individual-slabs-when-sneaking.patch b/patches/server/0148-Break-individual-slabs-when-sneaking.patch similarity index 100% rename from patches/server/0146-Break-individual-slabs-when-sneaking.patch rename to patches/server/0148-Break-individual-slabs-when-sneaking.patch diff --git a/patches/server/0147-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0149-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 100% rename from patches/server/0147-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/server/0149-Config-to-disable-hostile-mob-spawn-on-ice.patch diff --git a/patches/server/0148-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0150-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 100% rename from patches/server/0148-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/server/0150-Config-to-show-Armor-Stand-arms-on-spawn.patch diff --git a/patches/server/0149-Option-to-make-doors-require-redstone.patch b/patches/server/0151-Option-to-make-doors-require-redstone.patch similarity index 100% rename from patches/server/0149-Option-to-make-doors-require-redstone.patch rename to patches/server/0151-Option-to-make-doors-require-redstone.patch diff --git a/patches/server/0150-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0152-Config-to-allow-for-unsafe-enchants.patch similarity index 98% rename from patches/server/0150-Config-to-allow-for-unsafe-enchants.patch rename to patches/server/0152-Config-to-allow-for-unsafe-enchants.patch index df1cf6ba54..18442c1eb9 100644 --- a/patches/server/0150-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0152-Config-to-allow-for-unsafe-enchants.patch @@ -91,7 +91,7 @@ index f6274690538d55becb9afe0d5a87213cb2e396a0..05f4670df6b45d7d9cd4ff78a0e10587 this.getOrCreateTag().put(key, element); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 55963ed03a2e552636035b498cf7441bd4c3ee59..5697ce5ead8dc7e463206a56d489c99c861a9bb1 100644 +index 0e254b7b1709f745a7d7c0e3cefda96d726de556..1b7aad41427a945ae4309d95f6371ca8aba1149a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -285,14 +285,34 @@ public class PurpurConfig { diff --git a/patches/server/0151-Configurable-sponge-absorption.patch b/patches/server/0153-Configurable-sponge-absorption.patch similarity index 100% rename from patches/server/0151-Configurable-sponge-absorption.patch rename to patches/server/0153-Configurable-sponge-absorption.patch diff --git a/patches/server/0152-Projectile-offset-config.patch b/patches/server/0154-Projectile-offset-config.patch similarity index 100% rename from patches/server/0152-Projectile-offset-config.patch rename to patches/server/0154-Projectile-offset-config.patch diff --git a/patches/server/0153-Config-for-powered-rail-activation-distance.patch b/patches/server/0155-Config-for-powered-rail-activation-distance.patch similarity index 100% rename from patches/server/0153-Config-for-powered-rail-activation-distance.patch rename to patches/server/0155-Config-for-powered-rail-activation-distance.patch diff --git a/patches/server/0154-Piglin-portal-spawn-modifier.patch b/patches/server/0156-Piglin-portal-spawn-modifier.patch similarity index 100% rename from patches/server/0154-Piglin-portal-spawn-modifier.patch rename to patches/server/0156-Piglin-portal-spawn-modifier.patch diff --git a/patches/server/0155-Config-to-change-max-number-of-bees.patch b/patches/server/0157-Config-to-change-max-number-of-bees.patch similarity index 96% rename from patches/server/0155-Config-to-change-max-number-of-bees.patch rename to patches/server/0157-Config-to-change-max-number-of-bees.patch index 3d9b8cb1a3..bb56df6c3a 100644 --- a/patches/server/0155-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0157-Config-to-change-max-number-of-bees.patch @@ -18,7 +18,7 @@ index dfd364ac4b7551a13c4c6c100b5e62c0dfb10595..312ee43ad1a35918fc359f7ebb574200 public BeehiveBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.BEEHIVE, pos, state); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 5697ce5ead8dc7e463206a56d489c99c861a9bb1..85a41b50a1f0a89264585ecd621e7e5a1de67efc 100644 +index 1b7aad41427a945ae4309d95f6371ca8aba1149a..d0e3dceec5f7c1d3fed1d6dc0f2a5c1ca2ed09f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -250,6 +250,7 @@ public class PurpurConfig { diff --git a/patches/server/0156-Config-for-wither-explosion-radius.patch b/patches/server/0158-Config-for-wither-explosion-radius.patch similarity index 100% rename from patches/server/0156-Config-for-wither-explosion-radius.patch rename to patches/server/0158-Config-for-wither-explosion-radius.patch diff --git a/patches/server/0157-Gamemode-extra-permissions.patch b/patches/server/0159-Gamemode-extra-permissions.patch similarity index 97% rename from patches/server/0157-Gamemode-extra-permissions.patch rename to patches/server/0159-Gamemode-extra-permissions.patch index 43f6d91a19..b60266c46b 100644 --- a/patches/server/0157-Gamemode-extra-permissions.patch +++ b/patches/server/0159-Gamemode-extra-permissions.patch @@ -52,7 +52,7 @@ index 5cb15e2209d7b315904a1fc6d650ce1e75584271..7e21db60f3ace2a19686d6ea04b994ec for(ServerPlayer serverPlayer : targets) { diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java -index ea732f8fe7b5dd56aab5d3a061a1cad19c49ae0b..8d2b0dc792120eda396947f5935052346f770567 100644 +index dd95b3bfe59f2bb635afe92317288efcd2986326..11f43f44f359ce57d3a8f3322e58b9f5dfdaf00a 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java +++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CommandPermissions.java @@ -23,7 +23,15 @@ public final class CommandPermissions { @@ -73,7 +73,7 @@ index ea732f8fe7b5dd56aab5d3a061a1cad19c49ae0b..8d2b0dc792120eda396947f593505234 DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands); DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 85a41b50a1f0a89264585ecd621e7e5a1de67efc..a66c35ce86437311b38d1787c766bbe179cc5dfa 100644 +index d0e3dceec5f7c1d3fed1d6dc0f2a5c1ca2ed09f5..aeabbffef660ddcb113a33f1dd7f7b8504c07794 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -233,6 +233,7 @@ public class PurpurConfig { diff --git a/patches/server/0158-Configurable-piston-push-limit.patch b/patches/server/0160-Configurable-piston-push-limit.patch similarity index 100% rename from patches/server/0158-Configurable-piston-push-limit.patch rename to patches/server/0160-Configurable-piston-push-limit.patch diff --git a/patches/server/0159-Configurable-broadcast-settings.patch b/patches/server/0161-Configurable-broadcast-settings.patch similarity index 94% rename from patches/server/0159-Configurable-broadcast-settings.patch rename to patches/server/0161-Configurable-broadcast-settings.patch index 33f38e59c5..ba2051c398 100644 --- a/patches/server/0159-Configurable-broadcast-settings.patch +++ b/patches/server/0161-Configurable-broadcast-settings.patch @@ -17,7 +17,7 @@ index fcb5965ff0a9623a8e63a4b7413ad55416d269d9..9abce8a22246f449e1e508dc9972d14c // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ab259fb1e247ae53a3af57f297ebaa4ce8959ba6..3c6331f703acc59f1764f7ef474b242cfeeb63aa 100644 +index 6ae52065abb4559ee53e2603224f2555952e50af..d846b4c0cd204ed2a17b883f37a83e2e049f7561 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1011,6 +1011,7 @@ public class ServerPlayer extends Player { @@ -29,7 +29,7 @@ index ab259fb1e247ae53a3af57f297ebaa4ce8959ba6..3c6331f703acc59f1764f7ef474b242c if (scoreboardteam.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastSystemToTeam(this, ichatbasecomponent); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index a66c35ce86437311b38d1787c766bbe179cc5dfa..a0f45333ef049ac950295504bb7526f949dcbede 100644 +index aeabbffef660ddcb113a33f1dd7f7b8504c07794..bf59250dd3813d2eaf51f2bde0692eea9a83c710 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -203,6 +203,18 @@ public class PurpurConfig { diff --git a/patches/server/0160-Configurable-mob-blindness.patch b/patches/server/0162-Configurable-mob-blindness.patch similarity index 95% rename from patches/server/0160-Configurable-mob-blindness.patch rename to patches/server/0162-Configurable-mob-blindness.patch index fde80cd3b0..853d8da9dc 100644 --- a/patches/server/0160-Configurable-mob-blindness.patch +++ b/patches/server/0162-Configurable-mob-blindness.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable mob blindness Ported from https://github.com/raltsmc/mobblindness diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6efffa178d2f051c2d50672d861aee854f1ff874..f1f225615dd4a325ea29552f58fb9a6ff982a943 100644 +index b320b4bc692efdd9f7efd4f3fa195bc26512cf66..879ddc26235e9361afe55fffb5ca64cb63dfe552 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1036,6 +1036,17 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1035,6 +1035,17 @@ public abstract class LivingEntity extends Entity implements Attackable { if (entitytypes == EntityType.SKELETON && itemstack.is(Items.SKELETON_SKULL) || entitytypes == EntityType.ZOMBIE && itemstack.is(Items.ZOMBIE_HEAD) || entitytypes == EntityType.PIGLIN && itemstack.is(Items.PIGLIN_HEAD) || entitytypes == EntityType.PIGLIN_BRUTE && itemstack.is(Items.PIGLIN_HEAD) || entitytypes == EntityType.CREEPER && itemstack.is(Items.CREEPER_HEAD)) { d0 *= 0.5D; } diff --git a/patches/server/0161-Hide-hidden-players-from-entity-selector.patch b/patches/server/0163-Hide-hidden-players-from-entity-selector.patch similarity index 98% rename from patches/server/0161-Hide-hidden-players-from-entity-selector.patch rename to patches/server/0163-Hide-hidden-players-from-entity-selector.patch index f70ac362ec..60e62c866f 100644 --- a/patches/server/0161-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0163-Hide-hidden-players-from-entity-selector.patch @@ -59,7 +59,7 @@ index 73c15a0c56a103ba4e62f0a51af8d42566b07245..d630c5a1aed706265d1e077da540c0bf + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index a0f45333ef049ac950295504bb7526f949dcbede..8b2ec98b74f441b36acb94e0c6477ddaa2d333e8 100644 +index bf59250dd3813d2eaf51f2bde0692eea9a83c710..7fe47715413f6a1c21f9b4afb93a6dee4e0f0fe2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -246,6 +246,7 @@ public class PurpurConfig { diff --git a/patches/server/0162-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0164-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 96% rename from patches/server/0162-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/server/0164-Config-for-health-to-impact-Creeper-explosion-radius.patch index 331ee36e55..43671818b1 100644 --- a/patches/server/0162-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0164-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index fd3b1e92a626402112bbd371a0ac1264a2c19c32..a8bc27c858c6ddec2ff2f84b5c1dc51c3b1b04b0 100644 +index f043b6da9649c8c9e6a9cf5172e95470d167443b..1a33d4e855a85b0a0d51c29dbb4042d30918684c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -371,9 +371,10 @@ public class Creeper extends Monster implements PowerableMob { diff --git a/patches/server/0163-Iron-golem-calm-anger-options.patch b/patches/server/0165-Iron-golem-calm-anger-options.patch similarity index 100% rename from patches/server/0163-Iron-golem-calm-anger-options.patch rename to patches/server/0165-Iron-golem-calm-anger-options.patch diff --git a/patches/server/0164-Breedable-parrots.patch b/patches/server/0166-Breedable-parrots.patch similarity index 100% rename from patches/server/0164-Breedable-parrots.patch rename to patches/server/0166-Breedable-parrots.patch diff --git a/patches/server/0165-Configurable-powered-rail-boost-modifier.patch b/patches/server/0167-Configurable-powered-rail-boost-modifier.patch similarity index 96% rename from patches/server/0165-Configurable-powered-rail-boost-modifier.patch rename to patches/server/0167-Configurable-powered-rail-boost-modifier.patch index 8bc001868b..13cf4abb49 100644 --- a/patches/server/0165-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0167-Configurable-powered-rail-boost-modifier.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable powered rail boost modifier diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index a52f8b583b84128b7d68bfced6c41e2c7554469c..0eca1c61991b0d344d0810239d9cab2873216f04 100644 +index d5e2797b392527de4027b20f29c73a16eb0d6af9..c809e370ab61811c7e2fa3d6f207ae04fcb6749b 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java @@ -676,7 +676,7 @@ public abstract class AbstractMinecart extends VehicleEntity { diff --git a/patches/server/0166-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0168-Add-config-change-multiplier-critical-damage-value.patch similarity index 100% rename from patches/server/0166-Add-config-change-multiplier-critical-damage-value.patch rename to patches/server/0168-Add-config-change-multiplier-critical-damage-value.patch diff --git a/patches/server/0167-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0169-Option-to-disable-dragon-egg-teleporting.patch similarity index 100% rename from patches/server/0167-Option-to-disable-dragon-egg-teleporting.patch rename to patches/server/0169-Option-to-disable-dragon-egg-teleporting.patch diff --git a/patches/server/0168-Config-for-unverified-username-message.patch b/patches/server/0170-Config-for-unverified-username-message.patch similarity index 97% rename from patches/server/0168-Config-for-unverified-username-message.patch rename to patches/server/0170-Config-for-unverified-username-message.patch index f340dc05ab..395825dced 100644 --- a/patches/server/0168-Config-for-unverified-username-message.patch +++ b/patches/server/0170-Config-for-unverified-username-message.patch @@ -18,7 +18,7 @@ index 89b3184be952fd0803520dd0f717f3acfc3cb496..8acb4ab02e57f63f4b0f3c1420d9880d } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8b2ec98b74f441b36acb94e0c6477ddaa2d333e8..bda7ebcedcfc7086dcbd3a402e4c5ace3c508037 100644 +index 7fe47715413f6a1c21f9b4afb93a6dee4e0f0fe2..23d131fa6b91ba62475dd3f825711f7c0796e3c7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -184,6 +184,7 @@ public class PurpurConfig { diff --git a/patches/server/0169-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0171-Make-anvil-cumulative-cost-configurable.patch similarity index 95% rename from patches/server/0169-Make-anvil-cumulative-cost-configurable.patch rename to patches/server/0171-Make-anvil-cumulative-cost-configurable.patch index c00fd38cc5..fa79bdda39 100644 --- a/patches/server/0169-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0171-Make-anvil-cumulative-cost-configurable.patch @@ -18,7 +18,7 @@ index ceac7d74f6fbe6519535357a03a0e4d1214d6a1d..27d76e0c4809d333c548379bf78ec2db public boolean setItemName(String newItemName) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index bda7ebcedcfc7086dcbd3a402e4c5ace3c508037..cb0125f7aaa514578465d455b2b1fab98d7b13c1 100644 +index 23d131fa6b91ba62475dd3f825711f7c0796e3c7..09c777f83a74501d76f6e15a61d7c433599cf6cc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -269,6 +269,7 @@ public class PurpurConfig { diff --git a/patches/server/0170-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0172-Bee-can-work-when-raining-or-at-night.patch similarity index 100% rename from patches/server/0170-Bee-can-work-when-raining-or-at-night.patch rename to patches/server/0172-Bee-can-work-when-raining-or-at-night.patch diff --git a/patches/server/0171-API-for-any-mob-to-burn-daylight.patch b/patches/server/0173-API-for-any-mob-to-burn-daylight.patch similarity index 96% rename from patches/server/0171-API-for-any-mob-to-burn-daylight.patch rename to patches/server/0173-API-for-any-mob-to-burn-daylight.patch index e9ca01e96d..4498f49eca 100644 --- a/patches/server/0171-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0173-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c45e7caa0ecbeaa1b37f722abba2884a6148ca20..01bf0886d8196ec0a09e7b399636874bb8e6baa9 100644 +index 7ecc956aa2907090c9b0c9dcaf674330bb18f3d3..9552fbbb3bebe5adc2361f4abb676bfafbb4c00c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -495,6 +495,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -501,6 +501,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S return true; } @@ -32,10 +32,10 @@ index c45e7caa0ecbeaa1b37f722abba2884a6148ca20..01bf0886d8196ec0a09e7b399636874b return this.hardCollides; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 460619aabe69e8837f413c65aa4a575cd5d0d620..bfdfb7cfc36fa3eb4c8c2cfa293dcadcef107a11 100644 +index 879ddc26235e9361afe55fffb5ca64cb63dfe552..09c24ff6dd0c8bdabc25e69101f229b982822ca5 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -263,6 +263,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable { public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper @@ -43,7 +43,7 @@ index 460619aabe69e8837f413c65aa4a575cd5d0d620..bfdfb7cfc36fa3eb4c8c2cfa293dcadc @Override public float getBukkitYaw() { -@@ -804,6 +805,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -803,6 +804,7 @@ public abstract class LivingEntity extends Entity implements Attackable { dataresult.resultOrPartial(logger::error).ifPresent((nbtbase) -> { nbt.put("Brain", nbtbase); }); @@ -51,7 +51,7 @@ index 460619aabe69e8837f413c65aa4a575cd5d0d620..bfdfb7cfc36fa3eb4c8c2cfa293dcadc } @Override -@@ -888,6 +890,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -887,6 +889,11 @@ public abstract class LivingEntity extends Entity implements Attackable { this.brain = this.makeBrain(new Dynamic(NbtOps.INSTANCE, nbt.get("Brain"))); } @@ -63,7 +63,7 @@ index 460619aabe69e8837f413c65aa4a575cd5d0d620..bfdfb7cfc36fa3eb4c8c2cfa293dcadc } // CraftBukkit start -@@ -3558,6 +3565,27 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3584,6 +3591,27 @@ public abstract class LivingEntity extends Entity implements Attackable { this.hurt(this.damageSources().drown(), 1.0F); } @@ -92,10 +92,10 @@ index 460619aabe69e8837f413c65aa4a575cd5d0d620..bfdfb7cfc36fa3eb4c8c2cfa293dcadc public boolean isSensitiveToWater() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index ab459c32467e67b1a813ecdc56a12e2372e03faa..7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce 100644 +index 7de69da2c723f1ad4a2e62e792a49cbc47202977..31f1a485fc3e8d40f7181a5f8af4f56d9c25e2fc 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1748,17 +1748,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1754,17 +1754,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } public boolean isSunBurnTick() { diff --git a/patches/server/0172-Config-MobEffect-by-world.patch b/patches/server/0174-Config-MobEffect-by-world.patch similarity index 100% rename from patches/server/0172-Config-MobEffect-by-world.patch rename to patches/server/0174-Config-MobEffect-by-world.patch diff --git a/patches/server/0173-Beacon-Activation-Range-Configurable.patch b/patches/server/0175-Beacon-Activation-Range-Configurable.patch similarity index 100% rename from patches/server/0173-Beacon-Activation-Range-Configurable.patch rename to patches/server/0175-Beacon-Activation-Range-Configurable.patch diff --git a/patches/server/0174-Add-toggle-for-sand-duping-fix.patch b/patches/server/0176-Add-toggle-for-sand-duping-fix.patch similarity index 100% rename from patches/server/0174-Add-toggle-for-sand-duping-fix.patch rename to patches/server/0176-Add-toggle-for-sand-duping-fix.patch diff --git a/patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch similarity index 95% rename from patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch rename to patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch index 44d1b2f1d5..a02f10f60d 100644 --- a/patches/server/0175-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 01bf0886d8196ec0a09e7b399636874bb8e6baa9..e0a3c7e23ebf6b8994d82964dd38cc8342e81aa3 100644 +index 9552fbbb3bebe5adc2361f4abb676bfafbb4c00c..a94d7fcec60ffd9826f7c4828f0d98461261fb0b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3208,7 +3208,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3220,7 +3220,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.processPortalCooldown(); diff --git a/patches/server/0176-Make-lightning-rod-range-configurable.patch b/patches/server/0178-Make-lightning-rod-range-configurable.patch similarity index 89% rename from patches/server/0176-Make-lightning-rod-range-configurable.patch rename to patches/server/0178-Make-lightning-rod-range-configurable.patch index 640bbf2f16..8ef7dfdaf0 100644 --- a/patches/server/0176-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0178-Make-lightning-rod-range-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2d8cb768429a77547ae2904b11614d66459332fd..67d343ddfd665164219f5645e8a912134170d386 100644 +index b8bb7281208a03202bd0575e8dc998190751d46e..735be788e584152bd2c33eaf9c08ebb21769a1db 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1177,7 +1177,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1193,7 +1193,7 @@ public class ServerLevel extends Level implements WorldGenLevel { return holder.is(PoiTypes.LIGHTNING_ROD); }, (blockposition1) -> { return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; @@ -18,7 +18,7 @@ index 2d8cb768429a77547ae2904b11614d66459332fd..67d343ddfd665164219f5645e8a91213 return optional.map((blockposition1) -> { return blockposition1.above(1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index cb0125f7aaa514578465d455b2b1fab98d7b13c1..b1450f979efb13a31f96b0638d415f807c5c6a4f 100644 +index 09c777f83a74501d76f6e15a61d7c433599cf6cc..a268dcb3a0465425bb3c59edfc0f7897ea6626c1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -270,6 +270,7 @@ public class PurpurConfig { diff --git a/patches/server/0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch b/patches/server/0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch similarity index 100% rename from patches/server/0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch rename to patches/server/0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch diff --git a/patches/server/0178-Allow-player-join-full-server-by-permission.patch b/patches/server/0180-Allow-player-join-full-server-by-permission.patch similarity index 100% rename from patches/server/0178-Allow-player-join-full-server-by-permission.patch rename to patches/server/0180-Allow-player-join-full-server-by-permission.patch diff --git a/patches/server/0179-Add-portal-permission-bypass.patch b/patches/server/0181-Add-portal-permission-bypass.patch similarity index 100% rename from patches/server/0179-Add-portal-permission-bypass.patch rename to patches/server/0181-Add-portal-permission-bypass.patch diff --git a/patches/server/0180-Shulker-spawn-from-bullet-options.patch b/patches/server/0182-Shulker-spawn-from-bullet-options.patch similarity index 100% rename from patches/server/0180-Shulker-spawn-from-bullet-options.patch rename to patches/server/0182-Shulker-spawn-from-bullet-options.patch diff --git a/patches/server/0181-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0183-Eating-glow-berries-adds-glow-effect.patch similarity index 100% rename from patches/server/0181-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0183-Eating-glow-berries-adds-glow-effect.patch diff --git a/patches/server/0182-Option-to-make-drowned-break-doors.patch b/patches/server/0184-Option-to-make-drowned-break-doors.patch similarity index 100% rename from patches/server/0182-Option-to-make-drowned-break-doors.patch rename to patches/server/0184-Option-to-make-drowned-break-doors.patch diff --git a/patches/server/0183-Configurable-hunger-starvation-damage.patch b/patches/server/0185-Configurable-hunger-starvation-damage.patch similarity index 100% rename from patches/server/0183-Configurable-hunger-starvation-damage.patch rename to patches/server/0185-Configurable-hunger-starvation-damage.patch diff --git a/patches/server/0184-Enhance-SysoutCatcher.patch b/patches/server/0186-Enhance-SysoutCatcher.patch similarity index 100% rename from patches/server/0184-Enhance-SysoutCatcher.patch rename to patches/server/0186-Enhance-SysoutCatcher.patch diff --git a/patches/server/0185-Add-uptime-command.patch b/patches/server/0187-Add-uptime-command.patch similarity index 97% rename from patches/server/0185-Add-uptime-command.patch rename to patches/server/0187-Add-uptime-command.patch index b990e82cbb..33fc916379 100644 --- a/patches/server/0185-Add-uptime-command.patch +++ b/patches/server/0187-Add-uptime-command.patch @@ -17,7 +17,7 @@ index 77cced190bd287ff3f5bc8697f16b333da0bc786..bf51f5e414ab45e33efa4057ab251120 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e7f3034fbb3cb6c606724bb6e2a8e0102b06b56f..b2690db071a9ae26218406de09e37150a9d3eb66 100644 +index fb3b7f0d6e1577f4bba4589dc454ed6d064bd49f..60d2f483de06ca661aad809425d8b52397273732 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -294,6 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0.0F) { this.playSound(this.getFallDamageSound((int) f3), 1.0F, 1.0F); @@ -17,7 +17,7 @@ index 36d4d360c1f60d884f067391b7790e001010b45d..cbf14a9f6c4059ac2246d840ff901113 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 78381e82ddbfc78ed458908053752f48fee034b0..46c1ace4cce14e11ab957df1077625657ea3798b 100644 +index cc5e11524928bdec5402263eb68a51128b0503df..1714f839c688129184947c789731ac4d2b1c2fe1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -182,12 +182,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0196-Add-Option-for-disable-observer-clocks.patch b/patches/server/0198-Add-Option-for-disable-observer-clocks.patch similarity index 95% rename from patches/server/0196-Add-Option-for-disable-observer-clocks.patch rename to patches/server/0198-Add-Option-for-disable-observer-clocks.patch index 8092e1228d..607b819cb7 100644 --- a/patches/server/0196-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0198-Add-Option-for-disable-observer-clocks.patch @@ -18,7 +18,7 @@ index 713352b68f82d4c4a19a712d5207de0f99456713..d056e80c98973e9ba64adc5a8554acc8 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 46c1ace4cce14e11ab957df1077625657ea3798b..6c5fc242df9b0bf4d79a091105b7b113d801bf05 100644 +index 1714f839c688129184947c789731ac4d2b1c2fe1..a56818870503b2694d9e4dd232b91e1c6a54333f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -369,6 +369,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0197-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0199-Customizeable-Zombie-Villager-curing-times.patch similarity index 100% rename from patches/server/0197-Customizeable-Zombie-Villager-curing-times.patch rename to patches/server/0199-Customizeable-Zombie-Villager-curing-times.patch diff --git a/patches/server/0198-Option-for-sponges-to-work-on-lava-and-mud.patch b/patches/server/0200-Option-for-sponges-to-work-on-lava-and-mud.patch similarity index 100% rename from patches/server/0198-Option-for-sponges-to-work-on-lava-and-mud.patch rename to patches/server/0200-Option-for-sponges-to-work-on-lava-and-mud.patch diff --git a/patches/server/0199-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0201-Toggle-for-Wither-s-spawn-sound.patch similarity index 93% rename from patches/server/0199-Toggle-for-Wither-s-spawn-sound.patch rename to patches/server/0201-Toggle-for-Wither-s-spawn-sound.patch index 468e6822de..da430330d7 100644 --- a/patches/server/0199-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0201-Toggle-for-Wither-s-spawn-sound.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for Wither's spawn sound diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index d2640173f3eca484123eb7bc9f6c4f796c9178fb..73c967330cc793acc029c17f037d985e6ba919de 100644 +index 2447d89f1219736bda0ee80bb5dcf11cc61f5863..dd5552f87ec78c3b16aebe0767e124c368aa8c24 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -418,7 +418,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -425,7 +425,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob } // CraftBukkit end diff --git a/patches/server/0200-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0202-Cactus-breaks-from-solid-neighbors-config.patch similarity index 100% rename from patches/server/0200-Cactus-breaks-from-solid-neighbors-config.patch rename to patches/server/0202-Cactus-breaks-from-solid-neighbors-config.patch diff --git a/patches/server/0201-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0203-Config-to-remove-curse-of-binding-with-weakness.patch similarity index 96% rename from patches/server/0201-Config-to-remove-curse-of-binding-with-weakness.patch rename to patches/server/0203-Config-to-remove-curse-of-binding-with-weakness.patch index 88d1a0b172..99bddbd68a 100644 --- a/patches/server/0201-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0203-Config-to-remove-curse-of-binding-with-weakness.patch @@ -18,7 +18,7 @@ index 9af1da3858d6cf79b8bfaf99dde1370ccc50d023..1acb41fab25bdbc4109913b111dbe3b0 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 80f13907f068fc6c52595ea3cf93c1a4d5d03b69..073bd3a0c0d06269738b406b8de08db99e914f8d 100644 +index 3dd2e8c271bbd24f2b4712934fc19a982ed4d1d2..3deab8fff2c67fdc47db8c739a29173d65b13bbf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -404,6 +404,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0202-Conduit-behavior-configuration.patch b/patches/server/0204-Conduit-behavior-configuration.patch similarity index 100% rename from patches/server/0202-Conduit-behavior-configuration.patch rename to patches/server/0204-Conduit-behavior-configuration.patch diff --git a/patches/server/0203-Cauldron-fill-chances.patch b/patches/server/0205-Cauldron-fill-chances.patch similarity index 100% rename from patches/server/0203-Cauldron-fill-chances.patch rename to patches/server/0205-Cauldron-fill-chances.patch diff --git a/patches/server/0204-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0206-Config-to-allow-mobs-to-pathfind-over-rails.patch similarity index 97% rename from patches/server/0204-Config-to-allow-mobs-to-pathfind-over-rails.patch rename to patches/server/0206-Config-to-allow-mobs-to-pathfind-over-rails.patch index 1e95c8846b..c61b54286a 100644 --- a/patches/server/0204-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0206-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -18,7 +18,7 @@ index 2aca9b193db5dadc4fb90b8d7548277b698924aa..7702cd386247c1a850bb22ccf8c0724d if (node != null && (node.type == BlockPathTypes.OPEN || node.type == BlockPathTypes.WALKABLE) && this.mob.getBbWidth() < 1.0F) { double g = (double)(x - direction.getStepX()) + 0.5D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b27849dbddadf4388e5909b8fe74bcdab20c552f..46b70a1fa8109fd1a6056dc5a854f6b3fdfb3034 100644 +index 2f5662582492573aef4efee54def5921be7351ea..9bc0c44fa2f02596b716f4c180178b419e6c1194 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -138,6 +138,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0205-Shulker-change-color-with-dye.patch b/patches/server/0207-Shulker-change-color-with-dye.patch similarity index 100% rename from patches/server/0205-Shulker-change-color-with-dye.patch rename to patches/server/0207-Shulker-change-color-with-dye.patch diff --git a/patches/server/0206-Extended-OfflinePlayer-API.patch b/patches/server/0208-Extended-OfflinePlayer-API.patch similarity index 99% rename from patches/server/0206-Extended-OfflinePlayer-API.patch rename to patches/server/0208-Extended-OfflinePlayer-API.patch index afa752fbf8..11c86cd4ce 100644 --- a/patches/server/0206-Extended-OfflinePlayer-API.patch +++ b/patches/server/0208-Extended-OfflinePlayer-API.patch @@ -223,7 +223,7 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0b20bb986ee71a57a1c01c85ea7ab1292c9bcc52..df3953b541fc85985ded4a89e03bf5d840f7ed6d 100644 +index df8f06c898155955fed05c0b41b8ce14b13ec920..55d07278e635f9934418ac5c4e679e99b0b5dbd1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2599,6 +2599,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0207-Added-the-ability-to-add-combustible-items.patch b/patches/server/0209-Added-the-ability-to-add-combustible-items.patch similarity index 96% rename from patches/server/0207-Added-the-ability-to-add-combustible-items.patch rename to patches/server/0209-Added-the-ability-to-add-combustible-items.patch index d1baf7915c..c9c72ee83a 100644 --- a/patches/server/0207-Added-the-ability-to-add-combustible-items.patch +++ b/patches/server/0209-Added-the-ability-to-add-combustible-items.patch @@ -51,10 +51,10 @@ index b0afc384907bb75dfa26e432a2328fe080660019..92e58d9503daf4cc9bc1f4c7785e159e private int maxStack = MAX_STACK; public List transaction = new java.util.ArrayList(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 19d2c4c6de4cd5130be06fb368cd12b9581984a1..966f8e764c2ad42cdfc84b5037081121937598b6 100644 +index c0bb753a844507fb1f892826b50f23ba17a2e5bd..cca5519dd1b19e86372222d052c5ca2b992bfff8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1568,6 +1568,19 @@ public final class CraftServer implements Server { +@@ -1573,6 +1573,19 @@ public final class CraftServer implements Server { return true; } diff --git a/patches/server/0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 90% rename from patches/server/0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 39fce7cd6e..cf21eda126 100644 --- a/patches/server/0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 36f3a94499deb1344c3b7628c08adf6e49be26a8..5db8e4c8879d355843c196b17b8f39e9fe5d9a6a 100644 +index 64a56285c32fa70454371db366982f2530df0df5..59d6729e5e96ff34fd9cd31b2938a1da3826fa57 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1386,6 +1386,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1402,6 +1402,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @VisibleForTesting public void resetWeatherCycle() { // CraftBukkit start @@ -16,7 +16,7 @@ index 36f3a94499deb1344c3b7628c08adf6e49be26a8..5db8e4c8879d355843c196b17b8f39e9 this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - when passing the night // If we stop due to everyone sleeping we should reset the weather duration to some other random value. // Not that everyone ever manages to get the whole server to sleep at the same time.... -@@ -1393,6 +1394,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1409,6 +1410,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.serverLevelData.setRainTime(0); } // CraftBukkit end @@ -25,7 +25,7 @@ index 36f3a94499deb1344c3b7628c08adf6e49be26a8..5db8e4c8879d355843c196b17b8f39e9 // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a0ba55821e2d2a0c78c06e5756d8a591af85a536..8fe41200b26c0a17b6b65178aa858a74494471a6 100644 +index f9b529da8e9367c3a7c9d89eb16760bc691ea59d..f75b12f80e02c2b85c55c41096b4ee4759ce63b0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -139,6 +139,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 100% rename from patches/server/0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch diff --git a/patches/server/0210-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0212-Shift-right-click-to-use-exp-for-mending.patch similarity index 94% rename from patches/server/0210-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0212-Shift-right-click-to-use-exp-for-mending.patch index 819e0908ad..953b93d029 100644 --- a/patches/server/0210-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0212-Shift-right-click-to-use-exp-for-mending.patch @@ -36,10 +36,10 @@ index 5de06447de2ab2c45debf314aecd39722d4a7af6..3a50342ff3e8b9685b5595bf78c05bfe + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0b5c6557afa83fb018bf3843f2f290e3d1925487..ab20edfc54b37e06d5a775ec8e98f4875513bcae 100644 +index 78dcf97e46b6888d25cc685bc4216f02b4b079da..92e10daff379ed5a3b9cff6d3ab12bd96ab62da1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2050,6 +2050,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2051,6 +2051,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { @@ -48,7 +48,7 @@ index 0b5c6557afa83fb018bf3843f2f290e3d1925487..ab20edfc54b37e06d5a775ec8e98f487 cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0be19b3fc5fa6af23a3930a63e62199dffd538ea..c06d51200346d524a81e2d7a735db668da16c580 100644 +index 767659256e391854c0cd3035f138d86bbcaf6949..857df6dd4d1d598857d977107dcabbb25307ceab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -411,6 +411,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0211-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0213-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 100% rename from patches/server/0211-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0213-Dolphins-naturally-aggressive-to-players-chance.patch diff --git a/patches/server/0212-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0214-Cows-naturally-aggressive-to-players-chance.patch similarity index 100% rename from patches/server/0212-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0214-Cows-naturally-aggressive-to-players-chance.patch diff --git a/patches/server/0213-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0215-Option-for-beds-to-explode-on-villager-sleep.patch similarity index 94% rename from patches/server/0213-Option-for-beds-to-explode-on-villager-sleep.patch rename to patches/server/0215-Option-for-beds-to-explode-on-villager-sleep.patch index 4f0823d95c..0a1f3fd1d2 100644 --- a/patches/server/0213-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0215-Option-for-beds-to-explode-on-villager-sleep.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option for beds to explode on villager sleep 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 29916aa09d867ef3fa4dc8248b174bf8f97853b7..f78c41833169264fabc76d13bb4b9a89169aa0fe 100644 +index 6857eeb9a93850594cbdb634dfbdf6cb6d82ced5..20b3872b1f8464579ddd4324c9b09170f8ae4778 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1108,6 +1108,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1110,6 +1110,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public void startSleeping(BlockPos pos) { diff --git a/patches/server/0214-Halloween-options-and-optimizations.patch b/patches/server/0216-Halloween-options-and-optimizations.patch similarity index 92% rename from patches/server/0214-Halloween-options-and-optimizations.patch rename to patches/server/0216-Halloween-options-and-optimizations.patch index 45abb5be1f..42e8697021 100644 --- a/patches/server/0214-Halloween-options-and-optimizations.patch +++ b/patches/server/0216-Halloween-options-and-optimizations.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Halloween options and optimizations diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 0ed3d4f4cb9e2d11391c39633267becfd457102d..7d540fce81885776b417d6348dfffb6eb515beb5 100644 +index 39dc169eedc407284452380a883e8a2735cc46cb..980f2426a5052117f03ebb1ed3f7882b236ad86e 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -304,7 +304,7 @@ public class Bat extends AmbientCreature { @@ -17,14 +17,14 @@ index 0ed3d4f4cb9e2d11391c39633267becfd457102d..7d540fce81885776b417d6348dfffb6e b0 = 7; } else if (random.nextBoolean()) { return false; -@@ -314,6 +314,7 @@ public class Bat extends AmbientCreature { - } - } - +@@ -318,6 +318,7 @@ public class Bat extends AmbientCreature { + private static boolean isSpookySeason = false; + private static final int ONE_HOUR = 20 * 60 * 60; + private static int lastSpookyCheck = -ONE_HOUR; + public static boolean isHalloweenSeason(Level level) { return level.purpurConfig.forceHalloweenSeason || isHalloween(); } // Purpur private static boolean isHalloween() { + if (net.minecraft.server.MinecraftServer.currentTick - lastSpookyCheck > ONE_HOUR) { LocalDate localdate = LocalDate.now(); - int i = localdate.get(ChronoField.DAY_OF_MONTH); 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 f35637a105d5aa12fb57c2456f2b2a7db12a49f0..f3e1fa62d9f067c0fe8aacb88bf30b01ee0562c1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java diff --git a/patches/server/0215-Config-for-grindstones.patch b/patches/server/0217-Config-for-grindstones.patch similarity index 98% rename from patches/server/0215-Config-for-grindstones.patch rename to patches/server/0217-Config-for-grindstones.patch index 39bb5e3d8c..7c738dfc0b 100644 --- a/patches/server/0215-Config-for-grindstones.patch +++ b/patches/server/0217-Config-for-grindstones.patch @@ -57,7 +57,7 @@ index 076c2b2938c9b88b7e71dbc2aa9d8c7e90d4fe75..c79e87fde9de55dbfe8c3deaf725e2a7 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 62fa79eccbb6f679c0460a6dfd457c405b3a8e67..f3449eb7a1433a8420c0de6f4649f0fae70b2294 100644 +index 477639dddb7c5ae0c9cc45a6eca73d82e486409b..7161b449b20b6fb39a16df7a2da652168ccced97 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -309,6 +309,9 @@ public class PurpurConfig { diff --git a/patches/server/0216-UPnP-Port-Forwarding.patch b/patches/server/0218-UPnP-Port-Forwarding.patch similarity index 90% rename from patches/server/0216-UPnP-Port-Forwarding.patch rename to patches/server/0218-UPnP-Port-Forwarding.patch index 4d3b7849da..f43f5e8e4d 100644 --- a/patches/server/0216-UPnP-Port-Forwarding.patch +++ b/patches/server/0218-UPnP-Port-Forwarding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] UPnP Port Forwarding diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b2690db071a9ae26218406de09e37150a9d3eb66..bd89b6f3570998a6e9c9bb5cdf3b22e052269d89 100644 +index 60d2f483de06ca661aad809425d8b52397273732..4ac5205cb47dbe9d8fec7da19467f2060436cd9c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -309,6 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getModelRotationValues() { return this.modelRotationValues; diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index b41509e26808a025bc247fa209d3b9df10368013..5ac471fdc1acfd04a8cdf3e044949e48a6df208d 100644 +index 26062173d137e26abdc452f7b2e0be0ee6dddfa3..fba00cab2c4b234dd2e85b5f4dcd0db34183c1a2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -119,6 +119,11 @@ public class Goat extends Animal { @@ -549,7 +549,7 @@ index dcc1d71c2eeea48669651165868899ba4a797d48..813501e8aac1c121569cb996b47f0293 return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F); } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 73c967330cc793acc029c17f037d985e6ba919de..8f8a3e03eec72cd48b10649778ec2f26016c419a 100644 +index dd5552f87ec78c3b16aebe0767e124c368aa8c24..939f003dd488fe7e6c63db38fddebfb6b5cc0f38 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -132,6 +132,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -597,7 +597,7 @@ index 5dc0b3d04bfc01cd2cb004c18279840861dc4a57..c9bd400473166999479f5eef1edad529 public boolean doHurtTarget(Entity target) { if (super.doHurtTarget(target)) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index a8bc27c858c6ddec2ff2f84b5c1dc51c3b1b04b0..304ea7fdcd410a7c88ec61143364e14de8db0b0c 100644 +index 1a33d4e855a85b0a0d51c29dbb4042d30918684c..64f6b5f44db4fd90e789032e3833da60cfcfbef1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -277,6 +277,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -645,7 +645,7 @@ index cd1f830bf28b1c68e2b9cc7daa77f696234a22c9..df8d1b34078031001c50325b8cf5bfa9 return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } 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 3583d0c01410987584a53bb6e717d5636e2c9f69..c0180f3d7ef4f22bf967b2acc3dde3925283415d 100644 +index 02998e2f3d912d47641e7c9199467b5301de1e4c..4c9ffa8e1ab97d8156ead0ed189c769ffd9b4aae 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -120,6 +120,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -901,7 +901,7 @@ index 9363ec4aad2179274e4076c2acae577962a52d4b..8b6f8fca8402c177c399824c6bf0bdef public boolean dismountsUnderwater() { return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.slimeRidableInWater; diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 0f41e7127ece3c60500ab3cbb2e5bbc9c0bf013b..43ce5ffc6fc1853875f446b543d5b57502a21dc7 100644 +index 93eaa95e38304a4b86cda693289f60ad4923b5b8..241a6851179cfa566417a655bff7b06bdb7f9f4b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -80,6 +80,11 @@ public class Spider extends Monster { @@ -1077,7 +1077,7 @@ index 3574a1e641d8af34a0ff7ea8dcfb08641cf6ace0..df8c7a45eb49a8c667030eb67d6d49dc public void setPersistentAngerTarget(@Nullable UUID angryAt) { this.persistentAngerTarget = angryAt; diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index d1501c1048417defdf1766366b572f2c98989cc9..a3a21f0c102cadcbe5882de716e90272fddd7f8c 100644 +index d0144c99cf5c755c81fc0f9457b462c98ff3e804..e326e753cc6bca1bd00287d16c9796b9f3dd4d14 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -101,6 +101,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -1093,7 +1093,7 @@ index d1501c1048417defdf1766366b572f2c98989cc9..a3a21f0c102cadcbe5882de716e90272 public boolean canBeLeashed(Player player) { return !this.isLeashed(); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index f9e03dc7178c76ea70e45f265d9b42f9d2fe960d..7612a361645018a4f81c374c523bb191e0ff40f0 100644 +index e506dcf390ecb5cce8ae6993df7ec91b3ebc125e..9ca1618ab945ad834c5fc221ada49058f806e79c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -123,6 +123,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -1125,10 +1125,10 @@ index b63d87df0f48dd63c89118f91b31dc4e3622e3b8..61e8f2d030fc50840c3f80dfb6fc8107 return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D); } 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 f78c41833169264fabc76d13bb4b9a89169aa0fe..9eaa0908a9251a53e9d0434a6bf5105033b6fcd2 100644 +index 20b3872b1f8464579ddd4324c9b09170f8ae4778..9c86dc4b9cd558f0e8f97b63d6cab746bd30d10c 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -193,6 +193,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -195,6 +195,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return this.level().purpurConfig.villagerTakeDamageFromWater; } diff --git a/patches/server/0224-Potion-NamespacedKey.patch b/patches/server/0226-Potion-NamespacedKey.patch similarity index 100% rename from patches/server/0224-Potion-NamespacedKey.patch rename to patches/server/0226-Potion-NamespacedKey.patch diff --git a/patches/server/0225-Grindstone-API.patch b/patches/server/0227-Grindstone-API.patch similarity index 100% rename from patches/server/0225-Grindstone-API.patch rename to patches/server/0227-Grindstone-API.patch diff --git a/patches/server/0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch similarity index 100% rename from patches/server/0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch rename to patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch diff --git a/patches/server/0227-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0229-Shearing-jeb-produces-random-color-wool.patch similarity index 100% rename from patches/server/0227-Shearing-jeb-produces-random-color-wool.patch rename to patches/server/0229-Shearing-jeb-produces-random-color-wool.patch diff --git a/patches/server/0228-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0230-Turtle-eggs-random-tick-crack-chance.patch similarity index 100% rename from patches/server/0228-Turtle-eggs-random-tick-crack-chance.patch rename to patches/server/0230-Turtle-eggs-random-tick-crack-chance.patch diff --git a/patches/server/0229-Mob-head-visibility-percent.patch b/patches/server/0231-Mob-head-visibility-percent.patch similarity index 97% rename from patches/server/0229-Mob-head-visibility-percent.patch rename to patches/server/0231-Mob-head-visibility-percent.patch index f352e546bf..a02d6c88b4 100644 --- a/patches/server/0229-Mob-head-visibility-percent.patch +++ b/patches/server/0231-Mob-head-visibility-percent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Mob head visibility percent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cbf14a9f6c4059ac2246d840ff901113fb03f8cc..ccf94ec8c0fcff5d75365274f662ff24b3ade75d 100644 +index 2cefad6730dbd50e41917af287c041a13d81ba2e..fc5dfbeae6bf9256e98eae774ccd77111d3ba280 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1040,9 +1040,20 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1039,9 +1039,20 @@ public abstract class LivingEntity extends Entity implements Attackable { ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); EntityType entitytypes = entity.getType(); diff --git a/patches/server/0230-Configurable-valid-characters-for-usernames.patch b/patches/server/0232-Configurable-valid-characters-for-usernames.patch similarity index 95% rename from patches/server/0230-Configurable-valid-characters-for-usernames.patch rename to patches/server/0232-Configurable-valid-characters-for-usernames.patch index 3e98b03671..9625e8b9cb 100644 --- a/patches/server/0230-Configurable-valid-characters-for-usernames.patch +++ b/patches/server/0232-Configurable-valid-characters-for-usernames.patch @@ -17,7 +17,7 @@ index fd67cefb971b394042c0fdd845c20cf55d8efc2f..fab644c79287a444fd58c43547beba3e if (name == null || name.isEmpty() || name.length() > 16) { return false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index f562729f543ef2b5998c6c38c0a08b3ae4dab1bf..d56c2776d08306245618dca04cd39891bb61c1bd 100644 +index fe5a35568fdcd24c5020f003f85f3b4d3b4ac631..e24cd4274bfe7d8694a91f74a2f4674befb13bd6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -452,4 +452,11 @@ public class PurpurConfig { diff --git a/patches/server/0231-Shears-can-have-looting-enchantment.patch b/patches/server/0233-Shears-can-have-looting-enchantment.patch similarity index 99% rename from patches/server/0231-Shears-can-have-looting-enchantment.patch rename to patches/server/0233-Shears-can-have-looting-enchantment.patch index 97a8b881d8..b6a1805965 100644 --- a/patches/server/0231-Shears-can-have-looting-enchantment.patch +++ b/patches/server/0233-Shears-can-have-looting-enchantment.patch @@ -170,7 +170,7 @@ index f81faaf6d69b09f635d71491303fca1d494001c5..f782e8dd9d3456f345859dffd69e5830 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index d56c2776d08306245618dca04cd39891bb61c1bd..730a4a2e46aeb233d8036e8d7e1749dcb397e6c0 100644 +index e24cd4274bfe7d8694a91f74a2f4674befb13bd6..ffff69021335ca52d10a07bb3b3f272eea6ebcb5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -391,6 +391,7 @@ public class PurpurConfig { diff --git a/patches/server/0232-Stop-bees-from-dying-after-stinging.patch b/patches/server/0234-Stop-bees-from-dying-after-stinging.patch similarity index 100% rename from patches/server/0232-Stop-bees-from-dying-after-stinging.patch rename to patches/server/0234-Stop-bees-from-dying-after-stinging.patch diff --git a/patches/server/0233-Give-bee-counts-in-beehives-to-Purpur-clients.patch b/patches/server/0235-Give-bee-counts-in-beehives-to-Purpur-clients.patch similarity index 92% rename from patches/server/0233-Give-bee-counts-in-beehives-to-Purpur-clients.patch rename to patches/server/0235-Give-bee-counts-in-beehives-to-Purpur-clients.patch index 4b95f55b28..e8979ed0fd 100644 --- a/patches/server/0233-Give-bee-counts-in-beehives-to-Purpur-clients.patch +++ b/patches/server/0235-Give-bee-counts-in-beehives-to-Purpur-clients.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index bd89b6f3570998a6e9c9bb5cdf3b22e052269d89..c3e3f70b560206b42b4b5eac4fa47540a899706d 100644 +index 4ac5205cb47dbe9d8fec7da19467f2060436cd9c..878a1d7bd73924b0d311fcc1f3e9fd23dbfa649a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1063,6 +1063,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> { @@ -31,7 +31,7 @@ index c0ea20dcee8bb293df96bc6ee019e50ad6b383fd..ff99d6fa919391d43b7737a2819cf9eb } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index fa81039056af14c37426a508b7b2da77e8b50737..44e8822dae170c07e48ae016826a6710b7d7e29a 100644 +index 590286e593fec706a3f16f0080b35aa0637ca06d..f17b160b304b1adbde80690ae482986309f3befe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -451,8 +451,10 @@ public class PurpurConfig { diff --git a/patches/server/0240-Configurable-minimum-demand-for-trades.patch b/patches/server/0242-Configurable-minimum-demand-for-trades.patch similarity index 95% rename from patches/server/0240-Configurable-minimum-demand-for-trades.patch rename to patches/server/0242-Configurable-minimum-demand-for-trades.patch index 3534744771..4f656ed7e8 100644 --- a/patches/server/0240-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0242-Configurable-minimum-demand-for-trades.patch @@ -9,10 +9,10 @@ This patch adds a config option to allow the minimum demand to instead be configurable. 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 9eaa0908a9251a53e9d0434a6bf5105033b6fcd2..7b685f44109c44d7779a1fbf0152031193175bec 100644 +index 9c86dc4b9cd558f0e8f97b63d6cab746bd30d10c..cb6ca99d429b395c0c79b57b1709eb1b8899da82 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -544,7 +544,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -546,7 +546,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler while (iterator.hasNext()) { MerchantOffer merchantrecipe = (MerchantOffer) iterator.next(); diff --git a/patches/server/0241-Lobotomize-stuck-villagers.patch b/patches/server/0243-Lobotomize-stuck-villagers.patch similarity index 91% rename from patches/server/0241-Lobotomize-stuck-villagers.patch rename to patches/server/0243-Lobotomize-stuck-villagers.patch index ade6ab1289..61b4848410 100644 --- a/patches/server/0241-Lobotomize-stuck-villagers.patch +++ b/patches/server/0243-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers 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 7b685f44109c44d7779a1fbf0152031193175bec..52650c912b72de99a23eebf04c9a63945f04359c 100644 +index cb6ca99d429b395c0c79b57b1709eb1b8899da82..27e8f8bbaa25227c19399fab2bce8953d098e612 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -141,6 +141,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -15,9 +15,9 @@ index 7b685f44109c44d7779a1fbf0152031193175bec..52650c912b72de99a23eebf04c9a6394 + private boolean isLobotomized = false; public boolean isLobotomized() { return this.isLobotomized; } // Purpur + private int notLobotomizedCount = 0; // Purpur - public Villager(EntityType entityType, Level world) { - this(entityType, world, VillagerType.PLAINS); -@@ -198,6 +200,47 @@ public class Villager extends AbstractVillager implements ReputationEventHandler + public long nextGolemPanic = -1; // Pufferfish + +@@ -200,6 +202,47 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return this.level().purpurConfig.villagerAlwaysDropExp; } @@ -65,7 +65,7 @@ index 7b685f44109c44d7779a1fbf0152031193175bec..52650c912b72de99a23eebf04c9a6394 @Override public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error -@@ -294,14 +337,20 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -297,13 +340,19 @@ public class Villager extends AbstractVillager implements ReputationEventHandler // Paper start this.customServerAiStep(false); } @@ -80,8 +80,7 @@ index 7b685f44109c44d7779a1fbf0152031193175bec..52650c912b72de99a23eebf04c9a6394 + } else { + this.isLobotomized = false; + } - // if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (!inactive && (getRider() == null || !this.isControllable())) { // Purpur - only use brain if no rider + if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); // Paper - } + } else if (this.isLobotomized && shouldRestock()) restock(); diff --git a/patches/server/0242-Option-for-villager-display-trade-item.patch b/patches/server/0244-Option-for-villager-display-trade-item.patch similarity index 100% rename from patches/server/0242-Option-for-villager-display-trade-item.patch rename to patches/server/0244-Option-for-villager-display-trade-item.patch diff --git a/patches/server/0243-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0245-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch similarity index 100% rename from patches/server/0243-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch rename to patches/server/0245-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch diff --git a/patches/server/0244-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0246-Config-for-mob-last-hurt-by-player-time.patch similarity index 96% rename from patches/server/0244-Config-for-mob-last-hurt-by-player-time.patch rename to patches/server/0246-Config-for-mob-last-hurt-by-player-time.patch index ec1f5fee2f..ccb84dd6f0 100644 --- a/patches/server/0244-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0246-Config-for-mob-last-hurt-by-player-time.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for mob last hurt by player time diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index df60df664e2fe65f752752bcd084fa68795d4a23..b0db740c43c621daf3d5b6ce7efdd414195c1cd6 100644 +index fc5dfbeae6bf9256e98eae774ccd77111d3ba280..139f0f8b04c743df6c0534d09493d4f46407006e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1533,13 +1533,13 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1545,13 +1545,13 @@ public abstract class LivingEntity extends Entity implements Attackable { if (entity1 instanceof net.minecraft.world.entity.player.Player) { net.minecraft.world.entity.player.Player entityhuman = (net.minecraft.world.entity.player.Player) entity1; diff --git a/patches/server/0245-Anvil-repair-damage-options.patch b/patches/server/0247-Anvil-repair-damage-options.patch similarity index 100% rename from patches/server/0245-Anvil-repair-damage-options.patch rename to patches/server/0247-Anvil-repair-damage-options.patch diff --git a/patches/server/0246-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0248-Option-to-disable-turtle-egg-trampling-with-feather-.patch similarity index 100% rename from patches/server/0246-Option-to-disable-turtle-egg-trampling-with-feather-.patch rename to patches/server/0248-Option-to-disable-turtle-egg-trampling-with-feather-.patch diff --git a/patches/server/0247-Add-toggle-for-enchant-level-clamping.patch b/patches/server/0249-Add-toggle-for-enchant-level-clamping.patch similarity index 97% rename from patches/server/0247-Add-toggle-for-enchant-level-clamping.patch rename to patches/server/0249-Add-toggle-for-enchant-level-clamping.patch index 6853129493..61827c78c9 100644 --- a/patches/server/0247-Add-toggle-for-enchant-level-clamping.patch +++ b/patches/server/0249-Add-toggle-for-enchant-level-clamping.patch @@ -31,7 +31,7 @@ index 2048899f8e4c8211e8dde0d11148d647678009fa..1eec84e217f6dc929091fa7451cd235e @Nullable diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 44e8822dae170c07e48ae016826a6710b7d7e29a..4d147845402a26957c905dd600bf0657bb7bd714 100644 +index f17b160b304b1adbde80690ae482986309f3befe..c6628a28387023b334dd99a4e469126a2108c38b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -398,6 +398,7 @@ public class PurpurConfig { diff --git a/patches/server/0248-Skip-junit-tests-for-purpur-commands.patch b/patches/server/0250-Skip-junit-tests-for-purpur-commands.patch similarity index 100% rename from patches/server/0248-Skip-junit-tests-for-purpur-commands.patch rename to patches/server/0250-Skip-junit-tests-for-purpur-commands.patch diff --git a/patches/server/0249-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0251-Implement-configurable-search-radius-for-villagers-t.patch similarity index 94% rename from patches/server/0249-Implement-configurable-search-radius-for-villagers-t.patch rename to patches/server/0251-Implement-configurable-search-radius-for-villagers-t.patch index a3a279fbeb..d65ed8771a 100644 --- a/patches/server/0249-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0251-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn 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 52650c912b72de99a23eebf04c9a63945f04359c..a46fc13b3072b65dc9284ece6cbf63a743b5c1a7 100644 +index 27e8f8bbaa25227c19399fab2bce8953d098e612..576ac084a97a59f2bd3a1be3d70515649091e593 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -1098,6 +1098,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1100,6 +1100,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) { diff --git a/patches/server/0250-Stonecutter-damage.patch b/patches/server/0252-Stonecutter-damage.patch similarity index 100% rename from patches/server/0250-Stonecutter-damage.patch rename to patches/server/0252-Stonecutter-damage.patch diff --git a/patches/server/0251-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0253-Configurable-damage-settings-for-magma-blocks.patch similarity index 100% rename from patches/server/0251-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0253-Configurable-damage-settings-for-magma-blocks.patch diff --git a/patches/server/0252-Add-config-for-snow-on-blue-ice.patch b/patches/server/0254-Add-config-for-snow-on-blue-ice.patch similarity index 100% rename from patches/server/0252-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0254-Add-config-for-snow-on-blue-ice.patch diff --git a/patches/server/0253-Skeletons-eat-wither-roses.patch b/patches/server/0255-Skeletons-eat-wither-roses.patch similarity index 100% rename from patches/server/0253-Skeletons-eat-wither-roses.patch rename to patches/server/0255-Skeletons-eat-wither-roses.patch diff --git a/patches/server/0254-Enchantment-Table-Persists-Lapis.patch b/patches/server/0256-Enchantment-Table-Persists-Lapis.patch similarity index 100% rename from patches/server/0254-Enchantment-Table-Persists-Lapis.patch rename to patches/server/0256-Enchantment-Table-Persists-Lapis.patch diff --git a/patches/server/0255-Spark-Profiler.patch b/patches/server/0257-Spark-Profiler.patch similarity index 100% rename from patches/server/0255-Spark-Profiler.patch rename to patches/server/0257-Spark-Profiler.patch diff --git a/patches/server/0256-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0258-Option-to-disable-kick-for-out-of-order-chat.patch similarity index 87% rename from patches/server/0256-Option-to-disable-kick-for-out-of-order-chat.patch rename to patches/server/0258-Option-to-disable-kick-for-out-of-order-chat.patch index 16a1575699..b7a0bd06d4 100644 --- a/patches/server/0256-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0258-Option-to-disable-kick-for-out-of-order-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ab20edfc54b37e06d5a775ec8e98f4875513bcae..70c8b4ac1d1a06af280dcecafa6ccf4093b69c13 100644 +index 92e10daff379ed5a3b9cff6d3ab12bd96ab62da1..c3c5e08f76ea0c23261ae1235ca9a3948b7a1885 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1715,7 +1715,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1716,7 +1716,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl do { if (!iterator.hasNext()) { @@ -18,7 +18,7 @@ index ab20edfc54b37e06d5a775ec8e98f4875513bcae..70c8b4ac1d1a06af280dcecafa6ccf40 voxelshape1 = (VoxelShape) iterator.next(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index e78e809cc7644d5007b149d5940f8cc164a76975..ed9b2f0b55229848894d9d6b401d050cb031b893 100644 +index 3a49455509a26063a62e39fb3d3ad81e80bced54..40922e69274de6bc3da6f74b0216a816a1fb7722 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -456,9 +456,11 @@ public class PurpurConfig { diff --git a/patches/server/0257-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0259-Config-for-sculk-shrieker-can_summon-state.patch similarity index 100% rename from patches/server/0257-Config-for-sculk-shrieker-can_summon-state.patch rename to patches/server/0259-Config-for-sculk-shrieker-can_summon-state.patch diff --git a/patches/server/0258-Config-to-not-let-coral-die.patch b/patches/server/0260-Config-to-not-let-coral-die.patch similarity index 100% rename from patches/server/0258-Config-to-not-let-coral-die.patch rename to patches/server/0260-Config-to-not-let-coral-die.patch diff --git a/patches/server/0259-Add-local-difficulty-api.patch b/patches/server/0261-Add-local-difficulty-api.patch similarity index 100% rename from patches/server/0259-Add-local-difficulty-api.patch rename to patches/server/0261-Add-local-difficulty-api.patch diff --git a/patches/server/0260-Add-toggle-for-RNG-manipulation.patch b/patches/server/0262-Add-toggle-for-RNG-manipulation.patch similarity index 94% rename from patches/server/0260-Add-toggle-for-RNG-manipulation.patch rename to patches/server/0262-Add-toggle-for-RNG-manipulation.patch index 9cba5076fd..a971edea85 100644 --- a/patches/server/0260-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0262-Add-toggle-for-RNG-manipulation.patch @@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e0a3c7e23ebf6b8994d82964dd38cc8342e81aa3..24365907591a7e35fff0bc64a1f00e6e907c3bb7 100644 +index a94d7fcec60ffd9826f7c4828f0d98461261fb0b..67ebbf6005cdef280d62e2150287f18699b2fe6a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -592,7 +592,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -598,7 +598,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; this.nextStep = 1.0F; diff --git a/patches/server/0261-Send-client-custom-name-of-BE.patch b/patches/server/0263-Send-client-custom-name-of-BE.patch similarity index 100% rename from patches/server/0261-Send-client-custom-name-of-BE.patch rename to patches/server/0263-Send-client-custom-name-of-BE.patch diff --git a/patches/server/0262-Allow-custom-ChatDecorators.patch b/patches/server/0264-Allow-custom-ChatDecorators.patch similarity index 90% rename from patches/server/0262-Allow-custom-ChatDecorators.patch rename to patches/server/0264-Allow-custom-ChatDecorators.patch index 67db06b229..95e8cd3c6f 100644 --- a/patches/server/0262-Allow-custom-ChatDecorators.patch +++ b/patches/server/0264-Allow-custom-ChatDecorators.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow custom ChatDecorators Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c3e3f70b560206b42b4b5eac4fa47540a899706d..a751b8dce17aae891fe0400f52ecdb6e3784ee0a 100644 +index 878a1d7bd73924b0d311fcc1f3e9fd23dbfa649a..af2138126c52b6997851f142a702b5dba6259294 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2849,6 +2849,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { entityplayer.connection.suspendFlushing(); }); @@ -129,7 +129,7 @@ index a751b8dce17aae891fe0400f52ecdb6e3784ee0a..f1037c50605f1bf0f5dad383e245d93a // Paper start - Folia scheduler API ((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick(); getAllLevels().forEach(level -> { -@@ -1679,21 +1679,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return ichunkaccess1; -@@ -445,17 +445,17 @@ public class ServerChunkCache extends ChunkSource { +@@ -448,17 +448,17 @@ public class ServerChunkCache extends ChunkSource { public void save(boolean flush) { this.runDistanceManagerUpdates(); @@ -357,7 +357,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..e2b02a6f18932478c534a4eb4d349bad } // Paper end -@@ -485,23 +485,23 @@ public class ServerChunkCache extends ChunkSource { +@@ -488,23 +488,23 @@ public class ServerChunkCache extends ChunkSource { @Override public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) { this.level.getProfiler().push("purge"); @@ -387,7 +387,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..e2b02a6f18932478c534a4eb4d349bad this.level.getProfiler().pop(); this.clearCache(); } -@@ -517,13 +517,13 @@ public class ServerChunkCache extends ChunkSource { +@@ -520,14 +520,14 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("pollingChunks"); gameprofilerfiller.push("filteringLoadedChunks"); // Paper - optimise chunk tick iteration @@ -396,6 +396,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..e2b02a6f18932478c534a4eb4d349bad // Paper - optimise chunk tick iteration + this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random if (this.level.getServer().tickRateManager().runsNormally()) { gameprofilerfiller.popPush("naturalSpawnCount"); - this.level.timings.countNaturalMobs.startTiming(); // Paper - timings @@ -403,16 +404,16 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..e2b02a6f18932478c534a4eb4d349bad int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - per player mob spawning int naturalSpawnChunkCount = k; -@@ -548,7 +548,7 @@ public class ServerChunkCache extends ChunkSource { - spawnercreature_d = NaturalSpawner.createState(naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, !this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new LocalMobCapCalculator(this.chunkMap) : null, false); +@@ -557,7 +557,7 @@ public class ServerChunkCache extends ChunkSource { + // Pufferfish end } // Paper end - this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings + // this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur - this.lastSpawnState = spawnercreature_d; + // this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously gameprofilerfiller.popPush("spawnAndTick"); -@@ -657,19 +657,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -666,19 +666,19 @@ public class ServerChunkCache extends ChunkSource { } } // Paper end - optimise chunk tick iteration @@ -436,7 +437,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..e2b02a6f18932478c534a4eb4d349bad // Paper start - optimise chunk tick iteration if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet copy = this.chunkMap.needsChangeBroadcasting.clone(); -@@ -683,7 +683,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -692,7 +692,7 @@ public class ServerChunkCache extends ChunkSource { } } // Paper end - optimise chunk tick iteration @@ -446,7 +447,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..e2b02a6f18932478c534a4eb4d349bad gameprofilerfiller.pop(); gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6 100644 +index 9121c5371b083d07d6b488e1a49d24a91ecccba0..1d8d1c4499c901f2675ef9a0e6f9dcb851217680 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -867,7 +867,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -506,9 +507,9 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 - this.timings.entityTick.startTiming(); // Spigot + //this.timings.entityTick.startTiming(); // Spigot // Purpur this.entityTickList.forEach((entity) -> { + entity.activatedPriorityReset = false; // Pufferfish - DAB if (!entity.isRemoved()) { - if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed -@@ -941,8 +941,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -955,8 +955,8 @@ public class ServerLevel extends Level implements WorldGenLevel { } } }); @@ -519,7 +520,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 gameprofilerfiller.pop(); this.tickBlockEntities(); } -@@ -1084,7 +1084,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1100,7 +1100,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper gameprofilerfiller.popPush("tickBlocks"); @@ -528,7 +529,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 if (randomTickSpeed > 0) { // Paper start - optimize random block ticking LevelChunkSection[] sections = chunk.getSections(); -@@ -1118,7 +1118,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1134,7 +1134,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } // Paper end - optimise random block ticking @@ -537,7 +538,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 gameprofilerfiller.pop(); } -@@ -1462,8 +1462,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1478,8 +1478,8 @@ public class ServerLevel extends Level implements WorldGenLevel { // Spigot end // Paper start- timings final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity); @@ -548,7 +549,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 // Paper end - timings entity.setOldPosAndRot(); ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1479,7 +1479,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1495,7 +1495,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.postTick(); // CraftBukkit } else { entity.inactiveTick(); } // Paper - EAR 2 this.getProfiler().pop(); @@ -557,7 +558,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1502,8 +1502,8 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1518,8 +1518,8 @@ public class ServerLevel extends Level implements WorldGenLevel { if (passenger instanceof Player || this.entityTickList.contains(passenger)) { // Paper - EAR 2 final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger); @@ -568,7 +569,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; -@@ -1533,7 +1533,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1549,7 +1549,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -577,7 +578,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 } } else { passenger.stopRiding(); -@@ -1553,14 +1553,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1569,14 +1569,14 @@ public class ServerLevel extends Level implements WorldGenLevel { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); } @@ -595,7 +596,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 // Copied from save() // CraftBukkit start - moved from MinecraftServer.saveChunks -@@ -1572,7 +1572,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1588,7 +1588,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.convertable.saveDataTag(this.server.registryAccess(), this.serverLevelData, this.server.getPlayerList().getSingleplayerData()); } // CraftBukkit end @@ -604,7 +605,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 } // Paper end -@@ -1586,7 +1586,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1602,7 +1602,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (!savingDisabled) { org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(this.getWorld())); // CraftBukkit @@ -613,7 +614,7 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 if (progressListener != null) { progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel")); } -@@ -1596,11 +1596,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1612,11 +1612,11 @@ public class ServerLevel extends Level implements WorldGenLevel { progressListener.progressStage(Component.translatable("menu.savingChunks")); } @@ -629,10 +630,10 @@ index 90328eec0aefa1447e03e0003f43f2a27959cab0..3c0b3db58f31c7b63ab798a7be6076c6 } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a8c7534e50e89b281cc9dca8bacc3a00c219bcb0..bff8e4f1b6494ca9728a717199a051b3256cbd16 100644 +index c3c5e08f76ea0c23261ae1235ca9a3948b7a1885..95d5995d967f8a0a06aaaf81d6af7ae9ac83c731 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2452,7 +2452,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2453,7 +2453,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void handleCommand(String s) { // Paper - private -> public org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher @@ -641,7 +642,7 @@ index a8c7534e50e89b281cc9dca8bacc3a00c219bcb0..bff8e4f1b6494ca9728a717199a051b3 if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2462,7 +2462,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2463,7 +2463,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -650,7 +651,7 @@ index a8c7534e50e89b281cc9dca8bacc3a00c219bcb0..bff8e4f1b6494ca9728a717199a051b3 return; } -@@ -2475,7 +2475,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -2476,7 +2476,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { @@ -731,10 +732,10 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1 } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 538cd41c655b6995ea9cc72cf3471a59f3461902..c5486e8c4136dac3d2040841027cc14eecbae6ff 100644 +index d4da05d29545a4a40f4b6489aa22813d580874c4..5777e5e31b1a7a7911c183db990f16fe7fc9b9ef 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1311,15 +1311,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1313,15 +1313,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable { ProfilerFiller gameprofilerfiller = this.getProfiler(); gameprofilerfiller.push("blockEntities"); @@ -753,7 +754,7 @@ index 538cd41c655b6995ea9cc72cf3471a59f3461902..c5486e8c4136dac3d2040841027cc14e // Spigot start // Iterator iterator = this.blockEntityTickers.iterator(); boolean flag = this.tickRateManager().runsNormally(); -@@ -1348,7 +1348,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1350,7 +1350,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } this.blockEntityTickers.removeAll(toRemove); @@ -763,7 +764,7 @@ index 538cd41c655b6995ea9cc72cf3471a59f3461902..c5486e8c4136dac3d2040841027cc14e co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper gameprofilerfiller.pop(); diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 3cdddda9c0618e95288b81b975d499c8dd30c05f..6a5dddfd120760b3334d8a4c4ebde84744083392 100644 +index 9c2d62feff1816f5729060c6192269a5b2d34153..1e3349690d00c7889a381f7c65a3b5bf3de2ac5b 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -133,7 +133,7 @@ public final class NaturalSpawner { @@ -785,10 +786,10 @@ index 3cdddda9c0618e95288b81b975d499c8dd30c05f..6a5dddfd120760b3334d8a4c4ebde847 } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index fa170cc1ce7011d201295b89718292d696c7fc24..5e91f70a994ffa92e3aa794b52441790766cd774 100644 +index b9aca339851cdaa6325c04e5cea847904752c63c..88b7f814a1454841b1f1b27e9c7d66d64717a422 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -786,7 +786,7 @@ public class LevelChunk extends ChunkAccess { +@@ -800,7 +800,7 @@ public class LevelChunk extends ChunkAccess { this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system if (this.needsDecoration) { @@ -797,7 +798,7 @@ index fa170cc1ce7011d201295b89718292d696c7fc24..5e91f70a994ffa92e3aa794b52441790 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -806,7 +806,7 @@ public class LevelChunk extends ChunkAccess { +@@ -820,7 +820,7 @@ public class LevelChunk extends ChunkAccess { } } server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); @@ -806,7 +807,7 @@ index fa170cc1ce7011d201295b89718292d696c7fc24..5e91f70a994ffa92e3aa794b52441790 } } } -@@ -1164,7 +1164,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1178,7 +1178,7 @@ public class LevelChunk extends ChunkAccess { ProfilerFiller gameprofilerfiller = LevelChunk.this.level.getProfiler(); gameprofilerfiller.push(this::getType); @@ -815,7 +816,7 @@ index fa170cc1ce7011d201295b89718292d696c7fc24..5e91f70a994ffa92e3aa794b52441790 BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); if (this.blockEntity.getType().isValid(iblockdata)) { -@@ -1186,7 +1186,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1200,7 +1200,7 @@ public class LevelChunk extends ChunkAccess { // Paper end // Spigot start } finally { @@ -902,10 +903,10 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..d3ec817e95628f1fc8be4a29c9a0f13c // Paper end - add timings for scoreboard search } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 3fb2ae23bcbf0c397e91a958796f13a2dfedd152..a828dbdd755368b74501cc0bab2e38e7fde6f2bd 100644 +index a7ecbd77d0017a298b94cceeddc049eff713f60f..0b03dae85e6008283e68b07fa438daccf0e4f5fa 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -166,7 +166,7 @@ public class ActivationRange +@@ -170,7 +170,7 @@ public class ActivationRange */ public static void activateEntities(Level world) { @@ -914,7 +915,7 @@ index 3fb2ae23bcbf0c397e91a958796f13a2dfedd152..a828dbdd755368b74501cc0bab2e38e7 final int miscActivationRange = world.spigotConfig.miscActivationRange; final int raiderActivationRange = world.spigotConfig.raiderActivationRange; final int animalActivationRange = world.spigotConfig.animalActivationRange; -@@ -227,7 +227,7 @@ public class ActivationRange +@@ -250,7 +250,7 @@ public class ActivationRange } // Paper end } diff --git a/patches/server/0264-Remove-Mojang-Profiler.patch b/patches/server/0266-Remove-Mojang-Profiler.patch similarity index 88% rename from patches/server/0264-Remove-Mojang-Profiler.patch rename to patches/server/0266-Remove-Mojang-Profiler.patch index 30b9c9f7f5..81a068032f 100644 --- a/patches/server/0264-Remove-Mojang-Profiler.patch +++ b/patches/server/0266-Remove-Mojang-Profiler.patch @@ -89,10 +89,10 @@ index 821dc4aeaf48460000682604fba51b340b9738e7..3aa2ce6a2a3d3cdfc372a60419a09f49 } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f1037c50605f1bf0f5dad383e245d93a8bcf6f8b..e764ad7096852d8905422e8d0f140ed16c5b4498 100644 +index a74a0746c1757b4ff0bc75416fd22f6ed907b6da..b563b1d4129cf3fb15f5ab4e08acfd380d0ddf12 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -342,13 +342,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; try { this.isSaving = true; -@@ -1567,7 +1567,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur @@ -244,7 +244,7 @@ index f1037c50605f1bf0f5dad383e245d93a8bcf6f8b..e764ad7096852d8905422e8d0f140ed1 try { //worldserver.timings.doTick.startTiming(); // Spigot // Purpur -@@ -1762,17 +1762,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { this.executeBlocking(() -> { this.saveDebugReport(path.resolve("server")); -@@ -2728,40 +2729,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f); + + private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4]; +- ++ + public boolean firstRunSpawnCounts = true; // Pufferfish + public final java.util.concurrent.atomic.AtomicBoolean _pufferfish_spawnCountsReady = new java.util.concurrent.atomic.AtomicBoolean(false); // Pufferfish - optimize countmobs + +@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource { return ifLoaded; } // Paper end @@ -499,7 +509,7 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 CompletableFuture> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor; -@@ -472,24 +472,24 @@ public class ServerChunkCache extends ChunkSource { +@@ -475,24 +475,24 @@ public class ServerChunkCache extends ChunkSource { // CraftBukkit start - modelled on below public void purgeUnload() { if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system @@ -529,7 +539,7 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 if (tickChunks) { //this.level.timings.chunks.startTiming(); // Paper - timings // Purpur this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes -@@ -499,10 +499,10 @@ public class ServerChunkCache extends ChunkSource { +@@ -502,10 +502,10 @@ public class ServerChunkCache extends ChunkSource { } //this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur @@ -542,7 +552,7 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 this.clearCache(); } -@@ -512,17 +512,17 @@ public class ServerChunkCache extends ChunkSource { +@@ -515,10 +515,10 @@ public class ServerChunkCache extends ChunkSource { this.lastInhabitedUpdate = i; if (!this.level.isDebug()) { @@ -556,24 +566,25 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 // Paper - optimise chunk tick iteration //if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper // Purpur - // Paper - optimise chunk tick iteration +@@ -526,7 +526,7 @@ public class ServerChunkCache extends ChunkSource { + this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random if (this.level.getServer().tickRateManager().runsNormally()) { - gameprofilerfiller.popPush("naturalSpawnCount"); + // gameprofilerfiller.popPush("naturalSpawnCount"); // Purpur //this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur int k = this.distanceManager.getNaturalSpawnChunkCount(); // Paper start - per player mob spawning -@@ -551,7 +551,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -560,7 +560,7 @@ public class ServerChunkCache extends ChunkSource { // this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur - this.lastSpawnState = spawnercreature_d; + // this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously - gameprofilerfiller.popPush("spawnAndTick"); + //gameprofilerfiller.popPush("spawnAndTick"); // Purpur boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit // Paper start - optimise chunk tick iteration -@@ -659,7 +659,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -668,7 +668,7 @@ public class ServerChunkCache extends ChunkSource { // Paper end - optimise chunk tick iteration // this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur @@ -582,7 +593,7 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 if (flag) { //try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings // Purpur this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies); -@@ -667,7 +667,7 @@ public class ServerChunkCache extends ChunkSource { +@@ -676,7 +676,7 @@ public class ServerChunkCache extends ChunkSource { } } @@ -591,7 +602,7 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 // Paper - optimise chunk tick iteration //this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur // Paper start - optimise chunk tick iteration -@@ -685,8 +685,8 @@ public class ServerChunkCache extends ChunkSource { +@@ -694,10 +694,10 @@ public class ServerChunkCache extends ChunkSource { // Paper end - optimise chunk tick iteration //this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur // Paper - optimise chunk tick iteration @@ -600,9 +611,12 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 + //gameprofilerfiller.pop(); // Purpur + //gameprofilerfiller.pop(); // Purpur } - } - -@@ -858,7 +858,7 @@ public class ServerChunkCache extends ChunkSource { +- ++ + // Pufferfish start - optimize mob spawning + if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) { + for (ServerPlayer player : this.level.players) { +@@ -901,7 +901,7 @@ public class ServerChunkCache extends ChunkSource { @Override protected void doRunTask(Runnable task) { @@ -612,7 +626,7 @@ index e2b02a6f18932478c534a4eb4d349badadbe04a2..248bb50532e2dfab7116f72dd2469620 } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7afb28def7f 100644 +index 1d8d1c4499c901f2675ef9a0e6f9dcb851217680..dd0ef00d29d4caa3a1fe8513ec82d72f64fc308f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -825,16 +825,16 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -698,7 +712,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af } org.spigotmc.ActivationRange.activateEntities(this); // Spigot -@@ -920,9 +920,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -921,9 +921,9 @@ public class ServerLevel extends Level implements WorldGenLevel { if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed entity.discard(); } else if (!tickratemanager.isEntityFrozen(entity)) { @@ -710,13 +724,19 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list Entity entity1 = entity.getVehicle(); -@@ -934,22 +934,21 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -935,7 +935,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.stopRiding(); } - gameprofilerfiller.push("tick"); + //gameprofilerfiller.push("tick"); // Purpur - this.guardEntityTick(this::tickNonPassenger, entity); + // Pufferfish start - copied from this.guardEntityTick + try { + this.tickNonPassenger(entity); // Pufferfish - changed +@@ -950,20 +950,19 @@ public class ServerLevel extends Level implements WorldGenLevel { + // Paper end + } + // Pufferfish end - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); // Purpur } @@ -737,7 +757,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af } @Override -@@ -1029,9 +1028,9 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1045,9 +1044,9 @@ public class ServerLevel extends Level implements WorldGenLevel { boolean flag = this.isRaining(); int j = chunkcoordintpair.getMinBlockX(); int k = chunkcoordintpair.getMinBlockZ(); @@ -748,8 +768,8 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af + //gameprofilerfiller.push("thunder"); // Purpur final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change - if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder -@@ -1070,7 +1069,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning +@@ -1086,7 +1085,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } @@ -758,7 +778,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af if (!this.paperConfig().environment.disableIceAndSnow) { // Paper for (int l = 0; l < randomTickSpeed; ++l) { -@@ -1083,7 +1082,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1099,7 +1098,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } } // Paper @@ -767,7 +787,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af //timings.chunkTicksBlocks.startTiming(); // Paper // Purpur if (randomTickSpeed > 0) { // Paper start - optimize random block ticking -@@ -1119,7 +1118,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1135,7 +1134,7 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end - optimise random block ticking //timings.chunkTicksBlocks.stopTiming(); // Paper // Purpur @@ -776,7 +796,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af } @VisibleForTesting -@@ -1466,19 +1465,19 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1482,19 +1481,19 @@ public class ServerLevel extends Level implements WorldGenLevel { //try { // Purpur // Paper end - timings entity.setOldPosAndRot(); @@ -801,7 +821,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af //} finally { timer.stopTiming(); } // Paper - timings // Purpur Iterator iterator = entity.getPassengers().iterator(); -@@ -1507,12 +1506,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1523,12 +1522,12 @@ public class ServerLevel extends Level implements WorldGenLevel { // Paper end passenger.setOldPosAndRot(); ++passenger.tickCount; @@ -818,7 +838,7 @@ index 3c0b3db58f31c7b63ab798a7be6076c6cee5f9f6..90fd350cec2ca726ff6707ab2cd3c7af // Paper start - EAR 2 if (isActive) { passenger.rideTick(); -@@ -1524,7 +1523,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1540,7 +1539,7 @@ public class ServerLevel extends Level implements WorldGenLevel { vehicle.positionRider(passenger); } // Paper end - EAR 2 @@ -1087,10 +1107,10 @@ index 2e6e8eac987c4ef6b2dcd3de592d8a51d2b29792..863343a87fe34d72f04af89d75268b47 }; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1ffae4335 100644 +index 67ebbf6005cdef280d62e2150287f18699b2fe6a..386259c78d134814479427b0591f0c6f4d064c91 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -834,7 +834,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -846,7 +846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // CraftBukkit end public void baseTick() { @@ -1099,7 +1119,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking this.feetBlockState = null; if (this.isPassenger() && this.getVehicle().isRemoved()) { -@@ -895,7 +895,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -907,7 +907,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.firstTick = false; @@ -1108,7 +1128,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 } public void setSharedFlagOnFire(boolean onFire) { -@@ -1114,7 +1114,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1126,7 +1126,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } @@ -1117,7 +1137,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) { movement = movement.multiply(this.stuckSpeedMultiplier); this.stuckSpeedMultiplier = Vec3.ZERO; -@@ -1123,7 +1123,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1135,7 +1135,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S // Paper start - ignore movement changes while inactive. if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) { setDeltaMovement(Vec3.ZERO); @@ -1126,7 +1146,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 return; } // Paper end -@@ -1144,8 +1144,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1156,8 +1156,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z); } @@ -1137,7 +1157,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 boolean flag = !Mth.equal(movement.x, vec3d1.x); boolean flag1 = !Mth.equal(movement.z, vec3d1.z); -@@ -1164,7 +1164,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1176,7 +1176,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition); if (this.isRemoved()) { @@ -1146,7 +1166,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 } else { if (this.horizontalCollision) { Vec3 vec3d2 = this.getDeltaMovement(); -@@ -1302,7 +1302,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1314,7 +1314,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.setRemainingFireTicks(-this.getFireImmuneTicks()); } @@ -1155,7 +1175,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 } } // Paper start - detailed watchdog information -@@ -3175,7 +3175,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3187,7 +3187,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey); if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit @@ -1164,7 +1184,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 this.portalTime = i; // Paper start io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER); -@@ -3193,7 +3193,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3205,7 +3205,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } } // Paper // CraftBukkit end @@ -1173,7 +1193,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 } this.isInsidePortal = false; -@@ -3668,14 +3668,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3680,14 +3680,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } // Paper end if (this.level() instanceof ServerLevel && !this.isRemoved()) { @@ -1190,7 +1210,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit if (shapedetectorshape == null) { -@@ -3714,7 +3714,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3726,7 +3726,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S this.unRide(); // CraftBukkit end @@ -1199,7 +1219,7 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 // Paper start - Change lead drop timing to prevent dupe if (this instanceof Mob) { ((Mob) this).dropLeash(true, true); // Paper drop lead -@@ -3741,10 +3741,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -3753,10 +3753,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } this.removeAfterChangingDimensions(); @@ -1213,10 +1233,10 @@ index 24365907591a7e35fff0bc64a1f00e6e907c3bb7..b45064a92674a4c48350c466b8131bf1 } } else { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d47dd03c1 100644 +index 139f0f8b04c743df6c0534d09493d4f46407006e..ae8efb754e89c925647aa515f2e5bfc4c75a3857 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -410,7 +410,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -409,7 +409,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } super.baseTick(); @@ -1225,7 +1245,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d if (this.fireImmune() || this.level().isClientSide) { this.clearFire(); } -@@ -513,7 +513,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -512,7 +512,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO = this.yHeadRot; this.yRotO = this.getYRot(); this.xRotO = this.getXRot(); @@ -1234,7 +1254,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d } public boolean canSpawnSoulSpeedParticle() { -@@ -3138,10 +3138,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3164,10 +3164,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.run += (f3 - this.run) * 0.3F; @@ -1248,7 +1268,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d // Paper start - stop large pitch and yaw changes from crashing the server this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; -@@ -3153,7 +3153,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3179,7 +3179,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Paper end @@ -1257,7 +1277,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d this.animStep += f2; if (this.isFallFlying()) { ++this.fallFlyTicks; -@@ -3448,19 +3448,19 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3474,19 +3474,19 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.setDeltaMovement(d0, d1, d2); @@ -1282,7 +1302,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d if (this.jumping && this.isAffectedByFluids()) { double d3; -@@ -3487,8 +3487,8 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3513,8 +3513,8 @@ public abstract class LivingEntity extends Entity implements Attackable { this.noJumpDelay = 0; } @@ -1293,7 +1313,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d this.xxa *= 0.98F; this.zza *= 0.98F; this.updateFallFlying(); -@@ -3515,8 +3515,8 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3541,8 +3541,8 @@ public abstract class LivingEntity extends Entity implements Attackable { this.travel(vec3d1); } @@ -1304,7 +1324,7 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d if (!this.level().isClientSide && !this.isDeadOrDying() && !this.freezeLocked) { // Paper - Freeze Tick Lock API int i = this.getTicksFrozen(); -@@ -3533,15 +3533,15 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3559,15 +3559,15 @@ public abstract class LivingEntity extends Entity implements Attackable { this.hurt(this.damageSources().freeze(), 1.0F); } @@ -1324,10 +1344,10 @@ index b0db740c43c621daf3d5b6ce7efdd414195c1cd6..8bbd55274e503284a0d878883c67ff1d // Purpur start if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce..b1212f456f2cf1b4aae1fe0e301dfaab26a305ea 100644 +index 31f1a485fc3e8d40f7181a5f8af4f56d9c25e2fc..2b57be8b158ab9736a2ab4a454edfe38f2ff6785 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -365,13 +365,13 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -367,13 +367,13 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override public void baseTick() { super.baseTick(); @@ -1343,7 +1363,7 @@ index 7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce..b1212f456f2cf1b4aae1fe0e301dfaab incrementTicksSinceLastInteraction(); // Purpur } -@@ -702,7 +702,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -704,7 +704,7 @@ public abstract class Mob extends LivingEntity implements Targeting { @Override public void aiStep() { super.aiStep(); @@ -1352,7 +1372,7 @@ index 7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce..b1212f456f2cf1b4aae1fe0e301dfaab if (!this.level().isClientSide && this.canPickUpLoot() && this.isAlive() && !this.dead && (this.level().purpurConfig.entitiesPickUpLootBypassMobGriefing || this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { Vec3i baseblockposition = this.getPickupReach(); List list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); -@@ -722,7 +722,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -724,7 +724,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } } @@ -1361,7 +1381,7 @@ index 7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce..b1212f456f2cf1b4aae1fe0e301dfaab } protected Vec3i getPickupReach() { -@@ -934,42 +934,42 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -936,46 +936,46 @@ public abstract class Mob extends LivingEntity implements Targeting { return; } // Paper end @@ -1375,22 +1395,26 @@ index 7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce..b1212f456f2cf1b4aae1fe0e301dfaab if (i % 2 != 0 && this.tickCount > 1) { - this.level().getProfiler().push("targetSelector"); + //this.level().getProfiler().push("targetSelector"); // Purpur + if (this.targetSelector.inactiveTick(this.activatedPriority, false)) // Pufferfish - use this to alternate ticking this.targetSelector.tickRunningGoals(false); - this.level().getProfiler().pop(); - this.level().getProfiler().push("goalSelector"); + //this.level().getProfiler().pop(); // Purpur + //this.level().getProfiler().push("goalSelector"); // Purpur + if (this.goalSelector.inactiveTick(this.activatedPriority, false)) // Pufferfish - use this to alternate ticking this.goalSelector.tickRunningGoals(false); - this.level().getProfiler().pop(); + //this.level().getProfiler().pop(); // Purpur } else { - this.level().getProfiler().push("targetSelector"); -+ //this.level().getProfiler().push("targetSelector"); ++ //this.level().getProfiler().push("targetSelector"); // Purpur + if (this.targetSelector.inactiveTick(this.activatedPriority, false)) // Pufferfish - use this to alternate ticking this.targetSelector.tick(); - this.level().getProfiler().pop(); - this.level().getProfiler().push("goalSelector"); + //this.level().getProfiler().pop(); // Purpur + //this.level().getProfiler().push("goalSelector"); // Purpur + if (this.goalSelector.inactiveTick(this.activatedPriority, false)) // Pufferfish - use this to alternate ticking this.goalSelector.tick(); - this.level().getProfiler().pop(); + //this.level().getProfiler().pop(); // Purpur @@ -1425,10 +1449,10 @@ index 7c8bdf0ec5c61d8a79fcaa68f1f79b7f56705dce..b1212f456f2cf1b4aae1fe0e301dfaab } diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -index b738ee2d3801fadfd09313f05ae24593e56b0ec6..8a70bc63e12838f45fa3eade74f2899438715886 100644 +index 1635818fc4b1788c0d397085239df6dd75b210ab..02978315bc2b828cc603ce7478408f3f82c249c2 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java -@@ -102,8 +102,8 @@ public class GoalSelector { +@@ -105,8 +105,8 @@ public class GoalSelector { } public void tick() { @@ -1439,7 +1463,7 @@ index b738ee2d3801fadfd09313f05ae24593e56b0ec6..8a70bc63e12838f45fa3eade74f28994 for(WrappedGoal wrappedGoal : this.availableGoals) { if (wrappedGoal.isRunning() && (goalContainsAnyFlags(wrappedGoal, this.goalTypes) || !wrappedGoal.canContinueToUse())) { -@@ -120,8 +120,8 @@ public class GoalSelector { +@@ -123,8 +123,8 @@ public class GoalSelector { } } @@ -1450,7 +1474,7 @@ index b738ee2d3801fadfd09313f05ae24593e56b0ec6..8a70bc63e12838f45fa3eade74f28994 for(WrappedGoal wrappedGoal2 : this.availableGoals) { // Paper start -@@ -141,13 +141,13 @@ public class GoalSelector { +@@ -144,13 +144,13 @@ public class GoalSelector { } } @@ -1467,7 +1491,7 @@ index b738ee2d3801fadfd09313f05ae24593e56b0ec6..8a70bc63e12838f45fa3eade74f28994 for(WrappedGoal wrappedGoal : this.availableGoals) { if (wrappedGoal.isRunning() && (tickAll || wrappedGoal.requiresUpdateEveryTick())) { -@@ -155,7 +155,7 @@ public class GoalSelector { +@@ -158,7 +158,7 @@ public class GoalSelector { } } @@ -1512,16 +1536,16 @@ index 51772f03a3469b11e7166ec6f3a1b9c64a606221..02f2f46ccc48bb4d9bd08555818b0489 this.seen.add(i); } else { 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 80ff5b8b2041afd7ffef99c33ecd4f5252e827fe..f9af021350df28f286028099d857f034bc03913b 100644 +index 09f796ec491f21520e1fcc454249e4696dad3b1b..9bf06cf7b3706f8883e1a0ceac8b1aebb52ba475 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 -@@ -258,13 +258,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS - +@@ -259,13 +259,13 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level().getProfiler().push("allayBrain"); + //this.level().getProfiler().push("allayBrain"); // Purpur - //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish + if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); - this.level().getProfiler().pop(); - this.level().getProfiler().push("allayActivityUpdate"); @@ -1534,16 +1558,16 @@ index 80ff5b8b2041afd7ffef99c33ecd4f5252e827fe..f9af021350df28f286028099d857f034 } diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index a2664e7961bba5231d81b90f7fc2cf43a116114a..5f3670c02ddbb923a96ba0c6199c49e665d224c4 100644 +index b7eaa9e99688ae300c2e9176991c29828d1cc800..e4d529825e681bbc656113b1fd44894338e23d21 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -@@ -314,13 +314,13 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder { - +@@ -215,13 +215,13 @@ public class Frog extends Animal implements VariantHolder { + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level().getProfiler().push("frogBrain"); + //this.level().getProfiler().push("frogBrain"); // Purpur - // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish + if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel)this.level(), this); - this.level().getProfiler().pop(); - this.level().getProfiler().push("frogActivityUpdate"); @@ -1600,16 +1624,16 @@ index 44a0c13c57e0823938938de4d89921cb73e112c2..b95b6d35635ebcc4ed70d3114f1b27bb } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index e46475c2d44923167da7c654cb8af6b6278c7149..1e86f144d6139cff52ccc48f03f3283aa6517736 100644 +index 3103df74b7ae5a5ed841bf97794284cd43ad59de..14135dac80dec4224715e21cef6556d22e569026 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -@@ -116,12 +116,12 @@ public class Tadpole extends AbstractFish { - +@@ -117,12 +117,12 @@ public class Tadpole extends AbstractFish { + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level().getProfiler().push("tadpoleBrain"); + //this.level().getProfiler().push("tadpoleBrain"); // Purpur - // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish + if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider - this.level().getProfiler().pop(); - this.level().getProfiler().push("tadpoleActivityUpdate"); + //this.level().getProfiler().pop(); // Purpur @@ -1621,16 +1645,16 @@ index e46475c2d44923167da7c654cb8af6b6278c7149..1e86f144d6139cff52ccc48f03f3283a } diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 5ac471fdc1acfd04a8cdf3e044949e48a6df208d..1162318d8d187b8bdb30d28f6f61c430452c41b5 100644 +index fba00cab2c4b234dd2e85b5f4dcd0db34183c1a2..806b207e5246db7daa03bebabd7aa574d8b0dab7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -@@ -225,13 +225,13 @@ public class Goat extends Animal { - +@@ -226,13 +226,13 @@ public class Goat extends Animal { + private int behaviorTick = 0; // Pufferfish @Override protected void customServerAiStep() { - this.level().getProfiler().push("goatBrain"); + //this.level().getProfiler().push("goatBrain"); // Purpur - // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish + if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); - this.level().getProfiler().pop(); - this.level().getProfiler().push("goatActivityUpdate"); @@ -1697,16 +1721,16 @@ index ab183a7d94a27d5235ff33ce7784c92d66d40b89..94431d5c789a9f558c16c0d1fc8f1f74 } diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index a3a21f0c102cadcbe5882de716e90272fddd7f8c..468351b78af72c5ce998f9179f14d53951e95e46 100644 +index e326e753cc6bca1bd00287d16c9796b9f3dd4d14..9d6c4f13c4a444c6c815c6c4f2114142f166b9bb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -@@ -167,10 +167,10 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { - +@@ -168,10 +168,10 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { + private int behaviorTick; // Pufferfish @Override protected void customServerAiStep() { - this.level().getProfiler().push("hoglinBrain"); + //this.level().getProfiler().push("hoglinBrain"); // Purpur - // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish + if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel)this.level(), this); - this.level().getProfiler().pop(); + //this.level().getProfiler().pop(); // Purpur @@ -1714,16 +1738,16 @@ index a3a21f0c102cadcbe5882de716e90272fddd7f8c..468351b78af72c5ce998f9179f14d539 if (this.isConverting()) { ++this.timeInOverworld; diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 7612a361645018a4f81c374c523bb191e0ff40f0..2174a583b6db56520fa7523adc3c09e56ed7e85e 100644 +index 9ca1618ab945ad834c5fc221ada49058f806e79c..8e829d522a6012f409161ad5a9a06721a942d7e4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -334,10 +334,10 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento - +@@ -335,10 +335,10 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento + private int behaviorTick; // Pufferfish @Override protected void customServerAiStep() { - this.level().getProfiler().push("piglinBrain"); + //this.level().getProfiler().push("piglinBrain"); // Purpur - // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish + if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider this.getBrain().tick((ServerLevel) this.level(), this); - this.level().getProfiler().pop(); + //this.level().getProfiler().pop(); // Purpur @@ -1748,15 +1772,16 @@ index 61e8f2d030fc50840c3f80dfb6fc810797ec440f..856e6e02c9424a6c06e310262cb4f5bd PiglinBruteAi.maybePlayActivitySound(this); super.customServerAiStep(); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index 53035057b715401381b4f5438c82a61fe6012a7e..656c4ee100364a3299cb78f7173ee0506d46ff04 100644 +index 63e4688d8055cf4a8883477f7943bf63520c0693..22263f219ce9e9f014abb76c43297c528acb36eb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -@@ -301,9 +301,9 @@ public class Warden extends Monster implements VibrationSystem { +@@ -302,10 +302,10 @@ public class Warden extends Monster implements VibrationSystem { protected void customServerAiStep() { ServerLevel worldserver = (ServerLevel) this.level(); - worldserver.getProfiler().push("wardenBrain"); + //worldserver.getProfiler().push("wardenBrain"); // Purpur + if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish this.getBrain().tick(worldserver, this); - this.level().getProfiler().pop(); + //this.level().getProfiler().pop(); // Purpur @@ -1764,10 +1789,10 @@ index 53035057b715401381b4f5438c82a61fe6012a7e..656c4ee100364a3299cb78f7173ee050 if ((this.tickCount + this.getId()) % 120 == 0) { Warden.applyDarknessAround(worldserver, this.position(), this, 20); 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 a46fc13b3072b65dc9284ece6cbf63a743b5c1a7..fe68013f8efa35e6dfcf658df3b33d9d3df73979 100644 +index 576ac084a97a59f2bd3a1be3d70515649091e593..68404053233985cb830e95e287c81875a3b86957 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -339,7 +339,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -342,7 +342,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } protected void customServerAiStep(boolean inactive) { // Purpur - not final // Paper end @@ -1776,7 +1801,7 @@ index a46fc13b3072b65dc9284ece6cbf63a743b5c1a7..fe68013f8efa35e6dfcf658df3b33d9d // Purpur start if (this.level().purpurConfig.villagerLobotomizeEnabled) { // treat as inactive if lobotomized -@@ -352,7 +352,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -354,7 +354,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler this.getBrain().tick((ServerLevel) this.level(), this); // Paper } else if (this.isLobotomized && shouldRestock()) restock(); // Purpur end @@ -1808,10 +1833,10 @@ index 9442f58dff89ec843c321533965fbee2727d02f8..17abd085b3faf88e10a44a6c98af9968 if (this.fire) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c5486e8c4136dac3d2040841027cc14eecbae6ff..7eb5af6b9afd0c7dea434da4040fc59a7688803e 100644 +index 5777e5e31b1a7a7911c183db990f16fe7fc9b9ef..3c7cc1cba00df45296155bdd1430a64a94945f6c 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1308,9 +1308,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1310,9 +1310,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } protected void tickBlockEntities() { @@ -1823,7 +1848,7 @@ index c5486e8c4136dac3d2040841027cc14eecbae6ff..7eb5af6b9afd0c7dea434da4040fc59a //this.timings.tileEntityPending.startTiming(); // Spigot // Purpur this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -1351,7 +1351,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1353,7 +1353,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { //this.timings.tileEntityTick.stopTiming(); // Spigot // Purpur this.tickingBlockEntities = false; co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper @@ -1832,7 +1857,7 @@ index c5486e8c4136dac3d2040841027cc14eecbae6ff..7eb5af6b9afd0c7dea434da4040fc59a this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1561,7 +1561,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1563,7 +1563,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1841,7 +1866,7 @@ index c5486e8c4136dac3d2040841027cc14eecbae6ff..7eb5af6b9afd0c7dea434da4040fc59a List list = Lists.newArrayList(); ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call return list; -@@ -1580,7 +1580,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1582,7 +1582,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { @@ -1850,16 +1875,17 @@ index c5486e8c4136dac3d2040841027cc14eecbae6ff..7eb5af6b9afd0c7dea434da4040fc59a // Paper start - optimise this call //TODO use limit if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { -@@ -1839,6 +1839,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1841,7 +1841,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { -+ //if (true || gg.pufferfish.pufferfish.PufferfishConfig.disableMethodProfiler) return net.minecraft.util.profiling.InactiveProfiler.INSTANCE; // Pufferfish // Purpur // Purpur - TODO: Pufferfish +- if (gg.pufferfish.pufferfish.PufferfishConfig.disableMethodProfiler) return net.minecraft.util.profiling.InactiveProfiler.INSTANCE; // Pufferfish ++ if (true || gg.pufferfish.pufferfish.PufferfishConfig.disableMethodProfiler) return net.minecraft.util.profiling.InactiveProfiler.INSTANCE; // Pufferfish // Purpur return (ProfilerFiller) this.profiler.get(); } diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 6a5dddfd120760b3334d8a4c4ebde84744083392..f3ff965e641f561dbc1b5194353e75dc17e9a0ba 100644 +index 1e3349690d00c7889a381f7c65a3b5bf3de2ac5b..524301e2438ee2938b59eb2b2e9fc4e0eb727a87 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -132,7 +132,7 @@ public final class NaturalSpawner { @@ -1881,10 +1907,10 @@ index 6a5dddfd120760b3334d8a4c4ebde84744083392..f3ff965e641f561dbc1b5194353e75dc // Paper start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 5e91f70a994ffa92e3aa794b52441790766cd774..5efb3e1d04cc22a8fa37a25e2bef07f9e2842adc 100644 +index 88b7f814a1454841b1f1b27e9c7d66d64717a422..66656c4cf157228c9f52b33b358713ef0172f9ff 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -443,11 +443,11 @@ public class LevelChunk extends ChunkAccess { +@@ -457,11 +457,11 @@ public class LevelChunk extends ChunkAccess { if (LightEngine.hasDifferentLightProperties(this, blockposition, iblockdata1, iblockdata)) { ProfilerFiller gameprofilerfiller = this.level.getProfiler(); @@ -1899,7 +1925,7 @@ index 5e91f70a994ffa92e3aa794b52441790766cd774..5efb3e1d04cc22a8fa37a25e2bef07f9 } boolean flag3 = iblockdata1.hasBlockEntity(); -@@ -1161,9 +1161,9 @@ public class LevelChunk extends ChunkAccess { +@@ -1175,9 +1175,9 @@ public class LevelChunk extends ChunkAccess { if (LevelChunk.this.isTicking(blockposition)) { try { @@ -1911,7 +1937,7 @@ index 5e91f70a994ffa92e3aa794b52441790766cd774..5efb3e1d04cc22a8fa37a25e2bef07f9 //this.blockEntity.tickTimer.startTiming(); // Spigot // Purpur BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); -@@ -1175,7 +1175,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1189,7 +1189,7 @@ public class LevelChunk extends ChunkAccess { LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata}); } diff --git a/patches/server/0265-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0267-Add-more-logger-output-for-invalid-movement-kicks.patch similarity index 94% rename from patches/server/0265-Add-more-logger-output-for-invalid-movement-kicks.patch rename to patches/server/0267-Add-more-logger-output-for-invalid-movement-kicks.patch index 7bbd1d04d6..cbda6ee93c 100644 --- a/patches/server/0265-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0267-Add-more-logger-output-for-invalid-movement-kicks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add more logger output for invalid movement kicks diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7865288eee0950c346801cc20aea9071a31fc6dc..d651b8c6254a28fc55f9a9c3f264f83a265bf316 100644 +index 95d5995d967f8a0a06aaaf81d6af7ae9ac83c731..f0b53dc99d21962cbed9a2a1d43be9622735aa57 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -739,6 +739,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -16,7 +16,7 @@ index 7865288eee0950c346801cc20aea9071a31fc6dc..d651b8c6254a28fc55f9a9c3f264f83a return; } -@@ -1352,8 +1353,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1353,8 +1354,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); diff --git a/patches/server/0266-Add-Bee-API.patch b/patches/server/0268-Add-Bee-API.patch similarity index 100% rename from patches/server/0266-Add-Bee-API.patch rename to patches/server/0268-Add-Bee-API.patch diff --git a/patches/server/0267-Debug-Marker-API.patch b/patches/server/0269-Debug-Marker-API.patch similarity index 97% rename from patches/server/0267-Debug-Marker-API.patch rename to patches/server/0269-Debug-Marker-API.patch index 8b6fe24102..a4faa91855 100644 --- a/patches/server/0267-Debug-Marker-API.patch +++ b/patches/server/0269-Debug-Marker-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 966f8e764c2ad42cdfc84b5037081121937598b6..741a3cf8df218635cb5430db8d2c61294f7e849b 100644 +index cca5519dd1b19e86372222d052c5ca2b992bfff8..e4f0b1a5b2165610c533f9a661341e5c46ffb63e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1579,6 +1579,42 @@ public final class CraftServer implements Server { +@@ -1584,6 +1584,42 @@ public final class CraftServer implements Server { public void removeFuel(org.bukkit.Material material) { net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material))); } diff --git a/patches/server/0268-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0270-mob-spawning-option-to-ignore-creative-players.patch similarity index 92% rename from patches/server/0268-mob-spawning-option-to-ignore-creative-players.patch rename to patches/server/0270-mob-spawning-option-to-ignore-creative-players.patch index 5c52cd9c3e..76d49e9564 100644 --- a/patches/server/0268-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0270-mob-spawning-option-to-ignore-creative-players.patch @@ -5,7 +5,7 @@ Subject: [PATCH] mob spawning option to ignore creative players diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index f3ff965e641f561dbc1b5194353e75dc17e9a0ba..51a4d0b212278a20363fd0d3cb253f0e3047e961 100644 +index 524301e2438ee2938b59eb2b2e9fc4e0eb727a87..a2a59dd2e515bf4dca84a442703c122fd36f05e0 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -258,7 +258,7 @@ public final class NaturalSpawner { @@ -18,7 +18,7 @@ index f3ff965e641f561dbc1b5194353e75dc17e9a0ba..51a4d0b212278a20363fd0d3cb253f0e if (entityhuman != null) { double d2 = entityhuman.distanceToSqr(d0, (double) i, d1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4e8c250a1c41c82dbfbae69e8d48b4604d63139b..52cc678de23f370c411933d3f99c31a7acbe2d9b 100644 +index 81a758847405ca2a4770da8120a9f837662bc3f7..c46408be4ae6d764f233963f17b383ea623561ea 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -377,6 +377,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0269-Add-skeleton-bow-accuracy-option.patch b/patches/server/0271-Add-skeleton-bow-accuracy-option.patch similarity index 100% rename from patches/server/0269-Add-skeleton-bow-accuracy-option.patch rename to patches/server/0271-Add-skeleton-bow-accuracy-option.patch diff --git a/patches/server/0270-Allay-respect-item-NBT.patch b/patches/server/0272-Allay-respect-item-NBT.patch similarity index 94% rename from patches/server/0270-Allay-respect-item-NBT.patch rename to patches/server/0272-Allay-respect-item-NBT.patch index 6e52cbef15..070aa4f96e 100644 --- a/patches/server/0270-Allay-respect-item-NBT.patch +++ b/patches/server/0272-Allay-respect-item-NBT.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allay respect item NBT 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 f9af021350df28f286028099d857f034bc03913b..b3e92d3fb6fbadfc6df236754123bc12ad9bc7e7 100644 +index 9bf06cf7b3706f8883e1a0ceac8b1aebb52ba475..c783ce59ea766e6c46a3313628b961f27e01ee8b 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 -@@ -405,9 +405,31 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS +@@ -406,9 +406,31 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @Override public boolean wantsToPickUp(ItemStack stack) { diff --git a/patches/server/0271-Add-death-screen-API.patch b/patches/server/0273-Add-death-screen-API.patch similarity index 100% rename from patches/server/0271-Add-death-screen-API.patch rename to patches/server/0273-Add-death-screen-API.patch diff --git a/patches/unapplied/server/0275-Make-pufferfish-config-relocatable.patch b/patches/server/0274-Make-pufferfish-config-relocatable.patch similarity index 90% rename from patches/unapplied/server/0275-Make-pufferfish-config-relocatable.patch rename to patches/server/0274-Make-pufferfish-config-relocatable.patch index 12a1c4c9f0..ccb72b5ce1 100644 --- a/patches/unapplied/server/0275-Make-pufferfish-config-relocatable.patch +++ b/patches/server/0274-Make-pufferfish-config-relocatable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make pufferfish config relocatable diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -index 26f08b7fb16484c39135ed172c246f76c9e089c7..9ca1494497ae53e56b1f81fda51b0b8bd02a6d03 100644 +index 960c0555a001fe63de78d77d5ea47d08a520d029..b4e5fbace85c67e7bd347e6a90514bbc2c132d5e 100644 --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java @@ -28,6 +28,7 @@ public class PufferfishConfig { @@ -26,7 +26,7 @@ index 26f08b7fb16484c39135ed172c246f76c9e089c7..9ca1494497ae53e56b1f81fda51b0b8b if (configFile.exists()) { try { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 8af211fdcc32d5701769f81fa4edd17afeafef0f..4fbb575922cb382f458a8d883e35a5733befff32 100644 +index a39105007dd3aa44cc035864b388618e6ee5bd70..d56fab50babe37865d0a40b7088b011c8ff6af88 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -230,6 +230,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -38,7 +38,7 @@ index 8af211fdcc32d5701769f81fa4edd17afeafef0f..4fbb575922cb382f458a8d883e35a573 gg.pufferfish.pufferfish.PufferfishCommand.init(); // Pufferfish diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index b214e8030b47ec2b14a8dc17894b8f89c95ab9bb..d41f9c4a3c992b5dadacb4fcb1107235fff79fa8 100644 +index cce747b8a2d87d81429dfaf1e0073b1ea4b1a5d2..feed5a8042ef329e56fecd8096da08986dbd2032 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -180,6 +180,12 @@ public class Main { diff --git a/patches/server/0272-Implement-ram-and-rambar-commands.patch b/patches/server/0275-Implement-ram-and-rambar-commands.patch similarity index 100% rename from patches/server/0272-Implement-ram-and-rambar-commands.patch rename to patches/server/0275-Implement-ram-and-rambar-commands.patch diff --git a/patches/server/0273-Add-item-packet-serialize-event.patch b/patches/server/0276-Add-item-packet-serialize-event.patch similarity index 90% rename from patches/server/0273-Add-item-packet-serialize-event.patch rename to patches/server/0276-Add-item-packet-serialize-event.patch index f0fc9e76d0..c87c7dfee2 100644 --- a/patches/server/0273-Add-item-packet-serialize-event.patch +++ b/patches/server/0276-Add-item-packet-serialize-event.patch @@ -36,10 +36,10 @@ index b13bc90b28b02f5e80d935bfcba727f92c5e4c4f..0cdc68722552a464fb828016eb93f865 this.writeId(BuiltInRegistries.ITEM, item); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index e764ad7096852d8905422e8d0f140ed16c5b4498..39ecb12d4296852ee5865dcfa2b8b6c3233a4804 100644 +index b563b1d4129cf3fb15f5ab4e08acfd380d0ddf12..f69976dcba060027c67c2e1b49fa28d3f28f66f0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1716,6 +1716,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 1 && packet.getSlotNum() <= 45; boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 568bb53e91dda4804cd328a81ba12ce735c52603..62aabfc021fa3349b0ab46744a9ec78d57f058b0 100644 +index 128eab7246bf263e302cbeb5e4c359a41dd2cd3f..be7b302257447d5593efe9b512d036b293f340b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -563,4 +563,9 @@ public class PurpurConfig { diff --git a/patches/server/0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0277-Add-an-option-to-fix-MC-3304-projectile-looting.patch similarity index 98% rename from patches/server/0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch rename to patches/server/0277-Add-an-option-to-fix-MC-3304-projectile-looting.patch index 487503f236..6993b1c4d6 100644 --- a/patches/server/0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch +++ b/patches/server/0277-Add-an-option-to-fix-MC-3304-projectile-looting.patch @@ -104,7 +104,7 @@ index 3fb1e558c3510243c94981211f9a0e5e0ef1895b..e5177e5ffcac360f935f2139db4554c6 if (context.hasParam(LootContextParams.LOOTING_MOD)) { i = context.getParamOrNull(LootContextParams.LOOTING_MOD); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 62aabfc021fa3349b0ab46744a9ec78d57f058b0..32aaa66acc35950caec1a0b0dac9413e950b37a6 100644 +index be7b302257447d5593efe9b512d036b293f340b5..2d7b942a0067b8d5eb156d7ee9ec2e5914cbe181 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -568,4 +568,9 @@ public class PurpurConfig { diff --git a/patches/server/0275-Configurable-block-blast-resistance.patch b/patches/server/0278-Configurable-block-blast-resistance.patch similarity index 96% rename from patches/server/0275-Configurable-block-blast-resistance.patch rename to patches/server/0278-Configurable-block-blast-resistance.patch index 4be9e5d15f..8b504364c2 100644 --- a/patches/server/0275-Configurable-block-blast-resistance.patch +++ b/patches/server/0278-Configurable-block-blast-resistance.patch @@ -18,7 +18,7 @@ index 06b07927aba82084bd2996be92b9e340a9bf2ad2..0b6ab25fb59a7dd713a0fa9063f8590c protected final SoundType soundType; protected final float friction; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 32aaa66acc35950caec1a0b0dac9413e950b37a6..8426be7906cd0f4df8c274aa1d113388965d8d8b 100644 +index 2d7b942a0067b8d5eb156d7ee9ec2e5914cbe181..3c163e2b512294f93255f25ccdc7917ded14ca4a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -573,4 +573,19 @@ public class PurpurConfig { diff --git a/patches/server/0276-Configurable-block-fall-damage-modifiers.patch b/patches/server/0279-Configurable-block-fall-damage-modifiers.patch similarity index 98% rename from patches/server/0276-Configurable-block-fall-damage-modifiers.patch rename to patches/server/0279-Configurable-block-fall-damage-modifiers.patch index c885da83eb..8473d33e11 100644 --- a/patches/server/0276-Configurable-block-fall-damage-modifiers.patch +++ b/patches/server/0279-Configurable-block-fall-damage-modifiers.patch @@ -54,7 +54,7 @@ index ef364aa171a48482a45bc18cfe730ec20c3f7be6..74971d90506aa253d5ee821b5390fb25 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 8426be7906cd0f4df8c274aa1d113388965d8d8b..29dd74f28c66cce2c25dc9aa916f230cdfbe2da3 100644 +index 3c163e2b512294f93255f25ccdc7917ded14ca4a..f743f97c622f1672374cc446331435edb1ce1ed9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -588,4 +588,50 @@ public class PurpurConfig { diff --git a/patches/server/0277-Language-API.patch b/patches/server/0280-Language-API.patch similarity index 93% rename from patches/server/0277-Language-API.patch rename to patches/server/0280-Language-API.patch index c0684be8d9..7f4b559fb0 100644 --- a/patches/server/0277-Language-API.patch +++ b/patches/server/0280-Language-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Language API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 741a3cf8df218635cb5430db8d2c61294f7e849b..796787b28babc5393cfb8f83cb9e77a5cb6114f2 100644 +index e4f0b1a5b2165610c533f9a661341e5c46ffb63e..aef22db014c81332ba599ddb931afb264dc12a84 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -398,6 +398,20 @@ public final class CraftServer implements Server { diff --git a/patches/server/0278-Milk-Keeps-Beneficial-Effects.patch b/patches/server/0281-Milk-Keeps-Beneficial-Effects.patch similarity index 94% rename from patches/server/0278-Milk-Keeps-Beneficial-Effects.patch rename to patches/server/0281-Milk-Keeps-Beneficial-Effects.patch index ae4807ae8c..64696e48fb 100644 --- a/patches/server/0278-Milk-Keeps-Beneficial-Effects.patch +++ b/patches/server/0281-Milk-Keeps-Beneficial-Effects.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Milk Keeps Beneficial Effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3af72be980ed6cab704eedadeb9a9577aca25fc1..ac57b2d31019eeb12a0d63266b900c606d90b05e 100644 +index ae8efb754e89c925647aa515f2e5bfc4c75a3857..1425a8321e3bc988a88ca45e3d3f0fcee18df58f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1124,6 +1124,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1123,6 +1123,7 @@ public abstract class LivingEntity extends Entity implements Attackable { for (flag = false; iterator.hasNext(); flag = true) { // CraftBukkit start MobEffectInstance effect = (MobEffectInstance) iterator.next(); @@ -30,7 +30,7 @@ index 08320248a6956d41d60681e3d29f81768c80fd3d..237247cb91248eb2d05e967e95cb8ad0 this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this)); this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4cd381104a2ab320feb3984b8f77f9630246c7e4..48e44b0dd3d9ff863d7ee7a96d434a68a84cdf0f 100644 +index c7584f2cd12a75f61ca94100718df200b6c373e7..e3d9bd8fc246771a6d612d0c834a47c7a3255f74 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -128,6 +128,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0279-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch b/patches/server/0282-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch similarity index 100% rename from patches/server/0279-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch rename to patches/server/0282-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/patches/server/0280-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0283-Add-log-suppression-for-LibraryLoader.patch similarity index 94% rename from patches/server/0280-Add-log-suppression-for-LibraryLoader.patch rename to patches/server/0283-Add-log-suppression-for-LibraryLoader.patch index 6a689fce90..1195495302 100644 --- a/patches/server/0280-Add-log-suppression-for-LibraryLoader.patch +++ b/patches/server/0283-Add-log-suppression-for-LibraryLoader.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add log suppression for LibraryLoader diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 29dd74f28c66cce2c25dc9aa916f230cdfbe2da3..cf0a52a037ac255c3f9e36dbff3cedda0fd8f49e 100644 +index f743f97c622f1672374cc446331435edb1ce1ed9..24db1eb4d9b1677287bbe157320575fee926577a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -465,11 +465,14 @@ public class PurpurConfig { diff --git a/patches/server/0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0284-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 100% rename from patches/server/0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0284-Add-option-to-allow-creeper-to-encircle-target-when-.patch diff --git a/patches/server/0282-Fire-Immunity-API.patch b/patches/server/0285-Fire-Immunity-API.patch similarity index 91% rename from patches/server/0282-Fire-Immunity-API.patch rename to patches/server/0285-Fire-Immunity-API.patch index 9f1e8ccb72..f40936298b 100644 --- a/patches/server/0282-Fire-Immunity-API.patch +++ b/patches/server/0285-Fire-Immunity-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b45064a92674a4c48350c466b8131bf1ffae4335..1e2308ecde7bef57ac0b6192b8362cbcd58e6725 100644 +index 386259c78d134814479427b0591f0c6f4d064c91..8625f37ed94191a2b4dac593e67a99431a8335cf 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -422,6 +422,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -16,7 +16,7 @@ index b45064a92674a4c48350c466b8131bf1ffae4335..1e2308ecde7bef57ac0b6192b8362cbc public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -1800,7 +1801,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -1812,7 +1813,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S } public boolean fireImmune() { @@ -25,7 +25,7 @@ index b45064a92674a4c48350c466b8131bf1ffae4335..1e2308ecde7bef57ac0b6192b8362cbc } public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2492,6 +2493,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2504,6 +2505,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S nbttagcompound.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -37,7 +37,7 @@ index b45064a92674a4c48350c466b8131bf1ffae4335..1e2308ecde7bef57ac0b6192b8362cbc return nbttagcompound; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2639,6 +2645,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -2651,6 +2657,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S freezeLocked = nbt.getBoolean("Paper.FreezeLock"); } // Paper end @@ -50,7 +50,7 @@ index b45064a92674a4c48350c466b8131bf1ffae4335..1e2308ecde7bef57ac0b6192b8362cbc } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT"); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 1ac0f0faab8d6a22429f16ea745640bba65ef4ab..752b32e4086e84d68e088fdaabec941bb134d61e 100644 +index bfd8f6d85272f3ecbb0f7fc5fc92d2055205c0e0..deab17ae3deca2e49f6c3005048ad10e597d7329 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -83,6 +83,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 94% rename from patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 2ed346c9e4..a4752d76d4 100644 --- a/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0286-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1e2308ecde7bef57ac0b6192b8362cbcd58e6725..b21dd27e77632435ea53b48861fe16ee03d5ba06 100644 +index 8625f37ed94191a2b4dac593e67a99431a8335cf..a9d5a9b9bff5631f3f458fba7d88c3fc642416b8 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -909,6 +909,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S +@@ -921,6 +921,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end diff --git a/patches/server/0284-Added-got-ram-event.patch b/patches/server/0287-Added-got-ram-event.patch similarity index 86% rename from patches/server/0284-Added-got-ram-event.patch rename to patches/server/0287-Added-got-ram-event.patch index 6512088bde..b9275a0e91 100644 --- a/patches/server/0284-Added-got-ram-event.patch +++ b/patches/server/0287-Added-got-ram-event.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added got ram event diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 1162318d8d187b8bdb30d28f6f61c430452c41b5..fd2a6c9def675fa2dd5e78fbc18002794098da26 100644 +index 806b207e5246db7daa03bebabd7aa574d8b0dab7..5d7b20c30bc5e3be8511b300c318d12a1e4a49d0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -@@ -428,6 +428,7 @@ public class Goat extends Animal { +@@ -429,6 +429,7 @@ public class Goat extends Animal { // Paper start - Goat ram API public void ram(net.minecraft.world.entity.LivingEntity entity) { diff --git a/patches/server/0285-Log-skipped-entity-s-position.patch b/patches/server/0288-Log-skipped-entity-s-position.patch similarity index 86% rename from patches/server/0285-Log-skipped-entity-s-position.patch rename to patches/server/0288-Log-skipped-entity-s-position.patch index 0d909a68e5..6d2a322228 100644 --- a/patches/server/0285-Log-skipped-entity-s-position.patch +++ b/patches/server/0288-Log-skipped-entity-s-position.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Log skipped entity's position diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index ef01a87a77954f19f017129ab186afea9e6389a2..9793a5c9a36201b00ba32f2ac928cfabfbdb98e1 100644 +index e5aa1bac908f947f2ed70a05194bf30b4cb55115..38845300ceb7092de4cd8e31ef8782728892f656 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -615,6 +615,12 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -617,6 +617,12 @@ public class EntityType implements FeatureElement, EntityTypeT entity.load(nbt); }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/patches/server/0286-End-Crystal-Cramming.patch b/patches/server/0289-End-Crystal-Cramming.patch similarity index 100% rename from patches/server/0286-End-Crystal-Cramming.patch rename to patches/server/0289-End-Crystal-Cramming.patch diff --git a/patches/server/0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0290-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 100% rename from patches/server/0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0290-Option-to-allow-beacon-effects-when-covered-by-tinte.patch diff --git a/patches/server/0288-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0291-Add-attribute-clamping-and-armor-limit-config.patch similarity index 97% rename from patches/server/0288-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0291-Add-attribute-clamping-and-armor-limit-config.patch index c68108985b..d25508bc6f 100644 --- a/patches/server/0288-Add-attribute-clamping-and-armor-limit-config.patch +++ b/patches/server/0291-Add-attribute-clamping-and-armor-limit-config.patch @@ -36,7 +36,7 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index cf0a52a037ac255c3f9e36dbff3cedda0fd8f49e..f10679ef2cbd73397b64eb69516c8a46e4d35a4e 100644 +index 24db1eb4d9b1677287bbe157320575fee926577a..3eba2f3df5723d068ff62c78243e39b8f4e3f853 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -577,6 +577,16 @@ public class PurpurConfig { diff --git a/patches/server/0289-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0292-Config-to-remove-explosion-radius-clamp.patch similarity index 91% rename from patches/server/0289-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0292-Config-to-remove-explosion-radius-clamp.patch index b23284f578..15e7361a65 100644 --- a/patches/server/0289-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0292-Config-to-remove-explosion-radius-clamp.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to remove explosion radius clamp diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 370952a7be8df3ea00c0816235d84927df4ed79d..b0b8a0391bfd347fea44271b0408de2792d6489b 100644 +index 17abd085b3faf88e10a44a6c98af996892cc4e58..0c08a07d3d1efa35646dbaa5cc887bf9d62cae42 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -97,7 +97,7 @@ public class Explosion { @@ -27,7 +27,7 @@ index 370952a7be8df3ea00c0816235d84927df4ed79d..b0b8a0391bfd347fea44271b0408de27 } // CraftBukkit end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 05b4bd8495451dbd6277946e77737495b58375f8..f3571a1a86b7ec9f10b2a5bf4e2c3f7b0bded7d1 100644 +index 6523578f35da2977567f0011a9f9f9a96b538560..2bb310f0a7c94f036c0e849d8a3defb47a115f04 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -213,6 +213,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0290-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0293-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 100% rename from patches/server/0290-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0293-bonemealable-sugarcane-cactus-and-netherwart.patch diff --git a/patches/server/0291-Add-PreExplodeEvents.patch b/patches/server/0294-Add-PreExplodeEvents.patch similarity index 94% rename from patches/server/0291-Add-PreExplodeEvents.patch rename to patches/server/0294-Add-PreExplodeEvents.patch index 2462678f82..a696779b33 100644 --- a/patches/server/0291-Add-PreExplodeEvents.patch +++ b/patches/server/0294-Add-PreExplodeEvents.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PreExplodeEvents diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index b0b8a0391bfd347fea44271b0408de2792d6489b..e07078e175433b3b63c7031b02eb3846c091821d 100644 +index 0c08a07d3d1efa35646dbaa5cc887bf9d62cae42..3e69f176eee01b7e093a90f5f3c19009c0a22fa7 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -429,6 +429,23 @@ public class Explosion { diff --git a/patches/server/0292-Improve-output-of-plugins-command.patch b/patches/server/0295-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0292-Improve-output-of-plugins-command.patch rename to patches/server/0295-Improve-output-of-plugins-command.patch diff --git a/patches/server/0293-Add-mending-multiplier.patch b/patches/server/0296-Add-mending-multiplier.patch similarity index 96% rename from patches/server/0293-Add-mending-multiplier.patch rename to patches/server/0296-Add-mending-multiplier.patch index 747ffa0df5..b41257e2d3 100644 --- a/patches/server/0293-Add-mending-multiplier.patch +++ b/patches/server/0296-Add-mending-multiplier.patch @@ -27,7 +27,7 @@ index a3ef8e6a698df4c78e0494da48063ddd29caf62f..1b8f5680c4122c7b6b19e2bc1ed6295c public int getValue() { return this.value; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index db47c443a765a87d2cabde2d3956909661d65237..93f350d5059e9385f4ba344cd24be8ca4d3198e9 100644 +index ec46c926e6df9101322df22853d03eba05b48896..2c9c5f8e432f076559bdb88e4485399ff74c8cd5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -119,6 +119,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0294-Make-GUI-Great-Again.patch b/patches/server/0297-Make-GUI-Great-Again.patch similarity index 99% rename from patches/server/0294-Make-GUI-Great-Again.patch rename to patches/server/0297-Make-GUI-Great-Again.patch index d314a536c7..54766f26f1 100644 --- a/patches/server/0294-Make-GUI-Great-Again.patch +++ b/patches/server/0297-Make-GUI-Great-Again.patch @@ -96,7 +96,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a + } +} diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 0d3d62620659d7897d4ad92147255a99a4a1866d..2e70ac06c1a6414d9fbbc7a929968e804f0a91f5 100644 +index d56fab50babe37865d0a40b7088b011c8ff6af88..d21260dd1b7305949f063123b427dec1f5a00ae5 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -99,6 +99,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0295-Stored-Bee-API.patch b/patches/server/0298-Stored-Bee-API.patch similarity index 100% rename from patches/server/0295-Stored-Bee-API.patch rename to patches/server/0298-Stored-Bee-API.patch diff --git a/patches/server/0296-Shears-can-defuse-TNT.patch b/patches/server/0299-Shears-can-defuse-TNT.patch similarity index 100% rename from patches/server/0296-Shears-can-defuse-TNT.patch rename to patches/server/0299-Shears-can-defuse-TNT.patch diff --git a/patches/server/0297-Explorer-Map-API.patch b/patches/server/0300-Explorer-Map-API.patch similarity index 100% rename from patches/server/0297-Explorer-Map-API.patch rename to patches/server/0300-Explorer-Map-API.patch diff --git a/patches/server/0298-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0301-Option-Ocelot-Spawn-Under-Sea-Level.patch similarity index 100% rename from patches/server/0298-Option-Ocelot-Spawn-Under-Sea-Level.patch rename to patches/server/0301-Option-Ocelot-Spawn-Under-Sea-Level.patch diff --git a/patches/server/0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch b/patches/server/0302-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch similarity index 100% rename from patches/server/0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch rename to patches/server/0302-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch diff --git a/patches/server/0300-Add-option-for-always-showing-item-in-player-death-m.patch b/patches/server/0303-Add-option-for-always-showing-item-in-player-death-m.patch similarity index 97% rename from patches/server/0300-Add-option-for-always-showing-item-in-player-death-m.patch rename to patches/server/0303-Add-option-for-always-showing-item-in-player-death-m.patch index da162e3802..7adfc3c2b3 100644 --- a/patches/server/0300-Add-option-for-always-showing-item-in-player-death-m.patch +++ b/patches/server/0303-Add-option-for-always-showing-item-in-player-death-m.patch @@ -31,7 +31,7 @@ index fc1fb63ee0e28b8d1f065bfad716b465cde5a69f..c8860f20956a2819da001e9393824945 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index f10679ef2cbd73397b64eb69516c8a46e4d35a4e..3633574e112f217b412217dd243a631dc4e9c40c 100644 +index 3eba2f3df5723d068ff62c78243e39b8f4e3f853..e9fc2b4661f5275b93db5d3fdf25a8bdc3b38920 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -647,4 +647,9 @@ public class PurpurConfig { diff --git a/patches/server/0301-place-end-crystal-on-any-block.patch b/patches/server/0304-place-end-crystal-on-any-block.patch similarity index 96% rename from patches/server/0301-place-end-crystal-on-any-block.patch rename to patches/server/0304-place-end-crystal-on-any-block.patch index 09834b69ae..96733c1dcf 100644 --- a/patches/server/0301-place-end-crystal-on-any-block.patch +++ b/patches/server/0304-place-end-crystal-on-any-block.patch @@ -5,7 +5,7 @@ Subject: [PATCH] place end crystal on any block diff --git a/src/main/java/net/minecraft/world/item/EndCrystalItem.java b/src/main/java/net/minecraft/world/item/EndCrystalItem.java -index 5a19875cbc603acea95193d969d2e1dc1e0bfd78..a9ee4a382118294b43d0ff13ffd5fbe9463316a3 100644 +index 3688e9f8c6c6d1239095e3a87060ccca90386d0c..34254eec36d34ae343733fa1abbaaba60be41a3b 100644 --- a/src/main/java/net/minecraft/world/item/EndCrystalItem.java +++ b/src/main/java/net/minecraft/world/item/EndCrystalItem.java @@ -26,7 +26,7 @@ public class EndCrystalItem extends Item { diff --git a/patches/server/0302-Add-hover-lines-API.patch b/patches/server/0305-Add-hover-lines-API.patch similarity index 100% rename from patches/server/0302-Add-hover-lines-API.patch rename to patches/server/0305-Add-hover-lines-API.patch diff --git a/patches/server/0303-Add-option-to-disable-the-copper-oxidation-proximity.patch b/patches/server/0306-Add-option-to-disable-the-copper-oxidation-proximity.patch similarity index 96% rename from patches/server/0303-Add-option-to-disable-the-copper-oxidation-proximity.patch rename to patches/server/0306-Add-option-to-disable-the-copper-oxidation-proximity.patch index 8a75a040a0..0174a203ca 100644 --- a/patches/server/0303-Add-option-to-disable-the-copper-oxidation-proximity.patch +++ b/patches/server/0306-Add-option-to-disable-the-copper-oxidation-proximity.patch @@ -18,7 +18,7 @@ index daae7fd6e0148cfba8e359d990748a0c83a3376e..0e06b1bcd906e92c083dc74d56d6d0a2 return random.nextFloat() < f1 ? this.getNext(state) : Optional.empty(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 96f6186ca9eb1889beefd7b54addc42052f8907a..d24664bc4d373804e373266a189eb6de1e0b261d 100644 +index fb7bdaa64002729f9f9cd0fbbd2ae289643628b4..bbf371428e343cfad0ae118c387fd2342541fe53 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -145,6 +145,7 @@ public class PurpurWorldConfig {