From 642956fe6151a87488d861ccb98e4d46d355d599 Mon Sep 17 00:00:00 2001 From: granny Date: Sun, 3 Mar 2024 23:38:36 -0800 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@850b736 Close PRs opened from orgs or bot accounts (#10281) PaperMC/Paper@54a2340 check if itemstack is stackable first (#10285) PaperMC/Paper@9c4bb0d add rich message component support to configuration (#10225) PaperMC/Paper@8870d22 Fire EntityDamageByEntityEvent for unowned wither skulls patch (#10244) PaperMC/Paper@bbc03d8 improve BanList types (#10239) PaperMC/Paper@ce5c8dd Configurable max block/fluid ticks (#10266) PaperMC/Paper@880fef7 Deprecate extra ban methods with raw BanEntry (#9580) PaperMC/Paper@60218cd Don't tick empty worlds (#9025) PaperMC/Paper@b21eb4d add overloads to use suspicious effect entry to mushroom cow and suspicious stew meta (#10245) PaperMC/Paper@89d51d5 Allow enabling sand duping (#10191) PaperMC/Paper@6ad63fb Per world ticks per spawn settings (#6891) --- gradle.properties | 2 +- patches/api/0003-Purpur-config-files.patch | 4 +- patches/api/0005-Purpur-client-support.patch | 4 +- patches/api/0010-AFK-API.patch | 4 +- patches/api/0011-Bring-back-server-name.patch | 8 +- patches/api/0014-Lagging-threshold.patch | 8 +- .../api/0032-Extended-OfflinePlayer-API.patch | 4 +- ...the-ability-to-add-combustible-items.patch | 8 +- patches/api/0041-Debug-Marker-API.patch | 12 +- patches/api/0042-Add-death-screen-API.patch | 4 +- .../0001-Pufferfish-Server-Changes.patch | 20 +- .../server/0003-Fix-pufferfish-issues.patch | 8 +- patches/server/0004-Purpur-config-files.patch | 8 +- .../server/0013-Bring-back-server-name.patch | 4 +- patches/server/0016-Lagging-threshold.patch | 4 +- ...0059-Add-5-second-tps-average-in-tps.patch | 4 +- ...-Add-allow-water-in-end-world-option.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 6 +- .../0176-Add-toggle-for-sand-duping-fix.patch | 44 --- ...ke-lightning-rod-range-configurable.patch} | 2 +- ...ggle-for-end-portal-safe-teleporting.patch | 62 ---- ...fter-eating-food-fills-hunger-bar-c.patch} | 2 +- ...ayer-join-full-server-by-permission.patch} | 0 ...> 0179-Add-portal-permission-bypass.patch} | 0 ...0-Shulker-spawn-from-bullet-options.patch} | 6 +- ...ating-glow-berries-adds-glow-effect.patch} | 2 +- ...-Option-to-make-drowned-break-doors.patch} | 8 +- ...nfigurable-hunger-starvation-damage.patch} | 4 +- ...patch => 0184-Enhance-SysoutCatcher.patch} | 0 ...nd.patch => 0185-Add-uptime-command.patch} | 2 +- ...tch => 0186-Tool-actionable-options.patch} | 2 +- ...7-Store-placer-on-Block-when-placed.patch} | 0 ...oner-API.patch => 0188-Summoner-API.patch} | 0 ...mizable-sleeping-actionbar-messages.patch} | 4 +- ...-shulker-box-items-from-dropping-co.patch} | 4 +- ...tch => 0191-Big-dripleaf-tilt-delay.patch} | 4 +- ...0192-Player-ridable-in-water-option.patch} | 2 +- ...-Enderman-teleport-on-projectile-hi.patch} | 6 +- ...d.patch => 0194-Add-compass-command.patch} | 6 +- ...h => 0195-Toggle-for-kinetic-damage.patch} | 2 +- ...-Option-for-disable-observer-clocks.patch} | 2 +- ...zeable-Zombie-Villager-curing-times.patch} | 8 +- ...for-sponges-to-work-on-lava-and-mud.patch} | 4 +- ...199-Toggle-for-Wither-s-spawn-sound.patch} | 6 +- ...-breaks-from-solid-neighbors-config.patch} | 4 +- ...move-curse-of-binding-with-weakness.patch} | 2 +- ...0202-Conduit-behavior-configuration.patch} | 4 +- ...patch => 0203-Cauldron-fill-chances.patch} | 4 +- ...o-allow-mobs-to-pathfind-over-rails.patch} | 4 +- ... 0205-Shulker-change-color-with-dye.patch} | 8 +- ... => 0206-Extended-OfflinePlayer-API.patch} | 2 +- ...he-ability-to-add-combustible-items.patch} | 4 +- ...in-and-thunder-should-stop-on-sleep.patch} | 4 +- ...-blocks-to-grow-into-trees-naturall.patch} | 2 +- ...-right-click-to-use-exp-for-mending.patch} | 4 +- ...urally-aggressive-to-players-chance.patch} | 6 +- ...urally-aggressive-to-players-chance.patch} | 8 +- ...r-beds-to-explode-on-villager-sleep.patch} | 2 +- ...Halloween-options-and-optimizations.patch} | 6 +- ...atch => 0215-Config-for-grindstones.patch} | 2 +- ....patch => 0216-UPnP-Port-Forwarding.patch} | 2 +- ...Campfire-option-for-lit-when-placed.patch} | 2 +- ...tinguish-fire-blocks-with-snowballs.patch} | 2 +- ...on-to-disable-zombie-villagers-cure.patch} | 8 +- ...nt-BlockEntity-Lore-and-DisplayName.patch} | 2 +- ...tch => 0221-Signs-allow-color-codes.patch} | 10 +- ...-and-twisting-vines-configurable-ma.patch} | 0 ...=> 0223-Mobs-always-drop-experience.patch} | 274 +++++++++--------- ....patch => 0224-Potion-NamespacedKey.patch} | 0 ...ne-API.patch => 0225-Grindstone-API.patch} | 2 +- ...e-to-replant-crops-and-nether-warts.patch} | 4 +- ...urtle-eggs-random-tick-crack-chance.patch} | 4 +- ...=> 0228-Mob-head-visibility-percent.patch} | 18 +- ...able-valid-characters-for-usernames.patch} | 0 ...Shears-can-have-looting-enchantment.patch} | 0 ...Stop-bees-from-dying-after-stinging.patch} | 8 +- ...ounts-in-beehives-to-Purpur-clients.patch} | 0 ...onfigurable-farmland-trample-height.patch} | 4 +- ...onfigurable-player-pickup-exp-delay.patch} | 2 +- ...ng.patch => 0235-Allow-void-trading.patch} | 4 +- ...h => 0236-Configurable-phantom-size.patch} | 8 +- ...> 0237-Configurable-food-attributes.patch} | 0 ....patch => 0238-Max-joins-per-second.patch} | 0 ...figurable-minimum-demand-for-trades.patch} | 6 +- ... => 0240-Lobotomize-stuck-villagers.patch} | 6 +- ...ion-for-villager-display-trade-item.patch} | 6 +- ...wner-not-spawning-water-animals-cor.patch} | 4 +- ...ig-for-mob-last-hurt-by-player-time.patch} | 2 +- ...=> 0244-Anvil-repair-damage-options.patch} | 2 +- ...-turtle-egg-trampling-with-feather-.patch} | 4 +- ...d-toggle-for-enchant-level-clamping.patch} | 2 +- ...kip-junit-tests-for-purpur-commands.patch} | 0 ...rable-search-radius-for-villagers-t.patch} | 6 +- ...ge.patch => 0249-Stonecutter-damage.patch} | 4 +- ...le-damage-settings-for-magma-blocks.patch} | 4 +- ...251-Add-config-for-snow-on-blue-ice.patch} | 4 +- ... => 0252-Skeletons-eat-wither-roses.patch} | 6 +- ...53-Enchantment-Table-Persists-Lapis.patch} | 6 +- ...ofiler.patch => 0254-Spark-Profiler.patch} | 0 ...-disable-kick-for-out-of-order-chat.patch} | 2 +- ...for-sculk-shrieker-can_summon-state.patch} | 6 +- ...=> 0257-Config-to-not-let-coral-die.patch} | 2 +- ...ch => 0258-Add-local-difficulty-api.patch} | 0 ...259-Add-toggle-for-RNG-manipulation.patch} | 4 +- ... 0260-Send-client-custom-name-of-BE.patch} | 2 +- ...=> 0261-Allow-custom-ChatDecorators.patch} | 2 +- ...imings.patch => 0262-Remove-Timings.patch} | 10 +- ...atch => 0263-Remove-Mojang-Profiler.patch} | 22 +- ...r-output-for-invalid-movement-kicks.patch} | 2 +- ...d-Bee-API.patch => 0265-Add-Bee-API.patch} | 2 +- ...-API.patch => 0266-Debug-Marker-API.patch} | 4 +- ...g-option-to-ignore-creative-players.patch} | 4 +- ...68-Add-skeleton-bow-accuracy-option.patch} | 8 +- ...atch => 0269-Allay-respect-item-NBT.patch} | 4 +- ....patch => 0270-Add-death-screen-API.patch} | 2 +- ...-Make-pufferfish-config-relocatable.patch} | 6 +- ...2-Implement-ram-and-rambar-commands.patch} | 6 +- ...273-Add-item-packet-serialize-event.patch} | 0 ...n-to-fix-MC-3304-projectile-looting.patch} | 0 ...Configurable-block-blast-resistance.patch} | 0 ...gurable-block-fall-damage-modifiers.patch} | 0 ...uage-API.patch => 0277-Language-API.patch} | 2 +- ... 0278-Milk-Keeps-Beneficial-Effects.patch} | 2 +- ...s-not-looking-up-and-down-when-stra.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 0 ...ow-creeper-to-encircle-target-when-.patch} | 6 +- ...API.patch => 0282-Fire-Immunity-API.patch} | 2 +- ...eport-to-spawn-on-nether-ceiling-da.patch} | 4 +- ...t.patch => 0284-Added-got-ram-event.patch} | 2 +- ... 0285-Log-skipped-entity-s-position.patch} | 0 ....patch => 0286-End-Crystal-Cramming.patch} | 2 +- ...eacon-effects-when-covered-by-tinte.patch} | 4 +- ...ute-clamping-and-armor-limit-config.patch} | 0 ...ig-to-remove-explosion-radius-clamp.patch} | 4 +- ...ble-sugarcane-cactus-and-netherwart.patch} | 2 +- ....patch => 0291-Add-PreExplodeEvents.patch} | 2 +- ...2-Improve-output-of-plugins-command.patch} | 0 ...atch => 0293-Add-mending-multiplier.patch} | 2 +- ....patch => 0294-Make-GUI-Great-Again.patch} | 2 +- ...ee-API.patch => 0295-Stored-Bee-API.patch} | 0 ...patch => 0296-Shears-can-defuse-TNT.patch} | 4 +- ...-API.patch => 0297-Explorer-Map-API.patch} | 4 +- ...Option-Ocelot-Spawn-Under-Sea-Level.patch} | 6 +- ...-piglins-to-ignore-gold-trimmed-arm.patch} | 6 +- ...ways-showing-item-in-player-death-m.patch} | 0 ...0301-place-end-crystal-on-any-block.patch} | 4 +- ...I.patch => 0302-Add-hover-lines-API.patch} | 0 ...able-the-copper-oxidation-proximity.patch} | 2 +- ...4-register-minecraft-debug-commands.patch} | 0 ...heck-if-itemstack-is-stackable-first.patch | 19 -- 150 files changed, 412 insertions(+), 537 deletions(-) delete mode 100644 patches/server/0176-Add-toggle-for-sand-duping-fix.patch rename patches/server/{0178-Make-lightning-rod-range-configurable.patch => 0176-Make-lightning-rod-range-configurable.patch} (96%) delete mode 100644 patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch rename patches/server/{0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch => 0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch} (98%) rename patches/server/{0180-Allow-player-join-full-server-by-permission.patch => 0178-Allow-player-join-full-server-by-permission.patch} (100%) rename patches/server/{0181-Add-portal-permission-bypass.patch => 0179-Add-portal-permission-bypass.patch} (100%) rename patches/server/{0182-Shulker-spawn-from-bullet-options.patch => 0180-Shulker-spawn-from-bullet-options.patch} (96%) rename patches/server/{0183-Eating-glow-berries-adds-glow-effect.patch => 0181-Eating-glow-berries-adds-glow-effect.patch} (97%) rename patches/server/{0184-Option-to-make-drowned-break-doors.patch => 0182-Option-to-make-drowned-break-doors.patch} (91%) rename patches/server/{0185-Configurable-hunger-starvation-damage.patch => 0183-Configurable-hunger-starvation-damage.patch} (92%) rename patches/server/{0186-Enhance-SysoutCatcher.patch => 0184-Enhance-SysoutCatcher.patch} (100%) rename patches/server/{0187-Add-uptime-command.patch => 0185-Add-uptime-command.patch} (98%) rename patches/server/{0188-Tool-actionable-options.patch => 0186-Tool-actionable-options.patch} (99%) rename patches/server/{0189-Store-placer-on-Block-when-placed.patch => 0187-Store-placer-on-Block-when-placed.patch} (100%) rename patches/server/{0190-Summoner-API.patch => 0188-Summoner-API.patch} (100%) rename patches/server/{0191-Customizable-sleeping-actionbar-messages.patch => 0189-Customizable-sleeping-actionbar-messages.patch} (96%) rename patches/server/{0192-option-to-disable-shulker-box-items-from-dropping-co.patch => 0190-option-to-disable-shulker-box-items-from-dropping-co.patch} (92%) rename patches/server/{0193-Big-dripleaf-tilt-delay.patch => 0191-Big-dripleaf-tilt-delay.patch} (93%) rename patches/server/{0194-Player-ridable-in-water-option.patch => 0192-Player-ridable-in-water-option.patch} (96%) rename patches/server/{0195-Config-to-disable-Enderman-teleport-on-projectile-hi.patch => 0193-Config-to-disable-Enderman-teleport-on-projectile-hi.patch} (92%) rename patches/server/{0196-Add-compass-command.patch => 0194-Add-compass-command.patch} (97%) rename patches/server/{0197-Toggle-for-kinetic-damage.patch => 0195-Toggle-for-kinetic-damage.patch} (95%) rename patches/server/{0198-Add-Option-for-disable-observer-clocks.patch => 0196-Add-Option-for-disable-observer-clocks.patch} (95%) rename patches/server/{0199-Customizeable-Zombie-Villager-curing-times.patch => 0197-Customizeable-Zombie-Villager-curing-times.patch} (89%) rename patches/server/{0200-Option-for-sponges-to-work-on-lava-and-mud.patch => 0198-Option-for-sponges-to-work-on-lava-and-mud.patch} (94%) rename patches/server/{0201-Toggle-for-Wither-s-spawn-sound.patch => 0199-Toggle-for-Wither-s-spawn-sound.patch} (91%) rename patches/server/{0202-Cactus-breaks-from-solid-neighbors-config.patch => 0200-Cactus-breaks-from-solid-neighbors-config.patch} (90%) rename patches/server/{0203-Config-to-remove-curse-of-binding-with-weakness.patch => 0201-Config-to-remove-curse-of-binding-with-weakness.patch} (96%) rename patches/server/{0204-Conduit-behavior-configuration.patch => 0202-Conduit-behavior-configuration.patch} (97%) rename patches/server/{0205-Cauldron-fill-chances.patch => 0203-Cauldron-fill-chances.patch} (96%) rename patches/server/{0206-Config-to-allow-mobs-to-pathfind-over-rails.patch => 0204-Config-to-allow-mobs-to-pathfind-over-rails.patch} (94%) rename patches/server/{0207-Shulker-change-color-with-dye.patch => 0205-Shulker-change-color-with-dye.patch} (92%) rename patches/server/{0208-Extended-OfflinePlayer-API.patch => 0206-Extended-OfflinePlayer-API.patch} (99%) rename patches/server/{0209-Added-the-ability-to-add-combustible-items.patch => 0207-Added-the-ability-to-add-combustible-items.patch} (95%) rename patches/server/{0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch => 0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch} (94%) rename patches/server/{0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch => 0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch} (98%) rename patches/server/{0212-Shift-right-click-to-use-exp-for-mending.patch => 0210-Shift-right-click-to-use-exp-for-mending.patch} (96%) rename patches/server/{0213-Dolphins-naturally-aggressive-to-players-chance.patch => 0211-Dolphins-naturally-aggressive-to-players-chance.patch} (95%) rename patches/server/{0214-Cows-naturally-aggressive-to-players-chance.patch => 0212-Cows-naturally-aggressive-to-players-chance.patch} (94%) rename patches/server/{0215-Option-for-beds-to-explode-on-villager-sleep.patch => 0213-Option-for-beds-to-explode-on-villager-sleep.patch} (96%) rename patches/server/{0216-Halloween-options-and-optimizations.patch => 0214-Halloween-options-and-optimizations.patch} (95%) rename patches/server/{0217-Config-for-grindstones.patch => 0215-Config-for-grindstones.patch} (98%) rename patches/server/{0218-UPnP-Port-Forwarding.patch => 0216-UPnP-Port-Forwarding.patch} (97%) rename patches/server/{0219-Campfire-option-for-lit-when-placed.patch => 0217-Campfire-option-for-lit-when-placed.patch} (96%) rename patches/server/{0220-options-to-extinguish-fire-blocks-with-snowballs.patch => 0218-options-to-extinguish-fire-blocks-with-snowballs.patch} (98%) rename patches/server/{0221-Add-option-to-disable-zombie-villagers-cure.patch => 0219-Add-option-to-disable-zombie-villagers-cure.patch} (88%) rename patches/server/{0222-Persistent-BlockEntity-Lore-and-DisplayName.patch => 0220-Persistent-BlockEntity-Lore-and-DisplayName.patch} (99%) rename patches/server/{0223-Signs-allow-color-codes.patch => 0221-Signs-allow-color-codes.patch} (93%) rename patches/server/{0224-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch => 0222-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch} (100%) rename patches/server/{0225-Mobs-always-drop-experience.patch => 0223-Mobs-always-drop-experience.patch} (94%) rename patches/server/{0226-Potion-NamespacedKey.patch => 0224-Potion-NamespacedKey.patch} (100%) rename patches/server/{0227-Grindstone-API.patch => 0225-Grindstone-API.patch} (95%) rename patches/server/{0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch => 0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch} (96%) rename patches/server/{0229-Turtle-eggs-random-tick-crack-chance.patch => 0227-Turtle-eggs-random-tick-crack-chance.patch} (93%) rename patches/server/{0230-Mob-head-visibility-percent.patch => 0228-Mob-head-visibility-percent.patch} (91%) rename patches/server/{0231-Configurable-valid-characters-for-usernames.patch => 0229-Configurable-valid-characters-for-usernames.patch} (100%) rename patches/server/{0232-Shears-can-have-looting-enchantment.patch => 0230-Shears-can-have-looting-enchantment.patch} (100%) rename patches/server/{0233-Stop-bees-from-dying-after-stinging.patch => 0231-Stop-bees-from-dying-after-stinging.patch} (86%) rename patches/server/{0234-Give-bee-counts-in-beehives-to-Purpur-clients.patch => 0232-Give-bee-counts-in-beehives-to-Purpur-clients.patch} (100%) rename patches/server/{0235-Configurable-farmland-trample-height.patch => 0233-Configurable-farmland-trample-height.patch} (94%) rename patches/server/{0236-Configurable-player-pickup-exp-delay.patch => 0234-Configurable-player-pickup-exp-delay.patch} (97%) rename patches/server/{0237-Allow-void-trading.patch => 0235-Allow-void-trading.patch} (93%) rename patches/server/{0238-Configurable-phantom-size.patch => 0236-Configurable-phantom-size.patch} (90%) rename patches/server/{0239-Configurable-food-attributes.patch => 0237-Configurable-food-attributes.patch} (100%) rename patches/server/{0240-Max-joins-per-second.patch => 0238-Max-joins-per-second.patch} (100%) rename patches/server/{0241-Configurable-minimum-demand-for-trades.patch => 0239-Configurable-minimum-demand-for-trades.patch} (94%) rename patches/server/{0242-Lobotomize-stuck-villagers.patch => 0240-Lobotomize-stuck-villagers.patch} (97%) rename patches/server/{0243-Option-for-villager-display-trade-item.patch => 0241-Option-for-villager-display-trade-item.patch} (91%) rename patches/server/{0244-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch => 0242-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch} (93%) rename patches/server/{0245-Config-for-mob-last-hurt-by-player-time.patch => 0243-Config-for-mob-last-hurt-by-player-time.patch} (97%) rename patches/server/{0246-Anvil-repair-damage-options.patch => 0244-Anvil-repair-damage-options.patch} (98%) rename patches/server/{0247-Option-to-disable-turtle-egg-trampling-with-feather-.patch => 0245-Option-to-disable-turtle-egg-trampling-with-feather-.patch} (94%) rename patches/server/{0248-Add-toggle-for-enchant-level-clamping.patch => 0246-Add-toggle-for-enchant-level-clamping.patch} (97%) rename patches/server/{0249-Skip-junit-tests-for-purpur-commands.patch => 0247-Skip-junit-tests-for-purpur-commands.patch} (100%) rename patches/server/{0250-Implement-configurable-search-radius-for-villagers-t.patch => 0248-Implement-configurable-search-radius-for-villagers-t.patch} (93%) rename patches/server/{0251-Stonecutter-damage.patch => 0249-Stonecutter-damage.patch} (98%) rename patches/server/{0252-Configurable-damage-settings-for-magma-blocks.patch => 0250-Configurable-damage-settings-for-magma-blocks.patch} (93%) rename patches/server/{0253-Add-config-for-snow-on-blue-ice.patch => 0251-Add-config-for-snow-on-blue-ice.patch} (93%) rename patches/server/{0254-Skeletons-eat-wither-roses.patch => 0252-Skeletons-eat-wither-roses.patch} (96%) rename patches/server/{0255-Enchantment-Table-Persists-Lapis.patch => 0253-Enchantment-Table-Persists-Lapis.patch} (96%) rename patches/server/{0256-Spark-Profiler.patch => 0254-Spark-Profiler.patch} (100%) rename patches/server/{0257-Option-to-disable-kick-for-out-of-order-chat.patch => 0255-Option-to-disable-kick-for-out-of-order-chat.patch} (95%) rename patches/server/{0258-Config-for-sculk-shrieker-can_summon-state.patch => 0256-Config-for-sculk-shrieker-can_summon-state.patch} (89%) rename patches/server/{0259-Config-to-not-let-coral-die.patch => 0257-Config-to-not-let-coral-die.patch} (96%) rename patches/server/{0260-Add-local-difficulty-api.patch => 0258-Add-local-difficulty-api.patch} (100%) rename patches/server/{0261-Add-toggle-for-RNG-manipulation.patch => 0259-Add-toggle-for-RNG-manipulation.patch} (94%) rename patches/server/{0262-Send-client-custom-name-of-BE.patch => 0260-Send-client-custom-name-of-BE.patch} (93%) rename patches/server/{0263-Allow-custom-ChatDecorators.patch => 0261-Allow-custom-ChatDecorators.patch} (94%) rename patches/server/{0264-Remove-Timings.patch => 0262-Remove-Timings.patch} (99%) rename patches/server/{0265-Remove-Mojang-Profiler.patch => 0263-Remove-Mojang-Profiler.patch} (98%) rename patches/server/{0266-Add-more-logger-output-for-invalid-movement-kicks.patch => 0264-Add-more-logger-output-for-invalid-movement-kicks.patch} (96%) rename patches/server/{0267-Add-Bee-API.patch => 0265-Add-Bee-API.patch} (96%) rename patches/server/{0268-Debug-Marker-API.patch => 0266-Debug-Marker-API.patch} (97%) rename patches/server/{0269-mob-spawning-option-to-ignore-creative-players.patch => 0267-mob-spawning-option-to-ignore-creative-players.patch} (92%) rename patches/server/{0270-Add-skeleton-bow-accuracy-option.patch => 0268-Add-skeleton-bow-accuracy-option.patch} (91%) rename patches/server/{0271-Allay-respect-item-NBT.patch => 0269-Allay-respect-item-NBT.patch} (95%) rename patches/server/{0272-Add-death-screen-API.patch => 0270-Add-death-screen-API.patch} (92%) rename patches/server/{0273-Make-pufferfish-config-relocatable.patch => 0271-Make-pufferfish-config-relocatable.patch} (90%) rename patches/server/{0274-Implement-ram-and-rambar-commands.patch => 0272-Implement-ram-and-rambar-commands.patch} (98%) rename patches/server/{0275-Add-item-packet-serialize-event.patch => 0273-Add-item-packet-serialize-event.patch} (100%) rename patches/server/{0276-Add-an-option-to-fix-MC-3304-projectile-looting.patch => 0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch} (100%) rename patches/server/{0277-Configurable-block-blast-resistance.patch => 0275-Configurable-block-blast-resistance.patch} (100%) rename patches/server/{0278-Configurable-block-fall-damage-modifiers.patch => 0276-Configurable-block-fall-damage-modifiers.patch} (100%) rename patches/server/{0279-Language-API.patch => 0277-Language-API.patch} (93%) rename patches/server/{0280-Milk-Keeps-Beneficial-Effects.patch => 0278-Milk-Keeps-Beneficial-Effects.patch} (97%) rename patches/server/{0281-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch => 0279-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch} (100%) rename patches/server/{0282-Add-log-suppression-for-LibraryLoader.patch => 0280-Add-log-suppression-for-LibraryLoader.patch} (100%) rename patches/server/{0283-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (92%) rename patches/server/{0284-Fire-Immunity-API.patch => 0282-Fire-Immunity-API.patch} (97%) rename patches/server/{0285-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (93%) rename patches/server/{0286-Added-got-ram-event.patch => 0284-Added-got-ram-event.patch} (91%) rename patches/server/{0287-Log-skipped-entity-s-position.patch => 0285-Log-skipped-entity-s-position.patch} (100%) rename patches/server/{0288-End-Crystal-Cramming.patch => 0286-End-Crystal-Cramming.patch} (96%) rename patches/server/{0289-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (94%) rename patches/server/{0290-Add-attribute-clamping-and-armor-limit-config.patch => 0288-Add-attribute-clamping-and-armor-limit-config.patch} (100%) rename patches/server/{0291-Config-to-remove-explosion-radius-clamp.patch => 0289-Config-to-remove-explosion-radius-clamp.patch} (91%) rename patches/server/{0292-bonemealable-sugarcane-cactus-and-netherwart.patch => 0290-bonemealable-sugarcane-cactus-and-netherwart.patch} (98%) rename patches/server/{0293-Add-PreExplodeEvents.patch => 0291-Add-PreExplodeEvents.patch} (94%) rename patches/server/{0294-Improve-output-of-plugins-command.patch => 0292-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0295-Add-mending-multiplier.patch => 0293-Add-mending-multiplier.patch} (96%) rename patches/server/{0296-Make-GUI-Great-Again.patch => 0294-Make-GUI-Great-Again.patch} (99%) rename patches/server/{0297-Stored-Bee-API.patch => 0295-Stored-Bee-API.patch} (100%) rename patches/server/{0298-Shears-can-defuse-TNT.patch => 0296-Shears-can-defuse-TNT.patch} (96%) rename patches/server/{0299-Explorer-Map-API.patch => 0297-Explorer-Map-API.patch} (91%) rename patches/server/{0300-Option-Ocelot-Spawn-Under-Sea-Level.patch => 0298-Option-Ocelot-Spawn-Under-Sea-Level.patch} (91%) rename patches/server/{0301-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch => 0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch} (94%) rename patches/server/{0302-Add-option-for-always-showing-item-in-player-death-m.patch => 0300-Add-option-for-always-showing-item-in-player-death-m.patch} (100%) rename patches/server/{0303-place-end-crystal-on-any-block.patch => 0301-place-end-crystal-on-any-block.patch} (92%) rename patches/server/{0304-Add-hover-lines-API.patch => 0302-Add-hover-lines-API.patch} (100%) rename patches/server/{0305-Add-option-to-disable-the-copper-oxidation-proximity.patch => 0303-Add-option-to-disable-the-copper-oxidation-proximity.patch} (96%) rename patches/server/{0306-register-minecraft-debug-commands.patch => 0304-register-minecraft-debug-commands.patch} (100%) delete mode 100644 patches/server/0307-PaperPR-10285-check-if-itemstack-is-stackable-first.patch diff --git a/gradle.properties b/gradle.properties index 68e007376..77a8370c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.4-R0.1-SNAPSHOT mcVersion = 1.20.4 -paperCommit = 681bbff110d9a56152ae898c4dfe1c0356b40e69 +paperCommit = 6ad63fba30e7ecd1b11bb8d77e8ed43f0a6e9ce9 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0003-Purpur-config-files.patch b/patches/api/0003-Purpur-config-files.patch index bbdda0e5e..3693a5e77 100644 --- a/patches/api/0003-Purpur-config-files.patch +++ b/patches/api/0003-Purpur-config-files.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur config files diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index b4f8281d3797ec825a7671f38077cd65d5a1d76e..86807781e9d80544d822c979493e16cdcedac962 100644 +index 0eb61b090d6f8fa6d99735ff3680dac774c52c1f..771f9f054268aa574b76c976b4734595b529aae9 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2214,6 +2214,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2229,6 +2229,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end diff --git a/patches/api/0005-Purpur-client-support.patch b/patches/api/0005-Purpur-client-support.patch index 9ee4edd05..7cda0661f 100644 --- a/patches/api/0005-Purpur-client-support.patch +++ b/patches/api/0005-Purpur-client-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 254a02ddb5dc867c9dd6c2086791f7ab94247fd3..37b1f55923d0a2aae79ebe4e5b06c7944ba5eeff 100644 +index c6cb4f17469a8f2e60dd3e28d41402851ce5fb21..6692bc3bedf0f78a3b8cd937e1943d1113e51584 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3687,4 +3687,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3711,4 +3711,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0010-AFK-API.patch b/patches/api/0010-AFK-API.patch index 595fd0870..769c440e0 100644 --- a/patches/api/0010-AFK-API.patch +++ b/patches/api/0010-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 37b1f55923d0a2aae79ebe4e5b06c7944ba5eeff..9386029164f5cd1e38f0e54a42e2c1c8a8f21cf6 100644 +index 6692bc3bedf0f78a3b8cd937e1943d1113e51584..654516bb7545d74a9e00efc154b5b75707038c96 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3695,5 +3695,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3719,5 +3719,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return True if Player uses Purpur Client */ public boolean usesPurpurClient(); diff --git a/patches/api/0011-Bring-back-server-name.patch b/patches/api/0011-Bring-back-server-name.patch index 1527df553..81d22a559 100644 --- a/patches/api/0011-Bring-back-server-name.patch +++ b/patches/api/0011-Bring-back-server-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Bring back server name diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index ca27559cf4aa1c2e44fdca2022e213b1b1c80f4e..07632f62a75c1e43be8386786d21f16f9cad895f 100644 +index db46e3233edf18bd91a6da8612ccc9f0080d5c17..13eeaf8a59c83ecfdbdb8cf62e78fd70b00d170b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2862,4 +2862,15 @@ public final class Bukkit { +@@ -2878,4 +2878,15 @@ public final class Bukkit { public static Server.Spigot spigot() { return server.spigot(); } @@ -25,10 +25,10 @@ index ca27559cf4aa1c2e44fdca2022e213b1b1c80f4e..07632f62a75c1e43be8386786d21f16f + // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 86807781e9d80544d822c979493e16cdcedac962..13de03608bf8ec8892754b48a1016bc0e76ea5f7 100644 +index 771f9f054268aa574b76c976b4734595b529aae9..5e44a3cb8b8865e760d2f600af1351259b2867fe 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2509,4 +2509,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2524,4 +2524,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean isOwnedByCurrentRegion(@NotNull Entity entity); // Paper end - Folia region threading API diff --git a/patches/api/0014-Lagging-threshold.patch b/patches/api/0014-Lagging-threshold.patch index 102cdcf39..09efe342c 100644 --- a/patches/api/0014-Lagging-threshold.patch +++ b/patches/api/0014-Lagging-threshold.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Lagging threshold diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 07632f62a75c1e43be8386786d21f16f9cad895f..96f63969955af4baf93aff1bae9fcb8b73a4f62b 100644 +index 13eeaf8a59c83ecfdbdb8cf62e78fd70b00d170b..812d903e8883ab087ec7ae154d76dceb019bac17 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2872,5 +2872,14 @@ public final class Bukkit { +@@ -2888,5 +2888,14 @@ public final class Bukkit { public static String getServerName() { return server.getServerName(); } @@ -24,10 +24,10 @@ index 07632f62a75c1e43be8386786d21f16f9cad895f..96f63969955af4baf93aff1bae9fcb8b // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 13de03608bf8ec8892754b48a1016bc0e76ea5f7..d5e7619f222e69fe29f4ae7a3fd2df1ba6362b86 100644 +index 5e44a3cb8b8865e760d2f600af1351259b2867fe..45287918b72c3053f21b56cd33b6daf692c9888a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2517,5 +2517,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2532,5 +2532,12 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull String getServerName(); diff --git a/patches/api/0032-Extended-OfflinePlayer-API.patch b/patches/api/0032-Extended-OfflinePlayer-API.patch index 276a05b4d..af97d3dd0 100644 --- a/patches/api/0032-Extended-OfflinePlayer-API.patch +++ b/patches/api/0032-Extended-OfflinePlayer-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Extended OfflinePlayer API diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index abb5109ed08a3a651c2c27d4d17a3d49eb06da1e..98308b759907e03b168f7e06704a91925ffcd3fd 100644 +index 30298a629b39bd43ce14b414fc697b2dfcbea89c..ce00af9121de7a910aaea4e0685a06d4cf31b4e3 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java -@@ -545,4 +545,106 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio +@@ -557,4 +557,106 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio */ @Nullable public Location getLocation(); diff --git a/patches/api/0033-Added-the-ability-to-add-combustible-items.patch b/patches/api/0033-Added-the-ability-to-add-combustible-items.patch index 8ef82f390..de687d1fb 100644 --- a/patches/api/0033-Added-the-ability-to-add-combustible-items.patch +++ b/patches/api/0033-Added-the-ability-to-add-combustible-items.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Added the ability to add combustible items diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 96f63969955af4baf93aff1bae9fcb8b73a4f62b..3f06db1c4a5f9418790fe4d3fe6f0f41d37c89ca 100644 +index 812d903e8883ab087ec7ae154d76dceb019bac17..17bb5de3f1216ddfcb66152a0791c63334460051 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2881,5 +2881,24 @@ public final class Bukkit { +@@ -2897,5 +2897,24 @@ public final class Bukkit { public static boolean isLagging() { return server.isLagging(); } @@ -34,10 +34,10 @@ index 96f63969955af4baf93aff1bae9fcb8b73a4f62b..3f06db1c4a5f9418790fe4d3fe6f0f41 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index d5e7619f222e69fe29f4ae7a3fd2df1ba6362b86..6f77c4a839d228ee2c84fa52961d19eea538d9cf 100644 +index 45287918b72c3053f21b56cd33b6daf692c9888a..109811ccc128006e29751e2242e171519c8557c7 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2524,5 +2524,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2539,5 +2539,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @return True if lagging */ boolean isLagging(); diff --git a/patches/api/0041-Debug-Marker-API.patch b/patches/api/0041-Debug-Marker-API.patch index f206d8592..8f34da2a9 100644 --- a/patches/api/0041-Debug-Marker-API.patch +++ b/patches/api/0041-Debug-Marker-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 3f06db1c4a5f9418790fe4d3fe6f0f41d37c89ca..d218cd30fc0733a83e3e0ba3279eb21561b0b08e 100644 +index 17bb5de3f1216ddfcb66152a0791c63334460051..afe47ecf0e7ae673aaf62b226e9cb07d2ed393eb 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2900,5 +2900,89 @@ public final class Bukkit { +@@ -2916,5 +2916,89 @@ public final class Bukkit { public static void removeFuel(@NotNull Material material) { server.removeFuel(material); } @@ -99,10 +99,10 @@ index 3f06db1c4a5f9418790fe4d3fe6f0f41d37c89ca..d218cd30fc0733a83e3e0ba3279eb215 // Purpur end } diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 6f77c4a839d228ee2c84fa52961d19eea538d9cf..be0e4c789a02d67160287c39cf6bdf8ef2229afc 100644 +index 109811ccc128006e29751e2242e171519c8557c7..90f109af3c83a1bc12cb27497d107de5029d0ce6 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2539,5 +2539,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2554,5 +2554,75 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi * @param material The material that will no longer be a fuel */ public void removeFuel(@NotNull Material material); @@ -260,10 +260,10 @@ index 9ac1ee847e64427cb9b1b396c23b6689f7c99f9c..565ce4b0c5eb300953aaefa786b9f893 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 9386029164f5cd1e38f0e54a42e2c1c8a8f21cf6..fed6d78e1d30a551db021dbe8c5e6d70eced681a 100644 +index 654516bb7545d74a9e00efc154b5b75707038c96..f2aa9de6b1b6475435f72e9b7939fa7af9583ed3 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3715,5 +3715,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3739,5 +3739,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated Use {@link #resetIdleDuration()} instead */ void resetIdleTimer(); diff --git a/patches/api/0042-Add-death-screen-API.patch b/patches/api/0042-Add-death-screen-API.patch index a04520854..cb8d877ed 100644 --- a/patches/api/0042-Add-death-screen-API.patch +++ b/patches/api/0042-Add-death-screen-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index fed6d78e1d30a551db021dbe8c5e6d70eced681a..6dc63bfe85d83a7cff369f06c57ebe0aa04c63a3 100644 +index f2aa9de6b1b6475435f72e9b7939fa7af9583ed3..5d22249f7bc98bc88ee798974f481c37807f7c5e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3785,5 +3785,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3809,5 +3809,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Clears all debug block highlights */ void clearBlockHighlights(); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 1b3c10ccc..975ca56d6 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1471,10 +1471,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 850f75172e9efa72cabb8e5bd124b96a0b1a945f..3db1de70c76e1427e257d988d1a7f26e986b5617 100644 +index e028353e0261310afc42ca0454b723d9f1ffc131..2222625a515d9ae6c3e9c92fc4d4a5bf974af5f8 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -212,7 +212,7 @@ public final class MCUtil { +@@ -215,7 +215,7 @@ public final class MCUtil { } public static long getCoordinateKey(final Entity entity) { @@ -1738,7 +1738,7 @@ index 529ab44baaf573b97cf7e89560c548642733188f..db55ad9aaabfa1ea998754f3ac352d16 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 6907d1be36fbdf0856c0e11983218d2fd1f9cb46..531c9ef0d6504fc1632b83bd93b9cf76e91377e8 100644 +index bf5e47e8c3706590fdc0731bd9a5858b56d06136..62ad086b5b07303d920fdb3534a556673ef51f71 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -894,6 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1918,7 +1918,7 @@ 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 45439b0cc4ea69e409fd41d4684403c0e0feab12..098c410f0285948d7ac48835c352f9c97742c5c7 100644 +index 51097f1d04d981db2823e8647b546658b8fd27c1..d18296739a833dbe6c3bf45e00d5d5c2e80099ac 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -309,7 +309,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2517,7 +2517,7 @@ index 24044795d8e0f1fb15a4f2f5401f44897092f2a3..96ca567af2d8fb2ba39f995be80b9353 if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java -index 309acf7bd07e38043aa81e0e686edba1136bd04c..deabb3400ee2406a8ec179a96d8cfd86f8edbbd6 100644 +index 96c898086f35fd83f9b1ce7e3fe53d31b2fa4c31..c6a925cbd35eb33b27b90bfa8344ac7515d28b76 100644 --- a/src/main/java/net/minecraft/world/entity/player/Inventory.java +++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java @@ -687,6 +687,8 @@ public class Inventory implements Container, Nameable { @@ -2697,10 +2697,10 @@ index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b68783 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 f476ba6c97944bdffae5aacae2e285d17541f46e..506100b02e7e9a3eabfde6b1f93858c4cc048524 100644 +index bc89f9e90af3d69872a58c47a4c2545ba91b6ba5..dbbb726f90077b4116b0c9424aa95c9db52ae100 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -207,6 +207,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -216,6 +216,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -2709,7 +2709,7 @@ index f476ba6c97944bdffae5aacae2e285d17541f46e..506100b02e7e9a3eabfde6b1f93858c4 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 - create paper world config; 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 - create paper world config -@@ -1308,14 +1310,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1317,14 +1319,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick @@ -2727,7 +2727,7 @@ index f476ba6c97944bdffae5aacae2e285d17541f46e..506100b02e7e9a3eabfde6b1f93858c4 } } // Paper start - Option to prevent armor stands from doing entity lookups -@@ -1788,6 +1790,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1797,6 +1799,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { @@ -3271,7 +3271,7 @@ 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 9f7ed337463cc9bb370a5541d9de5cd8f9c1a78a..9f5a6398a7dca841570a895054cee969dc96bca4 100644 +index c490a29bcf7410bc54959ee71375605964379ed5..18bfe2fb7efad66f5fae07a30593d640c597bf77 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -266,7 +266,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0003-Fix-pufferfish-issues.patch b/patches/server/0003-Fix-pufferfish-issues.patch index 1418270d7..ad314e5c7 100644 --- a/patches/server/0003-Fix-pufferfish-issues.patch +++ b/patches/server/0003-Fix-pufferfish-issues.patch @@ -40,7 +40,7 @@ index f6a3364175476c57a7763a087ff55e1689474800..5e01bfdad663656168604fc878a993dd "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 531c9ef0d6504fc1632b83bd93b9cf76e91377e8..09594f96cf79aa38142a859bef2e3b6b8d00f7db 100644 +index 62ad086b5b07303d920fdb3534a556673ef51f71..15aaa270e51b9194596e7ed5061c85c9fb54e177 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -924,7 +924,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -62,7 +62,7 @@ index 531c9ef0d6504fc1632b83bd93b9cf76e91377e8..09594f96cf79aa38142a859bef2e3b6b private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 098c410f0285948d7ac48835c352f9c97742c5c7..3773b05d0e2875db8817835e623272292855925f 100644 +index d18296739a833dbe6c3bf45e00d5d5c2e80099ac..d25dd9018eff5f3817c1b56f49632cc0a9388b8e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -825,7 +825,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -88,10 +88,10 @@ index 837f68825f601971f374be47952b23108bf66ba6..2a8a8030feefae84e394460612405887 return; } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 506100b02e7e9a3eabfde6b1f93858c4cc048524..27447e4acb7db91b7595a7c25b682a4a4ce8c151 100644 +index dbbb726f90077b4116b0c9424aa95c9db52ae100..9f5cde72a5305572202c316e750ad1b5e778fd87 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -207,7 +207,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -216,7 +216,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 230f14de9..efd080164 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -92,7 +92,7 @@ index 435b129c433704c24828d8fb57e14333c9423207..aa47b0af34cff5eaa638d6c24c718d02 io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index d6a08f06812bc15813559eb8ff66eddf7cf22888..bce8df10ac9dfb7a9bba76fc05357c8b6a0520e4 100644 +index 9f5cde72a5305572202c316e750ad1b5e778fd87..1513300064314a761adf4a08cc72782ec93947d1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -173,6 +173,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -103,7 +103,7 @@ index d6a08f06812bc15813559eb8ff66eddf7cf22888..bce8df10ac9dfb7a9bba76fc05357c8b public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -212,6 +213,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -221,6 +222,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 - create paper world config; 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 - create paper world config @@ -112,7 +112,7 @@ index d6a08f06812bc15813559eb8ff66eddf7cf22888..bce8df10ac9dfb7a9bba76fc05357c8b 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 357d7b8ca85ec3ed1fc53b230ae574d9f7c8cddf..460e21d0bcead970eda3e49dadc9e77c0bdf98bf 100644 +index 86c234c123fac96b4f94873d1dcfab30e9835e43..f36a87ba93da564b3b2c8b9f9190f8853557bdcd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1054,6 +1054,7 @@ public final class CraftServer implements Server { @@ -139,7 +139,7 @@ index 357d7b8ca85ec3ed1fc53b230ae574d9f7c8cddf..460e21d0bcead970eda3e49dadc9e77c this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -3018,6 +3021,18 @@ public final class CraftServer implements Server { +@@ -3033,6 +3036,18 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/patches/server/0013-Bring-back-server-name.patch b/patches/server/0013-Bring-back-server-name.patch index 53cdae89c..575821089 100644 --- a/patches/server/0013-Bring-back-server-name.patch +++ b/patches/server/0013-Bring-back-server-name.patch @@ -17,10 +17,10 @@ index bab2471616404821671264ccefd729cab8d0bf58..ae75edfaa9e4c72f11fbb7ffc66294be 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 460e21d0bcead970eda3e49dadc9e77c0bdf98bf..8a9af4a0d5c59361ffcf0ed572a1f1ee141d1780 100644 +index f36a87ba93da564b3b2c8b9f9190f8853557bdcd..a34f3eaa47c2b193a1b8dfbdf6f0c79bd3ace489 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3264,4 +3264,11 @@ public final class CraftServer implements Server { +@@ -3279,4 +3279,11 @@ public final class CraftServer implements Server { } // Paper end diff --git a/patches/server/0016-Lagging-threshold.patch b/patches/server/0016-Lagging-threshold.patch index 2c3b925d1..7a892933e 100644 --- a/patches/server/0016-Lagging-threshold.patch +++ b/patches/server/0016-Lagging-threshold.patch @@ -25,10 +25,10 @@ index c90a488e41ef65b57818cd91403e65e5f5e19cd9..feece6ec8fda944e2fcbf7c59327d0a1 } // Paper end - further improve server tick loop diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8a9af4a0d5c59361ffcf0ed572a1f1ee141d1780..152a10866560549d7d8deed328ee9ee2d9ed932c 100644 +index a34f3eaa47c2b193a1b8dfbdf6f0c79bd3ace489..8f21c4aee84070eab2798cfcd4200b6d2e8320a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3270,5 +3270,10 @@ public final class CraftServer implements Server { +@@ -3285,5 +3285,10 @@ public final class CraftServer implements Server { public String getServerName() { return this.getProperties().serverName; } diff --git a/patches/server/0059-Add-5-second-tps-average-in-tps.patch b/patches/server/0059-Add-5-second-tps-average-in-tps.patch index e739ba981..7a1d0752f 100644 --- a/patches/server/0059-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0059-Add-5-second-tps-average-in-tps.patch @@ -74,10 +74,10 @@ index 38fe7e5014332f45e41a3d5d91c28dd0acfdc3b0..479657ddef21f0279b361117b82549f7 this.values[this.vp++ & 255] = (int)(l * 100L / Runtime.getRuntime().maxMemory()); this.repaint(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 152a10866560549d7d8deed328ee9ee2d9ed932c..4342ad11ed1ee8f00b56a5ce4710fbd3350b0fdc 100644 +index 8f21c4aee84070eab2798cfcd4200b6d2e8320a4..a6affd4d7ecbe57a79fa18f4473c60662053d663 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3062,6 +3062,7 @@ public final class CraftServer implements Server { +@@ -3077,6 +3077,7 @@ public final class CraftServer implements Server { @Override public double[] getTPS() { return new double[] { diff --git a/patches/server/0070-Add-allow-water-in-end-world-option.patch b/patches/server/0070-Add-allow-water-in-end-world-option.patch index 3f65f2b65..11259bf74 100644 --- a/patches/server/0070-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0070-Add-allow-water-in-end-world-option.patch @@ -27,10 +27,10 @@ index 6371f326fc86cfc53e39bf8ed13b646f7705fbbc..3dec0c5fc8dece5341634eaf8e94fe19 return true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index bce8df10ac9dfb7a9bba76fc05357c8b6a0520e4..c2e6f6d2c4bdda3cafd2f7b42f3586242cdff738 100644 +index 1513300064314a761adf4a08cc72782ec93947d1..1e55c024a8dd7f1a5f324937bbd3f13b3ac8f076 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1902,4 +1902,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1911,4 +1911,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } // Paper end - optimize redstone (Alternate Current) diff --git a/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch index 262949f52..fdaef37e8 100644 --- a/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0101-Add-adjustable-breeding-cooldown-to-config.patch @@ -42,7 +42,7 @@ index 081d1e38b7b1f286e138b0981aaa760e58761215..d94928a78d166dd3d836261b4f99fb4f EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(entityageable, this, other, breeder, this.breedItem, experience); if (entityBreedEvent.isCancelled()) { diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c2e6f6d2c4bdda3cafd2f7b42f3586242cdff738..85d0a644fa876978d1295d8a2d88ab2869b33904 100644 +index 1e55c024a8dd7f1a5f324937bbd3f13b3ac8f076..d35e2338fb423f2f8306a1c33d808a0456c3af2a 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -191,6 +191,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -95,7 +95,7 @@ index c2e6f6d2c4bdda3cafd2f7b42f3586242cdff738..85d0a644fa876978d1295d8a2d88ab28 public CraftWorld getWorld() { return this.world; } -@@ -214,6 +257,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -223,6 +266,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur @@ -104,7 +104,7 @@ index c2e6f6d2c4bdda3cafd2f7b42f3586242cdff738..85d0a644fa876978d1295d8a2d88ab28 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6654234cae07b569ff97a51284a459335af300a4..52b9e364056b0b405779965daa634a8b0f1f82e0 100644 +index 364933d9f861adb2957b2f636f1608f3cee3ab66..c469fc30efcc71af34b446475af16870049487b6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -115,6 +115,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0176-Add-toggle-for-sand-duping-fix.patch b/patches/server/0176-Add-toggle-for-sand-duping-fix.patch deleted file mode 100644 index 62529b0eb..000000000 --- a/patches/server/0176-Add-toggle-for-sand-duping-fix.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Fri, 4 Jun 2021 09:13:54 -0500 -Subject: [PATCH] Add toggle for sand duping fix - - -diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 0aef6a8d51cb1351daaea16022f5cbb27ceaff0d..65cb5994142351e2b19f6d4ff2963f9ae7752205 100644 ---- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -@@ -134,7 +134,7 @@ public class FallingBlockEntity extends Entity { - @Override - public void tick() { - // Paper start - fix sand duping -- if (this.isRemoved()) { -+ if (this.level().purpurConfig.fixSandDuping && this.isRemoved()) { // Purpur - return; - } - // Paper end - fix sand duping -@@ -150,7 +150,7 @@ public class FallingBlockEntity extends Entity { - - this.move(MoverType.SELF, this.getDeltaMovement()); - // Paper start - fix sand duping -- if (this.isRemoved()) { -+ if (this.level().purpurConfig.fixSandDuping && this.isRemoved()) { // Purpur - return; - } - // Paper end - fix sand duping -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 991e8491c5bc254eb2ba0cbdcd06cb410d286fbb..6fb87c1ab0397d4c659dc69f33d0a4743c4d0dcd 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -683,6 +683,11 @@ public class PurpurWorldConfig { - } - } - -+ public boolean fixSandDuping = true; -+ private void sandSettings() { -+ fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); -+ } -+ - public boolean slabHalfBreak = false; - private void slabSettings() { - slabHalfBreak = getBoolean("blocks.slab.break-individual-slabs-when-sneaking", slabHalfBreak); diff --git a/patches/server/0178-Make-lightning-rod-range-configurable.patch b/patches/server/0176-Make-lightning-rod-range-configurable.patch similarity index 96% rename from patches/server/0178-Make-lightning-rod-range-configurable.patch rename to patches/server/0176-Make-lightning-rod-range-configurable.patch index e76bad449..5376e85ef 100644 --- a/patches/server/0178-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0176-Make-lightning-rod-range-configurable.patch @@ -5,7 +5,7 @@ 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 5af5a22e725bdae1cc15702b37982f585c46286f..8a695b29d9c641dbd35d6faa1c2f97c0c83c99bb 100644 +index b9ed172cee34ef2e140c362b9ac7030c8231b97a..aef2bd930125b3fbd9f564db86a575ddfbd7d894 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1192,7 +1192,7 @@ public class ServerLevel extends Level implements WorldGenLevel { diff --git a/patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch deleted file mode 100644 index f93f429e6..000000000 --- a/patches/server/0177-Add-toggle-for-end-portal-safe-teleporting.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Wed, 9 Jun 2021 11:03:40 -0500 -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 d79cbbcf0e6e6e6096e138be2617b727ea991c18..c868a61d73b4563807c70c9539f63cb0645a9984 100644 ---- a/src/main/java/net/minecraft/world/entity/Entity.java -+++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3238,7 +3238,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S - } - - this.processPortalCooldown(); -- this.tickEndPortal(); // Paper - make end portalling safe -+ if (this.level().purpurConfig.endPortalSafeTeleporting) this.tickEndPortal(); // Paper - make end portalling safe // Purpur - } - } - -diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -index a5a8bd6813b68ab2e913fc3ae30c9950c242beb3..f277a4a21b15627c45061e51c8f6c0812a176a10 100644 ---- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java -@@ -69,6 +69,22 @@ public class EndPortalBlock extends BaseEntityBlock { - // return; // CraftBukkit - always fire event in case plugins wish to change it - } - -+ // Purpur start -+ if (!world.purpurConfig.endPortalSafeTeleporting) { -+ // CraftBukkit start - Entity in portal -+ EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); -+ world.getCraftServer().getPluginManager().callEvent(event); -+ -+ if (entity instanceof ServerPlayer) { -+ ((ServerPlayer) entity).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL); -+ return; -+ } -+ // CraftBukkit end -+ entity.changeDimension(worldserver); -+ return; -+ } -+ // Purpur end -+ - // Paper start - move all of this logic into portal tick - entity.portalWorld = ((ServerLevel)world); - entity.portalBlock = pos.immutable(); -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6fb87c1ab0397d4c659dc69f33d0a4743c4d0dcd..722563c25d745f1991ce914f6e758633756e435e 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -631,6 +631,11 @@ public class PurpurWorldConfig { - furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); - } - -+ public boolean endPortalSafeTeleporting = true; -+ private void endPortalSettings() { -+ endPortalSafeTeleporting = getBoolean("blocks.end_portal.safe-teleporting", endPortalSafeTeleporting); -+ } -+ - public boolean mobsSpawnOnPackedIce = true; - public boolean mobsSpawnOnBlueIce = true; - private void iceSettings() { diff --git a/patches/server/0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch b/patches/server/0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch similarity index 98% rename from patches/server/0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch rename to patches/server/0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch index d238d9ca5..07aaf4015 100644 --- a/patches/server/0179-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch +++ b/patches/server/0177-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch @@ -55,7 +55,7 @@ index c3448707fd8a632b457cc97b35d08a9c6933d5ee..2840c0b16d9b8147703f34bac5a8aa21 public void eat(Item item, ItemStack stack) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 722563c25d745f1991ce914f6e758633756e435e..2a1c8d85ef72a3ef3367ba8f7e830e95608b60f9 100644 +index 991e8491c5bc254eb2ba0cbdcd06cb410d286fbb..ee94f8f165428072ae2f27d2f70a15b6aa3b242a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -388,6 +388,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0180-Allow-player-join-full-server-by-permission.patch b/patches/server/0178-Allow-player-join-full-server-by-permission.patch similarity index 100% rename from patches/server/0180-Allow-player-join-full-server-by-permission.patch rename to patches/server/0178-Allow-player-join-full-server-by-permission.patch diff --git a/patches/server/0181-Add-portal-permission-bypass.patch b/patches/server/0179-Add-portal-permission-bypass.patch similarity index 100% rename from patches/server/0181-Add-portal-permission-bypass.patch rename to patches/server/0179-Add-portal-permission-bypass.patch diff --git a/patches/server/0182-Shulker-spawn-from-bullet-options.patch b/patches/server/0180-Shulker-spawn-from-bullet-options.patch similarity index 96% rename from patches/server/0182-Shulker-spawn-from-bullet-options.patch rename to patches/server/0180-Shulker-spawn-from-bullet-options.patch index a19c75bc6..0bb22c50a 100644 --- a/patches/server/0182-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0180-Shulker-spawn-from-bullet-options.patch @@ -68,10 +68,10 @@ index 88e1c2431d51d8cdc3d555b711e506648225d289..ac8735cc9d127fc1f867b40d4000c033 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 79a93bb2ce4a86586bfac8635706a4c2d1d1f407..1225ffe648086a279c084ce2f18e5f2126660b7c 100644 +index ee94f8f165428072ae2f27d2f70a15b6aa3b242a..cc612f8328abfa27d784181c5aebbcd9e0b10c05 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1917,6 +1917,11 @@ public class PurpurWorldConfig { +@@ -1907,6 +1907,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -83,7 +83,7 @@ index 79a93bb2ce4a86586bfac8635706a4c2d1d1f407..1225ffe648086a279c084ce2f18e5f21 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1928,6 +1933,11 @@ public class PurpurWorldConfig { +@@ -1918,6 +1923,11 @@ public class PurpurWorldConfig { } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater); diff --git a/patches/server/0183-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0181-Eating-glow-berries-adds-glow-effect.patch similarity index 97% rename from patches/server/0183-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0181-Eating-glow-berries-adds-glow-effect.patch index 732b5b88d..01b2cccb3 100644 --- a/patches/server/0183-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0181-Eating-glow-berries-adds-glow-effect.patch @@ -18,7 +18,7 @@ index 7fbd4bf29bcc0795aa4b0e6d5d4bc3745bf7a1c0..e83ea53da012f3dcaa1f53bf6082a17a public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE); public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3cdd1f0fa067160f879fb617b81f42678270cde6..1275e2a3799d064244f22894a03cc2dd53477f04 100644 +index cc612f8328abfa27d784181c5aebbcd9e0b10c05..b21d288f62f473cd9d1057d3d2a452f16b0291d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -220,6 +220,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0184-Option-to-make-drowned-break-doors.patch b/patches/server/0182-Option-to-make-drowned-break-doors.patch similarity index 91% rename from patches/server/0184-Option-to-make-drowned-break-doors.patch rename to patches/server/0182-Option-to-make-drowned-break-doors.patch index 9a73ed99e..335400a6f 100644 --- a/patches/server/0184-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0182-Option-to-make-drowned-break-doors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to make drowned break doors diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index a315e2fc10b9d404a92971dea6a0a5fae16d8133..6e6d7f68cf1c1c224b67a9d674fdcaa67ea00359 100644 +index 8850d8fc54d7025d323bc273a87a609baacea174..13427d23f1e614c0d83e9ccd68944ea4e1993c73 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -29,6 +29,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal; @@ -34,10 +34,10 @@ index a315e2fc10b9d404a92971dea6a0a5fae16d8133..6e6d7f68cf1c1c224b67a9d674fdcaa6 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1275e2a3799d064244f22894a03cc2dd53477f04..d9409fa6d82b6f512e8b482f319b139489675828 100644 +index b21d288f62f473cd9d1057d3d2a452f16b0291d0..5a3dad2ba18f56724e22ec2dcb99cf22af61e2aa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1063,6 +1063,7 @@ public class PurpurWorldConfig { +@@ -1053,6 +1053,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index 1275e2a3799d064244f22894a03cc2dd53477f04..d9409fa6d82b6f512e8b482f319b1394 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1078,6 +1079,7 @@ public class PurpurWorldConfig { +@@ -1068,6 +1069,7 @@ public class PurpurWorldConfig { drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); diff --git a/patches/server/0185-Configurable-hunger-starvation-damage.patch b/patches/server/0183-Configurable-hunger-starvation-damage.patch similarity index 92% rename from patches/server/0185-Configurable-hunger-starvation-damage.patch rename to patches/server/0183-Configurable-hunger-starvation-damage.patch index 46a7e9e03..3108d3c43 100644 --- a/patches/server/0185-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0183-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 2840c0b16d9b8147703f34bac5a8aa21f82e6e44..e8079d126e6c0cf0b15c01afb6498922 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cce6cbf83e1d57c609ea5575553e2cef5a526bf9..e308af8e5dbb066b1976b341cc8362aa7b546964 100644 +index 5a3dad2ba18f56724e22ec2dcb99cf22af61e2aa..c294a2a89e23cd5889472ebe586c2ab3de043733 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2576,4 +2576,9 @@ public class PurpurWorldConfig { +@@ -2566,4 +2566,9 @@ public class PurpurWorldConfig { zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); } diff --git a/patches/server/0186-Enhance-SysoutCatcher.patch b/patches/server/0184-Enhance-SysoutCatcher.patch similarity index 100% rename from patches/server/0186-Enhance-SysoutCatcher.patch rename to patches/server/0184-Enhance-SysoutCatcher.patch diff --git a/patches/server/0187-Add-uptime-command.patch b/patches/server/0185-Add-uptime-command.patch similarity index 98% rename from patches/server/0187-Add-uptime-command.patch rename to patches/server/0185-Add-uptime-command.patch index 5c40ea5dc..73f3d37d3 100644 --- a/patches/server/0187-Add-uptime-command.patch +++ b/patches/server/0185-Add-uptime-command.patch @@ -17,7 +17,7 @@ index 9c335df92b0a6c7705c9def89ba5c320d2c8ed03..c2b8a653b01aa3e0856afa3e96555f5e } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6887e871fe3773df55636749c8d3d65a7cacff83..1e3a1792927f42e7597e4cb2067844f45a3f0bfb 100644 +index 69af88f3ed690cbb751d367171c4cf6aa0ee2fca..1381e16fcac730eaecfc621a0c602bbf15d744f3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -293,6 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 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 4342ad11ed1ee8f00b56a5ce4710fbd3350b0fdc..a4f812588b9cc1d6df556373ea0d7991058261ee 100644 +index a6affd4d7ecbe57a79fa18f4473c60662053d663..14e60675d23f9696fd8f64eb026fcd0b82b498f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1589,6 +1589,19 @@ public final class CraftServer implements Server { diff --git a/patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 94% rename from patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 9d30fb24b..e6fb6236b 100644 --- a/patches/server/0210-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0208-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,7 +5,7 @@ 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 6971ce789c329d733bbc373422000fa0efff7ef6..e675d7e82245e1b7ef94fc55f393002ab572e2ba 100644 +index 9394aa9e300721b335238f143500528e93ce8385..f141031f668898b8cc0ac1970b9026da6be4a466 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1401,6 +1401,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -25,7 +25,7 @@ index 6971ce789c329d733bbc373422000fa0efff7ef6..e675d7e82245e1b7ef94fc55f393002a // 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 15410deb58a80ff8050d8f1b94004eb64e86f262..8644472c44f32c10a46749aab58a3be5444dcc33 100644 +index ba161c85a17aed57bcb7b5f8ec347757f45ef003..6151c7d3bf9de065227c200b62dd03f7dba3f504 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/0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 98% rename from patches/server/0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 04950a31a..acd8f5dcd 100644 --- a/patches/server/0211-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0209-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,7 +45,7 @@ index 1c7bb504a576568bd275b4f1373208d37d1419e5..3d48293c34fa37ba5091c6058dadb32a public static final Block PINK_PETALS = register("pink_petals", new PinkPetalsBlock(BlockBehaviour.Properties.of().mapColor(MapColor.PLANT).noCollission().sound(SoundType.PINK_PETALS).pushReaction(PushReaction.DESTROY))); public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS).pushReaction(PushReaction.DESTROY))); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f75b12f80e02c2b85c55c41096b4ee4759ce63b0..767659256e391854c0cd3035f138d86bbcaf6949 100644 +index 6151c7d3bf9de065227c200b62dd03f7dba3f504..951a4fcdc1f47189ea7f36fc232faaf06310db59 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -805,6 +805,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0212-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0210-Shift-right-click-to-use-exp-for-mending.patch similarity index 96% rename from patches/server/0212-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0210-Shift-right-click-to-use-exp-for-mending.patch index 9badb2061..c23df70a7 100644 --- a/patches/server/0212-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0210-Shift-right-click-to-use-exp-for-mending.patch @@ -36,7 +36,7 @@ index 1aa98f8ff062a906035c62875c454aeb0bc6f179..f8edb6b0d119582cf404b9931adc0948 + // 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 cac4127571c514a6f7697f31eb7d1edeca47d99a..5e17a72dbe105a1a0221d857b6da39a855127aab 100644 +index affe433994ec5c5cd6cecd3989a5daa90db3b203..72ac438ec1a6628c861bdab9626c77666d4ba2b6 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2051,6 +2051,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -48,7 +48,7 @@ index cac4127571c514a6f7697f31eb7d1edeca47d99a..5e17a72dbe105a1a0221d857b6da39a8 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 da270cdc4afe91c65513469b04b4d247066a05ec..83da28a7edb4b101138034ed6ac71a0ae36a091b 100644 +index 951a4fcdc1f47189ea7f36fc232faaf06310db59..da79bad084e062cdbff25a47c3a324c8d072a471 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/0213-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0211-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 95% rename from patches/server/0213-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0211-Dolphins-naturally-aggressive-to-players-chance.patch index 13d657fb6..869d163f6 100644 --- a/patches/server/0213-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0211-Dolphins-naturally-aggressive-to-players-chance.patch @@ -48,10 +48,10 @@ index 21e804d391478c613f4f89076fd268a9eb2e2ecf..9c35059d390c94f6d641c0fe8d37777f public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 83da28a7edb4b101138034ed6ac71a0ae36a091b..a46cbcd6393cf27a919405db0bfb4903b2f6e6fd 100644 +index da79bad084e062cdbff25a47c3a324c8d072a471..1e3f63240e76102a46bfa13500629172360bc48d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1342,6 +1342,7 @@ public class PurpurWorldConfig { +@@ -1332,6 +1332,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -59,7 +59,7 @@ index 83da28a7edb4b101138034ed6ac71a0ae36a091b..a46cbcd6393cf27a919405db0bfb4903 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1356,6 +1357,7 @@ public class PurpurWorldConfig { +@@ -1346,6 +1347,7 @@ public class PurpurWorldConfig { dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); diff --git a/patches/server/0214-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0212-Cows-naturally-aggressive-to-players-chance.patch similarity index 94% rename from patches/server/0214-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0212-Cows-naturally-aggressive-to-players-chance.patch index 51385c2b5..e525cedf5 100644 --- a/patches/server/0214-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0212-Cows-naturally-aggressive-to-players-chance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cows naturally aggressive to players chance diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index f76b0d92150fd985a8fc699f6f884527d589dfd3..3c12e179861b5514e081d0db1664f7173955629c 100644 +index 4c2cc5ba3c8f15c26f01361e786d25b399747974..da3dfa10e08750e7ad84ff32a0c0136e055ee3a7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -42,6 +42,7 @@ import org.bukkit.event.player.PlayerBucketFillEvent; @@ -57,10 +57,10 @@ index f76b0d92150fd985a8fc699f6f884527d589dfd3..3c12e179861b5514e081d0db1664f717 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 727a70ef18192e27736ecdd6775711a17f8ce79b..e967ce42a54d97f28e50509167c7c7ac693a285b 100644 +index 1e3f63240e76102a46bfa13500629172360bc48d..50429a76847b7c655cf88c49f6f3b0dbccda9d8b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1291,7 +1291,14 @@ public class PurpurWorldConfig { +@@ -1281,7 +1281,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -75,7 +75,7 @@ index 727a70ef18192e27736ecdd6775711a17f8ce79b..e967ce42a54d97f28e50509167c7c7ac cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1304,6 +1311,8 @@ public class PurpurWorldConfig { +@@ -1294,6 +1301,8 @@ public class PurpurWorldConfig { cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); diff --git a/patches/server/0215-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0213-Option-for-beds-to-explode-on-villager-sleep.patch similarity index 96% rename from patches/server/0215-Option-for-beds-to-explode-on-villager-sleep.patch rename to patches/server/0213-Option-for-beds-to-explode-on-villager-sleep.patch index d914b2c63..0b234718c 100644 --- a/patches/server/0215-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0213-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,7 +22,7 @@ index ee509b5eea71c17ff466fb93fe63168710065add..d2b6d094c4b93055a4e6622372c6a0a8 this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level().getGameTime()); // CraftBukkit - decompile error this.brain.eraseMemory(MemoryModuleType.WALK_TARGET); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 60643dc828b134d1a3956a280b1fc72348b0bd5c..8703e603f4c45fc79b0a44dd22e8497060421254 100644 +index 50429a76847b7c655cf88c49f6f3b0dbccda9d8b..9b19961631c0bd2f922820ce0a33bace926afdf7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -824,6 +824,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0216-Halloween-options-and-optimizations.patch b/patches/server/0214-Halloween-options-and-optimizations.patch similarity index 95% rename from patches/server/0216-Halloween-options-and-optimizations.patch rename to patches/server/0214-Halloween-options-and-optimizations.patch index 41072497e..facc345ba 100644 --- a/patches/server/0216-Halloween-options-and-optimizations.patch +++ b/patches/server/0214-Halloween-options-and-optimizations.patch @@ -43,7 +43,7 @@ index 3f9e81c0bdd85bec24a1209ad3fd3dc43d988a4f..cb378b343f721c16868a6673aba59856 this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 2dad874c0a425cf2d0a385b6061ab79d81b82c86..47b5a928574a57107dfaeaecf49459496a64a036 100644 +index e568d014f577ab705645152446156dc04895b3bf..9e373fa5eba63ed061e666510e01a6d8cdd6997b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -586,11 +586,7 @@ public class Zombie extends Monster { @@ -60,10 +60,10 @@ index 2dad874c0a425cf2d0a385b6061ab79d81b82c86..47b5a928574a57107dfaeaecf4945949 this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 82522611cbca7ce08b9a12e514fb8286a3280550..9e3181b5f2329d44025f7d811f1865d353cb6a96 100644 +index 9b19961631c0bd2f922820ce0a33bace926afdf7..e956e8d742a525a9485bdd691e81407ae06c08f0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1684,6 +1684,13 @@ public class PurpurWorldConfig { +@@ -1674,6 +1674,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0217-Config-for-grindstones.patch b/patches/server/0215-Config-for-grindstones.patch similarity index 98% rename from patches/server/0217-Config-for-grindstones.patch rename to patches/server/0215-Config-for-grindstones.patch index 7c738dfc0..6cb91c2a5 100644 --- a/patches/server/0217-Config-for-grindstones.patch +++ b/patches/server/0215-Config-for-grindstones.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for grindstones diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index 076c2b2938c9b88b7e71dbc2aa9d8c7e90d4fe75..c79e87fde9de55dbfe8c3deaf725e2a73dc2af38 100644 +index 23462de504932bd351b8dfacde514fe361343912..2a2bcd0fc2b7653d9087b88e9a01034b51f017b9 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -130,7 +130,7 @@ public class GrindstoneMenu extends AbstractContainerMenu { diff --git a/patches/server/0218-UPnP-Port-Forwarding.patch b/patches/server/0216-UPnP-Port-Forwarding.patch similarity index 97% rename from patches/server/0218-UPnP-Port-Forwarding.patch rename to patches/server/0216-UPnP-Port-Forwarding.patch index bbb7313e5..3c7e89aad 100644 --- a/patches/server/0218-UPnP-Port-Forwarding.patch +++ b/patches/server/0216-UPnP-Port-Forwarding.patch @@ -32,7 +32,7 @@ index 1381e16fcac730eaecfc621a0c602bbf15d744f3..4a0e56f4fb6903ea5f4974052d9d5544 if (this.server != null) { this.server.disablePlugins(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index f0745f41ba4c1931e4b61ac75edcff8f8cea5b34..20bf50f07f50409d0d1f394d7c3acde9a00ff98d 100644 +index d66fc3f1b8d960782a7a2e08dd72831025f9c8fd..0d70fe71651c8f9d75a604ed2d5c480b41df1dd6 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -279,6 +279,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/server/0219-Campfire-option-for-lit-when-placed.patch b/patches/server/0217-Campfire-option-for-lit-when-placed.patch similarity index 96% rename from patches/server/0219-Campfire-option-for-lit-when-placed.patch rename to patches/server/0217-Campfire-option-for-lit-when-placed.patch index 75e5113b8..f6f00ae72 100644 --- a/patches/server/0219-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0217-Campfire-option-for-lit-when-placed.patch @@ -18,7 +18,7 @@ index 9c7ee02d3aa3c33b45db4dc5c079495a69d60b15..5eed401d3d722c6553240aba4a8e2337 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a50ceedce4a99e36374062dd894bf7a1f9eee17c..2b0093b9f30d5fe2c53b4a3fd02ad813d5aad555 100644 +index e956e8d742a525a9485bdd691e81407ae06c08f0..a9c1bf5b07daa33325316366338f5a57027f617d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -867,6 +867,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0220-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0218-options-to-extinguish-fire-blocks-with-snowballs.patch similarity index 98% rename from patches/server/0220-options-to-extinguish-fire-blocks-with-snowballs.patch rename to patches/server/0218-options-to-extinguish-fire-blocks-with-snowballs.patch index 8129534f5..101923d27 100644 --- a/patches/server/0220-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0218-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,7 +46,7 @@ index 8d1591c3b29e02794f6f66b742ec6a121920ad71..bb61e1132c28274175215a679befdcfa protected void onHit(HitResult hitResult) { super.onHit(hitResult); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2b0093b9f30d5fe2c53b4a3fd02ad813d5aad555..2c3ea77d66f889fddde73bd49e6607aa2a0c3ad9 100644 +index a9c1bf5b07daa33325316366338f5a57027f617d..00593e16024af69699d1b5ad7c5acb84d756a25c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -231,6 +231,9 @@ public class PurpurWorldConfig { diff --git a/patches/server/0221-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0219-Add-option-to-disable-zombie-villagers-cure.patch similarity index 88% rename from patches/server/0221-Add-option-to-disable-zombie-villagers-cure.patch rename to patches/server/0219-Add-option-to-disable-zombie-villagers-cure.patch index e5279b764..c8f40aedb 100644 --- a/patches/server/0221-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0219-Add-option-to-disable-zombie-villagers-cure.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to disable zombie villagers cure diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 6a85de8af9b260e92b4ccffa2ae3503cd29b0b98..faf03e2c69b6b4ee7d7425322b5b19974e37cb85 100644 +index 40465fbe6f78da6176d5fad8a3687cefd93dcf43..f902814a23ef8a7d3893fc0349d1a0b3c203a123 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -215,7 +215,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -18,10 +18,10 @@ index 6a85de8af9b260e92b4ccffa2ae3503cd29b0b98..faf03e2c69b6b4ee7d7425322b5b1997 itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ac8dcd839c1f002c02d2cdb324ec2f44794e3001..bcfe67362f5bd58b071dd96c0fc6804a22184fcd 100644 +index 00593e16024af69699d1b5ad7c5acb84d756a25c..1c77929516d70407a281a0899c6722cc4210eb79 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2903,6 +2903,7 @@ public class PurpurWorldConfig { +@@ -2893,6 +2893,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index ac8dcd839c1f002c02d2cdb324ec2f44794e3001..bcfe67362f5bd58b071dd96c0fc6804a private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2920,6 +2921,7 @@ public class PurpurWorldConfig { +@@ -2910,6 +2911,7 @@ public class PurpurWorldConfig { zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); diff --git a/patches/server/0222-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0220-Persistent-BlockEntity-Lore-and-DisplayName.patch similarity index 99% rename from patches/server/0222-Persistent-BlockEntity-Lore-and-DisplayName.patch rename to patches/server/0220-Persistent-BlockEntity-Lore-and-DisplayName.patch index 7266c3d26..0587c618b 100644 --- a/patches/server/0222-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0220-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -195,7 +195,7 @@ index 9ea74d37cd951e0dc76d20ed8234b5871035566c..8e1afae66742fc69d5aab1074ba94a39 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bcfe67362f5bd58b071dd96c0fc6804a22184fcd..3ba96a753639a5094c8c820bf28a14c90accddff 100644 +index 1c77929516d70407a281a0899c6722cc4210eb79..b4d5ae4025d315cfe0e19fa1b077d1c5956523ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -130,6 +130,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0223-Signs-allow-color-codes.patch b/patches/server/0221-Signs-allow-color-codes.patch similarity index 93% rename from patches/server/0223-Signs-allow-color-codes.patch rename to patches/server/0221-Signs-allow-color-codes.patch index 31dfa7987..a17cacf74 100644 --- a/patches/server/0223-Signs-allow-color-codes.patch +++ b/patches/server/0221-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cd449e35bbc689ce6d2595693a4fbe1f226998c8..943e864d7e25f77023337d7c719fc3d9a4b3ac55 100644 +index 8601df7eefe25b2a6f5cc3a2dbda35695b1e0202..c0543808d13453f9d1f56ef83b9ab16db2edd5bf 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1589,6 +1589,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index cd449e35bbc689ce6d2595693a4fbe1f226998c8..943e864d7e25f77023337d7c719fc3d9 this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), front)); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index a3ec2f522be2d02b9e37810799cecc2ba14f58f3..b0f3095a8eacf1c903c6190db440b21ca0d9acb1 100644 +index 927c7ea03560be0c86884cec70ee8e408e66cb07..93764bf849ad8e427bf119f6ff3dbcbcc4c2415e 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java @@ -200,16 +200,31 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C @@ -84,11 +84,11 @@ index a3ec2f522be2d02b9e37810799cecc2ba14f58f3..b0f3095a8eacf1c903c6190db440b21c public CompoundTag getUpdateTag() { return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 72c6b244e358aceffd934e1224952b459940e608..d5ce0eda09bfa4b6e708b5468697102cc853cfc7 100644 +index b4d5ae4025d315cfe0e19fa1b077d1c5956523ba..d807da2719c5677c200e5f017e4cf5a1c7fa0ce9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1042,6 +1042,11 @@ public class PurpurWorldConfig { - fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); +@@ -1032,6 +1032,11 @@ public class PurpurWorldConfig { + } } + public boolean signAllowColors = false; diff --git a/patches/server/0224-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch b/patches/server/0222-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch similarity index 100% rename from patches/server/0224-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch rename to patches/server/0222-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch diff --git a/patches/server/0225-Mobs-always-drop-experience.patch b/patches/server/0223-Mobs-always-drop-experience.patch similarity index 94% rename from patches/server/0225-Mobs-always-drop-experience.patch rename to patches/server/0223-Mobs-always-drop-experience.patch index 4f88524a7..8250934a6 100644 --- a/patches/server/0225-Mobs-always-drop-experience.patch +++ b/patches/server/0223-Mobs-always-drop-experience.patch @@ -1157,10 +1157,10 @@ index 657fdbabf18da7ab321e8e95a31d53362c605380..21a7cc86245d2440b8fc757d3664a29d protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387f52fff7f 100644 +index d807da2719c5677c200e5f017e4cf5a1c7fa0ce9..f66cb47080fb4e046ba9fd9aa589f2d9d85dc8c3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1109,12 +1109,14 @@ public class PurpurWorldConfig { +@@ -1099,12 +1099,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean batRidable = false; -@@ -1130,6 +1132,7 @@ public class PurpurWorldConfig { +@@ -1120,6 +1122,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1149,6 +1152,7 @@ public class PurpurWorldConfig { +@@ -1139,6 +1142,7 @@ public class PurpurWorldConfig { batArmorToughness = getDouble("mobs.bat.attributes.armor_toughness", batArmorToughness); batAttackKnockback = getDouble("mobs.bat.attributes.attack_knockback", batAttackKnockback); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1191,7 +1191,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean beeRidable = false; -@@ -1160,6 +1164,7 @@ public class PurpurWorldConfig { +@@ -1150,6 +1154,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1175,6 +1180,7 @@ public class PurpurWorldConfig { +@@ -1165,6 +1170,7 @@ public class PurpurWorldConfig { beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); @@ -1207,7 +1207,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean blazeRidable = false; -@@ -1183,6 +1189,7 @@ public class PurpurWorldConfig { +@@ -1173,6 +1179,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1195,6 +1202,7 @@ public class PurpurWorldConfig { +@@ -1185,6 +1192,7 @@ public class PurpurWorldConfig { } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1223,7 +1223,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean camelRidableInWater = false; -@@ -1226,6 +1234,7 @@ public class PurpurWorldConfig { +@@ -1216,6 +1224,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1246,6 +1255,7 @@ public class PurpurWorldConfig { +@@ -1236,6 +1245,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean caveSpiderRidable = false; -@@ -1253,6 +1263,7 @@ public class PurpurWorldConfig { +@@ -1243,6 +1253,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1264,6 +1275,7 @@ public class PurpurWorldConfig { +@@ -1254,6 +1265,7 @@ public class PurpurWorldConfig { } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1255,7 +1255,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean chickenRidable = false; -@@ -1273,6 +1285,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1275,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1286,12 +1299,14 @@ public class PurpurWorldConfig { +@@ -1276,12 +1289,14 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); @@ -1278,7 +1278,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1302,6 +1317,7 @@ public class PurpurWorldConfig { +@@ -1292,6 +1307,7 @@ public class PurpurWorldConfig { } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1286,7 +1286,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean cowRidable = false; -@@ -1313,6 +1329,7 @@ public class PurpurWorldConfig { +@@ -1303,6 +1319,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1333,6 +1350,7 @@ public class PurpurWorldConfig { +@@ -1323,6 +1340,7 @@ public class PurpurWorldConfig { cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); @@ -1302,7 +1302,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean creeperRidable = false; -@@ -1345,6 +1363,7 @@ public class PurpurWorldConfig { +@@ -1335,6 +1353,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1361,6 +1380,7 @@ public class PurpurWorldConfig { +@@ -1351,6 +1370,7 @@ public class PurpurWorldConfig { creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); @@ -1318,7 +1318,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean dolphinRidable = false; -@@ -1372,6 +1392,7 @@ public class PurpurWorldConfig { +@@ -1362,6 +1382,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1387,6 +1408,7 @@ public class PurpurWorldConfig { +@@ -1377,6 +1398,7 @@ public class PurpurWorldConfig { dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); @@ -1334,7 +1334,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean donkeyRidableInWater = false; -@@ -1398,6 +1420,7 @@ public class PurpurWorldConfig { +@@ -1388,6 +1410,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1415,6 +1438,7 @@ public class PurpurWorldConfig { +@@ -1405,6 +1428,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); @@ -1350,7 +1350,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean drownedRidable = false; -@@ -1427,6 +1451,7 @@ public class PurpurWorldConfig { +@@ -1417,6 +1441,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1443,12 +1468,14 @@ public class PurpurWorldConfig { +@@ -1433,12 +1458,14 @@ public class PurpurWorldConfig { drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); @@ -1373,7 +1373,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1459,6 +1486,7 @@ public class PurpurWorldConfig { +@@ -1449,6 +1476,7 @@ public class PurpurWorldConfig { } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1381,7 +1381,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean enderDragonRidable = false; -@@ -1504,6 +1532,7 @@ public class PurpurWorldConfig { +@@ -1494,6 +1522,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1527,6 +1556,7 @@ public class PurpurWorldConfig { +@@ -1517,6 +1546,7 @@ public class PurpurWorldConfig { endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1397,7 +1397,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean endermiteRidable = false; -@@ -1534,6 +1564,7 @@ public class PurpurWorldConfig { +@@ -1524,6 +1554,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1545,6 +1576,7 @@ public class PurpurWorldConfig { +@@ -1535,6 +1566,7 @@ public class PurpurWorldConfig { } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1413,7 +1413,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean evokerRidable = false; -@@ -1553,6 +1585,7 @@ public class PurpurWorldConfig { +@@ -1543,6 +1575,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1565,6 +1598,7 @@ public class PurpurWorldConfig { +@@ -1555,6 +1588,7 @@ public class PurpurWorldConfig { evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1429,7 +1429,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean foxRidable = false; -@@ -1575,6 +1609,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1599,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1589,6 +1624,7 @@ public class PurpurWorldConfig { +@@ -1579,6 +1614,7 @@ public class PurpurWorldConfig { foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); @@ -1445,7 +1445,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean frogRidable = false; -@@ -1610,6 +1646,7 @@ public class PurpurWorldConfig { +@@ -1600,6 +1636,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1622,6 +1659,7 @@ public class PurpurWorldConfig { +@@ -1612,6 +1649,7 @@ public class PurpurWorldConfig { } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1461,7 +1461,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean giantRidable = false; -@@ -1635,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1625,6 +1663,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1656,6 +1695,7 @@ public class PurpurWorldConfig { +@@ -1646,6 +1685,7 @@ public class PurpurWorldConfig { giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); @@ -1477,7 +1477,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean glowSquidRidable = false; -@@ -1663,12 +1703,14 @@ public class PurpurWorldConfig { +@@ -1653,12 +1693,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean goatRidable = false; -@@ -1677,6 +1719,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1709,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1684,12 +1727,14 @@ public class PurpurWorldConfig { +@@ -1674,12 +1717,14 @@ public class PurpurWorldConfig { goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth); goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater); @@ -1515,7 +1515,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1700,6 +1745,7 @@ public class PurpurWorldConfig { +@@ -1690,6 +1735,7 @@ public class PurpurWorldConfig { } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1523,7 +1523,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean forceHalloweenSeason = false; -@@ -1715,6 +1761,7 @@ public class PurpurWorldConfig { +@@ -1705,6 +1751,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1727,6 +1774,7 @@ public class PurpurWorldConfig { +@@ -1717,6 +1764,7 @@ public class PurpurWorldConfig { hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1539,7 +1539,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean horseRidableInWater = false; -@@ -1738,6 +1786,7 @@ public class PurpurWorldConfig { +@@ -1728,6 +1776,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1547,7 +1547,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1755,6 +1804,7 @@ public class PurpurWorldConfig { +@@ -1745,6 +1794,7 @@ public class PurpurWorldConfig { horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); @@ -1555,7 +1555,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean huskRidable = false; -@@ -1766,6 +1816,7 @@ public class PurpurWorldConfig { +@@ -1756,6 +1806,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1781,6 +1832,7 @@ public class PurpurWorldConfig { +@@ -1771,6 +1822,7 @@ public class PurpurWorldConfig { huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); @@ -1571,7 +1571,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean illusionerRidable = false; -@@ -1790,6 +1842,7 @@ public class PurpurWorldConfig { +@@ -1780,6 +1832,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1807,6 +1860,7 @@ public class PurpurWorldConfig { +@@ -1797,6 +1850,7 @@ public class PurpurWorldConfig { } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1587,7 +1587,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean ironGolemRidable = false; -@@ -1817,6 +1871,7 @@ public class PurpurWorldConfig { +@@ -1807,6 +1861,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1831,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1821,6 +1876,7 @@ public class PurpurWorldConfig { ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm); @@ -1603,7 +1603,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean llamaRidable = false; -@@ -1845,6 +1901,7 @@ public class PurpurWorldConfig { +@@ -1835,6 +1891,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1865,6 +1922,7 @@ public class PurpurWorldConfig { +@@ -1855,6 +1912,7 @@ public class PurpurWorldConfig { llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); @@ -1619,7 +1619,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean magmaCubeRidable = false; -@@ -1875,6 +1933,7 @@ public class PurpurWorldConfig { +@@ -1865,6 +1923,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1889,6 +1948,7 @@ public class PurpurWorldConfig { +@@ -1879,6 +1938,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean mooshroomRidable = false; -@@ -1897,6 +1957,7 @@ public class PurpurWorldConfig { +@@ -1887,6 +1947,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1909,6 +1970,7 @@ public class PurpurWorldConfig { +@@ -1899,6 +1960,7 @@ public class PurpurWorldConfig { mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1651,7 +1651,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean muleRidableInWater = false; -@@ -1920,6 +1982,7 @@ public class PurpurWorldConfig { +@@ -1910,6 +1972,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1937,6 +2000,7 @@ public class PurpurWorldConfig { +@@ -1927,6 +1990,7 @@ public class PurpurWorldConfig { muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); @@ -1667,7 +1667,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean ocelotRidable = false; -@@ -1945,6 +2009,7 @@ public class PurpurWorldConfig { +@@ -1935,6 +1999,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1957,6 +2022,7 @@ public class PurpurWorldConfig { +@@ -1947,6 +2012,7 @@ public class PurpurWorldConfig { ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1683,7 +1683,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean pandaRidable = false; -@@ -1965,6 +2031,7 @@ public class PurpurWorldConfig { +@@ -1955,6 +2021,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1977,6 +2044,7 @@ public class PurpurWorldConfig { +@@ -1967,6 +2034,7 @@ public class PurpurWorldConfig { pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1699,7 +1699,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean parrotRidable = false; -@@ -1986,6 +2054,7 @@ public class PurpurWorldConfig { +@@ -1976,6 +2044,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1999,6 +2068,7 @@ public class PurpurWorldConfig { +@@ -1989,6 +2058,7 @@ public class PurpurWorldConfig { parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1715,7 +1715,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean phantomRidable = false; -@@ -2026,6 +2096,7 @@ public class PurpurWorldConfig { +@@ -2016,6 +2086,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2061,6 +2132,7 @@ public class PurpurWorldConfig { +@@ -2051,6 +2122,7 @@ public class PurpurWorldConfig { phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); @@ -1731,7 +1731,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean pigRidable = false; -@@ -2070,6 +2142,7 @@ public class PurpurWorldConfig { +@@ -2060,6 +2132,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -2083,6 +2156,7 @@ public class PurpurWorldConfig { +@@ -2073,6 +2146,7 @@ public class PurpurWorldConfig { pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); @@ -1747,7 +1747,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean piglinRidable = false; -@@ -2092,6 +2166,7 @@ public class PurpurWorldConfig { +@@ -2082,6 +2156,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2105,6 +2180,7 @@ public class PurpurWorldConfig { +@@ -2095,6 +2170,7 @@ public class PurpurWorldConfig { piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); @@ -1763,7 +1763,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean piglinBruteRidable = false; -@@ -2112,6 +2188,7 @@ public class PurpurWorldConfig { +@@ -2102,6 +2178,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2123,6 +2200,7 @@ public class PurpurWorldConfig { +@@ -2113,6 +2190,7 @@ public class PurpurWorldConfig { } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1779,7 +1779,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean pillagerRidable = false; -@@ -2131,6 +2209,7 @@ public class PurpurWorldConfig { +@@ -2121,6 +2199,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2143,6 +2222,7 @@ public class PurpurWorldConfig { +@@ -2133,6 +2212,7 @@ public class PurpurWorldConfig { pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1795,7 +1795,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean polarBearRidable = false; -@@ -2153,6 +2233,7 @@ public class PurpurWorldConfig { +@@ -2143,6 +2223,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2168,12 +2249,14 @@ public class PurpurWorldConfig { +@@ -2158,12 +2239,14 @@ public class PurpurWorldConfig { if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); @@ -1818,7 +1818,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2184,6 +2267,7 @@ public class PurpurWorldConfig { +@@ -2174,6 +2257,7 @@ public class PurpurWorldConfig { } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1826,7 +1826,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean rabbitRidable = false; -@@ -2195,6 +2279,7 @@ public class PurpurWorldConfig { +@@ -2185,6 +2269,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2210,6 +2295,7 @@ public class PurpurWorldConfig { +@@ -2200,6 +2285,7 @@ public class PurpurWorldConfig { rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); @@ -1842,7 +1842,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean ravagerRidable = false; -@@ -2219,6 +2305,7 @@ public class PurpurWorldConfig { +@@ -2209,6 +2295,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2248,12 +2335,14 @@ public class PurpurWorldConfig { +@@ -2238,12 +2325,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2264,6 +2353,7 @@ public class PurpurWorldConfig { +@@ -2254,6 +2343,7 @@ public class PurpurWorldConfig { } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1873,7 +1873,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean sheepRidable = false; -@@ -2273,6 +2363,7 @@ public class PurpurWorldConfig { +@@ -2263,6 +2353,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2286,6 +2377,7 @@ public class PurpurWorldConfig { +@@ -2276,6 +2367,7 @@ public class PurpurWorldConfig { sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); @@ -1889,7 +1889,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean shulkerRidable = false; -@@ -2299,6 +2391,7 @@ public class PurpurWorldConfig { +@@ -2289,6 +2381,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2316,6 +2409,7 @@ public class PurpurWorldConfig { +@@ -2306,6 +2399,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); @@ -1905,7 +1905,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean silverfishRidable = false; -@@ -2324,6 +2418,7 @@ public class PurpurWorldConfig { +@@ -2314,6 +2408,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2336,6 +2431,7 @@ public class PurpurWorldConfig { +@@ -2326,6 +2421,7 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1921,7 +1921,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean skeletonRidable = false; -@@ -2343,6 +2439,7 @@ public class PurpurWorldConfig { +@@ -2333,6 +2429,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2354,6 +2451,7 @@ public class PurpurWorldConfig { +@@ -2344,6 +2441,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1937,7 +1937,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean skeletonHorseRidable = false; -@@ -2366,6 +2464,7 @@ public class PurpurWorldConfig { +@@ -2356,6 +2454,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void skeletonHorseSettings() { skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable); skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); -@@ -2383,6 +2482,7 @@ public class PurpurWorldConfig { +@@ -2373,6 +2472,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1953,7 +1953,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean slimeRidable = false; -@@ -2393,6 +2493,7 @@ public class PurpurWorldConfig { +@@ -2383,6 +2483,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2407,6 +2508,7 @@ public class PurpurWorldConfig { +@@ -2397,6 +2498,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean snowGolemRidable = false; -@@ -2421,6 +2523,7 @@ public class PurpurWorldConfig { +@@ -2411,6 +2513,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2439,6 +2542,7 @@ public class PurpurWorldConfig { +@@ -2429,6 +2532,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1985,7 +1985,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean snifferRidable = false; -@@ -2461,6 +2565,7 @@ public class PurpurWorldConfig { +@@ -2451,6 +2555,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2474,6 +2579,7 @@ public class PurpurWorldConfig { +@@ -2464,6 +2569,7 @@ public class PurpurWorldConfig { squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); @@ -2001,7 +2001,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean spiderRidable = false; -@@ -2481,6 +2587,7 @@ public class PurpurWorldConfig { +@@ -2471,6 +2577,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2492,6 +2599,7 @@ public class PurpurWorldConfig { +@@ -2482,6 +2589,7 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean strayRidable = false; -@@ -2499,6 +2607,7 @@ public class PurpurWorldConfig { +@@ -2489,6 +2597,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2510,6 +2619,7 @@ public class PurpurWorldConfig { +@@ -2500,6 +2609,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean striderRidable = false; -@@ -2519,6 +2629,7 @@ public class PurpurWorldConfig { +@@ -2509,6 +2619,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2532,6 +2643,7 @@ public class PurpurWorldConfig { +@@ -2522,6 +2633,7 @@ public class PurpurWorldConfig { striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); @@ -2049,7 +2049,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean tadpoleRidable = false; -@@ -2554,6 +2666,7 @@ public class PurpurWorldConfig { +@@ -2544,6 +2656,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2573,12 +2686,14 @@ public class PurpurWorldConfig { +@@ -2563,12 +2676,14 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); @@ -2072,7 +2072,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2589,6 +2704,7 @@ public class PurpurWorldConfig { +@@ -2579,6 +2694,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2080,7 +2080,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean turtleRidable = false; -@@ -2597,6 +2713,7 @@ public class PurpurWorldConfig { +@@ -2587,6 +2703,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2609,6 +2726,7 @@ public class PurpurWorldConfig { +@@ -2599,6 +2716,7 @@ public class PurpurWorldConfig { turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); @@ -2096,7 +2096,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean vexRidable = false; -@@ -2617,6 +2735,7 @@ public class PurpurWorldConfig { +@@ -2607,6 +2725,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2629,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2619,6 +2738,7 @@ public class PurpurWorldConfig { } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2112,7 +2112,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean villagerRidable = false; -@@ -2644,6 +2764,7 @@ public class PurpurWorldConfig { +@@ -2634,6 +2754,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2663,6 +2784,7 @@ public class PurpurWorldConfig { +@@ -2653,6 +2774,7 @@ public class PurpurWorldConfig { villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); @@ -2128,7 +2128,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean vindicatorRidable = false; -@@ -2671,6 +2793,7 @@ public class PurpurWorldConfig { +@@ -2661,6 +2783,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2683,6 +2806,7 @@ public class PurpurWorldConfig { +@@ -2673,6 +2796,7 @@ public class PurpurWorldConfig { vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2144,7 +2144,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean wanderingTraderRidable = false; -@@ -2693,6 +2817,7 @@ public class PurpurWorldConfig { +@@ -2683,6 +2807,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2707,6 +2832,7 @@ public class PurpurWorldConfig { +@@ -2697,6 +2822,7 @@ public class PurpurWorldConfig { wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); @@ -2160,7 +2160,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean wardenRidable = false; -@@ -2723,6 +2849,7 @@ public class PurpurWorldConfig { +@@ -2713,6 +2839,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2734,6 +2861,7 @@ public class PurpurWorldConfig { +@@ -2724,6 +2851,7 @@ public class PurpurWorldConfig { } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2176,7 +2176,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean witherRidable = false; -@@ -2748,6 +2876,7 @@ public class PurpurWorldConfig { +@@ -2738,6 +2866,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2770,6 +2899,7 @@ public class PurpurWorldConfig { +@@ -2760,6 +2889,7 @@ public class PurpurWorldConfig { witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); @@ -2192,7 +2192,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean witherSkeletonRidable = false; -@@ -2777,6 +2907,7 @@ public class PurpurWorldConfig { +@@ -2767,6 +2897,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2788,6 +2919,7 @@ public class PurpurWorldConfig { +@@ -2778,6 +2909,7 @@ public class PurpurWorldConfig { } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2208,7 +2208,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean wolfRidable = false; -@@ -2799,6 +2931,7 @@ public class PurpurWorldConfig { +@@ -2789,6 +2921,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2818,6 +2951,7 @@ public class PurpurWorldConfig { +@@ -2808,6 +2941,7 @@ public class PurpurWorldConfig { wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); @@ -2224,7 +2224,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean zoglinRidable = false; -@@ -2825,6 +2959,7 @@ public class PurpurWorldConfig { +@@ -2815,6 +2949,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2836,6 +2971,7 @@ public class PurpurWorldConfig { +@@ -2826,6 +2961,7 @@ public class PurpurWorldConfig { } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2240,7 +2240,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean zombieRidable = false; -@@ -2849,6 +2985,7 @@ public class PurpurWorldConfig { +@@ -2839,6 +2975,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2866,6 +3003,7 @@ public class PurpurWorldConfig { +@@ -2856,6 +2993,7 @@ public class PurpurWorldConfig { zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); @@ -2256,7 +2256,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean zombieHorseRidable = false; -@@ -2879,6 +3017,7 @@ public class PurpurWorldConfig { +@@ -2869,6 +3007,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void zombieHorseSettings() { zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); -@@ -2897,6 +3036,7 @@ public class PurpurWorldConfig { +@@ -2887,6 +3026,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); @@ -2272,7 +2272,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean zombieVillagerRidable = false; -@@ -2911,6 +3051,7 @@ public class PurpurWorldConfig { +@@ -2901,6 +3041,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2929,6 +3070,7 @@ public class PurpurWorldConfig { +@@ -2919,6 +3060,7 @@ public class PurpurWorldConfig { zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); @@ -2288,7 +2288,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 } public boolean zombifiedPiglinRidable = false; -@@ -2941,6 +3083,7 @@ public class PurpurWorldConfig { +@@ -2931,6 +3073,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 3683277077ed77fa804f5678127ba2b65bc070e7..6dc882c14f1dfd0dd7d37d595f86f387 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2957,6 +3100,7 @@ public class PurpurWorldConfig { +@@ -2947,6 +3090,7 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); diff --git a/patches/server/0226-Potion-NamespacedKey.patch b/patches/server/0224-Potion-NamespacedKey.patch similarity index 100% rename from patches/server/0226-Potion-NamespacedKey.patch rename to patches/server/0224-Potion-NamespacedKey.patch diff --git a/patches/server/0227-Grindstone-API.patch b/patches/server/0225-Grindstone-API.patch similarity index 95% rename from patches/server/0227-Grindstone-API.patch rename to patches/server/0225-Grindstone-API.patch index 3b9493d3c..54d59ad04 100644 --- a/patches/server/0227-Grindstone-API.patch +++ b/patches/server/0225-Grindstone-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Grindstone API diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java -index c79e87fde9de55dbfe8c3deaf725e2a73dc2af38..b1eacb9691b320a10de3420fae3632bb9d5b7ae3 100644 +index 2a2bcd0fc2b7653d9087b88e9a01034b51f017b9..af99ce32872e079beb6ac1caf3a8ac4c3cae4648 100644 --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java @@ -95,9 +95,11 @@ public class GrindstoneMenu extends AbstractContainerMenu { diff --git a/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch similarity index 96% rename from patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch rename to patches/server/0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index 766fcd703..3d58f8c07 100644 --- a/patches/server/0228-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0226-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -34,7 +34,7 @@ index bed3d9c781c7d3ca260027b4737970889a54689c..db1941ed32d141327a8b11e54b3ff990 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 0e06958657201806f425990ac01a5f8acc540f3e..2dbfc522990964b2ae5a9e5f84426e0749f92563 100644 +index 55e28eef76d9d534037d888d85c0609052478118..2077cb5dcf2352c9d5b502744aeb9a66df256939 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -214,4 +214,15 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -74,7 +74,7 @@ index 0fc333f240d6918e841a9221be42973839408802..464a9d2e4c694d5d4aae6c2d3e8a5fad + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ecf28b77b6d899827d6f35681bfdc1bb5b993dc1..476545737acdb0da8e5f5def12164c7f83cbaa80 100644 +index f66cb47080fb4e046ba9fd9aa589f2d9d85dc8c3..3a455bd12ee2a4497393cea44bd3507300c19d98 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -539,6 +539,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0229-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0227-Turtle-eggs-random-tick-crack-chance.patch similarity index 93% rename from patches/server/0229-Turtle-eggs-random-tick-crack-chance.patch rename to patches/server/0227-Turtle-eggs-random-tick-crack-chance.patch index 375562a82..2f53c8423 100644 --- a/patches/server/0229-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0227-Turtle-eggs-random-tick-crack-chance.patch @@ -18,10 +18,10 @@ index 430ccf1b9f5c6306bbe610d1f9058c1a4bfa2986..b18545e1bd55fa468af6d6c03211036e @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b3b79975bc3d4e56246e7aec34750f50dd85c61a..0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223 100644 +index 3a455bd12ee2a4497393cea44bd3507300c19d98..c3c6d0a25a7f068f54ab0c5065f64599abd8e04f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1076,11 +1076,13 @@ public class PurpurWorldConfig { +@@ -1066,11 +1066,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = false; public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0230-Mob-head-visibility-percent.patch b/patches/server/0228-Mob-head-visibility-percent.patch similarity index 91% rename from patches/server/0230-Mob-head-visibility-percent.patch rename to patches/server/0228-Mob-head-visibility-percent.patch index 20b3c6ed3..21b0e8bef 100644 --- a/patches/server/0230-Mob-head-visibility-percent.patch +++ b/patches/server/0228-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index 9f542c8ddb25faaef00d5db354f1c1fe3cfc3c45..99c5cd7f20435be1f78cfed4f952e4c7 // Purpur start if (entity instanceof LivingEntity entityliving) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb806d788485 100644 +index c3c6d0a25a7f068f54ab0c5065f64599abd8e04f..a3b5ab71509a61825b6344889d7f0b82d9822ba7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1370,6 +1370,7 @@ public class PurpurWorldConfig { +@@ -1360,6 +1360,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1387,6 +1388,7 @@ public class PurpurWorldConfig { +@@ -1377,6 +1378,7 @@ public class PurpurWorldConfig { creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); @@ -51,7 +51,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 } public boolean dolphinRidable = false; -@@ -2173,6 +2175,7 @@ public class PurpurWorldConfig { +@@ -2163,6 +2165,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2187,6 +2190,7 @@ public class PurpurWorldConfig { +@@ -2177,6 +2180,7 @@ public class PurpurWorldConfig { piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); @@ -67,7 +67,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 } public boolean piglinBruteRidable = false; -@@ -2446,6 +2450,7 @@ public class PurpurWorldConfig { +@@ -2436,6 +2440,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2458,6 +2463,7 @@ public class PurpurWorldConfig { +@@ -2448,6 +2453,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 } public boolean skeletonHorseRidable = false; -@@ -2992,6 +2998,7 @@ public class PurpurWorldConfig { +@@ -2982,6 +2988,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 0ce9870c1da0cba4e3ee7ccb05ace4fc4e1b0223..7bd8d35e35a9893e25de6f671f95fb80 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -3010,6 +3017,7 @@ public class PurpurWorldConfig { +@@ -3000,6 +3007,7 @@ public class PurpurWorldConfig { zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); diff --git a/patches/server/0231-Configurable-valid-characters-for-usernames.patch b/patches/server/0229-Configurable-valid-characters-for-usernames.patch similarity index 100% rename from patches/server/0231-Configurable-valid-characters-for-usernames.patch rename to patches/server/0229-Configurable-valid-characters-for-usernames.patch diff --git a/patches/server/0232-Shears-can-have-looting-enchantment.patch b/patches/server/0230-Shears-can-have-looting-enchantment.patch similarity index 100% rename from patches/server/0232-Shears-can-have-looting-enchantment.patch rename to patches/server/0230-Shears-can-have-looting-enchantment.patch diff --git a/patches/server/0233-Stop-bees-from-dying-after-stinging.patch b/patches/server/0231-Stop-bees-from-dying-after-stinging.patch similarity index 86% rename from patches/server/0233-Stop-bees-from-dying-after-stinging.patch rename to patches/server/0231-Stop-bees-from-dying-after-stinging.patch index ab2526aff..7a0dc55be 100644 --- a/patches/server/0233-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0231-Stop-bees-from-dying-after-stinging.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stop bees from dying after stinging diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 6d7b8c9f9bfe296263f1752f485dcf8f53af8142..0a4ca865d1e41efca0eb8287c833e642e838b01a 100644 +index 9fa937d2d6c3b23e390447e4d4fa24543e2679e5..c2dae3636145105ecb3ae950e07095f278f72ac2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -446,6 +446,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -17,10 +17,10 @@ index 6d7b8c9f9bfe296263f1752f485dcf8f53af8142..0a4ca865d1e41efca0eb8287c833e642 ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c793c0c91f7ef6d5e847fd10a908fee09208bc12..a3ec794d6690574bac653321301668aba420a967 100644 +index a3b5ab71509a61825b6344889d7f0b82d9822ba7..278cc18842f83b8a997dd3fa43449fb90660693c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1171,6 +1171,7 @@ public class PurpurWorldConfig { +@@ -1161,6 +1161,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index c793c0c91f7ef6d5e847fd10a908fee09208bc12..a3ec794d6690574bac653321301668ab private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1187,6 +1188,7 @@ public class PurpurWorldConfig { +@@ -1177,6 +1178,7 @@ public class PurpurWorldConfig { beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); diff --git a/patches/server/0234-Give-bee-counts-in-beehives-to-Purpur-clients.patch b/patches/server/0232-Give-bee-counts-in-beehives-to-Purpur-clients.patch similarity index 100% rename from patches/server/0234-Give-bee-counts-in-beehives-to-Purpur-clients.patch rename to patches/server/0232-Give-bee-counts-in-beehives-to-Purpur-clients.patch diff --git a/patches/server/0235-Configurable-farmland-trample-height.patch b/patches/server/0233-Configurable-farmland-trample-height.patch similarity index 94% rename from patches/server/0235-Configurable-farmland-trample-height.patch rename to patches/server/0233-Configurable-farmland-trample-height.patch index 78ca9e291..d56a03413 100644 --- a/patches/server/0235-Configurable-farmland-trample-height.patch +++ b/patches/server/0233-Configurable-farmland-trample-height.patch @@ -22,7 +22,7 @@ Value set -> Actual fall distance needed to trample 6.0 -> 6.75 diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 5c93cf7f97ecf4fba2c905b293ca7d21d1424f30..c4eca9db159d6a581d863558ebc3008d51d25cfb 100644 +index 00a6aa924e47e18ae80b57e9fe1d38e2de15dd72..0c39126ce51439cce05747161aba43bce33a12d8 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -110,7 +110,7 @@ public class FarmBlock extends Block { @@ -35,7 +35,7 @@ index 5c93cf7f97ecf4fba2c905b293ca7d21d1424f30..c4eca9db159d6a581d863558ebc3008d org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a3ec794d6690574bac653321301668aba420a967..63c29714c855f95f62ecdf19b1502881699206c9 100644 +index 278cc18842f83b8a997dd3fa43449fb90660693c..52b08015601eb266719c907f4dbed4a0ce8af072 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -959,6 +959,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0236-Configurable-player-pickup-exp-delay.patch b/patches/server/0234-Configurable-player-pickup-exp-delay.patch similarity index 97% rename from patches/server/0236-Configurable-player-pickup-exp-delay.patch rename to patches/server/0234-Configurable-player-pickup-exp-delay.patch index 0fde99183..86fac4794 100644 --- a/patches/server/0236-Configurable-player-pickup-exp-delay.patch +++ b/patches/server/0234-Configurable-player-pickup-exp-delay.patch @@ -35,7 +35,7 @@ index 4297622fecf2cde16cdcb206ecc3e912b06c0a66..43199815ffe3d666577390b96187aa89 } else if (!entity.isRemoved()) { this.touch(entity); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e7eb471bb2c91be2a6da2918e31f5b18be584646..631467b92404a37849d673f15ddfadfe544cff19 100644 +index 52b08015601eb266719c907f4dbed4a0ce8af072..1350e3de8ca03eb7c6653f1f5523c2a8455d9975 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -420,6 +420,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0237-Allow-void-trading.patch b/patches/server/0235-Allow-void-trading.patch similarity index 93% rename from patches/server/0237-Allow-void-trading.patch rename to patches/server/0235-Allow-void-trading.patch index 00743d89b..a5464f07a 100644 --- a/patches/server/0237-Allow-void-trading.patch +++ b/patches/server/0235-Allow-void-trading.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow void trading diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e675d7e82245e1b7ef94fc55f393002ab572e2ba..e2c5a03bcf008db05e6170184c6167d2ca1555fb 100644 +index f141031f668898b8cc0ac1970b9026da6be4a466..6c165580b2c57a7fb95833208a72af33988427dc 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2909,7 +2909,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -18,7 +18,7 @@ index e675d7e82245e1b7ef94fc55f393002ab572e2ba..e2c5a03bcf008db05e6170184c6167d2 } // Paper end - Fix merchant inventory not closing on entity removal diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a9dba090d637c5942d09ffc4698e3397a137a7ac..09cac0ae130610fd1ce50eb092fe758cfe71a4dd 100644 +index 1350e3de8ca03eb7c6653f1f5523c2a8455d9975..eaa7070d71d6c8ae3adcaaeb52eb3439cf87c034 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -421,6 +421,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0238-Configurable-phantom-size.patch b/patches/server/0236-Configurable-phantom-size.patch similarity index 90% rename from patches/server/0238-Configurable-phantom-size.patch rename to patches/server/0236-Configurable-phantom-size.patch index b3b5ca710..422923628 100644 --- a/patches/server/0238-Configurable-phantom-size.patch +++ b/patches/server/0236-Configurable-phantom-size.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable phantom size diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index ab9ed9acc394dedf2151b83ff5cf998e0e0be21e..355445b7f8972cb789d33f59d03c382f238c294d 100644 +index 8591fb95aa3079d7722f445ce1b1743c1f02b9bc..44a24707530ca46a6a42e8a4d9049e75f65aa66b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -272,7 +272,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -22,10 +22,10 @@ index ab9ed9acc394dedf2151b83ff5cf998e0e0be21e..355445b7f8972cb789d33f59d03c382f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 09cac0ae130610fd1ce50eb092fe758cfe71a4dd..1620ed5e1fab8575af02fefc910865d1b8a50322 100644 +index eaa7070d71d6c8ae3adcaaeb52eb3439cf87c034..bc3b4d6efe2182b634c021ad5772a8a81d4cc2d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2113,6 +2113,8 @@ public class PurpurWorldConfig { +@@ -2103,6 +2103,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index 09cac0ae130610fd1ce50eb092fe758cfe71a4dd..1620ed5e1fab8575af02fefc910865d1 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2149,6 +2151,13 @@ public class PurpurWorldConfig { +@@ -2139,6 +2141,13 @@ public class PurpurWorldConfig { phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp); diff --git a/patches/server/0239-Configurable-food-attributes.patch b/patches/server/0237-Configurable-food-attributes.patch similarity index 100% rename from patches/server/0239-Configurable-food-attributes.patch rename to patches/server/0237-Configurable-food-attributes.patch diff --git a/patches/server/0240-Max-joins-per-second.patch b/patches/server/0238-Max-joins-per-second.patch similarity index 100% rename from patches/server/0240-Max-joins-per-second.patch rename to patches/server/0238-Max-joins-per-second.patch diff --git a/patches/server/0241-Configurable-minimum-demand-for-trades.patch b/patches/server/0239-Configurable-minimum-demand-for-trades.patch similarity index 94% rename from patches/server/0241-Configurable-minimum-demand-for-trades.patch rename to patches/server/0239-Configurable-minimum-demand-for-trades.patch index 761a3a0cc..d5d59822b 100644 --- a/patches/server/0241-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0239-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 02feea12c998f37098b72becf6bfaf6b27d155de..9c89a85d934955c9388cfe1361f13e70 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4a953d543fb14bc36e775a976710f11633da7c86..c312382eeb38b9d6b2420b482c1467d6f27beb81 100644 +index bc3b4d6efe2182b634c021ad5772a8a81d4cc2d9..c5eaf27e8983949ede5555da7905fa7bc1bf5700 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2794,6 +2794,7 @@ public class PurpurWorldConfig { +@@ -2784,6 +2784,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 4a953d543fb14bc36e775a976710f11633da7c86..c312382eeb38b9d6b2420b482c1467d6 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2814,6 +2815,7 @@ public class PurpurWorldConfig { +@@ -2804,6 +2805,7 @@ public class PurpurWorldConfig { villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); diff --git a/patches/server/0242-Lobotomize-stuck-villagers.patch b/patches/server/0240-Lobotomize-stuck-villagers.patch similarity index 97% rename from patches/server/0242-Lobotomize-stuck-villagers.patch rename to patches/server/0240-Lobotomize-stuck-villagers.patch index 5b9fe92c5..ee9f2fb36 100644 --- a/patches/server/0242-Lobotomize-stuck-villagers.patch +++ b/patches/server/0240-Lobotomize-stuck-villagers.patch @@ -105,10 +105,10 @@ index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c312382eeb38b9d6b2420b482c1467d6f27beb81..6fa783b3f064b0e62c67f5a5709fbe9c0d3b51a7 100644 +index c5eaf27e8983949ede5555da7905fa7bc1bf5700..0135c477ca5e8401177083bcd41573d7e24ec850 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2795,6 +2795,9 @@ public class PurpurWorldConfig { +@@ -2785,6 +2785,9 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -118,7 +118,7 @@ index c312382eeb38b9d6b2420b482c1467d6f27beb81..6fa783b3f064b0e62c67f5a5709fbe9c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2816,6 +2819,18 @@ public class PurpurWorldConfig { +@@ -2806,6 +2809,18 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0243-Option-for-villager-display-trade-item.patch b/patches/server/0241-Option-for-villager-display-trade-item.patch similarity index 91% rename from patches/server/0243-Option-for-villager-display-trade-item.patch rename to patches/server/0241-Option-for-villager-display-trade-item.patch index a6cebcdd1..69a2d99dd 100644 --- a/patches/server/0243-Option-for-villager-display-trade-item.patch +++ b/patches/server/0241-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index c3e0b1f11b58668f9f24eb421abc340e1b49dfac..d809fa4f96e2c528075f544355397903 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 26351f5ba9fd4f2e231481cfdd52341e0f4d96a4..38ebf581f6abc16b7556057c05cead5c2bfaa0f7 100644 +index 0135c477ca5e8401177083bcd41573d7e24ec850..a1b2c5ea3687fc0cfc3c1b9e170aa801c9cc541c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2798,6 +2798,7 @@ public class PurpurWorldConfig { +@@ -2788,6 +2788,7 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; @@ -28,7 +28,7 @@ index 26351f5ba9fd4f2e231481cfdd52341e0f4d96a4..38ebf581f6abc16b7556057c05cead5c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2831,6 +2832,7 @@ public class PurpurWorldConfig { +@@ -2821,6 +2822,7 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); diff --git a/patches/server/0244-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0242-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch similarity index 93% rename from patches/server/0244-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch rename to patches/server/0242-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index df171ee28..e2a05ba7e 100644 --- a/patches/server/0244-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0242-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 9b897cf53f4bb5d366e6ac88dbed93c59d8fe541..fc61f93e04e5bc893b89c746deb2b89c } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7f91d3d56f6c4077e773c82da0f96103c892b82b..440ba9fb9c30973ea3268298923812962034b2db 100644 +index a1b2c5ea3687fc0cfc3c1b9e170aa801c9cc541c..a07d11bd3abdb77e16a7cb7db498690c4326613f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1063,8 +1063,10 @@ public class PurpurWorldConfig { +@@ -1053,8 +1053,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0245-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch similarity index 97% rename from patches/server/0245-Config-for-mob-last-hurt-by-player-time.patch rename to patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch index ba43e361f..0b89099b6 100644 --- a/patches/server/0245-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0243-Config-for-mob-last-hurt-by-player-time.patch @@ -38,7 +38,7 @@ index 9730a5469f81687cfde0a19a58d1c2147588d1d2..e3f724a19ab2f9821d84f9b03acf7c92 // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d88a842902523d0a44996876ed5b789c9b83a837..9ffbf8e1957cff2c82a0d127dfa84f62766c20d3 100644 +index a07d11bd3abdb77e16a7cb7db498690c4326613f..2b5475c0032171fec4a5e8a7b435168c5b95b17b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -142,6 +142,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0246-Anvil-repair-damage-options.patch b/patches/server/0244-Anvil-repair-damage-options.patch similarity index 98% rename from patches/server/0246-Anvil-repair-damage-options.patch rename to patches/server/0244-Anvil-repair-damage-options.patch index 8c8e01010..3b98f2c86 100644 --- a/patches/server/0246-Anvil-repair-damage-options.patch +++ b/patches/server/0244-Anvil-repair-damage-options.patch @@ -64,7 +64,7 @@ index 9fca247f51e8b4d445f61ab5c16faf3928626deb..583bb1282fedcab75dbe4359a9f53b76 return InteractionResult.SUCCESS; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6d1a29d5b9695c4f2392a82f8c1b11db220ea727..92019e20b9a67eb3c8be875ed57943c1ee1538d6 100644 +index 2b5475c0032171fec4a5e8a7b435168c5b95b17b..d00d9068134957fb76740e94e7cce055d8ea9f43 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -820,9 +820,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0247-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0245-Option-to-disable-turtle-egg-trampling-with-feather-.patch similarity index 94% rename from patches/server/0247-Option-to-disable-turtle-egg-trampling-with-feather-.patch rename to patches/server/0245-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 24e399fa0..5b8fbc7b1 100644 --- a/patches/server/0247-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0245-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -24,10 +24,10 @@ index b18545e1bd55fa468af6d6c03211036eb9fa146d..9a76665c6369b4106d152370dc3d2f56 return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b291d8943dc6fe38ccc2ca2a17b53d3cfb5eb894..2c577f12f86ed843f823f5756fd7cddb8bb807a6 100644 +index d00d9068134957fb76740e94e7cce055d8ea9f43..bafd2cd23363a2bc3c64f402842d0e39731eed1c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1091,12 +1091,14 @@ public class PurpurWorldConfig { +@@ -1081,12 +1081,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0248-Add-toggle-for-enchant-level-clamping.patch b/patches/server/0246-Add-toggle-for-enchant-level-clamping.patch similarity index 97% rename from patches/server/0248-Add-toggle-for-enchant-level-clamping.patch rename to patches/server/0246-Add-toggle-for-enchant-level-clamping.patch index 8b4629026..c2fcb9ec6 100644 --- a/patches/server/0248-Add-toggle-for-enchant-level-clamping.patch +++ b/patches/server/0246-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 f17b160b304b1adbde80690ae482986309f3befe..c6628a28387023b334dd99a4e469126a2108c38b 100644 +index a05da9ff158c6e7d55abb23e4b28f3703e9e5b3d..a504f727f5aaa605809938b4e7e7bbe9b84c522a 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/0249-Skip-junit-tests-for-purpur-commands.patch b/patches/server/0247-Skip-junit-tests-for-purpur-commands.patch similarity index 100% rename from patches/server/0249-Skip-junit-tests-for-purpur-commands.patch rename to patches/server/0247-Skip-junit-tests-for-purpur-commands.patch diff --git a/patches/server/0250-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0248-Implement-configurable-search-radius-for-villagers-t.patch similarity index 93% rename from patches/server/0250-Implement-configurable-search-radius-for-villagers-t.patch rename to patches/server/0248-Implement-configurable-search-radius-for-villagers-t.patch index 242b2d1df..314a30caf 100644 --- a/patches/server/0250-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0248-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index a188a36d919037fa3177ad7f6930570f5e130fc9..ef7c67f591ca4a3c73b87a7c44b37ad0 AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); List list = world.getEntitiesOfClass(Villager.class, axisalignedbb); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2c577f12f86ed843f823f5756fd7cddb8bb807a6..adf1064af51c737f97c071fb65019a874a881a18 100644 +index bafd2cd23363a2bc3c64f402842d0e39731eed1c..d58497ff0cf698d8739e07083ef391f65aa39090 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2809,6 +2809,8 @@ public class PurpurWorldConfig { +@@ -2799,6 +2799,8 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 2c577f12f86ed843f823f5756fd7cddb8bb807a6..adf1064af51c737f97c071fb65019a87 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2843,6 +2845,8 @@ public class PurpurWorldConfig { +@@ -2833,6 +2835,8 @@ public class PurpurWorldConfig { villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0251-Stonecutter-damage.patch b/patches/server/0249-Stonecutter-damage.patch similarity index 98% rename from patches/server/0251-Stonecutter-damage.patch rename to patches/server/0249-Stonecutter-damage.patch index 332ed4f56..852f0916b 100644 --- a/patches/server/0251-Stonecutter-damage.patch +++ b/patches/server/0249-Stonecutter-damage.patch @@ -152,10 +152,10 @@ index a504f727f5aaa605809938b4e7e7bbe9b84c522a..9bc5cc4944dcd3918b2a90bde9dd8fdd public static boolean advancementOnlyBroadcastToAffectedPlayer = false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index adf1064af51c737f97c071fb65019a874a881a18..f78b58599325a93658f6c6c2df9bde1ae4fb8784 100644 +index d58497ff0cf698d8739e07083ef391f65aa39090..b099b1abfe527b066c2bc9e89dc98c52db34c3eb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1086,6 +1086,11 @@ public class PurpurWorldConfig { +@@ -1076,6 +1076,11 @@ public class PurpurWorldConfig { spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud); } diff --git a/patches/server/0252-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0250-Configurable-damage-settings-for-magma-blocks.patch similarity index 93% rename from patches/server/0252-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0250-Configurable-damage-settings-for-magma-blocks.patch index f6c15f317..7b733c49e 100644 --- a/patches/server/0252-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0250-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index 746c211b575ca588deadbbcd5c55b614e8660ba8..2f38bac9efc224084505e80254662326 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f78b58599325a93658f6c6c2df9bde1ae4fb8784..f0dbcc6193f5fca36e9e54c792d55d135b03b4ca 100644 +index b099b1abfe527b066c2bc9e89dc98c52db34c3eb..6dfc93af8bab6462d4ab0940ea61652065b0b581 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1022,6 +1022,13 @@ public class PurpurWorldConfig { +@@ -1017,6 +1017,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0253-Add-config-for-snow-on-blue-ice.patch b/patches/server/0251-Add-config-for-snow-on-blue-ice.patch similarity index 93% rename from patches/server/0253-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0251-Add-config-for-snow-on-blue-ice.patch index 6eadd793b..7847c74cd 100644 --- a/patches/server/0253-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0251-Add-config-for-snow-on-blue-ice.patch @@ -22,10 +22,10 @@ index a3da9536c3a3ad33d1c795673bdd7b05d6534054..9b057f3967aae5d0ca621b19d1212db9 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bbd1eefc53f91adce1102d865bd0c92c2cc090c2..b301f0778a2dc0de4a899da06598aed314ef545c 100644 +index 6dfc93af8bab6462d4ab0940ea61652065b0b581..ba8d194d1a6ecab995b31d04687f269389811754 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1003,9 +1003,11 @@ public class PurpurWorldConfig { +@@ -998,9 +998,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0254-Skeletons-eat-wither-roses.patch b/patches/server/0252-Skeletons-eat-wither-roses.patch similarity index 96% rename from patches/server/0254-Skeletons-eat-wither-roses.patch rename to patches/server/0252-Skeletons-eat-wither-roses.patch index d02980605..06d088a7b 100644 --- a/patches/server/0254-Skeletons-eat-wither-roses.patch +++ b/patches/server/0252-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 2064d6177b3e43810d5962102fe914296e2627ff..30ff77f5f137614b5d0d2df6dc90f47c + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 163b01e476dc3b53d0176b6606f65ce2cbc6bc21..b08fd09753dfab6c31cf59c189f9a55d9f77c5a5 100644 +index ba8d194d1a6ecab995b31d04687f269389811754..e77c777096229ff1ad14fe58c531e2bf1ed7bf3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2492,6 +2492,7 @@ public class PurpurWorldConfig { +@@ -2482,6 +2482,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 163b01e476dc3b53d0176b6606f65ce2cbc6bc21..b08fd09753dfab6c31cf59c189f9a55d private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2505,6 +2506,7 @@ public class PurpurWorldConfig { +@@ -2495,6 +2496,7 @@ public class PurpurWorldConfig { skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); diff --git a/patches/server/0255-Enchantment-Table-Persists-Lapis.patch b/patches/server/0253-Enchantment-Table-Persists-Lapis.patch similarity index 96% rename from patches/server/0255-Enchantment-Table-Persists-Lapis.patch rename to patches/server/0253-Enchantment-Table-Persists-Lapis.patch index bf81e2087..e53ec1480 100644 --- a/patches/server/0255-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0253-Enchantment-Table-Persists-Lapis.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Enchantment Table Persists Lapis diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java -index c5c509fbb915c60dfa95aac8510684d0b9f8b0ff..d604b7ec46f08993647979ed220a84842e3fe325 100644 +index 343f44db579839eb61376f876b5eff2e615dc2e5..849b6a30d412d10f1e2e6e88f2d8d990e4a720e4 100644 --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java @@ -40,6 +40,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent; @@ -146,10 +146,10 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ef6ed71bf4674b7f0275e3cc4487f9f311d4cf48..5af36ce329de61f867e702740edb8c1cebe2cc09 100644 +index e77c777096229ff1ad14fe58c531e2bf1ed7bf3b..7f159bc172cf9414cf34e8141d841764b80b204d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1529,6 +1529,11 @@ public class PurpurWorldConfig { +@@ -1519,6 +1519,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0256-Spark-Profiler.patch b/patches/server/0254-Spark-Profiler.patch similarity index 100% rename from patches/server/0256-Spark-Profiler.patch rename to patches/server/0254-Spark-Profiler.patch diff --git a/patches/server/0257-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0255-Option-to-disable-kick-for-out-of-order-chat.patch similarity index 95% rename from patches/server/0257-Option-to-disable-kick-for-out-of-order-chat.patch rename to patches/server/0255-Option-to-disable-kick-for-out-of-order-chat.patch index aee69dd0d..738ca141f 100644 --- a/patches/server/0257-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0255-Option-to-disable-kick-for-out-of-order-chat.patch @@ -5,7 +5,7 @@ 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 5e17a72dbe105a1a0221d857b6da39a855127aab..7dec861f49e7db0ac7cf4f4942881f237ebcd61f 100644 +index 72ac438ec1a6628c861bdab9626c77666d4ba2b6..9107cc4860f81460f3424aeac4ca026b891ab47f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1716,7 +1716,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0258-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0256-Config-for-sculk-shrieker-can_summon-state.patch similarity index 89% rename from patches/server/0258-Config-for-sculk-shrieker-can_summon-state.patch rename to patches/server/0256-Config-for-sculk-shrieker-can_summon-state.patch index 92986c2fc..6436c671a 100644 --- a/patches/server/0258-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0256-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,11 +18,11 @@ index 09c61eb5ba129e9630a756b452ef6aa61745c533..837c8399b2f490d98ca556e66018bfd4 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5af36ce329de61f867e702740edb8c1cebe2cc09..b2ece6e86bc7eca717ad1143c78a6657a7cbb01e 100644 +index 7f159bc172cf9414cf34e8141d841764b80b204d..4ba10f93d1e9eabb9c737efc0be93f2f555fb546 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1067,6 +1067,11 @@ public class PurpurWorldConfig { - fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); +@@ -1057,6 +1057,11 @@ public class PurpurWorldConfig { + } } + public boolean sculkShriekerCanSummonDefault = false; diff --git a/patches/server/0259-Config-to-not-let-coral-die.patch b/patches/server/0257-Config-to-not-let-coral-die.patch similarity index 96% rename from patches/server/0259-Config-to-not-let-coral-die.patch rename to patches/server/0257-Config-to-not-let-coral-die.patch index f06d87123..6e5d7b438 100644 --- a/patches/server/0259-Config-to-not-let-coral-die.patch +++ b/patches/server/0257-Config-to-not-let-coral-die.patch @@ -29,7 +29,7 @@ index 8fd8285e07de4a0457da507501e49a807542f3b1..e580c5a141bebdc45893b5abde01e633 int i = aenumdirection.length; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b2ece6e86bc7eca717ad1143c78a6657a7cbb01e..453d4b1c1d6b9a1521ce7a2e179dfcec0bf52a3c 100644 +index 4ba10f93d1e9eabb9c737efc0be93f2f555fb546..6e30be26888422187c145c5e7c81d24804119b90 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -904,6 +904,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0260-Add-local-difficulty-api.patch b/patches/server/0258-Add-local-difficulty-api.patch similarity index 100% rename from patches/server/0260-Add-local-difficulty-api.patch rename to patches/server/0258-Add-local-difficulty-api.patch diff --git a/patches/server/0261-Add-toggle-for-RNG-manipulation.patch b/patches/server/0259-Add-toggle-for-RNG-manipulation.patch similarity index 94% rename from patches/server/0261-Add-toggle-for-RNG-manipulation.patch rename to patches/server/0259-Add-toggle-for-RNG-manipulation.patch index b2e82479b..516260ad9 100644 --- a/patches/server/0261-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0259-Add-toggle-for-RNG-manipulation.patch @@ -7,7 +7,7 @@ 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 c868a61d73b4563807c70c9539f63cb0645a9984..c0942beb4b362cdba1c0b5fa4531f7d586eab0ac 100644 +index 7f69afbb8f6dd510f5715145b78d8ec97249783a..62fc774c91b12b100b982b1ff8fbb2495a5551ee 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -597,7 +597,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -33,7 +33,7 @@ index 2ec8a55650beff50676759617896da2db09dddc0..cba0823bfd10a3e7fd3a7548b9cc11a7 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bf2b431301780acff40546af6475b227c40bd8bf..4c157168cfea5ef58d0b070971dfb73223c26897 100644 +index 6e30be26888422187c145c5e7c81d24804119b90..7d0d298bd68ecba2ba1e2f3336d9aad4567dfde2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -204,9 +204,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0262-Send-client-custom-name-of-BE.patch b/patches/server/0260-Send-client-custom-name-of-BE.patch similarity index 93% rename from patches/server/0262-Send-client-custom-name-of-BE.patch rename to patches/server/0260-Send-client-custom-name-of-BE.patch index 792957da9..a54970c0e 100644 --- a/patches/server/0262-Send-client-custom-name-of-BE.patch +++ b/patches/server/0260-Send-client-custom-name-of-BE.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Send client custom name of BE diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 2f19f6ac5de454845f5d13a3ebb93af625b2afc8..3431f1a00ae2918b91a6b7a449e613e6e12ff6d4 100644 +index 8e1afae66742fc69d5aab1074ba94a3999cbf9b8..e9701ed4e5b35ace1accd2b46f082191d8ab6497 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java @@ -205,10 +205,24 @@ public abstract class BlockEntity { diff --git a/patches/server/0263-Allow-custom-ChatDecorators.patch b/patches/server/0261-Allow-custom-ChatDecorators.patch similarity index 94% rename from patches/server/0263-Allow-custom-ChatDecorators.patch rename to patches/server/0261-Allow-custom-ChatDecorators.patch index dae85cb29..37adb17f4 100644 --- a/patches/server/0263-Allow-custom-ChatDecorators.patch +++ b/patches/server/0261-Allow-custom-ChatDecorators.patch @@ -6,7 +6,7 @@ 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 87a0bd56a75f10bdea9db29aaf0b6c0760fb195c..48f4122696dfb9ebc6c09b0036f5fa3591ce7c5e 100644 +index cd2394263cc14d99861f98c77f016e5461c88c09..0088180c3574ace7eb4170c385d2ca9fc098d6f3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2847,6 +2847,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop iterator = this.blockEntityTickers.iterator(); boolean flag = this.tickRateManager().runsNormally(); -@@ -1345,7 +1345,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1354,7 +1354,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 diff --git a/patches/server/0265-Remove-Mojang-Profiler.patch b/patches/server/0263-Remove-Mojang-Profiler.patch similarity index 98% rename from patches/server/0265-Remove-Mojang-Profiler.patch rename to patches/server/0263-Remove-Mojang-Profiler.patch index 2f7b1b2d0..ee9ab5c47 100644 --- a/patches/server/0265-Remove-Mojang-Profiler.patch +++ b/patches/server/0263-Remove-Mojang-Profiler.patch @@ -614,7 +614,7 @@ index bbc3153379d7da8b4d91c49a3ba83d4415a7671a..6167ffb1263a1a65b582b7d295d1d77e } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e48fac31d5c25da0bea3b5247eceda3a45decaaf..fb6b762bac4d36b2e307b5343988884fa339d001 100644 +index e6e4df519fb2f9fb75f63da458d6b352c8b30554..921ff8253130fb40b8bbe10cd9dfe39565064ab1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -824,16 +824,16 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -648,10 +648,10 @@ index e48fac31d5c25da0bea3b5247eceda3a45decaaf..fb6b762bac4d36b2e307b5343988884f j = this.getGameTime(); - gameprofilerfiller.push("blockTicks"); + //gameprofilerfiller.push("blockTicks"); // Purpur - this.blockTicks.tick(j, 65536, this::tickBlock); + this.blockTicks.tick(j, paperConfig().environment.maxBlockTicks, this::tickBlock); // Paper - configurable max block ticks - gameprofilerfiller.popPush("fluidTicks"); + //gameprofilerfiller.popPush("fluidTicks"); // Purpur - this.fluidTicks.tick(j, 65536, this::tickFluid); + this.fluidTicks.tick(j, paperConfig().environment.maxFluidTicks, this::tickFluid); // Paper - configurable max fluid ticks - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); // Purpur } @@ -681,7 +681,7 @@ index e48fac31d5c25da0bea3b5247eceda3a45decaaf..fb6b762bac4d36b2e307b5343988884f this.handlingTick = false; - gameprofilerfiller.pop(); + //gameprofilerfiller.pop(); // Purpur - boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players + boolean flag1 = !paperConfig().unsupportedSettings.disableWorldTickingWhenEmpty || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players // Paper - restore this if (flag1) { @@ -904,12 +904,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1095,7 +1095,7 @@ 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 c0942beb4b362cdba1c0b5fa4531f7d586eab0ac..b78d7958b56a4f385efc4666bb35a89a3049d702 100644 +index 62fc774c91b12b100b982b1ff8fbb2495a5551ee..0014046304fbb66925144ecccd0c0aa1c901c485 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -861,7 +861,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -1821,10 +1821,10 @@ index b678da2cbb93cea7971bc3c4d324cfca18b0bc97..b0884758d00efb1e3b4b47a539de2a81 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 0754ec885c68a6b3c6d91c8e00069c3fe41c0299..67a26f22d4eb7eaeee7900e6f4de421d0bfd5612 100644 +index a359d683bd6a8a916036b7b357ec0697399d2dd4..eebe6378de52e780aabfad3c414564349196ec6e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1305,9 +1305,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1314,9 +1314,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } protected void tickBlockEntities() { @@ -1836,7 +1836,7 @@ index 0754ec885c68a6b3c6d91c8e00069c3fe41c0299..67a26f22d4eb7eaeee7900e6f4de421d //this.timings.tileEntityPending.startTiming(); // Spigot // Purpur this.tickingBlockEntities = true; if (!this.pendingBlockEntityTickers.isEmpty()) { -@@ -1348,7 +1348,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1357,7 +1357,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 @@ -1845,7 +1845,7 @@ index 0754ec885c68a6b3c6d91c8e00069c3fe41c0299..67a26f22d4eb7eaeee7900e6f4de421d this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1558,7 +1558,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1567,7 +1567,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @Override public List getEntities(@Nullable Entity except, AABB box, Predicate predicate) { @@ -1854,7 +1854,7 @@ index 0754ec885c68a6b3c6d91c8e00069c3fe41c0299..67a26f22d4eb7eaeee7900e6f4de421d List list = Lists.newArrayList(); ((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call return list; -@@ -1577,7 +1577,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1586,7 +1586,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public void getEntities(EntityTypeTest filter, AABB box, Predicate predicate, List result, int limit) { @@ -1863,7 +1863,7 @@ index 0754ec885c68a6b3c6d91c8e00069c3fe41c0299..67a26f22d4eb7eaeee7900e6f4de421d // Paper start - optimise this call //TODO use limit if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) { -@@ -1836,7 +1836,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1845,7 +1845,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { diff --git a/patches/server/0266-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0264-Add-more-logger-output-for-invalid-movement-kicks.patch similarity index 96% rename from patches/server/0266-Add-more-logger-output-for-invalid-movement-kicks.patch rename to patches/server/0264-Add-more-logger-output-for-invalid-movement-kicks.patch index 5ef8024ed..233fda9e8 100644 --- a/patches/server/0266-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0264-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 19b4a69a3062870b831c37728cab8376d3340d54..4cb24be39cdb223cfeb34c102bdc707f3850033b 100644 +index c48e18e4aa72eae5d1a87a86b8a9c982838b5d47..921e04a0280dde21ee5af79188052294d30a0bbc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -733,6 +733,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl diff --git a/patches/server/0267-Add-Bee-API.patch b/patches/server/0265-Add-Bee-API.patch similarity index 96% rename from patches/server/0267-Add-Bee-API.patch rename to patches/server/0265-Add-Bee-API.patch index a3f2b0126..8180a08fe 100644 --- a/patches/server/0267-Add-Bee-API.patch +++ b/patches/server/0265-Add-Bee-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Bee API diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 0a4ca865d1e41efca0eb8287c833e642e838b01a..bdb78cc701543cfe91a6bafd1786fe2ea0bf1ddc 100644 +index c2dae3636145105ecb3ae950e07095f278f72ac2..997ab942be9f742804041b07d607e7dd6473ba96 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -814,6 +814,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { diff --git a/patches/server/0268-Debug-Marker-API.patch b/patches/server/0266-Debug-Marker-API.patch similarity index 97% rename from patches/server/0268-Debug-Marker-API.patch rename to patches/server/0266-Debug-Marker-API.patch index 5a0f7846c..abb8a4181 100644 --- a/patches/server/0268-Debug-Marker-API.patch +++ b/patches/server/0266-Debug-Marker-API.patch @@ -5,7 +5,7 @@ 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 a4f812588b9cc1d6df556373ea0d7991058261ee..45ebcfb9f335dc0d13b3eceb5b8400041721b81d 100644 +index 14e60675d23f9696fd8f64eb026fcd0b82b498f0..659450d3538cc1499fd427868159e8c32b007dd2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1600,6 +1600,42 @@ public final class CraftServer implements Server { @@ -99,7 +99,7 @@ index 699432c497281f5501e48fb2a40a6f8bb65f7a6a..69f0c853ed7287c5a93b0a67e2662550 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ec95d213d05e539547c35e13c36458519a0bd4f0..9ec600dc473d30e4f47a81dc38a608862f17788f 100644 +index 219d6019eed162a2127f4d175aff817f52d93544..37d5ee3341af353efdaee609a57b262387e32a66 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3479,5 +3479,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0269-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0267-mob-spawning-option-to-ignore-creative-players.patch similarity index 92% rename from patches/server/0269-mob-spawning-option-to-ignore-creative-players.patch rename to patches/server/0267-mob-spawning-option-to-ignore-creative-players.patch index 1ab7dd9f3..015722f81 100644 --- a/patches/server/0269-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0267-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 524301e2438ee2938b59eb2b2e9fc4e0eb727a87..a2a59dd2e515bf4dca84a442703c122fd36f05e0 100644 +index d657de0bcc0684d1ba49ddad4db35e0e23fac108..a2026900948e9157cb35ba0183dc3af20c63214f 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 524301e2438ee2938b59eb2b2e9fc4e0eb727a87..a2a59dd2e515bf4dca84a442703c122f 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 c4174f1f3e6993a38cdb3cbd57553af9807a327b..1d9f4ae68eb58683aec4226aa62bf3731e14522b 100644 +index 7d0d298bd68ecba2ba1e2f3336d9aad4567dfde2..d790f742b47093f4e393cc7d60fc7c5c13c20fd1 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/0270-Add-skeleton-bow-accuracy-option.patch b/patches/server/0268-Add-skeleton-bow-accuracy-option.patch similarity index 91% rename from patches/server/0270-Add-skeleton-bow-accuracy-option.patch rename to patches/server/0268-Add-skeleton-bow-accuracy-option.patch index e88d4fe2d..8306cc224 100644 --- a/patches/server/0270-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0268-Add-skeleton-bow-accuracy-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add skeleton bow accuracy option 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 f3e1fa62d9f067c0fe8aacb88bf30b01ee0562c1..28eb98d383d6846a25c29f8cd8ff211c360a56dc 100644 +index cb378b343f721c16868a6673aba59856574c7133..a00646bc8a9caefe56e48b7682e8fb0c464b81fa 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -182,7 +182,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -18,10 +18,10 @@ index f3e1fa62d9f067c0fe8aacb88bf30b01ee0562c1..28eb98d383d6846a25c29f8cd8ff211c org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1d9f4ae68eb58683aec4226aa62bf3731e14522b..1dfaad983ed6d6babf88fb5cd512378110d09143 100644 +index d790f742b47093f4e393cc7d60fc7c5c13c20fd1..5b12c08a1d8e6f62c5653c95071a1d36d735d039 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2512,6 +2512,8 @@ public class PurpurWorldConfig { +@@ -2502,6 +2502,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 1d9f4ae68eb58683aec4226aa62bf3731e14522b..1dfaad983ed6d6babf88fb5cd5123781 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2526,6 +2528,18 @@ public class PurpurWorldConfig { +@@ -2516,6 +2518,18 @@ public class PurpurWorldConfig { skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses); diff --git a/patches/server/0271-Allay-respect-item-NBT.patch b/patches/server/0269-Allay-respect-item-NBT.patch similarity index 95% rename from patches/server/0271-Allay-respect-item-NBT.patch rename to patches/server/0269-Allay-respect-item-NBT.patch index efc73659d..9faf279ca 100644 --- a/patches/server/0271-Allay-respect-item-NBT.patch +++ b/patches/server/0269-Allay-respect-item-NBT.patch @@ -44,10 +44,10 @@ index 9bf06cf7b3706f8883e1a0ceac8b1aebb52ba475..c783ce59ea766e6c46a3313628b961f2 private boolean allayConsidersItemEqual(ItemStack stack, ItemStack stack2) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1dfaad983ed6d6babf88fb5cd512378110d09143..0c928efa4e11a85901ece3dbc849c8c0c652cc71 100644 +index 5b12c08a1d8e6f62c5653c95071a1d36d735d039..94e29919ddc7f507d54e14c3360f7a3e8bb831a7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1148,10 +1148,13 @@ public class PurpurWorldConfig { +@@ -1138,10 +1138,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = true; public boolean allayControllable = true; diff --git a/patches/server/0272-Add-death-screen-API.patch b/patches/server/0270-Add-death-screen-API.patch similarity index 92% rename from patches/server/0272-Add-death-screen-API.patch rename to patches/server/0270-Add-death-screen-API.patch index 369c0ff22..8ca6e53b7 100644 --- a/patches/server/0272-Add-death-screen-API.patch +++ b/patches/server/0270-Add-death-screen-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add death screen API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9ec600dc473d30e4f47a81dc38a608862f17788f..d6122c121d6e18d276fb78865c6a680e9afc3378 100644 +index 37d5ee3341af353efdaee609a57b262387e32a66..988cc1290200de629a4c24cc67a03e69c2fcc727 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3517,5 +3517,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0273-Make-pufferfish-config-relocatable.patch b/patches/server/0271-Make-pufferfish-config-relocatable.patch similarity index 90% rename from patches/server/0273-Make-pufferfish-config-relocatable.patch rename to patches/server/0271-Make-pufferfish-config-relocatable.patch index 4ba2c0394..5497a44be 100644 --- a/patches/server/0273-Make-pufferfish-config-relocatable.patch +++ b/patches/server/0271-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 960c0555a001fe63de78d77d5ea47d08a520d029..b4e5fbace85c67e7bd347e6a90514bbc2c132d5e 100644 +index 5e01bfdad663656168604fc878a993dd910bf45b..3fea9b69f4cfc94e7f01d4e3ca4ce7506a8e5d5c 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 960c0555a001fe63de78d77d5ea47d08a520d029..b4e5fbace85c67e7bd347e6a90514bbc 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 5165d5bdc92e4bd47ba6107be7af780feb9eeb76..d5e6c7e351a896eca956e99909f223185b80e9a1 100644 +index 6a9bd431e9c2e1fc1e51d394eaccba864bbeac89..85b861e21d8798a883ecbd0a09cc25f87e801b7b 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 5165d5bdc92e4bd47ba6107be7af780feb9eeb76..d5e6c7e351a896eca956e99909f22318 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 d7e581b3f4d2f9ecb054d020ea4f94ed54fb197a..c7f8f85ad6cb76413275ebe64385a3ec7051257e 100644 +index 0c3be815e4f81b0d51273413e9d0fb1a7db3f03f..146f229b8e8888e2c0256c007c71c675c27e71a5 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/0274-Implement-ram-and-rambar-commands.patch b/patches/server/0272-Implement-ram-and-rambar-commands.patch similarity index 98% rename from patches/server/0274-Implement-ram-and-rambar-commands.patch rename to patches/server/0272-Implement-ram-and-rambar-commands.patch index 148255826..f18d87e83 100644 --- a/patches/server/0274-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0272-Implement-ram-and-rambar-commands.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement ram and rambar commands diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 2fd8940727e4f361c67114794233d4ddc6548dbb..f50258436fd80e0793d867c67ad5653cb13b6609 100644 +index 48a4f26eec06777b4ae165db6566c1f6198527fd..b6cc108c2d4361e6f415cfc3ff8c7699a8e222f4 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -256,6 +256,8 @@ public class Commands { @@ -18,7 +18,7 @@ index 2fd8940727e4f361c67114794233d4ddc6548dbb..f50258436fd80e0793d867c67ad5653c if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f152066b6b19b6c5d7f4f7c4eb66ed0b440342c5..37a3ce5da2cb89675e0180c4ed937e5851cd002b 100644 +index 46c9cfa78fff65c24137792826c7f68483a39876..36b7686fdfeaab13cb1be9610ddc76fc70f6f6e5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -284,6 +284,7 @@ public class ServerPlayer extends Player { @@ -60,7 +60,7 @@ index f152066b6b19b6c5d7f4f7c4eb66ed0b440342c5..37a3ce5da2cb89675e0180c4ed937e58 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 40922e69274de6bc3da6f74b0216a816a1fb7722..128eab7246bf263e302cbeb5e4c359a41dd2cd3f 100644 +index b55a4366f69a1f259d5d7aed01764aec14a1dbb2..5313ba91ffc625b27d5bb99395f0e719829f6bda 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -182,6 +182,8 @@ public class PurpurConfig { diff --git a/patches/server/0275-Add-item-packet-serialize-event.patch b/patches/server/0273-Add-item-packet-serialize-event.patch similarity index 100% rename from patches/server/0275-Add-item-packet-serialize-event.patch rename to patches/server/0273-Add-item-packet-serialize-event.patch diff --git a/patches/server/0276-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch similarity index 100% rename from patches/server/0276-Add-an-option-to-fix-MC-3304-projectile-looting.patch rename to patches/server/0274-Add-an-option-to-fix-MC-3304-projectile-looting.patch diff --git a/patches/server/0277-Configurable-block-blast-resistance.patch b/patches/server/0275-Configurable-block-blast-resistance.patch similarity index 100% rename from patches/server/0277-Configurable-block-blast-resistance.patch rename to patches/server/0275-Configurable-block-blast-resistance.patch diff --git a/patches/server/0278-Configurable-block-fall-damage-modifiers.patch b/patches/server/0276-Configurable-block-fall-damage-modifiers.patch similarity index 100% rename from patches/server/0278-Configurable-block-fall-damage-modifiers.patch rename to patches/server/0276-Configurable-block-fall-damage-modifiers.patch diff --git a/patches/server/0279-Language-API.patch b/patches/server/0277-Language-API.patch similarity index 93% rename from patches/server/0279-Language-API.patch rename to patches/server/0277-Language-API.patch index d248a8cce..fa7b7a005 100644 --- a/patches/server/0279-Language-API.patch +++ b/patches/server/0277-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 45ebcfb9f335dc0d13b3eceb5b8400041721b81d..0a5867b01c1ebf21d9add1d4a2843d15b8e1acb7 100644 +index 659450d3538cc1499fd427868159e8c32b007dd2..dabaf0cff6dafe8ca411996e67ead9a2cf84dfb8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -400,6 +400,20 @@ public final class CraftServer implements Server { diff --git a/patches/server/0280-Milk-Keeps-Beneficial-Effects.patch b/patches/server/0278-Milk-Keeps-Beneficial-Effects.patch similarity index 97% rename from patches/server/0280-Milk-Keeps-Beneficial-Effects.patch rename to patches/server/0278-Milk-Keeps-Beneficial-Effects.patch index f02c29b20..c33bcac40 100644 --- a/patches/server/0280-Milk-Keeps-Beneficial-Effects.patch +++ b/patches/server/0278-Milk-Keeps-Beneficial-Effects.patch @@ -30,7 +30,7 @@ index 21a7cc86245d2440b8fc757d3664a29de293f7b0..b133c186d2d1412aa623ba3db68091bc 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 7c66d362dc5600d28165906dc9916af94c271664..0101b5c0ab87eaad0274993c2f099c04923b74b9 100644 +index 94e29919ddc7f507d54e14c3360f7a3e8bb831a7..f1ac2b90a465213c93ce940ca3f40497a9309e9b 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/0281-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch b/patches/server/0279-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch similarity index 100% rename from patches/server/0281-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch rename to patches/server/0279-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/patches/server/0282-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0280-Add-log-suppression-for-LibraryLoader.patch similarity index 100% rename from patches/server/0282-Add-log-suppression-for-LibraryLoader.patch rename to patches/server/0280-Add-log-suppression-for-LibraryLoader.patch diff --git a/patches/server/0283-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 92% rename from patches/server/0283-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch index f819c8dab..ae5c8ae9e 100644 --- a/patches/server/0283-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0281-Add-option-to-allow-creeper-to-encircle-target-when-.patch @@ -24,10 +24,10 @@ index e241ae250f4f04a17ef2c583d00b065a4ca56a4c..7b99c3446b50939241d3e220d93e0564 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1fc1c9d3f90fec901bddce5e55ab682bfa495b8f..92d16b3c5f2170c30019c093ca81aa85c92d0828 100644 +index f1ac2b90a465213c93ce940ca3f40497a9309e9b..eae5bebdb1bcc711b205078f96023ceb48fe5dd0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1422,6 +1422,7 @@ public class PurpurWorldConfig { +@@ -1412,6 +1412,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 1fc1c9d3f90fec901bddce5e55ab682bfa495b8f..92d16b3c5f2170c30019c093ca81aa85 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1440,6 +1441,7 @@ public class PurpurWorldConfig { +@@ -1430,6 +1431,7 @@ public class PurpurWorldConfig { creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent); diff --git a/patches/server/0284-Fire-Immunity-API.patch b/patches/server/0282-Fire-Immunity-API.patch similarity index 97% rename from patches/server/0284-Fire-Immunity-API.patch rename to patches/server/0282-Fire-Immunity-API.patch index 420d96164..6defcefbd 100644 --- a/patches/server/0284-Fire-Immunity-API.patch +++ b/patches/server/0282-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 b78d7958b56a4f385efc4666bb35a89a3049d702..693a418c10583131135a1d9f8be9c54f23a16430 100644 +index 0014046304fbb66925144ecccd0c0aa1c901c485..0f87b47758a543a5a0afa872f90d3db4dc9da4e0 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -427,6 +427,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0285-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 93% rename from patches/server/0285-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 63d80a982..cf8111369 100644 --- a/patches/server/0285-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0283-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -5,7 +5,7 @@ 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 693a418c10583131135a1d9f8be9c54f23a16430..2092ede561d14ace1c003ced051cd4967bb41beb 100644 +index 0f87b47758a543a5a0afa872f90d3db4dc9da4e0..9131d7693551c0cdecdb63f67b510fd5c766503c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -936,6 +936,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -17,7 +17,7 @@ index 693a418c10583131135a1d9f8be9c54f23a16430..2092ede561d14ace1c003ced051cd496 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1a1628b6a2d4814f5cdef1dc3f27bd74b22265d7..61dfb8c7e8606136981ec61f2b7ef02711d3a395 100644 +index eae5bebdb1bcc711b205078f96023ceb48fe5dd0..cb7cb5352a431cc336086c106be84e50424fd8ea 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -417,6 +417,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0286-Added-got-ram-event.patch b/patches/server/0284-Added-got-ram-event.patch similarity index 91% rename from patches/server/0286-Added-got-ram-event.patch rename to patches/server/0284-Added-got-ram-event.patch index b9275a0e9..64bcba860 100644 --- a/patches/server/0286-Added-got-ram-event.patch +++ b/patches/server/0284-Added-got-ram-event.patch @@ -5,7 +5,7 @@ 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 806b207e5246db7daa03bebabd7aa574d8b0dab7..5d7b20c30bc5e3be8511b300c318d12a1e4a49d0 100644 +index 566f117ba6742ba17ffb8a2673a8c320c39549f7..9d356b08279fd611fb9a7d25be6ede59998a9799 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 @@ -429,6 +429,7 @@ public class Goat extends Animal { diff --git a/patches/server/0287-Log-skipped-entity-s-position.patch b/patches/server/0285-Log-skipped-entity-s-position.patch similarity index 100% rename from patches/server/0287-Log-skipped-entity-s-position.patch rename to patches/server/0285-Log-skipped-entity-s-position.patch diff --git a/patches/server/0288-End-Crystal-Cramming.patch b/patches/server/0286-End-Crystal-Cramming.patch similarity index 96% rename from patches/server/0288-End-Crystal-Cramming.patch rename to patches/server/0286-End-Crystal-Cramming.patch index 33c79427c..e1fbb7d55 100644 --- a/patches/server/0288-End-Crystal-Cramming.patch +++ b/patches/server/0286-End-Crystal-Cramming.patch @@ -17,7 +17,7 @@ index 24ad1bae912fa6ee82ea8b6bdbb0af664dc1006c..34f5006f72ec357c474a19f22ee339e3 // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 61dfb8c7e8606136981ec61f2b7ef02711d3a395..6ec6806033a1033d3740e450b84f242b8e3749a2 100644 +index cb7cb5352a431cc336086c106be84e50424fd8ea..892af70a29ab76575cc86c7d9f36e28f3aefabb9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -947,6 +947,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0289-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 94% rename from patches/server/0289-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index a255686cc..2a53548ca 100644 --- a/patches/server/0289-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0287-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to allow beacon effects when covered by tinted glass diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 39b15512dbff3739f0339278cf350006429fdbbd..4f4568c4ed1c3d6551467a18200f8eafb0a54351 100644 +index 4a0bca08585fae3620da108f6a4cc07e500e5e03..428773361d12ecbcf3a6bf790aedfe12a384f511 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java @@ -174,6 +174,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -36,7 +36,7 @@ index 39b15512dbff3739f0339278cf350006429fdbbd..4f4568c4ed1c3d6551467a18200f8eaf BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cd0ce2e5e80ab2519247d8e6cfa2084455101034..36aa99f6dd6fad2185890e5a3e126ae3a14aff06 100644 +index 892af70a29ab76575cc86c7d9f36e28f3aefabb9..70b3c2fc1bd9f31d79079828a5de22a40d9cceba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -846,11 +846,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0290-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0288-Add-attribute-clamping-and-armor-limit-config.patch similarity index 100% rename from patches/server/0290-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0288-Add-attribute-clamping-and-armor-limit-config.patch diff --git a/patches/server/0291-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0289-Config-to-remove-explosion-radius-clamp.patch similarity index 91% rename from patches/server/0291-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0289-Config-to-remove-explosion-radius-clamp.patch index 7ac6a5f80..77d4cab9b 100644 --- a/patches/server/0291-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0289-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 17abd085b3faf88e10a44a6c98af996892cc4e58..0c08a07d3d1efa35646dbaa5cc887bf9d62cae42 100644 +index b0884758d00efb1e3b4b47a539de2a819aab978a..ad2eff33b2df9f004b2859d876e3e95962503bd6 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 17abd085b3faf88e10a44a6c98af996892cc4e58..0c08a07d3d1efa35646dbaa5cc887bf9 } // CraftBukkit end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 36aa99f6dd6fad2185890e5a3e126ae3a14aff06..d809d6062e3ecfd8c86c7dcc712363430ed88923 100644 +index 70b3c2fc1bd9f31d79079828a5de22a40d9cceba..9759c3aa4dab2a1ea3ab62ee026d6ad93a488ff7 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/0292-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0290-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 98% rename from patches/server/0292-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0290-bonemealable-sugarcane-cactus-and-netherwart.patch index 056ca9c75..448204a4d 100644 --- a/patches/server/0292-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0290-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -137,7 +137,7 @@ index 04957d461d0e968d443737068aaeec1d0bce78b2..7a283fbe4663cb321739f8e42ade4039 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2441151d8a9f52088412c7f91faa9d57be1e48b5..b7faa233782b82cf1482c5306a49496ae4c46a2d 100644 +index 9759c3aa4dab2a1ea3ab62ee026d6ad93a488ff7..959be2c3248bc5db01d4c5a4b15326867074ecee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -900,8 +900,20 @@ public class PurpurWorldConfig { diff --git a/patches/server/0293-Add-PreExplodeEvents.patch b/patches/server/0291-Add-PreExplodeEvents.patch similarity index 94% rename from patches/server/0293-Add-PreExplodeEvents.patch rename to patches/server/0291-Add-PreExplodeEvents.patch index a696779b3..f0d94d365 100644 --- a/patches/server/0293-Add-PreExplodeEvents.patch +++ b/patches/server/0291-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 0c08a07d3d1efa35646dbaa5cc887bf9d62cae42..3e69f176eee01b7e093a90f5f3c19009c0a22fa7 100644 +index ad2eff33b2df9f004b2859d876e3e95962503bd6..059e545fd04b7919fb0cc86797b636e3cda61027 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/0294-Improve-output-of-plugins-command.patch b/patches/server/0292-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0294-Improve-output-of-plugins-command.patch rename to patches/server/0292-Improve-output-of-plugins-command.patch diff --git a/patches/server/0295-Add-mending-multiplier.patch b/patches/server/0293-Add-mending-multiplier.patch similarity index 96% rename from patches/server/0295-Add-mending-multiplier.patch rename to patches/server/0293-Add-mending-multiplier.patch index b24297039..af6e76b7b 100644 --- a/patches/server/0295-Add-mending-multiplier.patch +++ b/patches/server/0293-Add-mending-multiplier.patch @@ -27,7 +27,7 @@ index 373a932b80be18b8a47ef849ce837dbfbba6f9cb..9a3210e34decb4096533c58f36687e31 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 b7faa233782b82cf1482c5306a49496ae4c46a2d..1045c32ad127815f1a0f6c4c12d37dd893e0883f 100644 +index 959be2c3248bc5db01d4c5a4b15326867074ecee..24e3ebf13e6af6d4bddb85976b30ef894278ce20 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/0296-Make-GUI-Great-Again.patch b/patches/server/0294-Make-GUI-Great-Again.patch similarity index 99% rename from patches/server/0296-Make-GUI-Great-Again.patch rename to patches/server/0294-Make-GUI-Great-Again.patch index bf4761b74..b59297a89 100644 --- a/patches/server/0296-Make-GUI-Great-Again.patch +++ b/patches/server/0294-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 21e7099755b72dbc3489eb9fcb97910b0605e2a2..043a48d8c90e2e008b06fb5a643378a0fa948aaa 100644 +index 85b861e21d8798a883ecbd0a09cc25f87e801b7b..5ca6af93362d205438f8321ee2461ae7f8160df1 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/0297-Stored-Bee-API.patch b/patches/server/0295-Stored-Bee-API.patch similarity index 100% rename from patches/server/0297-Stored-Bee-API.patch rename to patches/server/0295-Stored-Bee-API.patch diff --git a/patches/server/0298-Shears-can-defuse-TNT.patch b/patches/server/0296-Shears-can-defuse-TNT.patch similarity index 96% rename from patches/server/0298-Shears-can-defuse-TNT.patch rename to patches/server/0296-Shears-can-defuse-TNT.patch index 0832a2c9c..81402150c 100644 --- a/patches/server/0298-Shears-can-defuse-TNT.patch +++ b/patches/server/0296-Shears-can-defuse-TNT.patch @@ -42,10 +42,10 @@ index e712bd07ea2946167782473a536e0c72fab4bccd..6d934405cd18d63943171448743cafd5 + // Purpur end - Shears can defuse TNT } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1045c32ad127815f1a0f6c4c12d37dd893e0883f..5021553d6518bb23bcb32a0c6980f0194c379467 100644 +index 24e3ebf13e6af6d4bddb85976b30ef894278ce20..a35837a4d089658b4a19ebf63690e5371e1515cd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3286,4 +3286,11 @@ public class PurpurWorldConfig { +@@ -3276,4 +3276,11 @@ public class PurpurWorldConfig { cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance); cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance); } diff --git a/patches/server/0299-Explorer-Map-API.patch b/patches/server/0297-Explorer-Map-API.patch similarity index 91% rename from patches/server/0299-Explorer-Map-API.patch rename to patches/server/0297-Explorer-Map-API.patch index 0e5c4da40..a4ae1c0b2 100644 --- a/patches/server/0299-Explorer-Map-API.patch +++ b/patches/server/0297-Explorer-Map-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Explorer Map API diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java/net/minecraft/world/item/MapItem.java -index 797415866a7f182d804f6b8e57ceb07a6ac2a20a..6cfd169c2c32b644d70907358c2d4a2087c00a68 100644 +index d8dd99ec8bf7444c5a3c426db3a9c13e334dc0ff..8d3c1897044f9a2bbe1911e1a72dc9a00fb246df 100644 --- a/src/main/java/net/minecraft/world/item/MapItem.java +++ b/src/main/java/net/minecraft/world/item/MapItem.java @@ -235,6 +235,7 @@ public class MapItem extends ComplexItem { @@ -17,7 +17,7 @@ index 797415866a7f182d804f6b8e57ceb07a6ac2a20a..6cfd169c2c32b644d70907358c2d4a20 int i = 1 << worldmap.scale; int j = worldmap.centerX; diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index e4c4948e076cd64686dfd16ae0568fafc1437140..804c342783baccdc12e8ca49a362770e31596f6a 100644 +index 45269115e63cfc3bd7dc740a5694e2cc7c35bcb1..e1498d496aa01c433b6fa198608e33916eadecf3 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java @@ -67,6 +67,7 @@ public class MapItemSavedData extends SavedData { diff --git a/patches/server/0300-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0298-Option-Ocelot-Spawn-Under-Sea-Level.patch similarity index 91% rename from patches/server/0300-Option-Ocelot-Spawn-Under-Sea-Level.patch rename to patches/server/0298-Option-Ocelot-Spawn-Under-Sea-Level.patch index beb3ac572..82a355e1d 100644 --- a/patches/server/0300-Option-Ocelot-Spawn-Under-Sea-Level.patch +++ b/patches/server/0298-Option-Ocelot-Spawn-Under-Sea-Level.patch @@ -18,10 +18,10 @@ index af275fc579d66bb098c08e88e4186846a1174c02..3c5f25300d1c7800144a459cc8bf5983 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4d6679eba841dc6d9b2d227d99ab5842adb1caeb..2f0e119e6e630eba8229011d42185de40860f202 100644 +index a35837a4d089658b4a19ebf63690e5371e1515cd..43c6f7bfac08c31e19df70fb92cd611fbbe03b30 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2101,6 +2101,7 @@ public class PurpurWorldConfig { +@@ -2091,6 +2091,7 @@ public class PurpurWorldConfig { public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; public boolean ocelotAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 4d6679eba841dc6d9b2d227d99ab5842adb1caeb..2f0e119e6e630eba8229011d42185de4 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -2114,6 +2115,7 @@ public class PurpurWorldConfig { +@@ -2104,6 +2105,7 @@ public class PurpurWorldConfig { ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); ocelotAlwaysDropExp = getBoolean("mobs.ocelot.always-drop-exp", ocelotAlwaysDropExp); diff --git a/patches/server/0301-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch b/patches/server/0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch similarity index 94% rename from patches/server/0301-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch rename to patches/server/0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch index f1b51d6f8..cca01ecf0 100644 --- a/patches/server/0301-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch +++ b/patches/server/0299-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch @@ -45,10 +45,10 @@ index 4f4f557b7f4232ec3b90dda43c6bed30521318ba..dd4313e0507d3adda0ec84c79f1af13e piglin.getBrain().eraseMemory(MemoryModuleType.WALK_TARGET); piglin.getNavigation().stop(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 10ab00dda8e7c180e629676e342297979f427cbe..98f15753ebe2de471fd6de7d8baf0fe04d6dc449 100644 +index 43c6f7bfac08c31e19df70fb92cd611fbbe03b30..2cefa0a09e86e8d344de8b6fff8541d43f662b65 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2270,6 +2270,7 @@ public class PurpurWorldConfig { +@@ -2260,6 +2260,7 @@ public class PurpurWorldConfig { public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; public double piglinHeadVisibilityPercent = 0.5D; @@ -56,7 +56,7 @@ index 10ab00dda8e7c180e629676e342297979f427cbe..98f15753ebe2de471fd6de7d8baf0fe0 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2285,6 +2286,7 @@ public class PurpurWorldConfig { +@@ -2275,6 +2276,7 @@ public class PurpurWorldConfig { piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); piglinHeadVisibilityPercent = getDouble("mobs.piglin.head-visibility-percent", piglinHeadVisibilityPercent); diff --git a/patches/server/0302-Add-option-for-always-showing-item-in-player-death-m.patch b/patches/server/0300-Add-option-for-always-showing-item-in-player-death-m.patch similarity index 100% rename from patches/server/0302-Add-option-for-always-showing-item-in-player-death-m.patch rename to patches/server/0300-Add-option-for-always-showing-item-in-player-death-m.patch diff --git a/patches/server/0303-place-end-crystal-on-any-block.patch b/patches/server/0301-place-end-crystal-on-any-block.patch similarity index 92% rename from patches/server/0303-place-end-crystal-on-any-block.patch rename to patches/server/0301-place-end-crystal-on-any-block.patch index bc7ea97f2..5003d9f9b 100644 --- a/patches/server/0303-place-end-crystal-on-any-block.patch +++ b/patches/server/0301-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 3688e9f8c6c6d1239095e3a87060ccca90386d0c..34254eec36d34ae343733fa1abbaaba60be41a3b 100644 +index faa3f62d22266a3c32d6c95c3ffebd4aa3880739..0cf62b1f64afa56c319392eafe0d444b7c5662c7 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 { @@ -18,7 +18,7 @@ index 3688e9f8c6c6d1239095e3a87060ccca90386d0c..34254eec36d34ae343733fa1abbaaba6 } else { BlockPos blockposition1 = blockposition.above(); final BlockPos aboveBlockPosition = blockposition1; // Paper - OBFHELPER diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c1354f18f7dd11d1f28f37d38ad4db4b671e3af1..68b86e3f9914b05312b94cc9f16ad8c39de103c6 100644 +index 2cefa0a09e86e8d344de8b6fff8541d43f662b65..28ecc0e7d61a1c0a62bc0ec096cd601a45fa02db 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -969,6 +969,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0304-Add-hover-lines-API.patch b/patches/server/0302-Add-hover-lines-API.patch similarity index 100% rename from patches/server/0304-Add-hover-lines-API.patch rename to patches/server/0302-Add-hover-lines-API.patch diff --git a/patches/server/0305-Add-option-to-disable-the-copper-oxidation-proximity.patch b/patches/server/0303-Add-option-to-disable-the-copper-oxidation-proximity.patch similarity index 96% rename from patches/server/0305-Add-option-to-disable-the-copper-oxidation-proximity.patch rename to patches/server/0303-Add-option-to-disable-the-copper-oxidation-proximity.patch index 1d6285652..d9b93d98f 100644 --- a/patches/server/0305-Add-option-to-disable-the-copper-oxidation-proximity.patch +++ b/patches/server/0303-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 68b86e3f9914b05312b94cc9f16ad8c39de103c6..dab252cbadffbcdf19bacc0b378d671b29393e9c 100644 +index 28ecc0e7d61a1c0a62bc0ec096cd601a45fa02db..002c9bba93dede25111c653ec1df38316f19421f 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 { diff --git a/patches/server/0306-register-minecraft-debug-commands.patch b/patches/server/0304-register-minecraft-debug-commands.patch similarity index 100% rename from patches/server/0306-register-minecraft-debug-commands.patch rename to patches/server/0304-register-minecraft-debug-commands.patch diff --git a/patches/server/0307-PaperPR-10285-check-if-itemstack-is-stackable-first.patch b/patches/server/0307-PaperPR-10285-check-if-itemstack-is-stackable-first.patch deleted file mode 100644 index 619b2a242..000000000 --- a/patches/server/0307-PaperPR-10285-check-if-itemstack-is-stackable-first.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: granny -Date: Sat, 24 Feb 2024 19:33:01 -0800 -Subject: [PATCH] PaperPR #10285 check if itemstack is stackable first - - -diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java -index deabb3400ee2406a8ec179a96d8cfd86f8edbbd6..c6a925cbd35eb33b27b90bfa8344ac7515d28b76 100644 ---- a/src/main/java/net/minecraft/world/entity/player/Inventory.java -+++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java -@@ -114,7 +114,7 @@ public class Inventory implements Container, Nameable { - } - - private boolean hasRemainingSpaceForItem(ItemStack existingStack, ItemStack stack) { -- return !existingStack.isEmpty() && ItemStack.isSameItemSameTags(existingStack, stack) && existingStack.isStackable() && existingStack.getCount() < existingStack.getMaxStackSize() && existingStack.getCount() < this.getMaxStackSize(); -+ return !existingStack.isEmpty() && existingStack.isStackable() && existingStack.getCount() < existingStack.getMaxStackSize() && existingStack.getCount() < this.getMaxStackSize() && ItemStack.isSameItemSameTags(existingStack, stack); // Paper - check if itemstack is stackable first - } - - // CraftBukkit start - Watch method above! :D