From 5f858fbe97de1b72283858fb683e8ce0a77c2988 Mon Sep 17 00:00:00 2001 From: granny Date: Sun, 13 Aug 2023 03:30:27 -0700 Subject: [PATCH] add configurable shovel flattenables --- patches/server/0004-Purpur-config-files.patch | 13 +- patches/server/0008-Ridables.patch | 6 +- ...-Configurable-entity-base-attributes.patch | 34 +-- patches/server/0012-AFK-API.patch | 6 +- .../0018-Player-invulnerabilities.patch | 6 +- patches/server/0021-Silk-touch-spawners.patch | 4 +- .../0022-Add-turtle-egg-block-options.patch | 4 +- patches/server/0025-Giants-AI-settings.patch | 6 +- .../0026-Zombie-horse-naturally-spawn.patch | 6 +- ...0027-Charged-creeper-naturally-spawn.patch | 8 +- ...bit-naturally-spawn-toast-and-killer.patch | 8 +- .../server/0030-Tulips-change-fox-type.patch | 8 +- .../server/0031-Breedable-Polar-Bears.patch | 6 +- .../server/0032-Chickens-can-retaliate.patch | 6 +- ...option-to-set-armorstand-step-height.patch | 6 +- .../server/0034-Cat-spawning-options.patch | 6 +- patches/server/0035-Cows-eat-mushrooms.patch | 6 +- .../server/0037-Pigs-give-saddle-back.patch | 6 +- ...38-Snowman-drop-and-put-back-pumpkin.patch | 8 +- ...39-Ender-dragon-always-drop-full-exp.patch | 6 +- ...moisten-from-water-directly-under-it.patch | 6 +- ...-Minecart-settings-and-WASD-controls.patch | 6 +- ...able-loot-drops-on-death-by-cramming.patch | 4 +- ...ption-to-toggle-milk-curing-bad-omen.patch | 4 +- ...low-loyalty-on-tridents-to-work-in-t.patch | 4 +- ...derman-and-creeper-griefing-controls.patch | 14 +- ...0050-Villagers-follow-emerald-blocks.patch | 12 +- .../0051-Allow-leashing-villagers.patch | 12 +- .../0052-Implement-infinite-liquids.patch | 6 +- ...53-Make-lava-flow-speed-configurable.patch | 4 +- ...Add-player-death-exp-control-options.patch | 6 +- ...urable-void-damage-height-and-damage.patch | 6 +- ...ispenser-curse-of-binding-protection.patch | 4 +- ...n-for-boats-to-eject-players-on-land.patch | 4 +- ...g-mends-most-damages-equipment-first.patch | 6 +- .../0061-Implement-elytra-settings.patch | 4 +- .../server/0062-Item-entity-immunities.patch | 6 +- .../0066-Configurable-jockey-options.patch | 22 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 8 +- .../0068-Add-phantom-spawning-options.patch | 8 +- ...0069-Implement-bed-explosion-options.patch | 4 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- patches/server/0073-Entity-lifespan.patch | 4 +- ...leport-to-spawn-if-outside-world-bor.patch | 8 +- patches/server/0075-Squid-EAR-immunity.patch | 6 +- .../server/0076-Phantoms-burn-in-light.patch | 6 +- .../0077-Configurable-villager-breeding.patch | 6 +- .../0078-Redstone-deactivates-spawners.patch | 4 +- .../0079-Totems-work-in-inventory.patch | 6 +- ...0-Add-vindicator-johnny-spawn-chance.patch | 6 +- .../0082-Dispensers-place-anvils-option.patch | 4 +- patches/server/0083-Allow-anvil-colors.patch | 4 +- ...o-disable-dolphin-treasure-searching.patch | 6 +- ...Stop-squids-floating-on-top-of-water.patch | 6 +- ...tities-can-use-portals-configuration.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 8 +- ...ggling-special-MobSpawners-per-world.patch | 8 +- .../server/0092-Raid-cooldown-setting.patch | 6 +- ...e-config-options-per-projectile-type.patch | 4 +- ...sable-zombie-aggressiveness-towards-.patch | 6 +- patches/server/0096-Flying-squids-Oh-my.patch | 8 +- .../server/0097-Infinity-bow-settings.patch | 4 +- .../0098-Configurable-daylight-cycle.patch | 4 +- ...00-Furnace-uses-lava-from-underneath.patch | 4 +- ...ows-should-not-reset-despawn-counter.patch | 4 +- ...re-add-farmland-mechanics-from-Alpha.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 8 +- ...e-entity-breeding-times-configurable.patch | 98 +++---- ...mes-from-item-forms-of-entities-to-e.patch | 8 +- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 4 +- ...llowing-Endermen-to-despawn-even-whi.patch | 8 +- ...108-Add-configurable-snowball-damage.patch | 4 +- ...09-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0110-Add-boat-fall-damage-config.patch | 8 +- .../0111-Snow-Golem-rate-of-fire-config.patch | 8 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 6 +- ...fied-Piglin-death-always-counting-as.patch | 6 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 6 +- ...16-Configurable-default-collar-color.patch | 10 +- .../server/0117-Phantom-flames-on-swoop.patch | 6 +- ...s-to-open-even-with-a-solid-block-on.patch | 4 +- .../0120-Striders-give-saddle-back.patch | 6 +- ...therite-armor-grants-fire-resistance.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 70 ++--- ...allow-Note-Block-sounds-when-blocked.patch | 8 +- ...0126-Add-EntityTeleportHinderedEvent.patch | 6 +- .../0127-Farmland-trampling-changes.patch | 4 +- ...28-Movement-options-for-armor-stands.patch | 6 +- .../server/0129-Fix-stuck-in-portals.patch | 10 +- ...oggle-for-water-sensitive-mob-damage.patch | 272 ++++++++--------- ...31-Config-to-always-tame-in-Creative.patch | 6 +- .../0132-End-crystal-explosion-options.patch | 4 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 12 +- .../server/0134-Dont-run-with-scissors.patch | 8 +- patches/server/0135-One-Punch-Man.patch | 6 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 6 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 8 +- ...an-aggressiveness-towards-Endermites.patch | 8 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 8 +- patches/server/0141-Tick-fluids-config.patch | 6 +- ...142-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 8 +- ...urable-ravager-griefable-blocks-list.patch | 6 +- ...0145-Sneak-to-bulk-process-composter.patch | 4 +- .../0146-Config-for-skipping-night.patch | 6 +- ...0147-Add-config-for-villager-trading.patch | 12 +- patches/server/0149-Drowning-Settings.patch | 6 +- ...Break-individual-slabs-when-sneaking.patch | 6 +- ...-to-disable-hostile-mob-spawn-on-ice.patch | 4 +- ...ig-to-show-Armor-Stand-arms-on-spawn.patch | 8 +- ...ption-to-make-doors-require-redstone.patch | 4 +- .../0155-Configurable-sponge-absorption.patch | 4 +- .../0156-Projectile-offset-config.patch | 6 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0158-Piglin-portal-spawn-modifier.patch | 6 +- ...0-Config-for-wither-explosion-radius.patch | 6 +- ...ing-the-blocks-that-turn-into-dirt-p.patch | 80 ----- ...0162-Configurable-piston-push-limit.patch} | 4 +- ...163-Configurable-broadcast-settings.patch} | 4 +- ... => 0164-Configurable-mob-blindness.patch} | 6 +- ...hidden-players-from-entity-selector.patch} | 2 +- ...-to-impact-Creeper-explosion-radius.patch} | 8 +- ... 0167-Iron-golem-calm-anger-options.patch} | 6 +- ...ots.patch => 0168-Breedable-parrots.patch} | 8 +- ...gurable-powered-rail-boost-modifier.patch} | 6 +- ...ge-multiplier-critical-damage-value.patch} | 6 +- ...n-to-disable-dragon-egg-teleporting.patch} | 4 +- ...fig-for-unverified-username-message.patch} | 2 +- ...-anvil-cumulative-cost-configurable.patch} | 2 +- ...4-ShulkerBox-allow-oversized-stacks.patch} | 6 +- ...e-can-work-when-raining-or-at-night.patch} | 6 +- ...76-API-for-any-mob-to-burn-daylight.patch} | 2 +- ...h => 0177-Config-MobEffect-by-world.patch} | 4 +- ...eacon-Activation-Range-Configurable.patch} | 6 +- ...0179-Add-toggle-for-sand-duping-fix.patch} | 4 +- ...gle-for-end-portal-safe-teleporting.patch} | 6 +- ...ke-lightning-rod-range-configurable.patch} | 2 +- ...fter-eating-food-fills-hunger-bar-c.patch} | 6 +- ...ayer-join-full-server-by-permission.patch} | 2 +- ...al-waiting-option-permission-bypass.patch} | 8 +- ...5-Shulker-spawn-from-bullet-options.patch} | 6 +- ...ating-glow-berries-adds-glow-effect.patch} | 6 +- ...-Option-to-make-drowned-break-doors.patch} | 6 +- ...nfigurable-hunger-starvation-damage.patch} | 4 +- ...patch => 0189-Enhance-SysoutCatcher.patch} | 0 ...nd.patch => 0190-Add-uptime-command.patch} | 4 +- ...tch => 0191-Tool-actionable-options.patch} | 94 +++++- ...2-Store-placer-on-Block-when-placed.patch} | 0 ...oner-API.patch => 0193-Summoner-API.patch} | 4 +- ...mizable-sleeping-actionbar-messages.patch} | 2 +- ...-shulker-box-items-from-dropping-co.patch} | 6 +- ...tch => 0196-Big-dripleaf-tilt-delay.patch} | 6 +- ...0197-Player-ridable-in-water-option.patch} | 6 +- ...-Enderman-teleport-on-projectile-hi.patch} | 8 +- ...d.patch => 0199-Add-compass-command.patch} | 10 +- ...h => 0200-Toggle-for-kinetic-damage.patch} | 4 +- ...-Option-for-disable-observer-clocks.patch} | 4 +- ...zeable-Zombie-Villager-curing-times.patch} | 6 +- ...for-sponges-to-work-on-lava-and-mud.patch} | 4 +- ...204-Toggle-for-Wither-s-spawn-sound.patch} | 6 +- ...-breaks-from-solid-neighbors-config.patch} | 4 +- ...move-curse-of-binding-with-weakness.patch} | 6 +- ...0207-Conduit-behavior-configuration.patch} | 4 +- ...patch => 0208-Cauldron-fill-chances.patch} | 4 +- ...o-allow-mobs-to-pathfind-over-rails.patch} | 6 +- ... 0210-Shulker-change-color-with-dye.patch} | 6 +- ... => 0211-Extended-OfflinePlayer-API.patch} | 0 ...he-ability-to-add-combustible-items.patch} | 2 +- ...in-and-thunder-should-stop-on-sleep.patch} | 6 +- ...-blocks-to-grow-into-trees-naturall.patch} | 6 +- ...-right-click-to-use-exp-for-mending.patch} | 6 +- ...urally-aggressive-to-players-chance.patch} | 6 +- ...urally-aggressive-to-players-chance.patch} | 6 +- ...r-beds-to-explode-on-villager-sleep.patch} | 6 +- ...Halloween-options-and-optimizations.patch} | 4 +- ...atch => 0220-Config-for-grindstones.patch} | 2 +- ....patch => 0221-UPnP-Port-Forwarding.patch} | 2 +- ...Campfire-option-for-lit-when-placed.patch} | 4 +- ...tinguish-fire-blocks-with-snowballs.patch} | 6 +- ...on-to-disable-zombie-villagers-cure.patch} | 6 +- ...nt-BlockEntity-Lore-and-DisplayName.patch} | 6 +- ...tch => 0226-Signs-allow-color-codes.patch} | 4 +- ...-and-twisting-vines-configurable-ma.patch} | 2 +- ...=> 0228-Mobs-always-drop-experience.patch} | 274 +++++++++--------- ....patch => 0229-Potion-NamespacedKey.patch} | 0 ...ne-API.patch => 0230-Grindstone-API.patch} | 0 ...e-to-replant-crops-and-nether-warts.patch} | 10 +- ...ring-jeb-produces-random-color-wool.patch} | 6 +- ...urtle-eggs-random-tick-crack-chance.patch} | 4 +- ...=> 0234-Mob-head-visibility-percent.patch} | 18 +- ...able-valid-characters-for-usernames.patch} | 2 +- ...Shears-can-have-looting-enchantment.patch} | 4 +- ...Stop-bees-from-dying-after-stinging.patch} | 6 +- ...ounts-in-beehives-to-Purpur-clients.patch} | 2 +- ...onfigurable-farmland-trample-height.patch} | 6 +- ...onfigurable-player-pickup-exp-delay.patch} | 6 +- ...ng.patch => 0241-Allow-void-trading.patch} | 6 +- ...h => 0242-Configurable-phantom-size.patch} | 6 +- ...> 0243-Configurable-food-attributes.patch} | 2 +- ....patch => 0244-Max-joins-per-second.patch} | 2 +- ...figurable-minimum-demand-for-trades.patch} | 6 +- ... => 0246-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} | 6 +- ...=> 0250-Anvil-repair-damage-options.patch} | 4 +- ...-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 => 0255-Stonecutter-damage.patch} | 6 +- ...le-damage-settings-for-magma-blocks.patch} | 4 +- ...257-Add-config-for-snow-on-blue-ice.patch} | 4 +- ... => 0258-Skeletons-eat-wither-roses.patch} | 6 +- ...59-Enchantment-Table-Persists-Lapis.patch} | 4 +- ...ofiler.patch => 0260-Spark-Profiler.patch} | 0 ...-disable-kick-for-out-of-order-chat.patch} | 2 +- ...for-sculk-shrieker-can_summon-state.patch} | 4 +- ...=> 0263-Config-to-not-let-coral-die.patch} | 4 +- ...ch => 0264-Add-local-difficulty-api.patch} | 2 +- ...265-Add-toggle-for-RNG-manipulation.patch} | 4 +- ... 0266-Send-client-custom-name-of-BE.patch} | 0 ...Fix-exact-choice-recipe-book-clicks.patch} | 2 +- ...=> 0268-Allow-custom-ChatDecorators.patch} | 0 ...imings.patch => 0269-Remove-Timings.patch} | 0 ...atch => 0270-Remove-Mojang-Profiler.patch} | 0 ...r-output-for-invalid-movement-kicks.patch} | 2 +- ...d-Bee-API.patch => 0272-Add-Bee-API.patch} | 0 ...-API.patch => 0273-Debug-Marker-API.patch} | 0 ...g-option-to-ignore-creative-players.patch} | 6 +- ...75-Add-skeleton-bow-accuracy-option.patch} | 6 +- ...atch => 0276-Allay-respect-item-NBT.patch} | 4 +- ....patch => 0277-Add-death-screen-API.patch} | 0 ...-Make-pufferfish-config-relocatable.patch} | 2 +- ...9-Implement-ram-and-rambar-commands.patch} | 4 +- ...280-Add-item-packet-serialize-event.patch} | 2 +- ...n-to-fix-MC-3304-projectile-looting.patch} | 2 +- ...Configurable-block-blast-resistance.patch} | 2 +- ...gurable-block-fall-damage-modifiers.patch} | 2 +- ...uage-API.patch => 0284-Language-API.patch} | 2 +- ... 0285-Milk-Keeps-Beneficial-Effects.patch} | 6 +- ...s-not-looking-up-and-down-when-stra.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 2 +- ...ow-creeper-to-encircle-target-when-.patch} | 6 +- ...API.patch => 0289-Fire-Immunity-API.patch} | 2 +- ...eport-to-spawn-on-nether-ceiling-da.patch} | 6 +- ...t.patch => 0291-Added-got-ram-event.patch} | 0 ... 0292-Log-skipped-entity-s-position.patch} | 0 ....patch => 0293-End-Crystal-Cramming.patch} | 6 +- ...eacon-effects-when-covered-by-tinte.patch} | 4 +- ...ute-clamping-and-armor-limit-config.patch} | 2 +- ...ig-to-remove-explosion-radius-clamp.patch} | 4 +- ...ble-sugarcane-cactus-and-netherwart.patch} | 4 +- ....patch => 0298-Add-PreExplodeEvents.patch} | 0 ...9-Improve-output-of-plugins-command.patch} | 0 ...atch => 0300-Add-mending-multiplier.patch} | 6 +- ....patch => 0301-Make-GUI-Great-Again.patch} | 0 ...ee-API.patch => 0302-Stored-Bee-API.patch} | 0 ...patch => 0303-Shears-can-defuse-TNT.patch} | 4 +- ...-API.patch => 0304-Explorer-Map-API.patch} | 2 +- ...Option-Ocelot-Spawn-Under-Sea-Level.patch} | 6 +- 261 files changed, 1104 insertions(+), 1097 deletions(-) delete mode 100644 patches/server/0162-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch rename patches/server/{0163-Configurable-piston-push-limit.patch => 0162-Configurable-piston-push-limit.patch} (94%) rename patches/server/{0164-Configurable-broadcast-settings.patch => 0163-Configurable-broadcast-settings.patch} (94%) rename patches/server/{0165-Configurable-mob-blindness.patch => 0164-Configurable-mob-blindness.patch} (93%) rename patches/server/{0166-Hide-hidden-players-from-entity-selector.patch => 0165-Hide-hidden-players-from-entity-selector.patch} (98%) rename patches/server/{0167-Config-for-health-to-impact-Creeper-explosion-radius.patch => 0166-Config-for-health-to-impact-Creeper-explosion-radius.patch} (89%) rename patches/server/{0168-Iron-golem-calm-anger-options.patch => 0167-Iron-golem-calm-anger-options.patch} (96%) rename patches/server/{0169-Breedable-parrots.patch => 0168-Breedable-parrots.patch} (92%) rename patches/server/{0170-Configurable-powered-rail-boost-modifier.patch => 0169-Configurable-powered-rail-boost-modifier.patch} (91%) rename patches/server/{0171-Add-config-change-multiplier-critical-damage-value.patch => 0170-Add-config-change-multiplier-critical-damage-value.patch} (91%) rename patches/server/{0172-Option-to-disable-dragon-egg-teleporting.patch => 0171-Option-to-disable-dragon-egg-teleporting.patch} (92%) rename patches/server/{0173-Config-for-unverified-username-message.patch => 0172-Config-for-unverified-username-message.patch} (97%) rename patches/server/{0174-Make-anvil-cumulative-cost-configurable.patch => 0173-Make-anvil-cumulative-cost-configurable.patch} (95%) rename patches/server/{0175-ShulkerBox-allow-oversized-stacks.patch => 0174-ShulkerBox-allow-oversized-stacks.patch} (92%) rename patches/server/{0176-Bee-can-work-when-raining-or-at-night.patch => 0175-Bee-can-work-when-raining-or-at-night.patch} (94%) rename patches/server/{0177-API-for-any-mob-to-burn-daylight.patch => 0176-API-for-any-mob-to-burn-daylight.patch} (99%) rename patches/server/{0178-Config-MobEffect-by-world.patch => 0177-Config-MobEffect-by-world.patch} (97%) rename patches/server/{0179-Beacon-Activation-Range-Configurable.patch => 0178-Beacon-Activation-Range-Configurable.patch} (90%) rename patches/server/{0180-Add-toggle-for-sand-duping-fix.patch => 0179-Add-toggle-for-sand-duping-fix.patch} (93%) rename patches/server/{0181-Add-toggle-for-end-portal-safe-teleporting.patch => 0180-Add-toggle-for-end-portal-safe-teleporting.patch} (92%) rename patches/server/{0182-Make-lightning-rod-range-configurable.patch => 0181-Make-lightning-rod-range-configurable.patch} (96%) rename patches/server/{0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch => 0182-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch} (95%) rename patches/server/{0184-Allow-player-join-full-server-by-permission.patch => 0183-Allow-player-join-full-server-by-permission.patch} (93%) rename patches/server/{0185-Add-portal-waiting-option-permission-bypass.patch => 0184-Add-portal-waiting-option-permission-bypass.patch} (91%) rename patches/server/{0186-Shulker-spawn-from-bullet-options.patch => 0185-Shulker-spawn-from-bullet-options.patch} (96%) rename patches/server/{0187-Eating-glow-berries-adds-glow-effect.patch => 0186-Eating-glow-berries-adds-glow-effect.patch} (95%) rename patches/server/{0188-Option-to-make-drowned-break-doors.patch => 0187-Option-to-make-drowned-break-doors.patch} (94%) rename patches/server/{0189-Configurable-hunger-starvation-damage.patch => 0188-Configurable-hunger-starvation-damage.patch} (92%) rename patches/server/{0190-Enhance-SysoutCatcher.patch => 0189-Enhance-SysoutCatcher.patch} (100%) rename patches/server/{0191-Add-uptime-command.patch => 0190-Add-uptime-command.patch} (97%) rename patches/server/{0192-Tool-actionable-options.patch => 0191-Tool-actionable-options.patch} (82%) rename patches/server/{0193-Store-placer-on-Block-when-placed.patch => 0192-Store-placer-on-Block-when-placed.patch} (100%) rename patches/server/{0194-Summoner-API.patch => 0193-Summoner-API.patch} (98%) rename patches/server/{0195-Customizable-sleeping-actionbar-messages.patch => 0194-Customizable-sleeping-actionbar-messages.patch} (97%) rename patches/server/{0196-option-to-disable-shulker-box-items-from-dropping-co.patch => 0195-option-to-disable-shulker-box-items-from-dropping-co.patch} (91%) rename patches/server/{0197-Big-dripleaf-tilt-delay.patch => 0196-Big-dripleaf-tilt-delay.patch} (91%) rename patches/server/{0198-Player-ridable-in-water-option.patch => 0197-Player-ridable-in-water-option.patch} (91%) rename patches/server/{0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch => 0198-Config-to-disable-Enderman-teleport-on-projectile-hi.patch} (88%) rename patches/server/{0200-Add-compass-command.patch => 0199-Add-compass-command.patch} (97%) rename patches/server/{0201-Toggle-for-kinetic-damage.patch => 0200-Toggle-for-kinetic-damage.patch} (93%) rename patches/server/{0202-Add-Option-for-disable-observer-clocks.patch => 0201-Add-Option-for-disable-observer-clocks.patch} (93%) rename patches/server/{0203-Customizeable-Zombie-Villager-curing-times.patch => 0202-Customizeable-Zombie-Villager-curing-times.patch} (92%) rename patches/server/{0204-Option-for-sponges-to-work-on-lava-and-mud.patch => 0203-Option-for-sponges-to-work-on-lava-and-mud.patch} (95%) rename patches/server/{0205-Toggle-for-Wither-s-spawn-sound.patch => 0204-Toggle-for-Wither-s-spawn-sound.patch} (91%) rename patches/server/{0206-Cactus-breaks-from-solid-neighbors-config.patch => 0205-Cactus-breaks-from-solid-neighbors-config.patch} (92%) rename patches/server/{0207-Config-to-remove-curse-of-binding-with-weakness.patch => 0206-Config-to-remove-curse-of-binding-with-weakness.patch} (93%) rename patches/server/{0208-Conduit-behavior-configuration.patch => 0207-Conduit-behavior-configuration.patch} (97%) rename patches/server/{0209-Cauldron-fill-chances.patch => 0208-Cauldron-fill-chances.patch} (96%) rename patches/server/{0210-Config-to-allow-mobs-to-pathfind-over-rails.patch => 0209-Config-to-allow-mobs-to-pathfind-over-rails.patch} (93%) rename patches/server/{0211-Shulker-change-color-with-dye.patch => 0210-Shulker-change-color-with-dye.patch} (94%) rename patches/server/{0212-Extended-OfflinePlayer-API.patch => 0211-Extended-OfflinePlayer-API.patch} (100%) rename patches/server/{0213-Added-the-ability-to-add-combustible-items.patch => 0212-Added-the-ability-to-add-combustible-items.patch} (97%) rename patches/server/{0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch => 0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch} (93%) rename patches/server/{0215-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch => 0214-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch} (96%) rename patches/server/{0216-Shift-right-click-to-use-exp-for-mending.patch => 0215-Shift-right-click-to-use-exp-for-mending.patch} (95%) rename patches/server/{0217-Dolphins-naturally-aggressive-to-players-chance.patch => 0216-Dolphins-naturally-aggressive-to-players-chance.patch} (95%) rename patches/server/{0218-Cows-naturally-aggressive-to-players-chance.patch => 0217-Cows-naturally-aggressive-to-players-chance.patch} (96%) rename patches/server/{0219-Option-for-beds-to-explode-on-villager-sleep.patch => 0218-Option-for-beds-to-explode-on-villager-sleep.patch} (92%) rename patches/server/{0220-Halloween-options-and-optimizations.patch => 0219-Halloween-options-and-optimizations.patch} (97%) rename patches/server/{0221-Config-for-grindstones.patch => 0220-Config-for-grindstones.patch} (98%) rename patches/server/{0222-UPnP-Port-Forwarding.patch => 0221-UPnP-Port-Forwarding.patch} (97%) rename patches/server/{0223-Campfire-option-for-lit-when-placed.patch => 0222-Campfire-option-for-lit-when-placed.patch} (94%) rename patches/server/{0224-options-to-extinguish-fire-blocks-with-snowballs.patch => 0223-options-to-extinguish-fire-blocks-with-snowballs.patch} (96%) rename patches/server/{0225-Add-option-to-disable-zombie-villagers-cure.patch => 0224-Add-option-to-disable-zombie-villagers-cure.patch} (92%) rename patches/server/{0226-Persistent-BlockEntity-Lore-and-DisplayName.patch => 0225-Persistent-BlockEntity-Lore-and-DisplayName.patch} (98%) rename patches/server/{0227-Signs-allow-color-codes.patch => 0226-Signs-allow-color-codes.patch} (97%) rename patches/server/{0228-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch => 0227-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch} (99%) rename patches/server/{0229-Mobs-always-drop-experience.patch => 0228-Mobs-always-drop-experience.patch} (94%) rename patches/server/{0230-Potion-NamespacedKey.patch => 0229-Potion-NamespacedKey.patch} (100%) rename patches/server/{0231-Grindstone-API.patch => 0230-Grindstone-API.patch} (100%) rename patches/server/{0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch => 0231-Ability-for-hoe-to-replant-crops-and-nether-warts.patch} (94%) rename patches/server/{0233-Shearing-jeb-produces-random-color-wool.patch => 0232-Shearing-jeb-produces-random-color-wool.patch} (92%) rename patches/server/{0234-Turtle-eggs-random-tick-crack-chance.patch => 0233-Turtle-eggs-random-tick-crack-chance.patch} (93%) rename patches/server/{0235-Mob-head-visibility-percent.patch => 0234-Mob-head-visibility-percent.patch} (91%) rename patches/server/{0236-Configurable-valid-characters-for-usernames.patch => 0235-Configurable-valid-characters-for-usernames.patch} (95%) rename patches/server/{0237-Shears-can-have-looting-enchantment.patch => 0236-Shears-can-have-looting-enchantment.patch} (98%) rename patches/server/{0238-Stop-bees-from-dying-after-stinging.patch => 0237-Stop-bees-from-dying-after-stinging.patch} (90%) rename patches/server/{0239-Give-bee-counts-in-beehives-to-Purpur-clients.patch => 0238-Give-bee-counts-in-beehives-to-Purpur-clients.patch} (98%) rename patches/server/{0240-Configurable-farmland-trample-height.patch => 0239-Configurable-farmland-trample-height.patch} (94%) rename patches/server/{0241-Configurable-player-pickup-exp-delay.patch => 0240-Configurable-player-pickup-exp-delay.patch} (95%) rename patches/server/{0242-Allow-void-trading.patch => 0241-Allow-void-trading.patch} (93%) rename patches/server/{0243-Configurable-phantom-size.patch => 0242-Configurable-phantom-size.patch} (93%) rename patches/server/{0244-Configurable-food-attributes.patch => 0243-Configurable-food-attributes.patch} (98%) rename patches/server/{0245-Max-joins-per-second.patch => 0244-Max-joins-per-second.patch} (96%) rename patches/server/{0246-Configurable-minimum-demand-for-trades.patch => 0245-Configurable-minimum-demand-for-trades.patch} (93%) rename patches/server/{0247-Lobotomize-stuck-villagers.patch => 0246-Lobotomize-stuck-villagers.patch} (97%) rename patches/server/{0248-Option-for-villager-display-trade-item.patch => 0247-Option-for-villager-display-trade-item.patch} (91%) rename patches/server/{0249-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch => 0248-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch} (93%) rename patches/server/{0250-Config-for-mob-last-hurt-by-player-time.patch => 0249-Config-for-mob-last-hurt-by-player-time.patch} (95%) rename patches/server/{0251-Anvil-repair-damage-options.patch => 0250-Anvil-repair-damage-options.patch} (97%) rename patches/server/{0252-Option-to-disable-turtle-egg-trampling-with-feather-.patch => 0251-Option-to-disable-turtle-egg-trampling-with-feather-.patch} (94%) rename patches/server/{0253-Add-toggle-for-enchant-level-clamping.patch => 0252-Add-toggle-for-enchant-level-clamping.patch} (97%) rename patches/server/{0254-Skip-junit-tests-for-purpur-commands.patch => 0253-Skip-junit-tests-for-purpur-commands.patch} (100%) rename patches/server/{0255-Implement-configurable-search-radius-for-villagers-t.patch => 0254-Implement-configurable-search-radius-for-villagers-t.patch} (92%) rename patches/server/{0256-Stonecutter-damage.patch => 0255-Stonecutter-damage.patch} (96%) rename patches/server/{0257-Configurable-damage-settings-for-magma-blocks.patch => 0256-Configurable-damage-settings-for-magma-blocks.patch} (94%) rename patches/server/{0258-Add-config-for-snow-on-blue-ice.patch => 0257-Add-config-for-snow-on-blue-ice.patch} (93%) rename patches/server/{0259-Skeletons-eat-wither-roses.patch => 0258-Skeletons-eat-wither-roses.patch} (96%) rename patches/server/{0260-Enchantment-Table-Persists-Lapis.patch => 0259-Enchantment-Table-Persists-Lapis.patch} (98%) rename patches/server/{0261-Spark-Profiler.patch => 0260-Spark-Profiler.patch} (100%) rename patches/server/{0262-Option-to-disable-kick-for-out-of-order-chat.patch => 0261-Option-to-disable-kick-for-out-of-order-chat.patch} (95%) rename patches/server/{0263-Config-for-sculk-shrieker-can_summon-state.patch => 0262-Config-for-sculk-shrieker-can_summon-state.patch} (93%) rename patches/server/{0264-Config-to-not-let-coral-die.patch => 0263-Config-to-not-let-coral-die.patch} (94%) rename patches/server/{0265-Add-local-difficulty-api.patch => 0264-Add-local-difficulty-api.patch} (91%) rename patches/server/{0266-Add-toggle-for-RNG-manipulation.patch => 0265-Add-toggle-for-RNG-manipulation.patch} (95%) rename patches/server/{0267-Send-client-custom-name-of-BE.patch => 0266-Send-client-custom-name-of-BE.patch} (100%) rename patches/server/{0268-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch => 0267-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch} (98%) rename patches/server/{0269-Allow-custom-ChatDecorators.patch => 0268-Allow-custom-ChatDecorators.patch} (100%) rename patches/server/{0270-Remove-Timings.patch => 0269-Remove-Timings.patch} (100%) rename patches/server/{0271-Remove-Mojang-Profiler.patch => 0270-Remove-Mojang-Profiler.patch} (100%) rename patches/server/{0272-Add-more-logger-output-for-invalid-movement-kicks.patch => 0271-Add-more-logger-output-for-invalid-movement-kicks.patch} (96%) rename patches/server/{0273-Add-Bee-API.patch => 0272-Add-Bee-API.patch} (100%) rename patches/server/{0274-Debug-Marker-API.patch => 0273-Debug-Marker-API.patch} (100%) rename patches/server/{0275-mob-spawning-option-to-ignore-creative-players.patch => 0274-mob-spawning-option-to-ignore-creative-players.patch} (93%) rename patches/server/{0276-Add-skeleton-bow-accuracy-option.patch => 0275-Add-skeleton-bow-accuracy-option.patch} (94%) rename patches/server/{0277-Allay-respect-item-NBT.patch => 0276-Allay-respect-item-NBT.patch} (95%) rename patches/server/{0278-Add-death-screen-API.patch => 0277-Add-death-screen-API.patch} (100%) rename patches/server/{0279-Make-pufferfish-config-relocatable.patch => 0278-Make-pufferfish-config-relocatable.patch} (96%) rename patches/server/{0280-Implement-ram-and-rambar-commands.patch => 0279-Implement-ram-and-rambar-commands.patch} (98%) rename patches/server/{0281-Add-item-packet-serialize-event.patch => 0280-Add-item-packet-serialize-event.patch} (97%) rename patches/server/{0282-Add-an-option-to-fix-MC-3304-projectile-looting.patch => 0281-Add-an-option-to-fix-MC-3304-projectile-looting.patch} (98%) rename patches/server/{0283-Configurable-block-blast-resistance.patch => 0282-Configurable-block-blast-resistance.patch} (97%) rename patches/server/{0284-Configurable-block-fall-damage-modifiers.patch => 0283-Configurable-block-fall-damage-modifiers.patch} (98%) rename patches/server/{0285-Language-API.patch => 0284-Language-API.patch} (93%) rename patches/server/{0286-Milk-Keeps-Beneficial-Effects.patch => 0285-Milk-Keeps-Beneficial-Effects.patch} (95%) rename patches/server/{0287-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch => 0286-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch} (100%) rename patches/server/{0288-Add-log-suppression-for-LibraryLoader.patch => 0287-Add-log-suppression-for-LibraryLoader.patch} (94%) rename patches/server/{0289-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0288-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (92%) rename patches/server/{0290-Fire-Immunity-API.patch => 0289-Fire-Immunity-API.patch} (97%) rename patches/server/{0291-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0290-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (93%) rename patches/server/{0292-Added-got-ram-event.patch => 0291-Added-got-ram-event.patch} (100%) rename patches/server/{0293-Log-skipped-entity-s-position.patch => 0292-Log-skipped-entity-s-position.patch} (100%) rename patches/server/{0294-End-Crystal-Cramming.patch => 0293-End-Crystal-Cramming.patch} (91%) rename patches/server/{0295-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0294-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (95%) rename patches/server/{0296-Add-attribute-clamping-and-armor-limit-config.patch => 0295-Add-attribute-clamping-and-armor-limit-config.patch} (97%) rename patches/server/{0297-Config-to-remove-explosion-radius-clamp.patch => 0296-Config-to-remove-explosion-radius-clamp.patch} (95%) rename patches/server/{0298-bonemealable-sugarcane-cactus-and-netherwart.patch => 0297-bonemealable-sugarcane-cactus-and-netherwart.patch} (98%) rename patches/server/{0299-Add-PreExplodeEvents.patch => 0298-Add-PreExplodeEvents.patch} (100%) rename patches/server/{0300-Improve-output-of-plugins-command.patch => 0299-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0301-Add-mending-multiplier.patch => 0300-Add-mending-multiplier.patch} (91%) rename patches/server/{0302-Make-GUI-Great-Again.patch => 0301-Make-GUI-Great-Again.patch} (100%) rename patches/server/{0303-Stored-Bee-API.patch => 0302-Stored-Bee-API.patch} (100%) rename patches/server/{0304-Shears-can-defuse-TNT.patch => 0303-Shears-can-defuse-TNT.patch} (95%) rename patches/server/{0305-Explorer-Map-API.patch => 0304-Explorer-Map-API.patch} (95%) rename patches/server/{0306-Option-Ocelot-Spawn-Under-Sea-Level.patch => 0305-Option-Ocelot-Spawn-Under-Sea-Level.patch} (91%) diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 20d45c675..3d5f74725 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -112,7 +112,7 @@ index f5a3203c60e555c496626c842d72e4cdc6cd9f6e..dc71cf3c66a0a4390177428688e6f4ee 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 61ce2ce797abe1c66ad428f52654cc09321ab52c..f0eaab7c4a4ee995324f07ef4fb6c039847c8243 100644 +index a2e1a7f5afbdc9c9c7fea251bf7b50ccf9c32dfc..e38a36e9af6630280958692286de94dd3df55e1c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1057,6 +1057,7 @@ public final class CraftServer implements Server { @@ -179,7 +179,7 @@ index 776b7fc26fe96b69be260bbd36efae147d988640..b1ac20e88ba0db9b6591df745ca8bc4b .withRequiredArg() diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..9fe1cdafdafc3f718ef4eb4fd4150971e2832738 +index 0000000000000000000000000000000000000000..61d193d8ddd87817bf2c560037d42366cff1eca9 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -0,0 +1,175 @@ @@ -260,8 +260,8 @@ index 0000000000000000000000000000000000000000..9fe1cdafdafc3f718ef4eb4fd4150971 + commands = new HashMap<>(); + commands.put("purpur", new PurpurCommand("purpur")); + -+ version = getInt("config-version", 32); -+ set("config-version", 32); ++ version = getInt("config-version", 33); ++ set("config-version", 33); + + readConfig(PurpurConfig.class, null); + @@ -360,10 +360,10 @@ index 0000000000000000000000000000000000000000..9fe1cdafdafc3f718ef4eb4fd4150971 +} diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..670d5e9adf4719f4e8932b37e5deb1170e8066f0 +index 0000000000000000000000000000000000000000..c47b04687a273b0fb13c50409f558ffb4dfedcaa --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -0,0 +1,93 @@ +@@ -0,0 +1,94 @@ +package org.purpurmc.purpur; + +import net.minecraft.core.registries.BuiltInRegistries; @@ -378,6 +378,7 @@ index 0000000000000000000000000000000000000000..670d5e9adf4719f4e8932b37e5deb117 +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.properties.Tilt; ++import org.purpurmc.purpur.tool.Flattenable; +import org.purpurmc.purpur.tool.Strippable; +import org.purpurmc.purpur.tool.Tillable; +import org.purpurmc.purpur.tool.Waxable; diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index 112e8d1ab..fbe3ada7a 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -5265,7 +5265,7 @@ index 26e1a9002d675245d4cf91e6682605314b078fb2..6db204dead67aac300410a6d2627cde8 event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 9fe1cdafdafc3f718ef4eb4fd4150971e2832738..0cab29584c4d5205950571660b6c271d34e403eb 100644 +index 61d193d8ddd87817bf2c560037d42366cff1eca9..8ad548fc059568d37675e017548b171d4dd1d555 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -172,4 +172,9 @@ public class PurpurConfig { @@ -5279,10 +5279,10 @@ index 9fe1cdafdafc3f718ef4eb4fd4150971e2832738..0cab29584c4d5205950571660b6c271d + } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 670d5e9adf4719f4e8932b37e5deb1170e8066f0..b59e8dcb65edc3dc6ac4d42dba2a7615286aef57 100644 +index c47b04687a273b0fb13c50409f558ffb4dfedcaa..8d6e6f25e4f451af111d79bcb08074d613095c51 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -90,4 +90,722 @@ public class PurpurWorldConfig { +@@ -91,4 +91,722 @@ public class PurpurWorldConfig { final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0009-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch index 054234612..d784dfc74 100644 --- a/patches/server/0009-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index bb3edddf4c9b2a04f6b9219be741a523e4192c0c..fb8e1f84bb57840149a95eb72f323aa729d83849 100644 +index 5d781a20c3a954458f12751c74c54874ff99bc22..1ecca8fdab2fb12390446fd8e134032f1d003f4a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -156,7 +156,7 @@ import org.bukkit.plugin.PluginManager; @@ -158,7 +158,7 @@ index 11082cf272b72123d8917baa9a0d0e5367dca66b..621fe1c08dda65934437eeab679b6e5c protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index c268b50d43a45a5f80fd776e56484d872d494013..0ae0f8cc64578d0c51fb050b8e726e483a17e50f 100644 +index 3dab78e2f39855f71bb7294521be71b3faa59b81..89e3dbfddc739f97fdb6ec9a5714530f03cc7092 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -158,6 +158,11 @@ public class Dolphin extends WaterAnimal { @@ -331,7 +331,7 @@ index 95383e246a8e1b311e4f26a66372966b6bc51de5..8b5bf8ef4481ccc829d1a39c09219415 protected void defineSynchedData() { super.defineSynchedData(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index df01b1c5a0f0ad34f0a49c2ac1d10d526b73da9b..8fb529fd818b2f2d28c6900d16f20e292a707293 100644 +index 8e747771fe023dfa4cf61e5166d017368ed746b0..9be247def3ab8c74c569f653ec971aaf1b5ed5c9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -137,6 +137,11 @@ public class Rabbit extends Animal implements VariantHolder { @@ -775,7 +775,7 @@ index 5a2eb6775ecb3b01fd136c796258395b4270f7a8..f160933af318becaf99befc0ecc0204b return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index e1cf87e13f077860e38714a962c549dcb4644e3f..83574e3a395041341a1ba3eb59d8b360c5128b4d 100644 +index 6c86411658ef0bf64cb8cf4f213112b65f2d1d90..6f7ef64612d6229179545d56093efdf58a2d7978 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -112,6 +112,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -832,7 +832,7 @@ index 34abd8093015d7cdaf2faca2396d3950ca0a361b..2f7328286399a556f5a3862d71f2c693 public boolean doHurtTarget(Entity target) { if (super.doHurtTarget(target)) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 5017a82ced2ea5b7a58fa54c5898b83c5746a2b9..85bf510413f88bec95e41c77b6ecdd60b14c7fb8 100644 +index 66b2fdcda53fdfd278994dc16be3e12041be6e99..e31094f270117dec3053620c06e409953fb6d710 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -250,6 +250,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -885,7 +885,7 @@ index 16486ece9fc415d875ff94d9b806b0b5884ebc11..48c28b5177c26c8ab07bb4960a71cddb return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index d88ad3f0513f9ab2ffc738b6389cf268f085ca6d..abf975d7f28832aba1fbb9d326f464d4ba3c63d2 100644 +index dc359bb3a45a0b648933894e18d4ee6b51e3c7bc..948d352e01d0f167c25401a0c0ce8c1ef8553a24 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -113,6 +113,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -1107,7 +1107,7 @@ index 31d204d8d81ccc30371070af3678d82dc721618d..6a6349c7002439965422aa4979682b4c protected void registerGoals() { super.registerGoals(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 3919ed8b4d91b9d58acbdd72740565352e7c52ec..1a919c29d0c601296e5c6c0bf0ebd95de55eda0a 100644 +index 8a99c74f1cb6b558421b11e8562ba6082492b2d2..92b14a6056dfbf07852fc0ee0e3eaf7b4c1657a4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -91,6 +91,11 @@ public class Ravager extends Raider { @@ -1139,7 +1139,7 @@ index 3e5548d0489b13b4a1d5c22c9d3bf19ead87928e..7d96ba5adeddf52ed712e320d5f56a37 protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index ebfe46a6063edf1dafef19ba570a1c0942dc87ee..5539cc692ea3ca89d7c1661a139ddf02c9076818 100644 +index 3b782334e9654acb6748c65970bb62626481da69..43b330e263ebe20b76629c350bf7773220f6583e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java @@ -62,6 +62,11 @@ public class Silverfish extends Monster { @@ -1488,7 +1488,7 @@ index 7b58329067d8debeb34abe801d150038a362ffed..773e9ea9036ecfe48cae481484e9f5e6 public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index d434b96b878652190fac4e2882b7b7373febbbd5..62deb4a443bf65655d2a4310c0dd9f40a02cb401 100644 +index 7e5650a56d87a48df7ee0a862b22bf015bb48b2a..33702273c7fabdb8e5bfb3d0e15530f109e318be 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -83,6 +83,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1504,10 +1504,10 @@ index d434b96b878652190fac4e2882b7b7373febbbd5..62deb4a443bf65655d2a4310c0dd9f40 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 b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d07761092 100644 +index 8d6e6f25e4f451af111d79bcb08074d613095c51..c4d7a087a63dbc596a7a6b10e0d5ad3b5dcebc0f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -113,99 +113,190 @@ public class PurpurWorldConfig { +@@ -114,99 +114,190 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; @@ -1698,7 +1698,7 @@ index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d } public boolean dolphinRidable = false; -@@ -213,80 +304,161 @@ public class PurpurWorldConfig { +@@ -214,80 +305,161 @@ public class PurpurWorldConfig { public int dolphinSpitCooldown = 20; public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; @@ -1860,7 +1860,7 @@ index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d } public boolean frogRidable = false; -@@ -304,147 +476,316 @@ public class PurpurWorldConfig { +@@ -305,147 +477,316 @@ public class PurpurWorldConfig { public boolean ghastRidableInWater = true; public boolean ghastControllable = true; public double ghastMaxY = 320D; @@ -2177,7 +2177,7 @@ index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d } public boolean phantomRidable = false; -@@ -454,6 +795,10 @@ public class PurpurWorldConfig { +@@ -455,6 +796,10 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -2188,7 +2188,7 @@ index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -462,189 +807,361 @@ public class PurpurWorldConfig { +@@ -463,189 +808,361 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); @@ -2550,7 +2550,7 @@ index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d } public boolean tadpoleRidable = false; -@@ -659,64 +1176,125 @@ public class PurpurWorldConfig { +@@ -660,64 +1177,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2676,7 +2676,7 @@ index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d } public boolean wardenRidable = false; -@@ -731,81 +1309,165 @@ public class PurpurWorldConfig { +@@ -732,81 +1310,165 @@ public class PurpurWorldConfig { public boolean witchRidable = false; public boolean witchRidableInWater = true; public boolean witchControllable = true; diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index 39c4ad892..80371d3be 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -266,7 +266,7 @@ index 519bd3e027c9a78c81d129f44affa0aabaeea220..0281285ef491ef0abc1266601420345b // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index e6a720f25266d793bec5f644dadacbf45aef23f5..6b768cff1318b4bcebeed95345f3cfdce05a2c16 100644 +index 7937023274acf3a1efdd21bbdd2f933f4399baeb..3fba9f640ef03219c89a2a405e4d5a5870e366bf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -174,8 +174,18 @@ public class PurpurConfig { @@ -289,10 +289,10 @@ index e6a720f25266d793bec5f644dadacbf45aef23f5..6b768cff1318b4bcebeed95345f3cfdc public static int barrelRows = 3; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5fd42d8604491268074d5ff516657f5d07761092..4eb4e0b7748334c5a9d693164600854b81b1ad9e 100644 +index c4d7a087a63dbc596a7a6b10e0d5ad3b5dcebc0f..310bb25b735e50d45612b213db7d8a0a203f00fc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -91,6 +91,24 @@ public class PurpurWorldConfig { +@@ -92,6 +92,24 @@ public class PurpurWorldConfig { return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0018-Player-invulnerabilities.patch b/patches/server/0018-Player-invulnerabilities.patch index 291e89d34..ecf617d33 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0018-Player-invulnerabilities.patch @@ -146,10 +146,10 @@ index 0281285ef491ef0abc1266601420345ba679a3be..4a775ffe8880c90def23e421fd3de17f // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4eb4e0b7748334c5a9d693164600854b81b1ad9e..3bd21513a0a8e984dfc8c0471c794a8e68344009 100644 +index 310bb25b735e50d45612b213db7d8a0a203f00fc..0275c6523e957c67387f8c4d13d608aa415706d6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -96,6 +96,8 @@ public class PurpurWorldConfig { +@@ -97,6 +97,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutCountAsSleeping = false; public boolean idleTimeoutUpdateTabList = false; public boolean idleTimeoutTargetPlayer = true; @@ -158,7 +158,7 @@ index 4eb4e0b7748334c5a9d693164600854b81b1ad9e..3bd21513a0a8e984dfc8c0471c794a8e private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -107,6 +109,8 @@ public class PurpurWorldConfig { +@@ -108,6 +110,8 @@ public class PurpurWorldConfig { idleTimeoutCountAsSleeping = getBoolean("gameplay-mechanics.player.idle-timeout.count-as-sleeping", idleTimeoutCountAsSleeping); idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer); diff --git a/patches/server/0021-Silk-touch-spawners.patch b/patches/server/0021-Silk-touch-spawners.patch index fb74cafcf..5f18ca094 100644 --- a/patches/server/0021-Silk-touch-spawners.patch +++ b/patches/server/0021-Silk-touch-spawners.patch @@ -89,10 +89,10 @@ index 936d844a5a246138c9f9ae4ae6e318242b8f1420..d58dc4aa02fe371deaf879df8692dbe9 int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3bd21513a0a8e984dfc8c0471c794a8e68344009..2e19608b5e8f310c55e48ea919ef4898d6d3fdf7 100644 +index 0275c6523e957c67387f8c4d13d608aa415706d6..a507c67a7e1be307693c046492eed52cc37fe320 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -113,6 +113,38 @@ public class PurpurWorldConfig { +@@ -114,6 +114,38 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0022-Add-turtle-egg-block-options.patch b/patches/server/0022-Add-turtle-egg-block-options.patch index 2771468a7..4328bc655 100644 --- a/patches/server/0022-Add-turtle-egg-block-options.patch +++ b/patches/server/0022-Add-turtle-egg-block-options.patch @@ -36,10 +36,10 @@ index 6c1a0e6f961e46a1a89850746a71e97b32514adf..1942649e868fc985a488034c411a6721 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2e19608b5e8f310c55e48ea919ef4898d6d3fdf7..e3de7a70c8ff604926d4822c647fe158a3868ab4 100644 +index a507c67a7e1be307693c046492eed52cc37fe320..c156da7f0e9fa108eb4cb08342006e25a8099f50 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -145,6 +145,15 @@ public class PurpurWorldConfig { +@@ -146,6 +146,15 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0025-Giants-AI-settings.patch b/patches/server/0025-Giants-AI-settings.patch index 827fa539c..dce800543 100644 --- a/patches/server/0025-Giants-AI-settings.patch +++ b/patches/server/0025-Giants-AI-settings.patch @@ -113,10 +113,10 @@ index db95323da1aef267aa4fbe56aaff63cb8684e15b..12e27b36b3f9949eb644175dd346c487 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e3de7a70c8ff604926d4822c647fe158a3868ab4..232f3df733b13e6dcacca867b4d0b042ae0d1935 100644 +index c156da7f0e9fa108eb4cb08342006e25a8099f50..fcd860b0ee89519f329229b591f9abeaae87eaf3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -559,6 +559,10 @@ public class PurpurWorldConfig { +@@ -560,6 +560,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -127,7 +127,7 @@ index e3de7a70c8ff604926d4822c647fe158a3868ab4..232f3df733b13e6dcacca867b4d0b042 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -575,6 +579,10 @@ public class PurpurWorldConfig { +@@ -576,6 +580,10 @@ public class PurpurWorldConfig { set("mobs.giant.attributes.max_health", oldValue); } giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth); diff --git a/patches/server/0026-Zombie-horse-naturally-spawn.patch b/patches/server/0026-Zombie-horse-naturally-spawn.patch index 4063a2b25..49ae852c0 100644 --- a/patches/server/0026-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0026-Zombie-horse-naturally-spawn.patch @@ -30,10 +30,10 @@ index 4c3b5a26a6b04afff3a707929ced3c62b5256a67..11f92c1011a1accaf485e5785d2e9ebc entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ()); this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 232f3df733b13e6dcacca867b4d0b042ae0d1935..35dc3c23cf0c73a24b91e86fe13c3b82642f9c8e 100644 +index fcd860b0ee89519f329229b591f9abeaae87eaf3..e4c11c7d296254e797ade0460e5482cd58c1c281 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1489,6 +1489,7 @@ public class PurpurWorldConfig { +@@ -1490,6 +1490,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -41,7 +41,7 @@ index 232f3df733b13e6dcacca867b4d0b042ae0d1935..35dc3c23cf0c73a24b91e86fe13c3b82 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1504,6 +1505,7 @@ public class PurpurWorldConfig { +@@ -1505,6 +1506,7 @@ public class PurpurWorldConfig { zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax); zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); diff --git a/patches/server/0027-Charged-creeper-naturally-spawn.patch b/patches/server/0027-Charged-creeper-naturally-spawn.patch index b69a48e4f..120d7ef46 100644 --- a/patches/server/0027-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0027-Charged-creeper-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 539f44793f11db1971e72e2bbeae8d2d9d9b6798..4f374a2b1aab20fe2523df716a9d622c28749b7a 100644 +index e31094f270117dec3053620c06e409953fb6d710..a1e3f29ce49dc41ad70f74ee224250fe9ebea175 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -255,6 +255,14 @@ public class Creeper extends Monster implements PowerableMob { @@ -24,10 +24,10 @@ index 539f44793f11db1971e72e2bbeae8d2d9d9b6798..4f374a2b1aab20fe2523df716a9d622c protected SoundEvent getHurtSound(DamageSource source) { return SoundEvents.CREEPER_HURT; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 35dc3c23cf0c73a24b91e86fe13c3b82642f9c8e..0e234ab2309cd75631c75626a3984d7912acc007 100644 +index e4c11c7d296254e797ade0460e5482cd58c1c281..2c56d70ce42816741162abe097e0b05ece3eb980 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -350,6 +350,7 @@ public class PurpurWorldConfig { +@@ -351,6 +351,7 @@ public class PurpurWorldConfig { public boolean creeperRidableInWater = true; public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; @@ -35,7 +35,7 @@ index 35dc3c23cf0c73a24b91e86fe13c3b82642f9c8e..0e234ab2309cd75631c75626a3984d79 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -360,6 +361,7 @@ public class PurpurWorldConfig { +@@ -361,6 +362,7 @@ public class PurpurWorldConfig { set("mobs.creeper.attributes.max_health", oldValue); } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); diff --git a/patches/server/0028-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0028-Rabbit-naturally-spawn-toast-and-killer.patch index 8455a6080..15221d9a4 100644 --- a/patches/server/0028-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0028-Rabbit-naturally-spawn-toast-and-killer.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 8fb529fd818b2f2d28c6900d16f20e292a707293..c64673adcf168b413ab3b9b796f5179081058e6d 100644 +index 9be247def3ab8c74c569f653ec971aaf1b5ed5c9..6d5213d26dbd9d36c5cbe6056091d9e5c85e23c4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -468,10 +468,23 @@ public class Rabbit extends Animal implements VariantHolder { @@ -33,10 +33,10 @@ index 8fb529fd818b2f2d28c6900d16f20e292a707293..c64673adcf168b413ab3b9b796f51790 int i = world.getRandom().nextInt(100); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0e234ab2309cd75631c75626a3984d7912acc007..4067b0f73828c39d467b8e15464c6a56ac83050d 100644 +index 2c56d70ce42816741162abe097e0b05ece3eb980..15d5545e2056fef3f7d924a2e4c1e32aae0b41d2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -993,6 +993,8 @@ public class PurpurWorldConfig { +@@ -994,6 +994,8 @@ public class PurpurWorldConfig { public boolean rabbitRidableInWater = true; public boolean rabbitControllable = true; public double rabbitMaxHealth = 3.0D; @@ -45,7 +45,7 @@ index 0e234ab2309cd75631c75626a3984d7912acc007..4067b0f73828c39d467b8e15464c6a56 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1003,6 +1005,8 @@ public class PurpurWorldConfig { +@@ -1004,6 +1006,8 @@ public class PurpurWorldConfig { set("mobs.rabbit.attributes.max_health", oldValue); } rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); diff --git a/patches/server/0030-Tulips-change-fox-type.patch b/patches/server/0030-Tulips-change-fox-type.patch index b1e9bd3df..8520ab372 100644 --- a/patches/server/0030-Tulips-change-fox-type.patch +++ b/patches/server/0030-Tulips-change-fox-type.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Tulips change fox type diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 451abd7a6d7fb0926dcebdc4504b1c9c298766e3..7e191d8bb56d0b6591b3a60dfe07004d025eedfa 100644 +index d6370eb9af9842710052e0e497af52122f265488..cedc4dac776dde310dbf1a22272ce54b14ca2c9e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -35,6 +35,7 @@ import net.minecraft.util.RandomSource; @@ -75,10 +75,10 @@ index 451abd7a6d7fb0926dcebdc4504b1c9c298766e3..7e191d8bb56d0b6591b3a60dfe07004d // Paper start - Cancellable death event protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4067b0f73828c39d467b8e15464c6a56ac83050d..09e04c513c853a0b720ece509c817fceafdc5408 100644 +index 15d5545e2056fef3f7d924a2e4c1e32aae0b41d2..3a6833c07ca30690a010dcd57883f1345a18ea13 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -514,6 +514,7 @@ public class PurpurWorldConfig { +@@ -515,6 +515,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = true; public boolean foxControllable = true; public double foxMaxHealth = 10.0D; @@ -86,7 +86,7 @@ index 4067b0f73828c39d467b8e15464c6a56ac83050d..09e04c513c853a0b720ece509c817fce private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -524,6 +525,7 @@ public class PurpurWorldConfig { +@@ -525,6 +526,7 @@ public class PurpurWorldConfig { set("mobs.fox.attributes.max_health", oldValue); } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); diff --git a/patches/server/0031-Breedable-Polar-Bears.patch b/patches/server/0031-Breedable-Polar-Bears.patch index bb04b2195..a55055f9d 100644 --- a/patches/server/0031-Breedable-Polar-Bears.patch +++ b/patches/server/0031-Breedable-Polar-Bears.patch @@ -59,10 +59,10 @@ index 48ec595e76c09cf719477a543364f1206664afa5..b2cf680e377f849a7cc17136ebca3cf3 this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D)); this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 09e04c513c853a0b720ece509c817fceafdc5408..3251a21e67c02a56644e45b7efb3cd2f45add958 100644 +index 3a6833c07ca30690a010dcd57883f1345a18ea13..2d215c3a6a810a6798c0804aae41e138f0b008bb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -965,6 +965,8 @@ public class PurpurWorldConfig { +@@ -966,6 +966,8 @@ public class PurpurWorldConfig { public boolean polarBearRidableInWater = true; public boolean polarBearControllable = true; public double polarBearMaxHealth = 30.0D; @@ -71,7 +71,7 @@ index 09e04c513c853a0b720ece509c817fceafdc5408..3251a21e67c02a56644e45b7efb3cd2f private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -975,6 +977,9 @@ public class PurpurWorldConfig { +@@ -976,6 +978,9 @@ public class PurpurWorldConfig { set("mobs.polar_bear.attributes.max_health", oldValue); } polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth); diff --git a/patches/server/0032-Chickens-can-retaliate.patch b/patches/server/0032-Chickens-can-retaliate.patch index de2dac335..6af85058d 100644 --- a/patches/server/0032-Chickens-can-retaliate.patch +++ b/patches/server/0032-Chickens-can-retaliate.patch @@ -50,10 +50,10 @@ index ea404a84a43a02a5614d5142bb78a586edfc69f6..0f49705e3c7adf033cee9d0746319885 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3251a21e67c02a56644e45b7efb3cd2f45add958..250d562a63dcf48f110513e4028616d0ce918fb1 100644 +index 2d215c3a6a810a6798c0804aae41e138f0b008bb..13d7639474901ba3aaf41d68f7108089e8b9a595 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -304,6 +304,7 @@ public class PurpurWorldConfig { +@@ -305,6 +305,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; @@ -61,7 +61,7 @@ index 3251a21e67c02a56644e45b7efb3cd2f45add958..250d562a63dcf48f110513e4028616d0 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -314,6 +315,7 @@ public class PurpurWorldConfig { +@@ -315,6 +316,7 @@ public class PurpurWorldConfig { set("mobs.chicken.attributes.max_health", oldValue); } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); diff --git a/patches/server/0033-Add-option-to-set-armorstand-step-height.patch b/patches/server/0033-Add-option-to-set-armorstand-step-height.patch index c88dc6878..f36d07e4a 100644 --- a/patches/server/0033-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0033-Add-option-to-set-armorstand-step-height.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to set armorstand step height diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index edada4644b22c00b62402558712f84ec7503548d..1024334860d70ab10b4774daed003a4c0a9db1eb 100644 +index 1ecca8fdab2fb12390446fd8e134032f1d003f4a..391d0782245f490152776e3c377a8040ad254322 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -334,7 +334,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -30,10 +30,10 @@ index 5c6e060a54ffb13c37ff5711992e964bdd59643d..5524a69952130ec38e151509ba773345 if (!this.canTick) { if (this.noTickPoseDirty) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 250d562a63dcf48f110513e4028616d0ce918fb1..f97cc4e1afbf0ddd471cc8836be8e9bcaf45295c 100644 +index 13d7639474901ba3aaf41d68f7108089e8b9a595..40018538f244090fe4f57682c08b583959df987a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -91,6 +91,11 @@ public class PurpurWorldConfig { +@@ -92,6 +92,11 @@ public class PurpurWorldConfig { return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0034-Cat-spawning-options.patch b/patches/server/0034-Cat-spawning-options.patch index 7874f08ad..c23ff85bc 100644 --- a/patches/server/0034-Cat-spawning-options.patch +++ b/patches/server/0034-Cat-spawning-options.patch @@ -51,10 +51,10 @@ index 5f407535298a31a34cfe114dd863fd6a9b977707..29c7e33fe961020e5a0007287fe9b663 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f97cc4e1afbf0ddd471cc8836be8e9bcaf45295c..371d69ab5b9b1c0265f06a65fac18725d684c15b 100644 +index 40018538f244090fe4f57682c08b583959df987a..03d9b8907e491ee95c2ac599541b2d0b06989521 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -277,6 +277,9 @@ public class PurpurWorldConfig { +@@ -278,6 +278,9 @@ public class PurpurWorldConfig { public boolean catRidableInWater = true; public boolean catControllable = true; public double catMaxHealth = 10.0D; @@ -64,7 +64,7 @@ index f97cc4e1afbf0ddd471cc8836be8e9bcaf45295c..371d69ab5b9b1c0265f06a65fac18725 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -287,6 +290,9 @@ public class PurpurWorldConfig { +@@ -288,6 +291,9 @@ public class PurpurWorldConfig { set("mobs.cat.attributes.max_health", oldValue); } catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth); diff --git a/patches/server/0035-Cows-eat-mushrooms.patch b/patches/server/0035-Cows-eat-mushrooms.patch index 0b0b4e9f8..fa658e770 100644 --- a/patches/server/0035-Cows-eat-mushrooms.patch +++ b/patches/server/0035-Cows-eat-mushrooms.patch @@ -114,10 +114,10 @@ index 621fe1c08dda65934437eeab679b6e5cd2d11d3d..28c7e240b7dd1957ccb6a45608b1d052 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 371d69ab5b9b1c0265f06a65fac18725d684c15b..a6133edfcffb94a6bbc1f4133fbadd404d64acd9 100644 +index 03d9b8907e491ee95c2ac599541b2d0b06989521..d669e392cb2d2dab552c5ed5b35df1e90cc91f33 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -347,6 +347,7 @@ public class PurpurWorldConfig { +@@ -348,6 +348,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = true; public boolean cowControllable = true; public double cowMaxHealth = 10.0D; @@ -125,7 +125,7 @@ index 371d69ab5b9b1c0265f06a65fac18725d684c15b..a6133edfcffb94a6bbc1f4133fbadd40 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -357,6 +358,7 @@ public class PurpurWorldConfig { +@@ -358,6 +359,7 @@ public class PurpurWorldConfig { set("mobs.cow.attributes.max_health", oldValue); } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); diff --git a/patches/server/0037-Pigs-give-saddle-back.patch b/patches/server/0037-Pigs-give-saddle-back.patch index 19efadd8d..91cbb47fe 100644 --- a/patches/server/0037-Pigs-give-saddle-back.patch +++ b/patches/server/0037-Pigs-give-saddle-back.patch @@ -27,10 +27,10 @@ index a22e5b6c13b48b46d16a859531d4231376bc1bfc..ff98a81f7104bbaf67ed85b8ad0946ed if (!this.level().isClientSide) { player.startRiding(this); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a6133edfcffb94a6bbc1f4133fbadd404d64acd9..aaf0e4df3757dca3ec8ed5df2d972e842e4c2124 100644 +index d669e392cb2d2dab552c5ed5b35df1e90cc91f33..9060e81e082c402d0792430ce84b5010d2326d45 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -916,6 +916,7 @@ public class PurpurWorldConfig { +@@ -917,6 +917,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public boolean pigControllable = true; public double pigMaxHealth = 10.0D; @@ -38,7 +38,7 @@ index a6133edfcffb94a6bbc1f4133fbadd404d64acd9..aaf0e4df3757dca3ec8ed5df2d972e84 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -926,6 +927,7 @@ public class PurpurWorldConfig { +@@ -927,6 +928,7 @@ public class PurpurWorldConfig { set("mobs.pig.attributes.max_health", oldValue); } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); diff --git a/patches/server/0038-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0038-Snowman-drop-and-put-back-pumpkin.patch index ff6e1c922..e30c34ebc 100644 --- a/patches/server/0038-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0038-Snowman-drop-and-put-back-pumpkin.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Snowman drop and put back pumpkin diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index a8b411cc3dd1f61b4f949862a077e87e26e424de..2a5ffaf5614e19305f4e08e15752364919e68a49 100644 +index 3ffd9dd16c80399842ba138ed60abd66cd312dcb..bd9dd01e9140c2ad0ab9859b9a455f73ab04a253 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -191,6 +191,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -32,10 +32,10 @@ index a8b411cc3dd1f61b4f949862a077e87e26e424de..2a5ffaf5614e19305f4e08e157523649 this.forceDrops = false; // CraftBukkit } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aaf0e4df3757dca3ec8ed5df2d972e842e4c2124..ba2100ea68c3dd784c39ceb6d9700baaaf08980e 100644 +index 9060e81e082c402d0792430ce84b5010d2326d45..a25beed0e8bcabf33855bb374091bc64ef6c6a4f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1179,6 +1179,8 @@ public class PurpurWorldConfig { +@@ -1180,6 +1180,8 @@ public class PurpurWorldConfig { public boolean snowGolemControllable = true; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index aaf0e4df3757dca3ec8ed5df2d972e842e4c2124..ba2100ea68c3dd784c39ceb6d9700baa private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1190,6 +1192,8 @@ public class PurpurWorldConfig { +@@ -1191,6 +1193,8 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); diff --git a/patches/server/0039-Ender-dragon-always-drop-full-exp.patch b/patches/server/0039-Ender-dragon-always-drop-full-exp.patch index 0456ad903..d0626067b 100644 --- a/patches/server/0039-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0039-Ender-dragon-always-drop-full-exp.patch @@ -18,10 +18,10 @@ index f160933af318becaf99befc0ecc0204bc48ed4a9..81cf89bc57af0f43d05ba93256255155 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ba2100ea68c3dd784c39ceb6d9700baaaf08980e..155a0c8c438692d76cf91663638fb59000959d54 100644 +index a25beed0e8bcabf33855bb374091bc64ef6c6a4f..c3398ebad8acd6c9146e04591bc00c89b5e4e4b0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -460,6 +460,7 @@ public class PurpurWorldConfig { +@@ -461,6 +461,7 @@ public class PurpurWorldConfig { public boolean enderDragonControllable = true; public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index ba2100ea68c3dd784c39ceb6d9700baaaf08980e..155a0c8c438692d76cf91663638fb590 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -475,6 +476,7 @@ public class PurpurWorldConfig { +@@ -476,6 +477,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); diff --git a/patches/server/0040-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0040-Allow-soil-to-moisten-from-water-directly-under-it.patch index 99d1f329f..47d6d30a4 100644 --- a/patches/server/0040-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0040-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow soil to moisten from water directly under it 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 552d8c8f3f56bfccd25d11488ed7ec1644a92f47..d446b440e2bc5b73362fc3d30a10d2e52fde68e1 100644 +index 5946f06f63b5694034bd027984a4925b0831d439..1776906e886edd511bfbe96b8a345438a3cd66f8 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -162,7 +162,7 @@ public class FarmBlock extends Block { @@ -18,10 +18,10 @@ index 552d8c8f3f56bfccd25d11488ed7ec1644a92f47..d446b440e2bc5b73362fc3d30a10d2e5 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 155a0c8c438692d76cf91663638fb59000959d54..706b4256c81adb06284d25433ac39d54625bb14c 100644 +index c3398ebad8acd6c9146e04591bc00c89b5e4e4b0..9d16de67399614069a297b8b08281d41d7da5983 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -150,6 +150,11 @@ public class PurpurWorldConfig { +@@ -151,6 +151,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0041-Minecart-settings-and-WASD-controls.patch b/patches/server/0041-Minecart-settings-and-WASD-controls.patch index db3a73c69..3357cbf6c 100644 --- a/patches/server/0041-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0041-Minecart-settings-and-WASD-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6838e85030667776c6b0534d0e92c9fbd68840da..fa7c220057be4d233752d9022a934d03e5f3df59 100644 +index 3274977a1d7442626329cfd31c720af13ec00866..569219437396a37cdbdae5a4a6d4b1fc551986d7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1112,6 +1112,7 @@ public class ServerPlayer extends Player { @@ -148,10 +148,10 @@ index de4c1e4701236e7d5ec77339c51ad6a9d8288bb6..5ac102afde62c08f36886b466010ccfe protected ResourceLocation drops; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 706b4256c81adb06284d25433ac39d54625bb14c..1011506a3008b4d01c5141d434235e2e0643bdb9 100644 +index 9d16de67399614069a297b8b08281d41d7da5983..0765b0ab980e3786ec38bc6da369510e444dfb30 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -96,6 +96,68 @@ public class PurpurWorldConfig { +@@ -97,6 +97,68 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0042-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0042-Disable-loot-drops-on-death-by-cramming.patch index ae73dc236..9bf35265c 100644 --- a/patches/server/0042-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0042-Disable-loot-drops-on-death-by-cramming.patch @@ -25,10 +25,10 @@ index 92745269118d8a0cb91cbbebdd7700f7737d2b9a..b3699225e2dc77c6d201e361c8d44739 // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops, () -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1011506a3008b4d01c5141d434235e2e0643bdb9..490ea3f3d8d3edc7b3ece8b3de47176294a42eb9 100644 +index 0765b0ab980e3786ec38bc6da369510e444dfb30..0c4d689a98f7dbc38314a36f83258dc6e00c068b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -96,6 +96,11 @@ public class PurpurWorldConfig { +@@ -97,6 +97,11 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0043-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0043-Option-to-toggle-milk-curing-bad-omen.patch index b3c29ef76..1e8b45a44 100644 --- a/patches/server/0043-Option-to-toggle-milk-curing-bad-omen.patch +++ b/patches/server/0043-Option-to-toggle-milk-curing-bad-omen.patch @@ -28,10 +28,10 @@ index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 490ea3f3d8d3edc7b3ece8b3de47176294a42eb9..eb6e78e66c954e30c44083f9d2528e0627e6a269 100644 +index 0c4d689a98f7dbc38314a36f83258dc6e00c068b..c246536e81660666588b02d9f90bdfab73048c1e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,8 +97,10 @@ public class PurpurWorldConfig { +@@ -98,8 +98,10 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/server/0048-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch b/patches/server/0048-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch index fb0a413ad..d0a47c78d 100644 --- a/patches/server/0048-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch +++ b/patches/server/0048-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch @@ -18,10 +18,10 @@ index 454dd67920826b8b62c2654abfd43fc08c2648e4..0ea182962d6647629fc98c9e7406f7b7 if (!this.level().isClientSide && this.pickup == AbstractArrow.Pickup.ALLOWED) { this.spawnAtLocation(this.getPickupItem(), 0.1F); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eb6e78e66c954e30c44083f9d2528e0627e6a269..0dfccdd6482721fb71aec0e5d86590478b67183a 100644 +index c246536e81660666588b02d9f90bdfab73048c1e..7bf88a3f83e7796fe2875f9f11880549056c4650 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -98,9 +98,11 @@ public class PurpurWorldConfig { +@@ -99,9 +99,11 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; diff --git a/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch index 84a3e2205..59858ebd0 100644 --- a/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add enderman and creeper griefing controls diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 9042337dcd8279ccaa416d3cd440c0f0d5a85d40..0ef939a6bc9c0c491c0b71799ea583cb76c6d2fb 100644 +index a1e3f29ce49dc41ad70f74ee224250fe9ebea175..5bfeb39a23a72f57523a3c2db1d79c7aef70eb02 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -362,7 +362,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -18,7 +18,7 @@ index 9042337dcd8279ccaa416d3cd440c0f0d5a85d40..0ef939a6bc9c0c491c0b71799ea583cb this.spawnLingeringCloud(); // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index abf975d7f28832aba1fbb9d326f464d4ba3c63d2..41eafe7e8e2b73d97152376ce482c39d747c97f3 100644 +index 948d352e01d0f167c25401a0c0ce8c1ef8553a24..74d1a0e8de36aaf11e844cc4f40e4c469d6269b4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -540,6 +540,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -38,10 +38,10 @@ index abf975d7f28832aba1fbb9d326f464d4ba3c63d2..41eafe7e8e2b73d97152376ce482c39d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0dfccdd6482721fb71aec0e5d86590478b67183a..b7974530b1ffe0b1a471bb3b79caa31f645aa5ba 100644 +index 7bf88a3f83e7796fe2875f9f11880549056c4650..b4c3fa2fe0a237901a6841dda0bf8b09a982f402 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -442,6 +442,7 @@ public class PurpurWorldConfig { +@@ -443,6 +443,7 @@ public class PurpurWorldConfig { public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index 0dfccdd6482721fb71aec0e5d86590478b67183a..b7974530b1ffe0b1a471bb3b79caa31f private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -453,6 +454,7 @@ public class PurpurWorldConfig { +@@ -454,6 +455,7 @@ public class PurpurWorldConfig { } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); @@ -57,7 +57,7 @@ index 0dfccdd6482721fb71aec0e5d86590478b67183a..b7974530b1ffe0b1a471bb3b79caa31f } public boolean dolphinRidable = false; -@@ -559,6 +561,7 @@ public class PurpurWorldConfig { +@@ -560,6 +562,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = true; public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; @@ -65,7 +65,7 @@ index 0dfccdd6482721fb71aec0e5d86590478b67183a..b7974530b1ffe0b1a471bb3b79caa31f private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -569,6 +572,7 @@ public class PurpurWorldConfig { +@@ -570,6 +573,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); diff --git a/patches/server/0050-Villagers-follow-emerald-blocks.patch b/patches/server/0050-Villagers-follow-emerald-blocks.patch index b837d2412..87e9aa40a 100644 --- a/patches/server/0050-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0050-Villagers-follow-emerald-blocks.patch @@ -42,7 +42,7 @@ index 773e9ea9036ecfe48cae481484e9f5e64b6cc29b..91a44381a822ce4dc543401a930d32c8 // Purpur start diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 62deb4a443bf65655d2a4310c0dd9f40a02cb401..1c7359431533716b2681176b3b59b5028aa043c2 100644 +index 33702273c7fabdb8e5bfb3d0e15530f109e318be..509bde6c02d9e74158da7a134fbdda1603cb3ec0 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -108,6 +108,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -54,10 +54,10 @@ index 62deb4a443bf65655d2a4310c0dd9f40a02cb401..1c7359431533716b2681176b3b59b502 this.goalSelector.addGoal(8, new WaterAvoidingRandomStrollGoal(this, 0.35D)); this.goalSelector.addGoal(9, new InteractGoal(this, Player.class, 3.0F, 1.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b7974530b1ffe0b1a471bb3b79caa31f645aa5ba..0d0001363c80ba962acf5927a831debcd77e9b1e 100644 +index b4c3fa2fe0a237901a6841dda0bf8b09a982f402..9b87d63020eed6d9bafbde2c090155df974c52e7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1440,6 +1440,7 @@ public class PurpurWorldConfig { +@@ -1441,6 +1441,7 @@ public class PurpurWorldConfig { public boolean villagerRidableInWater = true; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; @@ -65,7 +65,7 @@ index b7974530b1ffe0b1a471bb3b79caa31f645aa5ba..0d0001363c80ba962acf5927a831debc private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1450,6 +1451,7 @@ public class PurpurWorldConfig { +@@ -1451,6 +1452,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -73,7 +73,7 @@ index b7974530b1ffe0b1a471bb3b79caa31f645aa5ba..0d0001363c80ba962acf5927a831debc } public boolean vindicatorRidable = false; -@@ -1472,6 +1474,7 @@ public class PurpurWorldConfig { +@@ -1473,6 +1475,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = true; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index b7974530b1ffe0b1a471bb3b79caa31f645aa5ba..0d0001363c80ba962acf5927a831debc private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1482,6 +1485,7 @@ public class PurpurWorldConfig { +@@ -1483,6 +1486,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); diff --git a/patches/server/0051-Allow-leashing-villagers.patch b/patches/server/0051-Allow-leashing-villagers.patch index bd4ebfd89..6e7a9b3ef 100644 --- a/patches/server/0051-Allow-leashing-villagers.patch +++ b/patches/server/0051-Allow-leashing-villagers.patch @@ -33,7 +33,7 @@ index 91a44381a822ce4dc543401a930d32c8d4a5a7eb..50925ab7d719ae3323d7456df03a3d2a public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 1c7359431533716b2681176b3b59b5028aa043c2..41ddf073ecb8ea97cca8021390500d65866488a5 100644 +index 509bde6c02d9e74158da7a134fbdda1603cb3ec0..7413f90dfcb68476f7d514607f38a8965dfa6fd0 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -88,6 +88,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -49,10 +49,10 @@ index 1c7359431533716b2681176b3b59b5028aa043c2..41ddf073ecb8ea97cca8021390500d65 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 0d0001363c80ba962acf5927a831debcd77e9b1e..c17b26f747d573d3de1a984faafbab5d41c72342 100644 +index 9b87d63020eed6d9bafbde2c090155df974c52e7..8e66a2111523f7bf65b5b7df4035191a76371482 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1441,6 +1441,7 @@ public class PurpurWorldConfig { +@@ -1442,6 +1442,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index 0d0001363c80ba962acf5927a831debcd77e9b1e..c17b26f747d573d3de1a984faafbab5d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1452,6 +1453,7 @@ public class PurpurWorldConfig { +@@ -1453,6 +1454,7 @@ public class PurpurWorldConfig { } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index 0d0001363c80ba962acf5927a831debcd77e9b1e..c17b26f747d573d3de1a984faafbab5d } public boolean vindicatorRidable = false; -@@ -1475,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1476,6 +1478,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index 0d0001363c80ba962acf5927a831debcd77e9b1e..c17b26f747d573d3de1a984faafbab5d private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1486,6 +1489,7 @@ public class PurpurWorldConfig { +@@ -1487,6 +1490,7 @@ public class PurpurWorldConfig { } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); diff --git a/patches/server/0052-Implement-infinite-liquids.patch b/patches/server/0052-Implement-infinite-liquids.patch index f86f886b5..9183ddd02 100644 --- a/patches/server/0052-Implement-infinite-liquids.patch +++ b/patches/server/0052-Implement-infinite-liquids.patch @@ -67,10 +67,10 @@ index 82e85fbbd45244d02df90fa00c9046e7f51275a2..ec6c63075306f9e5389e83641d2c8a82 @Override protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c17b26f747d573d3de1a984faafbab5d41c72342..01c494bdbc408d4335c6f3d60c8000448f12fd22 100644 +index 8e66a2111523f7bf65b5b7df4035191a76371482..97e969de5559ed5c770512dc41218526cd5e8942 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -226,6 +226,11 @@ public class PurpurWorldConfig { +@@ -227,6 +227,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } @@ -82,7 +82,7 @@ index c17b26f747d573d3de1a984faafbab5d41c72342..01c494bdbc408d4335c6f3d60c800044 public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; -@@ -235,6 +240,11 @@ public class PurpurWorldConfig { +@@ -236,6 +241,11 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0053-Make-lava-flow-speed-configurable.patch b/patches/server/0053-Make-lava-flow-speed-configurable.patch index f9c32ee3e..4b7a28d69 100644 --- a/patches/server/0053-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0053-Make-lava-flow-speed-configurable.patch @@ -18,10 +18,10 @@ index 3706ebc551413401b0e6a9a0b1c2e3257d1337c1..b77cdbd8a7395e8442081c6a2b14695d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 01c494bdbc408d4335c6f3d60c8000448f12fd22..80795ffe26722995b232f91df7876ffe2d2b870c 100644 +index 97e969de5559ed5c770512dc41218526cd5e8942..98d193437e3122682b80b80d3ead65100fc11a63 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -227,8 +227,12 @@ public class PurpurWorldConfig { +@@ -228,8 +228,12 @@ public class PurpurWorldConfig { } public int lavaInfiniteRequiredSources = 2; diff --git a/patches/server/0054-Add-player-death-exp-control-options.patch b/patches/server/0054-Add-player-death-exp-control-options.patch index 23e1d6ad4..ade96e425 100644 --- a/patches/server/0054-Add-player-death-exp-control-options.patch +++ b/patches/server/0054-Add-player-death-exp-control-options.patch @@ -32,10 +32,10 @@ index 7b39cb5346925c14f3f144d622ca7e5855420aa6..fa2a0cc24bbe31abd49ce0f3f41bab2a return 0; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 80795ffe26722995b232f91df7876ffe2d2b870c..b4eb7a279b8e70b7601c0101d3f7c47185fa2deb 100644 +index 98d193437e3122682b80b80d3ead65100fc11a63..7f2889cc40c13af4a52ab92a53edb92087e0f274 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -174,6 +174,8 @@ public class PurpurWorldConfig { +@@ -175,6 +175,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutTargetPlayer = true; public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; @@ -44,7 +44,7 @@ index 80795ffe26722995b232f91df7876ffe2d2b870c..b4eb7a279b8e70b7601c0101d3f7c471 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -187,6 +189,8 @@ public class PurpurWorldConfig { +@@ -188,6 +190,8 @@ public class PurpurWorldConfig { idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer); playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks); playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); diff --git a/patches/server/0055-Configurable-void-damage-height-and-damage.patch b/patches/server/0055-Configurable-void-damage-height-and-damage.patch index 182f0533d..fae48514d 100644 --- a/patches/server/0055-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0055-Configurable-void-damage-height-and-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable void damage height and damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a916cc58909f3962ce2f17fc6655309a427ee064..cbbe526889745b90f6a156d3c653300cc716cd9e 100644 +index 391d0782245f490152776e3c377a8040ad254322..8c90215438c74011c824d0d368c2517576e59451 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -913,7 +913,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -31,10 +31,10 @@ index b3699225e2dc77c6d201e361c8d447395c3f3e62..b8e6d0bd2ba18d7e0bf7cd78db8f98d4 protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b4eb7a279b8e70b7601c0101d3f7c47185fa2deb..f1e1f46d2e2847641bbb812376ad3167366f4ba3 100644 +index 7f2889cc40c13af4a52ab92a53edb92087e0f274..bd29ce4d46cedb525b280b1e41cb9ffc2f8f4ccf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,10 +99,14 @@ public class PurpurWorldConfig { +@@ -100,10 +100,14 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; diff --git a/patches/server/0057-Dispenser-curse-of-binding-protection.patch b/patches/server/0057-Dispenser-curse-of-binding-protection.patch index e11f5fbd5..a0b61c807 100644 --- a/patches/server/0057-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0057-Dispenser-curse-of-binding-protection.patch @@ -43,10 +43,10 @@ index d7a0cbde8f8c99276307502674c71463fbe7e89c..3500c56cb85d8c76b2acd77976d374ea // CraftBukkit start Level world = pointer.getLevel(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f1e1f46d2e2847641bbb812376ad3167366f4ba3..8fe849d1b8f8bcad0c2f714f8f5552bf772225ab 100644 +index bd29ce4d46cedb525b280b1e41cb9ffc2f8f4ccf..abc0152ce16c6a085013908cca2b13250fe29316 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -229,6 +229,11 @@ public class PurpurWorldConfig { +@@ -230,6 +230,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0058-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0058-Add-option-for-boats-to-eject-players-on-land.patch index 558ce5a2a..709e19db9 100644 --- a/patches/server/0058-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0058-Add-option-for-boats-to-eject-players-on-land.patch @@ -17,10 +17,10 @@ index 35aeba4e8430e6419caa9db4a0b931a994228618..cb8443c9bc902741dfe6746baca91292 } else { return Boat.Status.IN_AIR; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8fe849d1b8f8bcad0c2f714f8f5552bf772225ab..b60c9270b18b11d159a6432ed10617ddbf5d4c6b 100644 +index abc0152ce16c6a085013908cca2b13250fe29316..2cef9e22347024dba59f7ca580d2234fb570879f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -96,12 +96,14 @@ public class PurpurWorldConfig { +@@ -97,12 +97,14 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0059-Mending-mends-most-damages-equipment-first.patch b/patches/server/0059-Mending-mends-most-damages-equipment-first.patch index 740d57fdd..6bc5dd145 100644 --- a/patches/server/0059-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0059-Mending-mends-most-damages-equipment-first.patch @@ -73,10 +73,10 @@ index ecf640b00007a386290f8dfe9935a8aa610079fd..2048899f8e4c8211e8dde0d11148d647 public static Map.Entry getRandomItemWith(Enchantment enchantment, LivingEntity entity) { return getRandomItemWith(enchantment, entity, (stack) -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b60c9270b18b11d159a6432ed10617ddbf5d4c6b..cc673b3daa8a5edd24cdf05d21c4dc2c6fbb7a42 100644 +index 2cef9e22347024dba59f7ca580d2234fb570879f..4de9adf44e9f509f5056fbd96a4cbd69816442e3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -96,6 +96,7 @@ public class PurpurWorldConfig { +@@ -97,6 +97,7 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } @@ -84,7 +84,7 @@ index b60c9270b18b11d159a6432ed10617ddbf5d4c6b..cc673b3daa8a5edd24cdf05d21c4dc2c public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; -@@ -103,6 +104,7 @@ public class PurpurWorldConfig { +@@ -104,6 +105,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; private void miscGameplayMechanicsSettings() { diff --git a/patches/server/0061-Implement-elytra-settings.patch b/patches/server/0061-Implement-elytra-settings.patch index 02255af87..ab9e2db4a 100644 --- a/patches/server/0061-Implement-elytra-settings.patch +++ b/patches/server/0061-Implement-elytra-settings.patch @@ -99,10 +99,10 @@ index 8078f127ff4b6e0aafb5804b9c02e237f79445b5..06c2f30b77a2c8aecc65e0c305f643d5 entityhuman.startAutoSpinAttack(20); if (entityhuman.onGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cc673b3daa8a5edd24cdf05d21c4dc2c6fbb7a42..11cb390065f9165d6a786cd9004f194e077a5e3b 100644 +index 4de9adf44e9f509f5056fbd96a4cbd69816442e3..d564777adf856267d161e0536ba9791f59eeb4ae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -113,6 +113,19 @@ public class PurpurWorldConfig { +@@ -114,6 +114,19 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0062-Item-entity-immunities.patch b/patches/server/0062-Item-entity-immunities.patch index 2a4ad21d8..d0c067540 100644 --- a/patches/server/0062-Item-entity-immunities.patch +++ b/patches/server/0062-Item-entity-immunities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 37c10d6a392d0400a7024bdd5214eb5e83aa3e82..a0fcbb72947ddb5526da4a4c354cd4c6ee65184c 100644 +index 8ab959dd588b5154b63e133b2e937fa2d0ab8e52..fb11b020d52988360562db23d8568e5ef37e21c8 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -70,7 +70,7 @@ public class ServerEntity { @@ -115,10 +115,10 @@ index a925b5c490e7129b27370aa57b5fad1cf05530c6..09001578b88658c44d0661d340a0ee0f + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 11cb390065f9165d6a786cd9004f194e077a5e3b..cba6f63fa7f5e08a82e05f29092d015f5ad68366 100644 +index d564777adf856267d161e0536ba9791f59eeb4ae..6ee0cca5763a9edecc9c5f8463c7eae2a199d23a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -126,6 +126,49 @@ public class PurpurWorldConfig { +@@ -127,6 +127,49 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0066-Configurable-jockey-options.patch b/patches/server/0066-Configurable-jockey-options.patch index 37fd2309c..dc462b375 100644 --- a/patches/server/0066-Configurable-jockey-options.patch +++ b/patches/server/0066-Configurable-jockey-options.patch @@ -167,10 +167,10 @@ index 8f22bfcde4bb8ad73794f2b98b156113e5a2a6c9..3d61b27c23d90e87fdfc8c170eafc116 public void setPersistentAngerTarget(@Nullable UUID angryAt) { this.persistentAngerTarget = angryAt; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb61055821eac 100644 +index 6ee0cca5763a9edecc9c5f8463c7eae2a199d23a..d0821b84e9a25ea2e238be5f6624b2cabce0914a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -593,6 +593,9 @@ public class PurpurWorldConfig { +@@ -594,6 +594,9 @@ public class PurpurWorldConfig { public boolean drownedControllable = true; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -604,6 +607,9 @@ public class PurpurWorldConfig { +@@ -605,6 +608,9 @@ public class PurpurWorldConfig { } drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth); drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements); @@ -190,7 +190,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 } public boolean elderGuardianRidable = false; -@@ -852,6 +858,9 @@ public class PurpurWorldConfig { +@@ -853,6 +859,9 @@ public class PurpurWorldConfig { public boolean huskControllable = true; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -863,6 +872,9 @@ public class PurpurWorldConfig { +@@ -864,6 +873,9 @@ public class PurpurWorldConfig { } huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth); huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements); @@ -210,7 +210,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 } public boolean illusionerRidable = false; -@@ -1679,6 +1691,9 @@ public class PurpurWorldConfig { +@@ -1680,6 +1692,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1690,6 +1705,9 @@ public class PurpurWorldConfig { +@@ -1691,6 +1706,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 } public boolean zombieHorseRidableInWater = false; -@@ -1724,6 +1742,9 @@ public class PurpurWorldConfig { +@@ -1725,6 +1743,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1735,6 +1756,9 @@ public class PurpurWorldConfig { +@@ -1736,6 +1757,9 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -250,7 +250,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 } public boolean zombifiedPiglinRidable = false; -@@ -1742,6 +1766,9 @@ public class PurpurWorldConfig { +@@ -1743,6 +1767,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb610 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1753,5 +1780,8 @@ public class PurpurWorldConfig { +@@ -1754,5 +1781,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 6673dfae8..30449766f 100644 --- a/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index 5465711d486e5f265a26042031e895fb09e30608..e73446de9a58643609fedcbd0a503d95e5ce8271 100644 +index ffc5b68c4246a7111845230a75552bb15875a209..ef0098e46bda8abc456f2bb5929d874c6aeb8698 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java @@ -30,6 +30,12 @@ public class EndCrystal extends Entity { @@ -257,10 +257,10 @@ index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1e private float speed = 0.1F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 985bfa879e37d2543491aebc445eb61055821eac..8cf85d9ca97dd8db6440f839b7f5ca91b4eb86da 100644 +index d0821b84e9a25ea2e238be5f6624b2cabce0914a..fe5948d50fd7a4ccdf1b9b07e854f2f24a2a8506 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1070,6 +1070,9 @@ public class PurpurWorldConfig { +@@ -1071,6 +1071,9 @@ public class PurpurWorldConfig { public String phantomAttackDamage = "6 + size"; public Map phantomMaxHealthCache = new HashMap<>(); public Map phantomAttackDamageCache = new HashMap<>(); @@ -270,7 +270,7 @@ index 985bfa879e37d2543491aebc445eb61055821eac..8cf85d9ca97dd8db6440f839b7f5ca91 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1091,6 +1094,9 @@ public class PurpurWorldConfig { +@@ -1092,6 +1095,9 @@ public class PurpurWorldConfig { phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage); phantomMaxHealthCache.clear(); phantomAttackDamageCache.clear(); diff --git a/patches/server/0068-Add-phantom-spawning-options.patch b/patches/server/0068-Add-phantom-spawning-options.patch index 9e1e3cbc5..9341db2c9 100644 --- a/patches/server/0068-Add-phantom-spawning-options.patch +++ b/patches/server/0068-Add-phantom-spawning-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add phantom spawning options diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index bc7648dbc132551dc6591ab49a1919a623c30f60..5b880677c895d0e747a1ed6a380ae35613334e35 100644 +index dfeb3e336e06ef01f5401a362755030db942bb07..f74c5eda91a3d521763ec7bc33f23e0c62458cc2 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java @@ -49,7 +49,7 @@ public class PhantomSpawner implements CustomSpawner { @@ -40,10 +40,10 @@ index bc7648dbc132551dc6591ab49a1919a623c30f60..5b880677c895d0e747a1ed6a380ae356 for (int l = 0; l < k; ++l) { // Paper start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8cf85d9ca97dd8db6440f839b7f5ca91b4eb86da..31686627dc0aa6396e6f4c93ebfe11268eecb473 100644 +index fe5948d50fd7a4ccdf1b9b07e854f2f24a2a8506..68401d01aae5a3d1e438f7c1b6de615412c4b8d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1073,6 +1073,12 @@ public class PurpurWorldConfig { +@@ -1074,6 +1074,12 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -56,7 +56,7 @@ index 8cf85d9ca97dd8db6440f839b7f5ca91b4eb86da..31686627dc0aa6396e6f4c93ebfe1126 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1097,6 +1103,12 @@ public class PurpurWorldConfig { +@@ -1098,6 +1104,12 @@ public class PurpurWorldConfig { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); diff --git a/patches/server/0069-Implement-bed-explosion-options.patch b/patches/server/0069-Implement-bed-explosion-options.patch index ae53114ed..4223dcb82 100644 --- a/patches/server/0069-Implement-bed-explosion-options.patch +++ b/patches/server/0069-Implement-bed-explosion-options.patch @@ -27,10 +27,10 @@ index d40500f9a807cab0b2fb6fa9032f33f4fb74c895..e8405a57fb88e63b63baaf00645c4176 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 31686627dc0aa6396e6f4c93ebfe11268eecb473..54f9ff00e08d746eeb5b05b116f98c61010ec4e2 100644 +index 68401d01aae5a3d1e438f7c1b6de615412c4b8d9..8f1c591105da31adb96891a82e9835d00d42ada8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -289,6 +289,27 @@ public class PurpurWorldConfig { +@@ -290,6 +290,27 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0070-Implement-respawn-anchor-explosion-options.patch b/patches/server/0070-Implement-respawn-anchor-explosion-options.patch index 169954786..ee0f72643 100644 --- a/patches/server/0070-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0070-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index 2ed78cf83c0ae66a6ddba1ff307da89a24b0d0a8..ae17d6a54fad0bd2d71d306f418b5ced public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 54f9ff00e08d746eeb5b05b116f98c61010ec4e2..f94238520f38c4c9d7c3d2685ed8bf2ea1975452 100644 +index 8f1c591105da31adb96891a82e9835d00d42ada8..e76f705fe0d90734b22bf07222c245f8d3f2e9e9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -329,6 +329,27 @@ public class PurpurWorldConfig { +@@ -330,6 +330,27 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0073-Entity-lifespan.patch b/patches/server/0073-Entity-lifespan.patch index 46a1e1872..4c4aca810 100644 --- a/patches/server/0073-Entity-lifespan.patch +++ b/patches/server/0073-Entity-lifespan.patch @@ -94,10 +94,10 @@ index ef8d0f594c727f355a8209f36da924ae45017ce5..64a682ea339809adfb8304a7f14d4a59 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f94238520f38c4c9d7c3d2685ed8bf2ea1975452..6ecd7f9a3dfb2ddb630b88d072a8bbb5874bcb0a 100644 +index e76f705fe0d90734b22bf07222c245f8d3f2e9e9..8f60f57c2473614f96950af652d1a738b648f3b1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -126,6 +126,11 @@ public class PurpurWorldConfig { +@@ -127,6 +127,11 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 222f793f7..f03d863ef 100644 --- a/patches/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 373f3f7643bd3ee49f3b10f9e963b39b28c39894..91df087b49d39b318af85dcbcf2db600e5c12222 100644 +index 569219437396a37cdbdae5a4a6d4b1fc551986d7..beaabee17209cc3a94dcd3b4272a2f772a83752f 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2762,4 +2762,26 @@ public class ServerPlayer extends Player { @@ -48,10 +48,10 @@ index 35e3cac34a6a508fbf3971cff9ac07db48ddeaae..8c0ef795691aa17e9522b2deda794bcd } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6ecd7f9a3dfb2ddb630b88d072a8bbb5874bcb0a..f7edb363baab75979c7546bda8051cd8f81252cb 100644 +index 8f60f57c2473614f96950af652d1a738b648f3b1..7aff81806612443128628326176faf2c302b2a36 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -245,6 +245,7 @@ public class PurpurWorldConfig { +@@ -246,6 +246,7 @@ public class PurpurWorldConfig { public boolean playerInvulnerableWhileAcceptingResourcePack = false; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; @@ -59,7 +59,7 @@ index 6ecd7f9a3dfb2ddb630b88d072a8bbb5874bcb0a..f7edb363baab75979c7546bda8051cd8 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -260,6 +261,7 @@ public class PurpurWorldConfig { +@@ -261,6 +262,7 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); diff --git a/patches/server/0075-Squid-EAR-immunity.patch b/patches/server/0075-Squid-EAR-immunity.patch index a98530fa5..e66cada26 100644 --- a/patches/server/0075-Squid-EAR-immunity.patch +++ b/patches/server/0075-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f7edb363baab75979c7546bda8051cd8f81252cb..c7b6ed5e741f227a6da0f3e7c6977e822038f8e8 100644 +index 7aff81806612443128628326176faf2c302b2a36..3ad0e1d7a2f48c1b2b127f57a2102a93e532a615 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1458,6 +1458,7 @@ public class PurpurWorldConfig { +@@ -1459,6 +1459,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index f7edb363baab75979c7546bda8051cd8f81252cb..c7b6ed5e741f227a6da0f3e7c6977e82 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1467,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1469,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0076-Phantoms-burn-in-light.patch b/patches/server/0076-Phantoms-burn-in-light.patch index e931764e5..2a7765a4c 100644 --- a/patches/server/0076-Phantoms-burn-in-light.patch +++ b/patches/server/0076-Phantoms-burn-in-light.patch @@ -52,10 +52,10 @@ index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error Iterator iterator = list.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c7b6ed5e741f227a6da0f3e7c6977e822038f8e8..2c38ec1d536db890c25331e7d2e13eef8542e2b8 100644 +index 3ad0e1d7a2f48c1b2b127f57a2102a93e532a615..3d3dfe8a0cd3d02e1d2ce8f7d5cf529a4cb3e6c4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1128,6 +1128,9 @@ public class PurpurWorldConfig { +@@ -1129,6 +1129,9 @@ public class PurpurWorldConfig { public double phantomSpawnLocalDifficultyChance = 3.0D; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -65,7 +65,7 @@ index c7b6ed5e741f227a6da0f3e7c6977e822038f8e8..2c38ec1d536db890c25331e7d2e13eef private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1158,6 +1161,9 @@ public class PurpurWorldConfig { +@@ -1159,6 +1162,9 @@ public class PurpurWorldConfig { phantomSpawnLocalDifficultyChance = getDouble("mobs.phantom.spawn.local-difficulty-chance", phantomSpawnLocalDifficultyChance); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0077-Configurable-villager-breeding.patch b/patches/server/0077-Configurable-villager-breeding.patch index 6886fd0f0..77fd979d3 100644 --- a/patches/server/0077-Configurable-villager-breeding.patch +++ b/patches/server/0077-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 50925ab7d719ae3323d7456df03a3d2ab3481bfd..7d13a5308161d4093023b732bed7d061 private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2c38ec1d536db890c25331e7d2e13eef8542e2b8..e004bba6963a5d5ff8471ead58994ae69a91bd81 100644 +index 3d3dfe8a0cd3d02e1d2ce8f7d5cf529a4cb3e6c4..4cc21f12f4ad10e3c0d8fd49575330154d4f258b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1616,6 +1616,7 @@ public class PurpurWorldConfig { +@@ -1617,6 +1617,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index 2c38ec1d536db890c25331e7d2e13eef8542e2b8..e004bba6963a5d5ff8471ead58994ae6 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1628,6 +1629,7 @@ public class PurpurWorldConfig { +@@ -1629,6 +1630,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0078-Redstone-deactivates-spawners.patch b/patches/server/0078-Redstone-deactivates-spawners.patch index 0997a27c6..9b1e114e9 100644 --- a/patches/server/0078-Redstone-deactivates-spawners.patch +++ b/patches/server/0078-Redstone-deactivates-spawners.patch @@ -17,10 +17,10 @@ index 633500aefd515df5dadda3802b94079f75a03fa0..64d911bee1607880514061c75116d867 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e004bba6963a5d5ff8471ead58994ae69a91bd81..285eb0600e094d5957c05c0d348f472400284371 100644 +index 4cc21f12f4ad10e3c0d8fd49575330154d4f258b..73e134b765713878d55f3bb9cbb36efc6c7942af 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -357,6 +357,11 @@ public class PurpurWorldConfig { +@@ -358,6 +358,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0079-Totems-work-in-inventory.patch b/patches/server/0079-Totems-work-in-inventory.patch index 877e4c90f..6373ba620 100644 --- a/patches/server/0079-Totems-work-in-inventory.patch +++ b/patches/server/0079-Totems-work-in-inventory.patch @@ -28,10 +28,10 @@ index 8c0ef795691aa17e9522b2deda794bcdf38c64b6..6edb9c371d77fa52b08f0eaf738d0cb4 EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot); event.setCancelled(itemstack == null); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 285eb0600e094d5957c05c0d348f472400284371..5d20c09d34bcf4f0975e6946ba103f7644f3d297 100644 +index 73e134b765713878d55f3bb9cbb36efc6c7942af..f68818ea005b5370fd63d65a1fb7396d8d4e68a0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -246,6 +246,7 @@ public class PurpurWorldConfig { +@@ -247,6 +247,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -39,7 +39,7 @@ index 285eb0600e094d5957c05c0d348f472400284371..5d20c09d34bcf4f0975e6946ba103f76 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -262,6 +263,7 @@ public class PurpurWorldConfig { +@@ -263,6 +264,7 @@ public class PurpurWorldConfig { playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch index 8a8213dee..295d8cbfb 100644 --- a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch @@ -22,10 +22,10 @@ index 40858ac2a9b58108472748d0ef2c2fd5ef5cfd98..2a5b6b94b15bf066b5722e7a4f782bc8 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5d20c09d34bcf4f0975e6946ba103f7644f3d297..dd398eb6d50c43604c18068370db689d2897625a 100644 +index f68818ea005b5370fd63d65a1fb7396d8d4e68a0..3401fc1caac684270792154bf645fbc11264cf63 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1643,6 +1643,7 @@ public class PurpurWorldConfig { +@@ -1644,6 +1644,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = true; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index 5d20c09d34bcf4f0975e6946ba103f7644f3d297..dd398eb6d50c43604c18068370db689d private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1653,6 +1654,7 @@ public class PurpurWorldConfig { +@@ -1654,6 +1655,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0082-Dispensers-place-anvils-option.patch b/patches/server/0082-Dispensers-place-anvils-option.patch index 074adf536..88fcfc492 100644 --- a/patches/server/0082-Dispensers-place-anvils-option.patch +++ b/patches/server/0082-Dispensers-place-anvils-option.patch @@ -33,10 +33,10 @@ index 70aade6a8d36f8376cc567800258ea6fabb0607f..d44fde7e44cc862253fe577eb0753524 static void setEntityPokingOutOfBlock(BlockSource pointer, Entity entity, Direction direction) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dd398eb6d50c43604c18068370db689d2897625a..28235ec24f5eacb35a09d8a7ab71d0ce60b5db59 100644 +index 3401fc1caac684270792154bf645fbc11264cf63..ecc3b8bbed7933097fbbb74253ce2e2646e74593 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -320,8 +320,10 @@ public class PurpurWorldConfig { +@@ -321,8 +321,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0083-Allow-anvil-colors.patch b/patches/server/0083-Allow-anvil-colors.patch index 56634be17..ce3d07662 100644 --- a/patches/server/0083-Allow-anvil-colors.patch +++ b/patches/server/0083-Allow-anvil-colors.patch @@ -64,10 +64,10 @@ index b500a04b8135604f0159a741b3d228c9e87b2a46..8a7c30e316db4960b0b62ca0e366c19f } } else if (itemstack.hasCustomHoverName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 28235ec24f5eacb35a09d8a7ab71d0ce60b5db59..d4f6d96e13aa4f5e5e56bac6232b30ad7a4a417d 100644 +index ecc3b8bbed7933097fbbb74253ce2e2646e74593..714514386a2d7d955e4aa58cdb16af4c05e19412 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -298,6 +298,13 @@ public class PurpurWorldConfig { +@@ -299,6 +299,13 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch index 7e084f9ec..8425bb9a4 100644 --- a/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 89e3dbfddc739f97fdb6ec9a5714530f03cc7092..079fd78528377ee4236fb2e7189a5f0f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d4f6d96e13aa4f5e5e56bac6232b30ad7a4a417d..b0df6a0aa6370364eb19555f3053de66935c3a0c 100644 +index 714514386a2d7d955e4aa58cdb16af4c05e19412..a3ea4eb81b6a2d8a897bc885706e0bbf110601e2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -615,6 +615,7 @@ public class PurpurWorldConfig { +@@ -616,6 +616,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index d4f6d96e13aa4f5e5e56bac6232b30ad7a4a417d..b0df6a0aa6370364eb19555f3053de66 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -627,6 +628,7 @@ public class PurpurWorldConfig { +@@ -628,6 +629,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch index 2a7d45955..8336c95f2 100644 --- a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch @@ -54,10 +54,10 @@ index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b0df6a0aa6370364eb19555f3053de66935c3a0c..79b80587e5d0c8f844659b9dbe2d8610d94f888d 100644 +index a3ea4eb81b6a2d8a897bc885706e0bbf110601e2..83a6d5017da1e890bbce6fba2b14c61d4e66a93e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1483,6 +1483,7 @@ public class PurpurWorldConfig { +@@ -1484,6 +1484,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index b0df6a0aa6370364eb19555f3053de66935c3a0c..79b80587e5d0c8f844659b9dbe2d8610 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1493,6 +1494,7 @@ public class PurpurWorldConfig { +@@ -1494,6 +1495,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/server/0088-Entities-can-use-portals-configuration.patch b/patches/server/0088-Entities-can-use-portals-configuration.patch index 74d2eded5..de9d41fda 100644 --- a/patches/server/0088-Entities-can-use-portals-configuration.patch +++ b/patches/server/0088-Entities-can-use-portals-configuration.patch @@ -27,10 +27,10 @@ index 5420075f774e2327d17ecbf6fd1afba0b96ff1f4..9be349874c40722f05ad5b81e62dcd00 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 79b80587e5d0c8f844659b9dbe2d8610d94f888d..30c44f52f8a864d156f225a682f1cc18df0a362c 100644 +index 83a6d5017da1e890bbce6fba2b14c61d4e66a93e..1e878c0d64f5a2c604f910b21ae91403ae084c54 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,6 +99,7 @@ public class PurpurWorldConfig { +@@ -100,6 +100,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; @@ -38,7 +38,7 @@ index 79b80587e5d0c8f844659b9dbe2d8610d94f888d..30c44f52f8a864d156f225a682f1cc18 public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -107,6 +108,7 @@ public class PurpurWorldConfig { +@@ -108,6 +109,7 @@ public class PurpurWorldConfig { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); diff --git a/patches/server/0090-Customizable-wither-health-and-healing.patch b/patches/server/0090-Customizable-wither-health-and-healing.patch index eb40b4f62..afc0aa011 100644 --- a/patches/server/0090-Customizable-wither-health-and-healing.patch +++ b/patches/server/0090-Customizable-wither-health-and-healing.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 6cdfde983798bdac3b10e5d17f1259bf2976b739..a78755905acdf1d942ad7e6f5df3ab3fc34ad551 100644 +index 6f7ef64612d6229179545d56093efdf58a2d7978..b395d5c85f26ca4252d3f8f886b2ee5a7892af5f 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -518,8 +518,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -23,10 +23,10 @@ index 6cdfde983798bdac3b10e5d17f1259bf2976b739..a78755905acdf1d942ad7e6f5df3ab3f this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 30c44f52f8a864d156f225a682f1cc18df0a362c..b8c97253388447fb6091436bdd98356e8465d5e9 100644 +index 1e878c0d64f5a2c604f910b21ae91403ae084c54..3db0b517baaa4394810c04bfafd92a80a1337c95 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1722,6 +1722,8 @@ public class PurpurWorldConfig { +@@ -1723,6 +1723,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 30c44f52f8a864d156f225a682f1cc18df0a362c..b8c97253388447fb6091436bdd98356e private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1737,6 +1739,8 @@ public class PurpurWorldConfig { +@@ -1738,6 +1740,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0091-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0091-Allow-toggling-special-MobSpawners-per-world.patch index 964dbc2db..6ac624ef6 100644 --- a/patches/server/0091-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0091-Allow-toggling-special-MobSpawners-per-world.patch @@ -36,7 +36,7 @@ index 11f92c1011a1accaf485e5785d2e9ebc8440406c..af57326c8d461d3c5d84f582d5bc6345 ChunkGenerator chunkgenerator = worlddimension.generator(); // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java -index 5d199fe497bd852827d3d18fb7566a09e70331a3..6cd8a50289a6404441e9e5e08d82d2ebe14a09cc 100644 +index 8385eb1d60f377da94e3178ab506feefb43563fd..a5443f92786427c42092aec8350e7ab37704db7a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTraderSpawner.java @@ -159,7 +159,17 @@ public class WanderingTraderSpawner implements CustomSpawner { @@ -59,10 +59,10 @@ index 5d199fe497bd852827d3d18fb7566a09e70331a3..6cd8a50289a6404441e9e5e08d82d2eb if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b8c97253388447fb6091436bdd98356e8465d5e9..3b2c3d0f4559008aec4150f992eba768f72a9ac2 100644 +index 3db0b517baaa4394810c04bfafd92a80a1337c95..ee557eb5ef78c90b83cfc6f4d0727e034de41d6a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -70,6 +70,12 @@ public class PurpurWorldConfig { +@@ -71,6 +71,12 @@ public class PurpurWorldConfig { return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path)); } @@ -75,7 +75,7 @@ index b8c97253388447fb6091436bdd98356e8465d5e9..3b2c3d0f4559008aec4150f992eba768 private double getDouble(String path, double def) { PurpurConfig.config.addDefault("world-settings.default." + path, def); return PurpurConfig.config.getDouble("world-settings." + worldName + "." + path, PurpurConfig.config.getDouble("world-settings.default." + path)); -@@ -238,6 +244,21 @@ public class PurpurWorldConfig { +@@ -239,6 +245,21 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0092-Raid-cooldown-setting.patch b/patches/server/0092-Raid-cooldown-setting.patch index dcfd377a4..5f730cf19 100644 --- a/patches/server/0092-Raid-cooldown-setting.patch +++ b/patches/server/0092-Raid-cooldown-setting.patch @@ -49,10 +49,10 @@ index 41457c9f27b18fa2734a6cca297ec5186470e82f..94356e0541f8f4da68211fa533347cc9 if (!this.raidMap.containsKey(raid.getId())) { this.raidMap.put(raid.getId(), raid); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3b2c3d0f4559008aec4150f992eba768f72a9ac2..dea0534040154186ecdcad70d4bed53ed067a6b9 100644 +index ee557eb5ef78c90b83cfc6f4d0727e034de41d6a..78a5879ff845fc7fb50dc2e962f9f465fc8168b4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -110,6 +110,7 @@ public class PurpurWorldConfig { +@@ -111,6 +111,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -60,7 +60,7 @@ index 3b2c3d0f4559008aec4150f992eba768f72a9ac2..dea0534040154186ecdcad70d4bed53e private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -119,6 +120,7 @@ public class PurpurWorldConfig { +@@ -120,6 +121,7 @@ public class PurpurWorldConfig { tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); diff --git a/patches/server/0093-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0093-Despawn-rate-config-options-per-projectile-type.patch index 9d7c4d05e..1c01bba5a 100644 --- a/patches/server/0093-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0093-Despawn-rate-config-options-per-projectile-type.patch @@ -7,10 +7,10 @@ This patch's implementation has been removed in favor of Pufferfish's entity-tim The config remains for migration purposes. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dea0534040154186ecdcad70d4bed53ed067a6b9..8efe8d4a37745a280d1cacf3c10757e88ccf3c5a 100644 +index 78a5879ff845fc7fb50dc2e962f9f465fc8168b4..a449d5e23c20389556c37cb76fc53ef778e54ddd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -291,6 +291,39 @@ public class PurpurWorldConfig { +@@ -292,6 +292,39 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 647623965..b4557f3b5 100644 --- a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -70,10 +70,10 @@ index b2b04d7b7bbc400fb66cac385fa754d4fb47c7d9..bd75aa78a7dd437d6fce79a6cb182981 this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8efe8d4a37745a280d1cacf3c10757e88ccf3c5a..3dad224fe58084b7b37863d44f25aa206bc632c6 100644 +index a449d5e23c20389556c37cb76fc53ef778e54ddd..4de6235de3f4d679dc599a13cdbdd5517456c907 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1855,6 +1855,7 @@ public class PurpurWorldConfig { +@@ -1856,6 +1856,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -81,7 +81,7 @@ index 8efe8d4a37745a280d1cacf3c10757e88ccf3c5a..3dad224fe58084b7b37863d44f25aa20 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1869,6 +1870,7 @@ public class PurpurWorldConfig { +@@ -1870,6 +1871,7 @@ public class PurpurWorldConfig { zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby); zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); diff --git a/patches/server/0096-Flying-squids-Oh-my.patch b/patches/server/0096-Flying-squids-Oh-my.patch index ad0431fb3..61954b56a 100644 --- a/patches/server/0096-Flying-squids-Oh-my.patch +++ b/patches/server/0096-Flying-squids-Oh-my.patch @@ -58,10 +58,10 @@ index f68c18b6645981126329b58379946308bbb8ccf8..80bdc93cba675d6c1286618f14fc33e0 float g = Mth.cos(f) * 0.2F; float h = -0.1F + this.squid.getRandom().nextFloat() * 0.2F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3dad224fe58084b7b37863d44f25aa206bc632c6..1e218cf6b6675cb606c7832e90bcd952ce97db3a 100644 +index 4de6235de3f4d679dc599a13cdbdd5517456c907..20d95d0f59ffcb9196461e07f13b190b8162c752 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -907,10 +907,12 @@ public class PurpurWorldConfig { +@@ -908,10 +908,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index 3dad224fe58084b7b37863d44f25aa206bc632c6..1e218cf6b6675cb606c7832e90bcd952 } public boolean goatRidable = false; -@@ -1542,6 +1544,7 @@ public class PurpurWorldConfig { +@@ -1543,6 +1545,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 3dad224fe58084b7b37863d44f25aa206bc632c6..1e218cf6b6675cb606c7832e90bcd952 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1553,6 +1556,7 @@ public class PurpurWorldConfig { +@@ -1554,6 +1557,7 @@ public class PurpurWorldConfig { squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); diff --git a/patches/server/0097-Infinity-bow-settings.patch b/patches/server/0097-Infinity-bow-settings.patch index 03b3822e6..39ba922fb 100644 --- a/patches/server/0097-Infinity-bow-settings.patch +++ b/patches/server/0097-Infinity-bow-settings.patch @@ -27,10 +27,10 @@ index 08d597db1a5345a343777a01427655e6bf2c926b..33df0ca406dc8321b76b393f317bbd1c } else { user.startUsingItem(hand); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1e218cf6b6675cb606c7832e90bcd952ce97db3a..f1fce08e086dffe074fe824fac5782e9e9d843b2 100644 +index 20d95d0f59ffcb9196461e07f13b190b8162c752..07ce7fa039923922156f2250f2906d80807c634b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -141,6 +141,17 @@ public class PurpurWorldConfig { +@@ -142,6 +142,17 @@ public class PurpurWorldConfig { entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan); } diff --git a/patches/server/0098-Configurable-daylight-cycle.patch b/patches/server/0098-Configurable-daylight-cycle.patch index 438c0a7cd..6da964b07 100644 --- a/patches/server/0098-Configurable-daylight-cycle.patch +++ b/patches/server/0098-Configurable-daylight-cycle.patch @@ -88,10 +88,10 @@ index af57326c8d461d3c5d84f582d5bc6345c3c9367b..0e8452f6a8300992f397fb15db763304 public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) { Iterator iterator = this.customSpawners.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f1fce08e086dffe074fe824fac5782e9e9d843b2..26454971e2bb97edf86d79cb094f7ede2874fe87 100644 +index 07ce7fa039923922156f2250f2906d80807c634b..58374f3b95d7ecd6d3ca2ebdf71660dd9416af7a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -123,6 +123,13 @@ public class PurpurWorldConfig { +@@ -124,6 +124,13 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); } diff --git a/patches/server/0100-Furnace-uses-lava-from-underneath.patch b/patches/server/0100-Furnace-uses-lava-from-underneath.patch index 611fa1b39..587f79e1e 100644 --- a/patches/server/0100-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0100-Furnace-uses-lava-from-underneath.patch @@ -47,10 +47,10 @@ index 448fa4f4f200430d6ce3051763c7ceb697696146..ca2052804ad829a1528a9c5a0a792275 private static boolean canBurn(RegistryAccess registryManager, @Nullable Recipe recipe, NonNullList slots, int count) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 26454971e2bb97edf86d79cb094f7ede2874fe87..2ff758ab5e0a9cafad809d252446cbd7f258fc1c 100644 +index 58374f3b95d7ecd6d3ca2ebdf71660dd9416af7a..c37f942397c901937a5252906961c03a45c1b3ed 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -414,6 +414,17 @@ public class PurpurWorldConfig { +@@ -415,6 +415,17 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0101-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0101-Arrows-should-not-reset-despawn-counter.patch index 72b76e541..9e9a15ee1 100644 --- a/patches/server/0101-Arrows-should-not-reset-despawn-counter.patch +++ b/patches/server/0101-Arrows-should-not-reset-despawn-counter.patch @@ -20,10 +20,10 @@ index 7226be19248a1ffb8ff2c89b55882529d33a6c0c..4f98d7f755ad692dd9589134524a604e @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2ff758ab5e0a9cafad809d252446cbd7f258fc1c..6693677e8b7091778e7e273357e4cc2165ebe1d0 100644 +index c37f942397c901937a5252906961c03a45c1b3ed..76cf97277a840735f4c981811e6c0205fe0f5a88 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -102,6 +102,11 @@ public class PurpurWorldConfig { +@@ -103,6 +103,11 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index 6917d7622..418c3e6f3 100644 --- a/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 1776906e886edd511bfbe96b8a345438a3cd66f8..7efae60a9a9269703a1fa7cd280b5b96 return; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6693677e8b7091778e7e273357e4cc2165ebe1d0..893953e376ebd39b12cbb88f458abd8918932d70 100644 +index 76cf97277a840735f4c981811e6c0205fe0f5a88..3b4fa811a1fa83fd5824afb9c520b08970894c46 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -415,8 +415,10 @@ public class PurpurWorldConfig { +@@ -416,8 +416,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0103-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0103-Add-adjustable-breeding-cooldown-to-config.patch index e9a40612a..d62a54149 100644 --- a/patches/server/0103-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0103-Add-adjustable-breeding-cooldown-to-config.patch @@ -42,7 +42,7 @@ index c2f61ed153260692c96af4f20bc5b7d55cbbc380..43f01ce3064fdc0bb46beab6ea001942 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 6b661982b217ae120d72ede3e19e82fbd3ebb69e..290d9fbeb71675d897b78d5c2b98ab477ce9f5fd 100644 +index a4c45ee8a5c6e55a6f9abde401cc06f13bd0b018..84ac5db63a51d1490fcf625d10ed0952d671017e 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -194,6 +194,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -104,10 +104,10 @@ index 6b661982b217ae120d72ede3e19e82fbd3ebb69e..290d9fbeb71675d897b78d5c2b98ab47 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 893953e376ebd39b12cbb88f458abd8918932d70..736bfa6403b54c2822606f54f5aa9795f47a7477 100644 +index 3b4fa811a1fa83fd5824afb9c520b08970894c46..afc71260b156fc9d43e75b2c45c90994268e17e7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -116,6 +116,7 @@ public class PurpurWorldConfig { +@@ -117,6 +117,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -115,7 +115,7 @@ index 893953e376ebd39b12cbb88f458abd8918932d70..736bfa6403b54c2822606f54f5aa9795 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -126,6 +127,7 @@ public class PurpurWorldConfig { +@@ -127,6 +128,7 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); diff --git a/patches/server/0104-Make-entity-breeding-times-configurable.patch b/patches/server/0104-Make-entity-breeding-times-configurable.patch index 0564b10ab..d819d1a73 100644 --- a/patches/server/0104-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0104-Make-entity-breeding-times-configurable.patch @@ -236,7 +236,7 @@ index b2cf680e377f849a7cc17136ebca3cf33e34048c..0df9900ecf211f3a0bcfab6daa931fdd @Override public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index c64673adcf168b413ab3b9b796f5179081058e6d..6b07750c2bd2aa828f3a0a1ccf30520723f5d62b 100644 +index 6d5213d26dbd9d36c5cbe6056091d9e5c85e23c4..787391763cac2ae6ed9c178c44616b992849e819 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -142,6 +142,11 @@ public class Rabbit extends Animal implements VariantHolder { @@ -522,10 +522,10 @@ index 66f2695403a04c2e9540bf2ec290bf1cc5a377ca..bd72dc99752faca3180ecb165b11406a public boolean canBeLeashed(Player player) { return !this.isLeashed(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cff31963b1 100644 +index afc71260b156fc9d43e75b2c45c90994268e17e7..a34579026b7eae1e314410b8d96aaa798beaf0f8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -506,10 +506,12 @@ public class PurpurWorldConfig { +@@ -507,10 +507,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -538,7 +538,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean batRidable = false; -@@ -549,6 +551,7 @@ public class PurpurWorldConfig { +@@ -550,6 +552,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -546,7 +546,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -560,6 +563,7 @@ public class PurpurWorldConfig { +@@ -561,6 +564,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -554,7 +554,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean blazeRidable = false; -@@ -587,6 +591,7 @@ public class PurpurWorldConfig { +@@ -588,6 +592,7 @@ public class PurpurWorldConfig { public double camelJumpStrengthMax = 0.42D; public double camelMovementSpeedMin = 0.09D; public double camelMovementSpeedMax = 0.09D; @@ -562,7 +562,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void camelSettings() { camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater); camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin); -@@ -595,6 +600,7 @@ public class PurpurWorldConfig { +@@ -596,6 +601,7 @@ public class PurpurWorldConfig { camelJumpStrengthMax = getDouble("mobs.camel.attributes.jump_strength.max", camelJumpStrengthMax); camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin); camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax); @@ -570,7 +570,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean catRidable = false; -@@ -604,6 +610,7 @@ public class PurpurWorldConfig { +@@ -605,6 +611,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -578,7 +578,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -617,6 +624,7 @@ public class PurpurWorldConfig { +@@ -618,6 +625,7 @@ public class PurpurWorldConfig { catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay); catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); @@ -586,7 +586,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean caveSpiderRidable = false; -@@ -640,6 +648,7 @@ public class PurpurWorldConfig { +@@ -641,6 +649,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -594,7 +594,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -651,6 +660,7 @@ public class PurpurWorldConfig { +@@ -652,6 +661,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -602,7 +602,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean codRidable = false; -@@ -672,6 +682,7 @@ public class PurpurWorldConfig { +@@ -673,6 +683,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -610,7 +610,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -683,6 +694,7 @@ public class PurpurWorldConfig { +@@ -684,6 +695,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -618,7 +618,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean creeperRidable = false; -@@ -734,6 +746,7 @@ public class PurpurWorldConfig { +@@ -735,6 +747,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -626,7 +626,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -749,6 +762,7 @@ public class PurpurWorldConfig { +@@ -750,6 +763,7 @@ public class PurpurWorldConfig { donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax); donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); @@ -634,7 +634,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean drownedRidable = false; -@@ -868,6 +882,7 @@ public class PurpurWorldConfig { +@@ -869,6 +883,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -642,7 +642,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -879,17 +894,20 @@ public class PurpurWorldConfig { +@@ -880,17 +895,20 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -663,7 +663,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean ghastRidable = false; -@@ -957,11 +975,13 @@ public class PurpurWorldConfig { +@@ -958,11 +976,13 @@ public class PurpurWorldConfig { public boolean goatRidableInWater = true; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; @@ -677,7 +677,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean guardianRidable = false; -@@ -982,6 +1002,7 @@ public class PurpurWorldConfig { +@@ -983,6 +1003,7 @@ public class PurpurWorldConfig { public boolean hoglinRidableInWater = true; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; @@ -685,7 +685,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -992,6 +1013,7 @@ public class PurpurWorldConfig { +@@ -993,6 +1014,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -693,7 +693,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean horseRidableInWater = false; -@@ -1001,6 +1023,7 @@ public class PurpurWorldConfig { +@@ -1002,6 +1024,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -701,7 +701,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1016,6 +1039,7 @@ public class PurpurWorldConfig { +@@ -1017,6 +1040,7 @@ public class PurpurWorldConfig { horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax); horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); @@ -709,7 +709,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean huskRidable = false; -@@ -1093,6 +1117,7 @@ public class PurpurWorldConfig { +@@ -1094,6 +1118,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -717,7 +717,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1110,6 +1135,7 @@ public class PurpurWorldConfig { +@@ -1111,6 +1136,7 @@ public class PurpurWorldConfig { llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax); llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); @@ -725,7 +725,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean magmaCubeRidable = false; -@@ -1138,6 +1164,7 @@ public class PurpurWorldConfig { +@@ -1139,6 +1165,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidableInWater = true; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; @@ -733,7 +733,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1148,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1149,6 +1176,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -741,7 +741,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean muleRidableInWater = false; -@@ -1157,6 +1185,7 @@ public class PurpurWorldConfig { +@@ -1158,6 +1186,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -749,7 +749,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1172,12 +1201,14 @@ public class PurpurWorldConfig { +@@ -1173,12 +1202,14 @@ public class PurpurWorldConfig { muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax); muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); @@ -764,7 +764,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1188,12 +1219,14 @@ public class PurpurWorldConfig { +@@ -1189,12 +1220,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -779,7 +779,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1204,6 +1237,7 @@ public class PurpurWorldConfig { +@@ -1205,6 +1238,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -787,7 +787,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean parrotRidable = false; -@@ -1287,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1288,6 +1322,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -795,7 +795,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1298,6 +1333,7 @@ public class PurpurWorldConfig { +@@ -1299,6 +1334,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -803,7 +803,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean piglinRidable = false; -@@ -1354,6 +1390,7 @@ public class PurpurWorldConfig { +@@ -1355,6 +1391,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -811,7 +811,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1367,6 +1404,7 @@ public class PurpurWorldConfig { +@@ -1368,6 +1405,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -819,7 +819,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean pufferfishRidable = false; -@@ -1389,6 +1427,7 @@ public class PurpurWorldConfig { +@@ -1390,6 +1428,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -827,7 +827,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1401,6 +1440,7 @@ public class PurpurWorldConfig { +@@ -1402,6 +1441,7 @@ public class PurpurWorldConfig { rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); @@ -835,7 +835,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean ravagerRidable = false; -@@ -1437,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1438,6 +1478,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = true; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; @@ -843,7 +843,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1447,6 +1488,7 @@ public class PurpurWorldConfig { +@@ -1448,6 +1489,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -851,7 +851,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean shulkerRidable = false; -@@ -1570,11 +1612,13 @@ public class PurpurWorldConfig { +@@ -1571,11 +1613,13 @@ public class PurpurWorldConfig { public boolean snifferRidableInWater = true; public boolean snifferControllable = true; public double snifferMaxHealth = 14.0D; @@ -865,7 +865,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean squidRidable = false; -@@ -1633,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1634,6 +1678,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -873,7 +873,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1643,6 +1688,7 @@ public class PurpurWorldConfig { +@@ -1644,6 +1689,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -881,7 +881,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean tadpoleRidable = false; -@@ -1663,6 +1709,7 @@ public class PurpurWorldConfig { +@@ -1664,6 +1710,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -889,7 +889,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1680,6 +1727,7 @@ public class PurpurWorldConfig { +@@ -1681,6 +1728,7 @@ public class PurpurWorldConfig { traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax); traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); @@ -897,7 +897,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean tropicalFishRidable = false; -@@ -1700,6 +1748,7 @@ public class PurpurWorldConfig { +@@ -1701,6 +1749,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = true; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -905,7 +905,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1710,6 +1759,7 @@ public class PurpurWorldConfig { +@@ -1711,6 +1760,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -913,7 +913,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean vexRidable = false; -@@ -1737,6 +1787,7 @@ public class PurpurWorldConfig { +@@ -1738,6 +1788,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -921,7 +921,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1750,6 +1801,7 @@ public class PurpurWorldConfig { +@@ -1751,6 +1802,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -929,7 +929,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf } public boolean vindicatorRidable = false; -@@ -1861,6 +1913,7 @@ public class PurpurWorldConfig { +@@ -1862,6 +1914,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -937,7 +937,7 @@ index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cf private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1871,6 +1924,7 @@ public class PurpurWorldConfig { +@@ -1872,6 +1925,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0105-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0105-Apply-display-names-from-item-forms-of-entities-to-e.patch index 79399e4c6..f6bcbc71f 100644 --- a/patches/server/0105-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0105-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -136,10 +136,10 @@ index b2ad6d230de2c29f371178bccde1111c7532ee70..6667926519a0f1c151e53f59cce36e74 if (((HangingEntity) object).survives()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec00f1a76f5d9c26766348d445df64cff31963b1..5f7c0cda2e0ec0064f0fec80cfffd2ae6bad154c 100644 +index a34579026b7eae1e314410b8d96aaa798beaf0f8..62f19e2173c5d4e81a2b36a40f551c25577e2d99 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -98,8 +98,10 @@ public class PurpurWorldConfig { +@@ -99,8 +99,10 @@ public class PurpurWorldConfig { } public float armorstandStepHeight = 0.0F; @@ -150,7 +150,7 @@ index ec00f1a76f5d9c26766348d445df64cff31963b1..5f7c0cda2e0ec0064f0fec80cfffd2ae } public boolean arrowMovementResetsDespawnCounter = true; -@@ -112,6 +114,7 @@ public class PurpurWorldConfig { +@@ -113,6 +115,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -158,7 +158,7 @@ index ec00f1a76f5d9c26766348d445df64cff31963b1..5f7c0cda2e0ec0064f0fec80cfffd2ae public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -123,6 +126,7 @@ public class PurpurWorldConfig { +@@ -124,6 +127,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0106-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0106-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 2f8852f10..cbaefdb0c 100644 --- a/patches/server/0106-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0106-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -17,10 +17,10 @@ index 2941c16ef486345b57ab2dfcd26f0272285d3b5a..7cc6812bf6f2ba015f65fd1fc1eaac02 ((Mob) newEntityLiving).setPersistenceRequired(); // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5f7c0cda2e0ec0064f0fec80cfffd2ae6bad154c..703383e717b6d0873c74d482c72f2f2b8408d810 100644 +index 62f19e2173c5d4e81a2b36a40f551c25577e2d99..3cc3a8043529c9f7e64ec1aaa4c108269df0a0f7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,9 +99,11 @@ public class PurpurWorldConfig { +@@ -100,9 +100,11 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = true; diff --git a/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 29e683f76..881d108b2 100644 --- a/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -8,7 +8,7 @@ This should help to reduce the amount of dirt, gravel, grass, and etc. that Endermen like to randomly place all over the world. diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index fef88df5d11943b5e8b1234678ede7a9e36205ff..306ea8ef2c51f6815691865739696b3e78f7a987 100644 +index 3861f367ac01028139cc6db35fb9a1e20cb39457..f49cbb9fcd13afc10aa76ac80128162a902ae345 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -494,7 +494,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -21,10 +21,10 @@ index fef88df5d11943b5e8b1234678ede7a9e36205ff..306ea8ef2c51f6815691865739696b3e private static class EndermanFreezeWhenLookedAt extends Goal { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 703383e717b6d0873c74d482c72f2f2b8408d810..c9d0105e06fc155b6c0a4641d649d8b916524fe3 100644 +index 3cc3a8043529c9f7e64ec1aaa4c108269df0a0f7..c61274844ce91980685b214871bb33a1ee3fec03 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -838,6 +838,7 @@ public class PurpurWorldConfig { +@@ -839,6 +839,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 703383e717b6d0873c74d482c72f2f2b8408d810..c9d0105e06fc155b6c0a4641d649d8b9 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -849,6 +850,7 @@ public class PurpurWorldConfig { +@@ -850,6 +851,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0108-Add-configurable-snowball-damage.patch b/patches/server/0108-Add-configurable-snowball-damage.patch index 2fdc3cb2c..80699ed0e 100644 --- a/patches/server/0108-Add-configurable-snowball-damage.patch +++ b/patches/server/0108-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index 718e120c9768cf716b32d3d652f53f1dda925168..b90cedad282e95a067aca176fafa9f72 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c9d0105e06fc155b6c0a4641d649d8b916524fe3..85514215e4abaf73f389aef0ac0de980abb9be86 100644 +index c61274844ce91980685b214871bb33a1ee3fec03..43e54201903ff144e1951d98c4be19fea95b542c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -355,6 +355,11 @@ public class PurpurWorldConfig { +@@ -356,6 +356,11 @@ public class PurpurWorldConfig { //} } diff --git a/patches/server/0109-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0109-Changeable-Mob-Left-Handed-Chance.patch index a040e3a42..c2b4bb8a8 100644 --- a/patches/server/0109-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0109-Changeable-Mob-Left-Handed-Chance.patch @@ -18,10 +18,10 @@ index 64a682ea339809adfb8304a7f14d4a596e5332be..4e5a261ccb7fb63b82ac7194598729fd } else { this.setLeftHanded(false); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 85514215e4abaf73f389aef0ac0de980abb9be86..c3681d3afbffbc145bbbda7d341ad70f2b3a5df2 100644 +index 43e54201903ff144e1951d98c4be19fea95b542c..002304cc00c5e870f968bcdd569f4b32802166fa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -157,8 +157,10 @@ public class PurpurWorldConfig { +@@ -158,8 +158,10 @@ public class PurpurWorldConfig { } public int entityLifeSpan = 0; diff --git a/patches/server/0110-Add-boat-fall-damage-config.patch b/patches/server/0110-Add-boat-fall-damage-config.patch index e4958e514..b734d671f 100644 --- a/patches/server/0110-Add-boat-fall-damage-config.patch +++ b/patches/server/0110-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 421aaf1fd85da9807bfe1b193bc13c5f3de2f474..3997d78770c503802bd354819d0258c16329858d 100644 +index beaabee17209cc3a94dcd3b4272a2f772a83752f..e0d3407c4e2bc94dc656f3a238d2667bb77e2019 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1112,7 +1112,16 @@ public class ServerPlayer extends Player { @@ -27,10 +27,10 @@ index 421aaf1fd85da9807bfe1b193bc13c5f3de2f474..3997d78770c503802bd354819d0258c1 if (!flag && isSpawnInvulnerable() && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c3681d3afbffbc145bbbda7d341ad70f2b3a5df2..1ad31a516e0c072a62b7422c1fc7efc5a776f5d9 100644 +index 002304cc00c5e870f968bcdd569f4b32802166fa..5156bdc06e30bb1ddd5f1d60fdc42cce032d65fc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -113,6 +113,7 @@ public class PurpurWorldConfig { +@@ -114,6 +114,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index c3681d3afbffbc145bbbda7d341ad70f2b3a5df2..1ad31a516e0c072a62b7422c1fc7efc5 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -125,6 +126,7 @@ public class PurpurWorldConfig { +@@ -126,6 +127,7 @@ public class PurpurWorldConfig { private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); diff --git a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch index 777dc0c25..1129c20d0 100644 --- a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch @@ -10,7 +10,7 @@ If min-shoot-interval-ticks and max-shoot-interval-ticks are both set to 0, snow golems won't shoot any snowballs. diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 2a5ffaf5614e19305f4e08e15752364919e68a49..ecc0f221fca332b6f4d8feb72dbafc52e1002a23 100644 +index bd9dd01e9140c2ad0ab9859b9a455f73ab04a253..d3da7487f911ff791dca5f7b546dccda751fe44c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -79,7 +79,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -23,10 +23,10 @@ index 2a5ffaf5614e19305f4e08e15752364919e68a49..ecc0f221fca332b6f4d8feb72dbafc52 this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(4, new RandomLookAroundGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1ad31a516e0c072a62b7422c1fc7efc5a776f5d9..a721894795f32f3b7fa88bee19a7c4ac436c76e2 100644 +index 5156bdc06e30bb1ddd5f1d60fdc42cce032d65fc..b72542b4f2f5a4d0440daae4569217afcfae16a6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1610,6 +1610,10 @@ public class PurpurWorldConfig { +@@ -1611,6 +1611,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 1ad31a516e0c072a62b7422c1fc7efc5a776f5d9..a721894795f32f3b7fa88bee19a7c4ac private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1623,6 +1627,10 @@ public class PurpurWorldConfig { +@@ -1624,6 +1628,10 @@ public class PurpurWorldConfig { snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); diff --git a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 7ca7dca56..1e22b00e7 100644 --- a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -174,10 +174,10 @@ index ac70c2c03241e73943bd517a8c69dd05e0873634..0318663a824d2a9515f867a075d148c3 public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a721894795f32f3b7fa88bee19a7c4ac436c76e2..0de1b1cf77eef8e0d40f53ad9e4ff550e4299875 100644 +index b72542b4f2f5a4d0440daae4569217afcfae16a6..fccd76f1107c5f95698ac4814ae2dac5e4d13440 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1813,6 +1813,8 @@ public class PurpurWorldConfig { +@@ -1814,6 +1814,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -186,7 +186,7 @@ index a721894795f32f3b7fa88bee19a7c4ac436c76e2..0de1b1cf77eef8e0d40f53ad9e4ff550 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1827,6 +1829,8 @@ public class PurpurWorldConfig { +@@ -1828,6 +1830,8 @@ public class PurpurWorldConfig { villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index fe2cfa490..1d909764c 100644 --- a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 3d61b27c23d90e87fdfc8c170eafc116716ac047..67fd554cfd6b848ca1f2cf804ad4543a } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0de1b1cf77eef8e0d40f53ad9e4ff550e4299875..9fd1415a9f9e3340115ce9e9b990370ab3b8cad4 100644 +index fccd76f1107c5f95698ac4814ae2dac5e4d13440..dd3c9dd7bb6de648785a74fab7e011b6c472a0ed 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2057,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -2058,6 +2058,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 0de1b1cf77eef8e0d40f53ad9e4ff550e4299875..9fd1415a9f9e3340115ce9e9b990370a private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2071,5 +2072,6 @@ public class PurpurWorldConfig { +@@ -2072,5 +2073,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby); zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); diff --git a/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch index cbf56e5d6..f0c86bf9b 100644 --- a/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -221,10 +221,10 @@ index e43fd3e59fd8c74828ae65965fade27f56beef65..b2f133c8baabba1cffa6e92ea0f85453 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9fd1415a9f9e3340115ce9e9b990370ab3b8cad4..825fb3e6fecf8ac3b9d05d7f794e9facc036507a 100644 +index dd3c9dd7bb6de648785a74fab7e011b6c472a0ed..0ccb2b3304482b6e8d92e3b9b4889e7b3823ed5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1942,6 +1942,8 @@ public class PurpurWorldConfig { +@@ -1943,6 +1943,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -233,7 +233,7 @@ index 9fd1415a9f9e3340115ce9e9b990370ab3b8cad4..825fb3e6fecf8ac3b9d05d7f794e9fac public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1953,6 +1955,8 @@ public class PurpurWorldConfig { +@@ -1954,6 +1956,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0116-Configurable-default-collar-color.patch b/patches/server/0116-Configurable-default-collar-color.patch index 59cd75ab1..788235c3c 100644 --- a/patches/server/0116-Configurable-default-collar-color.patch +++ b/patches/server/0116-Configurable-default-collar-color.patch @@ -43,10 +43,10 @@ index f39b278bc520a4785e9fa472bccd836ad1daac85..8d71d0ad4bf8e0df8ded9ebce6f39e66 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 825fb3e6fecf8ac3b9d05d7f794e9facc036507a..1260e700ebfcf9e74200a36675794c1c9d14d298 100644 +index 0ccb2b3304482b6e8d92e3b9b4889e7b3823ed5b..181cdc70c31e59205f5a1cbf66b8584bcb3dccf8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -626,6 +626,7 @@ public class PurpurWorldConfig { +@@ -627,6 +627,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index 825fb3e6fecf8ac3b9d05d7f794e9facc036507a..1260e700ebfcf9e74200a36675794c1c private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -640,6 +641,11 @@ public class PurpurWorldConfig { +@@ -641,6 +642,11 @@ public class PurpurWorldConfig { catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); @@ -66,7 +66,7 @@ index 825fb3e6fecf8ac3b9d05d7f794e9facc036507a..1260e700ebfcf9e74200a36675794c1c } public boolean caveSpiderRidable = false; -@@ -1942,6 +1948,7 @@ public class PurpurWorldConfig { +@@ -1943,6 +1949,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index 825fb3e6fecf8ac3b9d05d7f794e9facc036507a..1260e700ebfcf9e74200a36675794c1c public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1955,6 +1962,11 @@ public class PurpurWorldConfig { +@@ -1956,6 +1963,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0117-Phantom-flames-on-swoop.patch b/patches/server/0117-Phantom-flames-on-swoop.patch index 4a648ff8d..4e57e902d 100644 --- a/patches/server/0117-Phantom-flames-on-swoop.patch +++ b/patches/server/0117-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 899a7d3989b51456600787ae09b1736f83bf9a65..076a881412d40ce6a8f5e5f83f7598bf @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1260e700ebfcf9e74200a36675794c1c9d14d298..4fe6a35d1d37001ef367dee00a0e447916b878b5 100644 +index 181cdc70c31e59205f5a1cbf66b8584bcb3dccf8..d9228513f08ba3369b34697115e572a2c5618e88 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1304,6 +1304,7 @@ public class PurpurWorldConfig { +@@ -1305,6 +1305,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index 1260e700ebfcf9e74200a36675794c1c9d14d298..4fe6a35d1d37001ef367dee00a0e4479 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1337,6 +1338,7 @@ public class PurpurWorldConfig { +@@ -1338,6 +1339,7 @@ public class PurpurWorldConfig { phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); diff --git a/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch index 7c40e493b..5ce4e27a3 100644 --- a/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index 5e22d175b1048a58802cdf64ac70a8b56329e915..d81946b400f208c39941128ce823ff77 return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4fe6a35d1d37001ef367dee00a0e447916b878b5..fc94719827a3d8dde4aa18de3a72a35ab5dff52f 100644 +index d9228513f08ba3369b34697115e572a2c5618e88..565e6af708ff604d8d15b3537ed668e2f6b579e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -424,6 +424,11 @@ public class PurpurWorldConfig { +@@ -425,6 +425,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0120-Striders-give-saddle-back.patch b/patches/server/0120-Striders-give-saddle-back.patch index 525ab1b4e..e7729696d 100644 --- a/patches/server/0120-Striders-give-saddle-back.patch +++ b/patches/server/0120-Striders-give-saddle-back.patch @@ -29,10 +29,10 @@ index 93dca4758ed995373fe1585930f225604a4153fa..4c077c94b654f54465ece2aa45c5ead0 if (!this.level().isClientSide) { player.startRiding(this); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fc94719827a3d8dde4aa18de3a72a35ab5dff52f..3cf6841b12864797972ab3be9faf3d59b4cdf3ae 100644 +index 565e6af708ff604d8d15b3537ed668e2f6b579e8..ffc67f25e6a73349f827917178d5941e26d44ca9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1716,6 +1716,7 @@ public class PurpurWorldConfig { +@@ -1717,6 +1717,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index fc94719827a3d8dde4aa18de3a72a35ab5dff52f..3cf6841b12864797972ab3be9faf3d59 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1727,6 +1728,7 @@ public class PurpurWorldConfig { +@@ -1728,6 +1729,7 @@ public class PurpurWorldConfig { } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); diff --git a/patches/server/0122-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0122-Full-netherite-armor-grants-fire-resistance.patch index f3b3b67cb..2ca53a492 100644 --- a/patches/server/0122-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0122-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index fa2a0cc24bbe31abd49ce0f3f41bab2aa5d9c81f..04e816f01db7d2de7ffa9bbaaa72daad protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3cf6841b12864797972ab3be9faf3d59b4cdf3ae..3252fe3a76879939256a41a816b95f5c3ec3d65e 100644 +index ffc67f25e6a73349f827917178d5941e26d44ca9..4fb9e2e4d00ba3b9621d780e7c46ec17d19670d4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -296,6 +296,19 @@ public class PurpurWorldConfig { +@@ -297,6 +297,19 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch index bff822b0f..a2ef9fae9 100644 --- a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch @@ -374,10 +374,10 @@ index 1942649e868fc985a488034c411a6721595ecc67..7495e0e8beedad59fff24ebf189b58b3 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b69695aa7 100644 +index 4fb9e2e4d00ba3b9621d780e7c46ec17d19670d4..d5838c1181f1fac4f094690d70b2309c97121c58 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -116,8 +116,11 @@ public class PurpurWorldConfig { +@@ -117,8 +117,11 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = false; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -389,7 +389,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -129,8 +132,11 @@ public class PurpurWorldConfig { +@@ -130,8 +133,11 @@ public class PurpurWorldConfig { boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -401,7 +401,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); -@@ -449,9 +455,11 @@ public class PurpurWorldConfig { +@@ -450,9 +456,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -413,7 +413,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -476,6 +484,11 @@ public class PurpurWorldConfig { +@@ -477,6 +485,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -425,7 +425,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -505,10 +518,12 @@ public class PurpurWorldConfig { +@@ -506,10 +519,12 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -438,7 +438,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public int waterInfiniteRequiredSources = 2; -@@ -742,6 +757,7 @@ public class PurpurWorldConfig { +@@ -743,6 +758,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -446,7 +446,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -754,6 +770,7 @@ public class PurpurWorldConfig { +@@ -755,6 +771,7 @@ public class PurpurWorldConfig { creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); @@ -454,7 +454,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean dolphinRidable = false; -@@ -848,6 +865,7 @@ public class PurpurWorldConfig { +@@ -849,6 +866,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -462,7 +462,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -864,6 +882,7 @@ public class PurpurWorldConfig { +@@ -865,6 +883,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -470,7 +470,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean endermanRidable = false; -@@ -872,6 +891,7 @@ public class PurpurWorldConfig { +@@ -873,6 +892,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -478,7 +478,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -884,6 +904,7 @@ public class PurpurWorldConfig { +@@ -885,6 +905,7 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); @@ -486,7 +486,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean endermiteRidable = false; -@@ -906,6 +927,7 @@ public class PurpurWorldConfig { +@@ -907,6 +928,7 @@ public class PurpurWorldConfig { public boolean evokerRidableInWater = true; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; @@ -494,7 +494,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -916,6 +938,7 @@ public class PurpurWorldConfig { +@@ -917,6 +939,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -502,7 +502,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean foxRidable = false; -@@ -924,6 +947,7 @@ public class PurpurWorldConfig { +@@ -925,6 +948,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -510,7 +510,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -936,6 +960,7 @@ public class PurpurWorldConfig { +@@ -937,6 +961,7 @@ public class PurpurWorldConfig { foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); @@ -518,7 +518,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean frogRidable = false; -@@ -1383,6 +1408,7 @@ public class PurpurWorldConfig { +@@ -1384,6 +1409,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = true; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; @@ -526,7 +526,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1393,6 +1419,7 @@ public class PurpurWorldConfig { +@@ -1394,6 +1420,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -534,7 +534,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean piglinBruteRidable = false; -@@ -1415,6 +1442,7 @@ public class PurpurWorldConfig { +@@ -1416,6 +1443,7 @@ public class PurpurWorldConfig { public boolean pillagerRidableInWater = true; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; @@ -542,7 +542,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1425,6 +1453,7 @@ public class PurpurWorldConfig { +@@ -1426,6 +1454,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -550,7 +550,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean polarBearRidable = false; -@@ -1471,6 +1500,7 @@ public class PurpurWorldConfig { +@@ -1472,6 +1501,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -558,7 +558,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1484,12 +1514,14 @@ public class PurpurWorldConfig { +@@ -1485,12 +1515,14 @@ public class PurpurWorldConfig { rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); @@ -573,7 +573,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1500,6 +1532,7 @@ public class PurpurWorldConfig { +@@ -1501,6 +1533,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -581,7 +581,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean salmonRidable = false; -@@ -1521,6 +1554,7 @@ public class PurpurWorldConfig { +@@ -1522,6 +1555,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -589,7 +589,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1532,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1533,6 +1567,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -597,7 +597,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean shulkerRidable = false; -@@ -1554,6 +1589,7 @@ public class PurpurWorldConfig { +@@ -1555,6 +1590,7 @@ public class PurpurWorldConfig { public boolean silverfishRidableInWater = true; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; @@ -605,7 +605,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1564,6 +1600,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1601,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -613,7 +613,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean skeletonRidable = false; -@@ -1640,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1641,6 +1678,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -621,7 +621,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1657,6 +1695,7 @@ public class PurpurWorldConfig { +@@ -1658,6 +1696,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -629,7 +629,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean snifferRidable = false; -@@ -1843,6 +1882,7 @@ public class PurpurWorldConfig { +@@ -1844,6 +1883,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1859,6 +1899,7 @@ public class PurpurWorldConfig { +@@ -1860,6 +1900,7 @@ public class PurpurWorldConfig { villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -645,7 +645,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean vindicatorRidable = false; -@@ -1931,6 +1972,7 @@ public class PurpurWorldConfig { +@@ -1932,6 +1973,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1948,6 +1990,7 @@ public class PurpurWorldConfig { +@@ -1949,6 +1991,7 @@ public class PurpurWorldConfig { witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); @@ -661,7 +661,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b } public boolean witherSkeletonRidable = false; -@@ -2019,6 +2062,7 @@ public class PurpurWorldConfig { +@@ -2020,6 +2063,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2034,6 +2078,7 @@ public class PurpurWorldConfig { +@@ -2035,6 +2079,7 @@ public class PurpurWorldConfig { zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); diff --git a/patches/server/0125-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0125-Config-to-allow-Note-Block-sounds-when-blocked.patch index 7cfad67b4..b301d6fed 100644 --- a/patches/server/0125-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0125-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -9,7 +9,7 @@ Normally, the sounds will only play when the block directly above is air. With this patch enabled, players can place any block above the Note Block and it will still work. diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -index 6bc29eeb5771a3dc9aa23c7d184c895717797b36..244857755f269eedd57d1c8d4657b4b4b75de2e5 100644 +index e46d84750bdd7c940f400efda226e12a3fdc3848..6343cd0c33cafb30225cfae17ea1cf15859073b1 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java @@ -87,7 +87,7 @@ public class NoteBlock extends Block { @@ -22,10 +22,10 @@ index 6bc29eeb5771a3dc9aa23c7d184c895717797b36..244857755f269eedd57d1c8d4657b4b4 // org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, pos, state.getValue(NoteBlock.INSTRUMENT), state.getValue(NoteBlock.NOTE)); // if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 63c24ce12c9b564404aaaff7e185885b69695aa7..db63b9f52f98bc893d187335e4b53368709fb495 100644 +index d5838c1181f1fac4f094690d70b2309c97121c58..ec636cb8030645d27af981e03d5a5dd1079ebd1b 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 { +@@ -120,6 +120,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index 63c24ce12c9b564404aaaff7e185885b69695aa7..db63b9f52f98bc893d187335e4b53368 public boolean persistentDroppableEntityDisplayNames = true; public boolean projectilesBypassMobGriefing = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -135,6 +136,7 @@ public class PurpurWorldConfig { +@@ -136,6 +137,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0126-Add-EntityTeleportHinderedEvent.patch b/patches/server/0126-Add-EntityTeleportHinderedEvent.patch index 3ee4ff584..7956e89b1 100644 --- a/patches/server/0126-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0126-Add-EntityTeleportHinderedEvent.patch @@ -104,10 +104,10 @@ index 4a775ffe8880c90def23e421fd3de17f9440f728..ee2ce224defb5174f112ab25d7f470e2 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index db63b9f52f98bc893d187335e4b53368709fb495..b32d2e03de557521af596cc8e7ea05c3d00c1ee6 100644 +index ec636cb8030645d27af981e03d5a5dd1079ebd1b..5590d2a68e395686d9208c833d642df7ed17a546 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -118,6 +118,7 @@ public class PurpurWorldConfig { +@@ -119,6 +119,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -115,7 +115,7 @@ index db63b9f52f98bc893d187335e4b53368709fb495..b32d2e03de557521af596cc8e7ea05c3 public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; -@@ -135,6 +136,7 @@ public class PurpurWorldConfig { +@@ -136,6 +137,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); diff --git a/patches/server/0127-Farmland-trampling-changes.patch b/patches/server/0127-Farmland-trampling-changes.patch index 26777b1f0..994b9e105 100644 --- a/patches/server/0127-Farmland-trampling-changes.patch +++ b/patches/server/0127-Farmland-trampling-changes.patch @@ -37,10 +37,10 @@ index e7b5f54d2fc53878e9466ccca972df21f10a7d67..56e66fcd840d0d3681ba671d1ffc51b2 if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState())) { return; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b32d2e03de557521af596cc8e7ea05c3d00c1ee6..71d7ce7154d10f4fba78114583f560492492f2ae 100644 +index 5590d2a68e395686d9208c833d642df7ed17a546..6544afaea0c4aaf8c7d07d5e751b73f03c9bad5c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -462,10 +462,16 @@ public class PurpurWorldConfig { +@@ -463,10 +463,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0128-Movement-options-for-armor-stands.patch b/patches/server/0128-Movement-options-for-armor-stands.patch index e16d6e7c9..29c3a9f3d 100644 --- a/patches/server/0128-Movement-options-for-armor-stands.patch +++ b/patches/server/0128-Movement-options-for-armor-stands.patch @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c565d863808a9facd561fb9704c2a9ce4ba2d5e2..168a906927ecb054c7dede2ceafa52bf80ebcace 100644 +index 9be349874c40722f05ad5b81e62dcd0098acc7c4..d9a206106cc25be50d7d34cbe7031139a0d5ab83 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1874,7 +1874,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -66,10 +66,10 @@ index 76222084727c269d376d0df5702204c0bdf59d81..b48a3d318a14889c68a1de5c1997b109 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71d7ce7154d10f4fba78114583f560492492f2ae..ab65b591d900e5e0681c37647f2c1c8fb56b6429 100644 +index 6544afaea0c4aaf8c7d07d5e751b73f03c9bad5c..a99f9abfeaa6bf13fcd03beaf6a8a49c4f3d7ee4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,10 +100,16 @@ public class PurpurWorldConfig { +@@ -101,10 +101,16 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = true; public boolean armorstandFixNametags = false; diff --git a/patches/server/0129-Fix-stuck-in-portals.patch b/patches/server/0129-Fix-stuck-in-portals.patch index b2fe5929d..afa63737f 100644 --- a/patches/server/0129-Fix-stuck-in-portals.patch +++ b/patches/server/0129-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6408bc1749c08fe5255c054bf4342e0870db2a20..7c1b92611f175156116554b5d33636ecc888701d 100644 +index acee9e7e636d2e65a3bf32bbf5aae5170687f4a4..c8c51b8365e5b0129c7cd925f759e4cefc11d021 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1271,6 +1271,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 6408bc1749c08fe5255c054bf4342e0870db2a20..7c1b92611f175156116554b5d33636ec // CraftBukkit end this.setServerLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 168a906927ecb054c7dede2ceafa52bf80ebcace..a9bccae1837004444469965ebd25910407aa886a 100644 +index d9a206106cc25be50d7d34cbe7031139a0d5ab83..1dbbfd63d25597830146e40570051dfabe956901 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3058,12 +3058,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -37,10 +37,10 @@ index 168a906927ecb054c7dede2ceafa52bf80ebcace..a9bccae1837004444469965ebd259104 this.isInsidePortal = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ab65b591d900e5e0681c37647f2c1c8fb56b6429..e3d32488340fe82a5f005ce7818bb610fa7ad66e 100644 +index a99f9abfeaa6bf13fcd03beaf6a8a49c4f3d7ee4..0b355dfaecafead7f11a7d55aaaf1e8e208a56fc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -336,6 +336,7 @@ public class PurpurWorldConfig { +@@ -337,6 +337,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index ab65b591d900e5e0681c37647f2c1c8fb56b6429..e3d32488340fe82a5f005ce7818bb610 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -353,6 +354,7 @@ public class PurpurWorldConfig { +@@ -354,6 +355,7 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); diff --git a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch index 2240c0bbd..0ebabc641 100644 --- a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch @@ -126,7 +126,7 @@ index f9cce30eef4a5bffeb27c48a6c7ee361803560c5..8d714c029cf3b62af1ff8140a82ed3ae protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index f7d5ad85eccedd30209e758aa52c24010531ec48..ac507f0b030a8f0cc8c67240062b4b9d52edaa64 100644 +index 079fd78528377ee4236fb2e7189a5f0fc5ec4fb3..77746eeffdc612793a6c907f222753bce5cd0ed4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -163,6 +163,11 @@ public class Dolphin extends WaterAnimal { @@ -286,7 +286,7 @@ index 8b5bf8ef4481ccc829d1a39c0921941581b2f045..ef3d0bbbeb6aa736f35c26066a1473c7 protected void defineSynchedData() { super.defineSynchedData(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index c08b854da55a7b06147b627955cd1f94ccc65325..3a30a04644cbc21729c4dbb65e3fa5a95e3bed6f 100644 +index 0187af6c3380c1880ae1e3b8982b1543ae9da4a5..8efdd83719bc314f6c343e6200a0c824dbebd6bc 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -147,6 +147,11 @@ public class Rabbit extends Animal implements VariantHolder { @@ -571,7 +571,7 @@ index 2b0aac1e4291549efa6391cb3b41492184c9aeda..f90b0ae4678da2ffa7d0a693003e0519 return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 9fb3fffd53f37b06811de6907a71e9fd9f4eb2b8..6fdcfff8f99926b4f53d3efde7a10b88a8ff900b 100644 +index 17432b434c899a4d075e4619b4a2bfe3d5761b49..6056180cf792534b450cb00977b5f7bc011d0ae4 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -117,6 +117,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -625,7 +625,7 @@ index 2f7328286399a556f5a3862d71f2c6931f82d9d1..aed77678edfeeeb646804a1c3b32c4ae public boolean doHurtTarget(Entity target) { if (super.doHurtTarget(target)) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 0ef939a6bc9c0c491c0b71799ea583cb76c6d2fb..fd46c04f4ff53c44d6605e1af561ef9c9db38b4c 100644 +index 5bfeb39a23a72f57523a3c2db1d79c7aef70eb02..e8191f0df3420d5a531cf226547a177732ff65ea 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -263,6 +263,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -673,7 +673,7 @@ index 48c28b5177c26c8ab07bb4960a71cddb7d4f543d..b494d5689beb19d621f5d7c9c22d84e1 return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 488296bee4ae01ef139e02ab0d3580147e001715..69e78ed096fbd23151d9073ddb79079235c36a26 100644 +index 65a6073a976ce0924ce3a9c7a34253b7e5a9fcec..d4d4ad5dfa776a39eabb840ed5b49acb8d37f587 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -93,7 +93,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -855,7 +855,7 @@ index 6a6349c7002439965422aa4979682b4ce6dfba1e..1f64dc8442de75447c17ae4fd5483345 protected void registerGoals() { super.registerGoals(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 34d259ae3dbaefdb4a7e2fffd63d72b8b247f053..756bcc3b5489a8af1a9b9ef403fdcd7b39b07693 100644 +index ab13d20dda5a8af471fd459950e7c3e2215e59db..d56e80014621dbd7e445f2f753807bd2b751310d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -96,6 +96,11 @@ public class Ravager extends Raider { @@ -887,7 +887,7 @@ index 7d96ba5adeddf52ed712e320d5f56a37f30e138a..27b05a4657ba201096973640d7a8cbab protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 31a48501d59297c51eee9c7bd836ab2d119fe3b7..6bdaec8e082c65959f2ee1cfe4257ba0d64bd8fa 100644 +index 8f813469ece9f57b19335a155e97d73ed8ce1478..767457beee12b01ff96c208555e39940d25806db 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java @@ -67,6 +67,11 @@ public class Silverfish extends Monster { @@ -1181,7 +1181,7 @@ index 605171aedb4f54dcd16837ad1e36097653a26ab6..01a1732ca13300b60979d250ebf156ca public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 41ddf073ecb8ea97cca8021390500d65866488a5..e2a9179bb7a5ecbc31d98a2410a09f5e2107234b 100644 +index 7413f90dfcb68476f7d514607f38a8965dfa6fd0..5c6f1d3ffa2a2b6990d2406b14679e8286f60729 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -93,6 +93,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1197,10 +1197,10 @@ index 41ddf073ecb8ea97cca8021390500d65866488a5..e2a9179bb7a5ecbc31d98a2410a09f5e 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 e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe9536140422f75df3 100644 +index 0b355dfaecafead7f11a7d55aaaf1e8e208a56fc..ac2d30baa7b8111e0f629b1160b6d252ab09b1c4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -573,11 +573,13 @@ public class PurpurWorldConfig { +@@ -574,11 +574,13 @@ public class PurpurWorldConfig { public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1214,7 +1214,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean batRidable = false; -@@ -592,6 +594,7 @@ public class PurpurWorldConfig { +@@ -593,6 +595,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1222,7 +1222,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -610,6 +613,7 @@ public class PurpurWorldConfig { +@@ -611,6 +614,7 @@ public class PurpurWorldConfig { batArmor = getDouble("mobs.bat.attributes.armor", batArmor); batArmorToughness = getDouble("mobs.bat.attributes.armor_toughness", batArmorToughness); batAttackKnockback = getDouble("mobs.bat.attributes.attack_knockback", batAttackKnockback); @@ -1230,7 +1230,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean beeRidable = false; -@@ -618,6 +622,7 @@ public class PurpurWorldConfig { +@@ -619,6 +623,7 @@ public class PurpurWorldConfig { public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1238,7 +1238,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -630,6 +635,7 @@ public class PurpurWorldConfig { +@@ -631,6 +636,7 @@ public class PurpurWorldConfig { } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); @@ -1246,7 +1246,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean blazeRidable = false; -@@ -637,6 +643,7 @@ public class PurpurWorldConfig { +@@ -638,6 +644,7 @@ public class PurpurWorldConfig { public boolean blazeControllable = true; public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; @@ -1254,7 +1254,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -648,6 +655,7 @@ public class PurpurWorldConfig { +@@ -649,6 +656,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1262,7 +1262,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean camelRidableInWater = false; -@@ -678,6 +686,7 @@ public class PurpurWorldConfig { +@@ -679,6 +687,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; @@ -1270,7 +1270,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -697,12 +706,14 @@ public class PurpurWorldConfig { +@@ -698,12 +707,14 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { catDefaultCollarColor = DyeColor.RED; } @@ -1285,7 +1285,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -713,6 +724,7 @@ public class PurpurWorldConfig { +@@ -714,6 +725,7 @@ public class PurpurWorldConfig { set("mobs.cave_spider.attributes.max_health", oldValue); } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); @@ -1293,7 +1293,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean chickenRidable = false; -@@ -721,6 +733,7 @@ public class PurpurWorldConfig { +@@ -722,6 +734,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1301,7 +1301,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -733,11 +746,13 @@ public class PurpurWorldConfig { +@@ -734,11 +747,13 @@ public class PurpurWorldConfig { chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); @@ -1315,7 +1315,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -747,6 +762,7 @@ public class PurpurWorldConfig { +@@ -748,6 +763,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1323,7 +1323,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean cowRidable = false; -@@ -755,6 +771,7 @@ public class PurpurWorldConfig { +@@ -756,6 +772,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1331,7 +1331,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -767,6 +784,7 @@ public class PurpurWorldConfig { +@@ -768,6 +785,7 @@ public class PurpurWorldConfig { cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); @@ -1339,7 +1339,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean creeperRidable = false; -@@ -776,6 +794,7 @@ public class PurpurWorldConfig { +@@ -777,6 +795,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1347,7 +1347,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -789,6 +808,7 @@ public class PurpurWorldConfig { +@@ -790,6 +809,7 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); @@ -1355,7 +1355,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean dolphinRidable = false; -@@ -798,6 +818,7 @@ public class PurpurWorldConfig { +@@ -799,6 +819,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1363,7 +1363,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -811,6 +832,7 @@ public class PurpurWorldConfig { +@@ -812,6 +833,7 @@ public class PurpurWorldConfig { } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); @@ -1371,7 +1371,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean donkeyRidableInWater = false; -@@ -821,6 +843,7 @@ public class PurpurWorldConfig { +@@ -822,6 +844,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1379,7 +1379,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -837,6 +860,7 @@ public class PurpurWorldConfig { +@@ -838,6 +861,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); @@ -1387,7 +1387,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean drownedRidable = false; -@@ -847,6 +871,7 @@ public class PurpurWorldConfig { +@@ -848,6 +872,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1395,7 +1395,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -861,11 +886,13 @@ public class PurpurWorldConfig { +@@ -862,11 +887,13 @@ public class PurpurWorldConfig { drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby); drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); @@ -1409,7 +1409,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -875,6 +902,7 @@ public class PurpurWorldConfig { +@@ -876,6 +903,7 @@ public class PurpurWorldConfig { set("mobs.elder_guardian.attributes.max_health", oldValue); } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); @@ -1417,7 +1417,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean enderDragonRidable = false; -@@ -884,6 +912,7 @@ public class PurpurWorldConfig { +@@ -885,6 +913,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1425,7 +1425,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -901,6 +930,7 @@ public class PurpurWorldConfig { +@@ -902,6 +931,7 @@ public class PurpurWorldConfig { enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); @@ -1433,7 +1433,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean endermanRidable = false; -@@ -910,6 +940,7 @@ public class PurpurWorldConfig { +@@ -911,6 +941,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1441,7 +1441,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -923,12 +954,14 @@ public class PurpurWorldConfig { +@@ -924,12 +955,14 @@ public class PurpurWorldConfig { endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing); @@ -1456,7 +1456,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -939,6 +972,7 @@ public class PurpurWorldConfig { +@@ -940,6 +973,7 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1464,7 +1464,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean evokerRidable = false; -@@ -946,6 +980,7 @@ public class PurpurWorldConfig { +@@ -947,6 +981,7 @@ public class PurpurWorldConfig { public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; @@ -1472,7 +1472,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -957,6 +992,7 @@ public class PurpurWorldConfig { +@@ -958,6 +993,7 @@ public class PurpurWorldConfig { } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); @@ -1480,7 +1480,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean foxRidable = false; -@@ -966,6 +1002,7 @@ public class PurpurWorldConfig { +@@ -967,6 +1003,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1488,7 +1488,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -979,6 +1016,7 @@ public class PurpurWorldConfig { +@@ -980,6 +1017,7 @@ public class PurpurWorldConfig { foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); @@ -1496,7 +1496,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean frogRidable = false; -@@ -999,6 +1037,7 @@ public class PurpurWorldConfig { +@@ -1000,6 +1038,7 @@ public class PurpurWorldConfig { public boolean ghastControllable = true; public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; @@ -1504,7 +1504,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1010,6 +1049,7 @@ public class PurpurWorldConfig { +@@ -1011,6 +1050,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1512,7 +1512,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean giantRidable = false; -@@ -1022,6 +1062,7 @@ public class PurpurWorldConfig { +@@ -1023,6 +1063,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1520,7 +1520,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1042,17 +1083,20 @@ public class PurpurWorldConfig { +@@ -1043,17 +1084,20 @@ public class PurpurWorldConfig { giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); @@ -1541,7 +1541,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean goatRidable = false; -@@ -1060,17 +1104,20 @@ public class PurpurWorldConfig { +@@ -1061,17 +1105,20 @@ public class PurpurWorldConfig { public boolean goatControllable = true; public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; @@ -1562,7 +1562,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1080,6 +1127,7 @@ public class PurpurWorldConfig { +@@ -1081,6 +1128,7 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1570,7 +1570,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean hoglinRidable = false; -@@ -1087,6 +1135,7 @@ public class PurpurWorldConfig { +@@ -1088,6 +1136,7 @@ public class PurpurWorldConfig { public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; @@ -1578,7 +1578,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1098,6 +1147,7 @@ public class PurpurWorldConfig { +@@ -1099,6 +1148,7 @@ public class PurpurWorldConfig { } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); @@ -1586,7 +1586,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean horseRidableInWater = false; -@@ -1108,6 +1158,7 @@ public class PurpurWorldConfig { +@@ -1109,6 +1159,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1594,7 +1594,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1124,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1125,6 +1176,7 @@ public class PurpurWorldConfig { horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); @@ -1602,7 +1602,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean huskRidable = false; -@@ -1134,6 +1186,7 @@ public class PurpurWorldConfig { +@@ -1135,6 +1187,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1610,7 +1610,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1148,6 +1201,7 @@ public class PurpurWorldConfig { +@@ -1149,6 +1202,7 @@ public class PurpurWorldConfig { huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby); huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); @@ -1618,7 +1618,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean illusionerRidable = false; -@@ -1156,6 +1210,7 @@ public class PurpurWorldConfig { +@@ -1157,6 +1211,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1626,7 +1626,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1172,6 +1227,7 @@ public class PurpurWorldConfig { +@@ -1173,6 +1228,7 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1634,7 +1634,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean ironGolemRidable = false; -@@ -1179,6 +1235,7 @@ public class PurpurWorldConfig { +@@ -1180,6 +1236,7 @@ public class PurpurWorldConfig { public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -1642,7 +1642,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1190,6 +1247,7 @@ public class PurpurWorldConfig { +@@ -1191,6 +1248,7 @@ public class PurpurWorldConfig { set("mobs.iron_golem.attributes.max_health", oldValue); } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); @@ -1650,7 +1650,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean llamaRidable = false; -@@ -1202,6 +1260,7 @@ public class PurpurWorldConfig { +@@ -1203,6 +1261,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1658,7 +1658,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1220,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1221,6 +1280,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); @@ -1666,7 +1666,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean magmaCubeRidable = false; -@@ -1229,6 +1289,7 @@ public class PurpurWorldConfig { +@@ -1230,6 +1290,7 @@ public class PurpurWorldConfig { public String magmaCubeAttackDamage = "size"; public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1242,6 +1303,7 @@ public class PurpurWorldConfig { +@@ -1243,6 +1304,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean mooshroomRidable = false; -@@ -1249,6 +1311,7 @@ public class PurpurWorldConfig { +@@ -1250,6 +1312,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1260,6 +1323,7 @@ public class PurpurWorldConfig { +@@ -1261,6 +1324,7 @@ public class PurpurWorldConfig { } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); @@ -1698,7 +1698,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean muleRidableInWater = false; -@@ -1270,6 +1334,7 @@ public class PurpurWorldConfig { +@@ -1271,6 +1335,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1286,6 +1351,7 @@ public class PurpurWorldConfig { +@@ -1287,6 +1352,7 @@ public class PurpurWorldConfig { muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); @@ -1714,7 +1714,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean ocelotRidable = false; -@@ -1293,6 +1359,7 @@ public class PurpurWorldConfig { +@@ -1294,6 +1360,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1304,6 +1371,7 @@ public class PurpurWorldConfig { +@@ -1305,6 +1372,7 @@ public class PurpurWorldConfig { } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); @@ -1730,7 +1730,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean pandaRidable = false; -@@ -1311,6 +1379,7 @@ public class PurpurWorldConfig { +@@ -1312,6 +1380,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1322,6 +1391,7 @@ public class PurpurWorldConfig { +@@ -1323,6 +1392,7 @@ public class PurpurWorldConfig { } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); @@ -1746,7 +1746,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean parrotRidable = false; -@@ -1329,6 +1399,7 @@ public class PurpurWorldConfig { +@@ -1330,6 +1400,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1340,6 +1411,7 @@ public class PurpurWorldConfig { +@@ -1341,6 +1412,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean phantomRidable = false; -@@ -1366,6 +1438,7 @@ public class PurpurWorldConfig { +@@ -1367,6 +1439,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1400,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1401,6 +1474,7 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); @@ -1778,7 +1778,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean pigRidable = false; -@@ -1408,6 +1482,7 @@ public class PurpurWorldConfig { +@@ -1409,6 +1483,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1420,6 +1495,7 @@ public class PurpurWorldConfig { +@@ -1421,6 +1496,7 @@ public class PurpurWorldConfig { pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); @@ -1794,7 +1794,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean piglinRidable = false; -@@ -1427,6 +1503,7 @@ public class PurpurWorldConfig { +@@ -1428,6 +1504,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1438,12 +1515,14 @@ public class PurpurWorldConfig { +@@ -1439,12 +1516,14 @@ public class PurpurWorldConfig { } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); @@ -1817,7 +1817,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1454,6 +1533,7 @@ public class PurpurWorldConfig { +@@ -1455,6 +1534,7 @@ public class PurpurWorldConfig { set("mobs.piglin_brute.attributes.max_health", oldValue); } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); @@ -1825,7 +1825,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean pillagerRidable = false; -@@ -1461,6 +1541,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1542,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1472,6 +1553,7 @@ public class PurpurWorldConfig { +@@ -1473,6 +1554,7 @@ public class PurpurWorldConfig { } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); @@ -1841,7 +1841,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean polarBearRidable = false; -@@ -1481,6 +1563,7 @@ public class PurpurWorldConfig { +@@ -1482,6 +1564,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1495,11 +1578,13 @@ public class PurpurWorldConfig { +@@ -1496,11 +1579,13 @@ public class PurpurWorldConfig { Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -1863,7 +1863,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1509,6 +1594,7 @@ public class PurpurWorldConfig { +@@ -1510,6 +1595,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean rabbitRidable = false; -@@ -1519,6 +1605,7 @@ public class PurpurWorldConfig { +@@ -1520,6 +1606,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1533,6 +1620,7 @@ public class PurpurWorldConfig { +@@ -1534,6 +1621,7 @@ public class PurpurWorldConfig { rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); @@ -1887,7 +1887,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean ravagerRidable = false; -@@ -1540,6 +1628,7 @@ public class PurpurWorldConfig { +@@ -1541,6 +1629,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1551,11 +1640,13 @@ public class PurpurWorldConfig { +@@ -1552,11 +1641,13 @@ public class PurpurWorldConfig { } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); @@ -1909,7 +1909,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1565,6 +1656,7 @@ public class PurpurWorldConfig { +@@ -1566,6 +1657,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean sheepRidable = false; -@@ -1573,6 +1665,7 @@ public class PurpurWorldConfig { +@@ -1574,6 +1666,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1585,12 +1678,14 @@ public class PurpurWorldConfig { +@@ -1586,12 +1679,14 @@ public class PurpurWorldConfig { sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); @@ -1940,7 +1940,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1601,6 +1696,7 @@ public class PurpurWorldConfig { +@@ -1602,6 +1697,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean silverfishRidable = false; -@@ -1608,6 +1704,7 @@ public class PurpurWorldConfig { +@@ -1609,6 +1705,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1619,12 +1716,14 @@ public class PurpurWorldConfig { +@@ -1620,12 +1717,14 @@ public class PurpurWorldConfig { } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); @@ -1971,7 +1971,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1635,6 +1734,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1735,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean skeletonHorseRidableInWater = true; -@@ -1645,6 +1745,7 @@ public class PurpurWorldConfig { +@@ -1646,6 +1746,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1660,6 +1761,7 @@ public class PurpurWorldConfig { +@@ -1661,6 +1762,7 @@ public class PurpurWorldConfig { skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax); skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); @@ -1995,7 +1995,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean slimeRidable = false; -@@ -1669,6 +1771,7 @@ public class PurpurWorldConfig { +@@ -1670,6 +1772,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1682,6 +1785,7 @@ public class PurpurWorldConfig { +@@ -1683,6 +1786,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean snowGolemRidable = false; -@@ -1696,6 +1800,7 @@ public class PurpurWorldConfig { +@@ -1697,6 +1801,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1714,6 +1819,7 @@ public class PurpurWorldConfig { +@@ -1715,6 +1820,7 @@ public class PurpurWorldConfig { snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); @@ -2027,7 +2027,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean snifferRidable = false; -@@ -1735,6 +1841,7 @@ public class PurpurWorldConfig { +@@ -1736,6 +1842,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1747,12 +1854,14 @@ public class PurpurWorldConfig { +@@ -1748,12 +1855,14 @@ public class PurpurWorldConfig { squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); @@ -2050,7 +2050,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1763,12 +1872,14 @@ public class PurpurWorldConfig { +@@ -1764,12 +1873,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1779,6 +1890,7 @@ public class PurpurWorldConfig { +@@ -1780,6 +1891,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean striderRidable = false; -@@ -1787,6 +1899,7 @@ public class PurpurWorldConfig { +@@ -1788,6 +1900,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1799,6 +1912,7 @@ public class PurpurWorldConfig { +@@ -1800,6 +1913,7 @@ public class PurpurWorldConfig { striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); @@ -2089,7 +2089,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean tadpoleRidable = false; -@@ -1820,6 +1934,7 @@ public class PurpurWorldConfig { +@@ -1821,6 +1935,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1838,11 +1953,13 @@ public class PurpurWorldConfig { +@@ -1839,11 +1954,13 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); @@ -2111,7 +2111,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1852,6 +1969,7 @@ public class PurpurWorldConfig { +@@ -1853,6 +1970,7 @@ public class PurpurWorldConfig { set("mobs.tropical_fish.attributes.max_health", oldValue); } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); @@ -2119,7 +2119,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean turtleRidable = false; -@@ -1859,6 +1977,7 @@ public class PurpurWorldConfig { +@@ -1860,6 +1978,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1870,6 +1989,7 @@ public class PurpurWorldConfig { +@@ -1871,6 +1990,7 @@ public class PurpurWorldConfig { } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); @@ -2135,7 +2135,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean vexRidable = false; -@@ -1877,6 +1997,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1998,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1888,6 +2009,7 @@ public class PurpurWorldConfig { +@@ -1889,6 +2010,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean villagerRidable = false; -@@ -1901,6 +2023,7 @@ public class PurpurWorldConfig { +@@ -1902,6 +2024,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1918,6 +2041,7 @@ public class PurpurWorldConfig { +@@ -1919,6 +2042,7 @@ public class PurpurWorldConfig { villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); @@ -2167,7 +2167,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean vindicatorRidable = false; -@@ -1925,6 +2049,7 @@ public class PurpurWorldConfig { +@@ -1926,6 +2050,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1936,6 +2061,7 @@ public class PurpurWorldConfig { +@@ -1937,6 +2062,7 @@ public class PurpurWorldConfig { } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); @@ -2183,7 +2183,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean wanderingTraderRidable = false; -@@ -1944,6 +2070,7 @@ public class PurpurWorldConfig { +@@ -1945,6 +2071,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1956,6 +2083,7 @@ public class PurpurWorldConfig { +@@ -1957,6 +2084,7 @@ public class PurpurWorldConfig { wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); @@ -2199,7 +2199,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean wardenRidable = false; -@@ -1971,6 +2099,7 @@ public class PurpurWorldConfig { +@@ -1972,6 +2100,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = true; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1981,6 +2110,7 @@ public class PurpurWorldConfig { +@@ -1982,6 +2111,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean witherRidable = false; -@@ -1991,6 +2121,7 @@ public class PurpurWorldConfig { +@@ -1992,6 +2122,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2009,12 +2140,14 @@ public class PurpurWorldConfig { +@@ -2010,12 +2141,14 @@ public class PurpurWorldConfig { witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); @@ -2238,7 +2238,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2025,6 +2158,7 @@ public class PurpurWorldConfig { +@@ -2026,6 +2159,7 @@ public class PurpurWorldConfig { set("mobs.wither_skeleton.attributes.max_health", oldValue); } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); @@ -2246,7 +2246,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean wolfRidable = false; -@@ -2035,6 +2169,7 @@ public class PurpurWorldConfig { +@@ -2036,6 +2170,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2053,12 +2188,14 @@ public class PurpurWorldConfig { +@@ -2054,12 +2189,14 @@ public class PurpurWorldConfig { wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); @@ -2269,7 +2269,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2069,6 +2206,7 @@ public class PurpurWorldConfig { +@@ -2070,6 +2207,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean zombieRidable = false; -@@ -2081,6 +2219,7 @@ public class PurpurWorldConfig { +@@ -2082,6 +2220,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2097,6 +2236,7 @@ public class PurpurWorldConfig { +@@ -2098,6 +2237,7 @@ public class PurpurWorldConfig { zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); @@ -2293,7 +2293,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean zombieHorseRidableInWater = false; -@@ -2108,6 +2248,7 @@ public class PurpurWorldConfig { +@@ -2109,6 +2249,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2124,6 +2265,7 @@ public class PurpurWorldConfig { +@@ -2125,6 +2266,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); @@ -2309,7 +2309,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean zombieVillagerRidable = false; -@@ -2134,6 +2276,7 @@ public class PurpurWorldConfig { +@@ -2135,6 +2277,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2148,6 +2291,7 @@ public class PurpurWorldConfig { +@@ -2149,6 +2292,7 @@ public class PurpurWorldConfig { zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby); zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); @@ -2325,7 +2325,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 } public boolean zombifiedPiglinRidable = false; -@@ -2159,6 +2303,7 @@ public class PurpurWorldConfig { +@@ -2160,6 +2304,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index e3d32488340fe82a5f005ce7818bb610fa7ad66e..cc2a4e764e49106c1d7d9bfe95361404 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2174,5 +2319,6 @@ public class PurpurWorldConfig { +@@ -2175,5 +2320,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); diff --git a/patches/server/0131-Config-to-always-tame-in-Creative.patch b/patches/server/0131-Config-to-always-tame-in-Creative.patch index 82a93f9b9..399851ce0 100644 --- a/patches/server/0131-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0131-Config-to-always-tame-in-Creative.patch @@ -59,10 +59,10 @@ index f3c3db958c359b3b032bd54c7732f16fce108ec3..c967302542eeac0bad33c3b53b7d5b2a this.navigation.stop(); this.setTarget((LivingEntity) null); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cc2a4e764e49106c1d7d9bfe9536140422f75df3..7922c9f96c327dec2394d2432362c26600531a52 100644 +index ac2d30baa7b8111e0f629b1160b6d252ab09b1c4..2dbe2676806eb1d779ad78c0bfc33d836878a690 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -118,6 +118,7 @@ public class PurpurWorldConfig { +@@ -119,6 +119,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index cc2a4e764e49106c1d7d9bfe9536140422f75df3..7922c9f96c327dec2394d2432362c266 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = false; public boolean disableDropsOnCrammingDeath = false; -@@ -136,6 +137,7 @@ public class PurpurWorldConfig { +@@ -137,6 +138,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0132-End-crystal-explosion-options.patch b/patches/server/0132-End-crystal-explosion-options.patch index 63accb94e..be5c9184f 100644 --- a/patches/server/0132-End-crystal-explosion-options.patch +++ b/patches/server/0132-End-crystal-explosion-options.patch @@ -53,10 +53,10 @@ index ef0098e46bda8abc456f2bb5929d874c6aeb8698..564d17bc460e2a04947ff9676fbf4c8b this.onDestroyedBy(source); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7922c9f96c327dec2394d2432362c26600531a52..d8db1521d72ef75eec527a3948a2c0c47bb054fb 100644 +index 2dbe2676806eb1d779ad78c0bfc33d836878a690..2bcd681d93e83eaefe23f017e5451c74823fd7e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -469,6 +469,43 @@ public class PurpurWorldConfig { +@@ -470,6 +470,43 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index a98a2e59d..6ebfedf9b 100644 --- a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -17,7 +17,7 @@ index f90b0ae4678da2ffa7d0a693003e05191d07f4bf..8a8895abe609b3be02aa896c40e4a2a2 } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 953238d5e90cda8b0326ef38dd858a5f90251520..20a322a362fd36310e85e6efb110fff92df4d344 100644 +index 6056180cf792534b450cb00977b5f7bc011d0ae4..257cd3ea1830b46d1c51242cd639c4f0e21c8774 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -731,6 +731,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -29,10 +29,10 @@ index 953238d5e90cda8b0326ef38dd858a5f90251520..20a322a362fd36310e85e6efb110fff9 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d8db1521d72ef75eec527a3948a2c0c47bb054fb..16597dab08d121cabd68e4b5cca94d1cbde5d438 100644 +index 2bcd681d93e83eaefe23f017e5451c74823fd7e8..096b81f19f22a6724b349e7078aa802321413557 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -952,6 +952,7 @@ public class PurpurWorldConfig { +@@ -953,6 +953,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index d8db1521d72ef75eec527a3948a2c0c47bb054fb..16597dab08d121cabd68e4b5cca94d1c private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -970,6 +971,7 @@ public class PurpurWorldConfig { +@@ -971,6 +972,7 @@ public class PurpurWorldConfig { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater); @@ -48,7 +48,7 @@ index d8db1521d72ef75eec527a3948a2c0c47bb054fb..16597dab08d121cabd68e4b5cca94d1c } public boolean endermanRidable = false; -@@ -2161,6 +2163,7 @@ public class PurpurWorldConfig { +@@ -2162,6 +2164,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index d8db1521d72ef75eec527a3948a2c0c47bb054fb..16597dab08d121cabd68e4b5cca94d1c private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2180,6 +2183,7 @@ public class PurpurWorldConfig { +@@ -2181,6 +2184,7 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); diff --git a/patches/server/0134-Dont-run-with-scissors.patch b/patches/server/0134-Dont-run-with-scissors.patch index 9f087f7fd..0dc50fdc5 100644 --- a/patches/server/0134-Dont-run-with-scissors.patch +++ b/patches/server/0134-Dont-run-with-scissors.patch @@ -82,7 +82,7 @@ index 4604f8b38460e9113e966889a679d4547f24aff6..813916852774d6482791989252ecb67b + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c696684d3ed2d5a6266d8add213e80bbc41b8afc..9753aa00f70365ea4e3402cee89fe96b9f2aa6f5 100644 +index 04c8fb96bf347469ab9a0934cc50b7e06767a0ae..d5fb09b5f0f6a72addaa6a3053fa29b47535ca27 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -183,6 +183,7 @@ public class PurpurConfig { @@ -107,10 +107,10 @@ index c696684d3ed2d5a6266d8add213e80bbc41b8afc..9753aa00f70365ea4e3402cee89fe96b public static String serverModName = "Purpur"; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 16597dab08d121cabd68e4b5cca94d1cbde5d438..8ec0a1f82d2dff4860e79b5ff9ecd082e3115677 100644 +index 096b81f19f22a6724b349e7078aa802321413557..e904831cbfbfe15b7b8d3fb60a95f643e73e9beb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -198,6 +198,10 @@ public class PurpurWorldConfig { +@@ -199,6 +199,10 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -121,7 +121,7 @@ index 16597dab08d121cabd68e4b5cca94d1cbde5d438..8ec0a1f82d2dff4860e79b5ff9ecd082 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -235,6 +239,10 @@ public class PurpurWorldConfig { +@@ -236,6 +240,10 @@ public class PurpurWorldConfig { Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(key.toString())); if (item != Items.AIR) itemImmuneToLightning.add(item); }); diff --git a/patches/server/0135-One-Punch-Man.patch b/patches/server/0135-One-Punch-Man.patch index aa145ff66..1306b08e3 100644 --- a/patches/server/0135-One-Punch-Man.patch +++ b/patches/server/0135-One-Punch-Man.patch @@ -30,10 +30,10 @@ index 04b98c7c738682f5c1da27a6873a814eaca5d14b..9a4ac87ae3cc766ba4080cf5b4f3743d if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8ec0a1f82d2dff4860e79b5ff9ecd082e3115677..10c903c09221348be3682fb6472a7b6365d3753c 100644 +index e904831cbfbfe15b7b8d3fb60a95f643e73e9beb..5811fa10f499c213d97fa76249d12197c9585bc3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -347,6 +347,7 @@ public class PurpurWorldConfig { +@@ -348,6 +348,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index 8ec0a1f82d2dff4860e79b5ff9ecd082e3115677..10c903c09221348be3682fb6472a7b63 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -365,6 +366,7 @@ public class PurpurWorldConfig { +@@ -366,6 +367,7 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); diff --git a/patches/server/0136-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0136-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index c3aa5691e..136b0421d 100644 --- a/patches/server/0136-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0136-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,10 +43,10 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f // Paper end if (user instanceof net.minecraft.server.level.ServerPlayer) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 10c903c09221348be3682fb6472a7b6365d3753c..6a3343d5592b6bfabcff07de8f39f03a6ee3c651 100644 +index 5811fa10f499c213d97fa76249d12197c9585bc3..75c66fe3feb853ffe2c852f6826199e0590dfd9a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -202,6 +202,10 @@ public class PurpurWorldConfig { +@@ -203,6 +203,10 @@ public class PurpurWorldConfig { public boolean ignoreScissorsInWater = false; public boolean ignoreScissorsInLava = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index 10c903c09221348be3682fb6472a7b6365d3753c..6a3343d5592b6bfabcff07de8f39f03a private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -243,6 +247,10 @@ public class PurpurWorldConfig { +@@ -244,6 +248,10 @@ public class PurpurWorldConfig { ignoreScissorsInWater = getBoolean("gameplay-mechanics.item.shears.ignore-in-water", ignoreScissorsInWater); ignoreScissorsInLava = getBoolean("gameplay-mechanics.item.shears.ignore-in-lava", ignoreScissorsInLava); scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/server/0137-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0137-Config-to-ignore-nearby-mobs-when-sleeping.patch index 9c6cb3d73..a64db4550 100644 --- a/patches/server/0137-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0137-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 7c1b92611f175156116554b5d33636ecc888701d..14835575d7c8d8cd66ed072feec3c27fb1183de4 100644 +index c8c51b8365e5b0129c7cd925f759e4cefc11d021..6604c6d7da7867da29054d5dd003eb2b19efa051 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1430,7 +1430,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index 7c1b92611f175156116554b5d33636ecc888701d..14835575d7c8d8cd66ed072feec3c27f } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6a3343d5592b6bfabcff07de8f39f03a6ee3c651..18ded931a18138ae8429adc81d897dc01b4c20a5 100644 +index 75c66fe3feb853ffe2c852f6826199e0590dfd9a..d9b2cda4e20c85d5378562dadd0b4a2287477a17 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -356,6 +356,7 @@ public class PurpurWorldConfig { +@@ -357,6 +357,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index 6a3343d5592b6bfabcff07de8f39f03a6ee3c651..18ded931a18138ae8429adc81d897dc0 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -375,6 +376,7 @@ public class PurpurWorldConfig { +@@ -376,6 +377,7 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch index 120b2dcec..5b0b1fefd 100644 --- a/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 69e78ed096fbd23151d9073ddb79079235c36a26..eb87bddf3dfd2d3daa861de8e86d726bbc42eef3 100644 +index d4d4ad5dfa776a39eabb840ed5b49acb8d37f587..ea596b7344f1849a8c6a8d536881c9a8b9cadb86 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -132,7 +132,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -18,10 +18,10 @@ index 69e78ed096fbd23151d9073ddb79079235c36a26..eb87bddf3dfd2d3daa861de8e86d726b } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 18ded931a18138ae8429adc81d897dc01b4c20a5..17ef574eaa670dd5d1729d6535e4a74b8d3c7fdd 100644 +index d9b2cda4e20c85d5378562dadd0b4a2287477a17..11be23755d469d62a744cc5f68f3cf8422f52c87 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1002,6 +1002,8 @@ public class PurpurWorldConfig { +@@ -1003,6 +1003,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 18ded931a18138ae8429adc81d897dc01b4c20a5..17ef574eaa670dd5d1729d6535e4a74b private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1011,11 +1013,17 @@ public class PurpurWorldConfig { +@@ -1012,11 +1014,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index bfd483b83..fa7264206 100644 --- a/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index eb87bddf3dfd2d3daa861de8e86d726bbc42eef3..b78c18c2c6a791539b87b9c0a5947ca0f731755c 100644 +index ea596b7344f1849a8c6a8d536881c9a8b9cadb86..f4bf81ebcc792c8e04fa700e84b13b3b688dbdac 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -269,7 +269,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -20,10 +20,10 @@ index eb87bddf3dfd2d3daa861de8e86d726bbc42eef3..b78c18c2c6a791539b87b9c0a5947ca0 } else { Vec3 vec3d = player.getViewVector(1.0F).normalize(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 17ef574eaa670dd5d1729d6535e4a74b8d3c7fdd..6c285c261456e5a7dffa54be905ae13401945b9f 100644 +index 11be23755d469d62a744cc5f68f3cf8422f52c87..75b2e968086200a42e06d638eab171c0e7331f3d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1004,6 +1004,8 @@ public class PurpurWorldConfig { +@@ -1005,6 +1005,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 17ef574eaa670dd5d1729d6535e4a74b8d3c7fdd..6c285c261456e5a7dffa54be905ae134 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1024,6 +1026,8 @@ public class PurpurWorldConfig { +@@ -1025,6 +1027,8 @@ public class PurpurWorldConfig { endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); diff --git a/patches/server/0141-Tick-fluids-config.patch b/patches/server/0141-Tick-fluids-config.patch index cdddee8cf..1a984c171 100644 --- a/patches/server/0141-Tick-fluids-config.patch +++ b/patches/server/0141-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index bbabe4ad8afcc3a2069f6e9d4a9adcb643266894..55419bd653f7f5391fa13cd15a0b00fb } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6c285c261456e5a7dffa54be905ae13401945b9f..e1e9eb17525c02ed0171cb03477248b613e4ec68 100644 +index 75b2e968086200a42e06d638eab171c0e7331f3d..6d3196d6d069ee85342c6e14b1ca2f58b2e87edf 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 { +@@ -131,6 +131,7 @@ public class PurpurWorldConfig { public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index 6c285c261456e5a7dffa54be905ae13401945b9f..e1e9eb17525c02ed0171cb03477248b6 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -149,6 +150,7 @@ public class PurpurWorldConfig { +@@ -150,6 +151,7 @@ public class PurpurWorldConfig { noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); diff --git a/patches/server/0142-Config-to-disable-Llama-caravans.patch b/patches/server/0142-Config-to-disable-Llama-caravans.patch index 3d65d76d0..b3e7f8bbf 100644 --- a/patches/server/0142-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0142-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index b7450d182ecf10ef17ac9eb3fce04e4334013c91..fac46dd905f9a634cff393494f6ff040 this.caravanHead.caravanTail = this; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e1e9eb17525c02ed0171cb03477248b613e4ec68..2bc71ce8a6a6525934f1885917e8561d94d752c5 100644 +index 6d3196d6d069ee85342c6e14b1ca2f58b2e87edf..750b54e314e9016767ce2bd1ee12dfda84a69399 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1336,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1337,6 +1337,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index e1e9eb17525c02ed0171cb03477248b613e4ec68..2bc71ce8a6a6525934f1885917e8561d private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1355,6 +1356,7 @@ public class PurpurWorldConfig { +@@ -1356,6 +1357,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); diff --git a/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch index e765fc359..2a826e85b 100644 --- a/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death Creepers exploded after being killed in the alpha days. This brings that back. diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index fd46c04f4ff53c44d6605e1af561ef9c9db38b4c..0d9ff20451ed7f82053ffd92538f78653b652dd4 100644 +index e8191f0df3420d5a531cf226547a177732ff65ea..fd3b1e92a626402112bbd371a0ac1264a2c19c32 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -63,6 +63,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -50,10 +50,10 @@ index fd46c04f4ff53c44d6605e1af561ef9c9db38b4c..0d9ff20451ed7f82053ffd92538f7865 private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2bc71ce8a6a6525934f1885917e8561d94d752c5..b240edfb3c059d4e93a4d6c58dc124c8523aac6d 100644 +index 750b54e314e9016767ce2bd1ee12dfda84a69399..a823c680249c8d4e5f0b7d7028b53561ef4aa1f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -856,6 +856,7 @@ public class PurpurWorldConfig { +@@ -857,6 +857,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 2bc71ce8a6a6525934f1885917e8561d94d752c5..b240edfb3c059d4e93a4d6c58dc124c8 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -870,6 +871,7 @@ public class PurpurWorldConfig { +@@ -871,6 +872,7 @@ public class PurpurWorldConfig { creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); diff --git a/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch index 1335eca18..87b329571 100644 --- a/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index 5ba5a510b30917235e135ccda1b7c98cb7dd93ec..373fda589014c71c07170ec6707d5ff6 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b240edfb3c059d4e93a4d6c58dc124c8523aac6d..be3d92b8b5ad6e8b6dc54cf4cdfbae0da4c6cfdb 100644 +index a823c680249c8d4e5f0b7d7028b53561ef4aa1f3..cd8148b7faa523c0a38b3d6a9bab5b142b552f92 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1708,6 +1708,7 @@ public class PurpurWorldConfig { +@@ -1709,6 +1709,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index b240edfb3c059d4e93a4d6c58dc124c8523aac6d..be3d92b8b5ad6e8b6dc54cf4cdfbae0d private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1720,6 +1721,23 @@ public class PurpurWorldConfig { +@@ -1721,6 +1722,23 @@ public class PurpurWorldConfig { ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater); diff --git a/patches/server/0145-Sneak-to-bulk-process-composter.patch b/patches/server/0145-Sneak-to-bulk-process-composter.patch index 5a258c5cb..140cd5b38 100644 --- a/patches/server/0145-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0145-Sneak-to-bulk-process-composter.patch @@ -90,10 +90,10 @@ index 10d3912ef043eefdf89105332e29b0d2bf4a5539..596b77306f690a2298835f0f0fea1abe int i = (Integer) state.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index be3d92b8b5ad6e8b6dc54cf4cdfbae0da4c6cfdb..640db08109dcd0acd1713c360ac0bf4de27cdce8 100644 +index cd8148b7faa523c0a38b3d6a9bab5b142b552f92..1acb97315f3d337ed022d93dbad577d8406357a7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -484,6 +484,11 @@ public class PurpurWorldConfig { +@@ -485,6 +485,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0146-Config-for-skipping-night.patch b/patches/server/0146-Config-for-skipping-night.patch index 33026ff2a..b8f2db305 100644 --- a/patches/server/0146-Config-for-skipping-night.patch +++ b/patches/server/0146-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 0e8452f6a8300992f397fb15db763304d72fe3b9..49c412f46854ee877de1721b08629e8a j = this.levelData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 640db08109dcd0acd1713c360ac0bf4de27cdce8..2991d62374c1db54a4fa4d97b993073254c53074 100644 +index 1acb97315f3d337ed022d93dbad577d8406357a7..955fee5b85ea5efe76c55b79b63db661163f59cc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -359,6 +359,7 @@ public class PurpurWorldConfig { +@@ -360,6 +360,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 640db08109dcd0acd1713c360ac0bf4de27cdce8..2991d62374c1db54a4fa4d97b9930732 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -379,6 +380,7 @@ public class PurpurWorldConfig { +@@ -380,6 +381,7 @@ public class PurpurWorldConfig { playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); diff --git a/patches/server/0147-Add-config-for-villager-trading.patch b/patches/server/0147-Add-config-for-villager-trading.patch index ad6013699..1029b8cf5 100644 --- a/patches/server/0147-Add-config-for-villager-trading.patch +++ b/patches/server/0147-Add-config-for-villager-trading.patch @@ -18,7 +18,7 @@ index 01a1732ca13300b60979d250ebf156ca68bb014f..444dbab9a1c95d1f8bc97e165e530247 } diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index e2a9179bb7a5ecbc31d98a2410a09f5e2107234b..8fd8778e918566504666213a102a7ee2d1ed8b14 100644 +index 5c6f1d3ffa2a2b6990d2406b14679e8286f60729..68d263a7647e395d981014f7cc761fe76fc74cb6 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -149,7 +149,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -31,10 +31,10 @@ index e2a9179bb7a5ecbc31d98a2410a09f5e2107234b..8fd8778e918566504666213a102a7ee2 this.openTradingScreen(player, this.getDisplayName(), 1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2991d62374c1db54a4fa4d97b993073254c53074..a066066c81811d1eb813ec13173cd58efb2ad9df 100644 +index 955fee5b85ea5efe76c55b79b63db661163f59cc..8a6ed1f0122f8fd7e3c25145dfe5f3c1a397fcc2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2128,6 +2128,7 @@ public class PurpurWorldConfig { +@@ -2129,6 +2129,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 2991d62374c1db54a4fa4d97b993073254c53074..a066066c81811d1eb813ec13173cd58e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2146,6 +2147,7 @@ public class PurpurWorldConfig { +@@ -2147,6 +2148,7 @@ public class PurpurWorldConfig { villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); @@ -50,7 +50,7 @@ index 2991d62374c1db54a4fa4d97b993073254c53074..a066066c81811d1eb813ec13173cd58e } public boolean vindicatorRidable = false; -@@ -2175,6 +2177,7 @@ public class PurpurWorldConfig { +@@ -2176,6 +2178,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 2991d62374c1db54a4fa4d97b993073254c53074..a066066c81811d1eb813ec13173cd58e private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2188,6 +2191,7 @@ public class PurpurWorldConfig { +@@ -2189,6 +2192,7 @@ public class PurpurWorldConfig { wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); diff --git a/patches/server/0149-Drowning-Settings.patch b/patches/server/0149-Drowning-Settings.patch index 6265dc0dd..299e7398c 100644 --- a/patches/server/0149-Drowning-Settings.patch +++ b/patches/server/0149-Drowning-Settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a9bccae1837004444469965ebd25910407aa886a..b27e5a27bcc5658fb49846158ab13ea52eb858c4 100644 +index 1dbbfd63d25597830146e40570051dfabe956901..c25cc8cf60906df57e2f87d531c0d5771b8a8d37 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3303,7 +3303,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -40,10 +40,10 @@ index 9a4ac87ae3cc766ba4080cf5b4f3743d13bd6266..217a0082f7f260678253f31e381a4320 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a066066c81811d1eb813ec13173cd58efb2ad9df..05ed02186a442cd64419507c35073a7ccc380a6c 100644 +index 8a6ed1f0122f8fd7e3c25145dfe5f3c1a397fcc2..20af4df5897c52b8dccba22eff80364fcbab39bd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -165,6 +165,15 @@ public class PurpurWorldConfig { +@@ -166,6 +166,15 @@ public class PurpurWorldConfig { nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks); } diff --git a/patches/server/0150-Break-individual-slabs-when-sneaking.patch b/patches/server/0150-Break-individual-slabs-when-sneaking.patch index 097423813..a7a0b39ff 100644 --- a/patches/server/0150-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0150-Break-individual-slabs-when-sneaking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index e85b6f9e4b0695479839a45212c74be9ef44d110..fe207cd67517de05b0da84d55c4218357f0274dc 100644 +index 278c12a450bbeef6f42af7bcf25da42a748ee607..72fa3a9058bac4769c0b7b27fa988cc9b06f3e75 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -398,6 +398,7 @@ public class ServerPlayerGameMode { @@ -47,10 +47,10 @@ index 18b603d646081926343dea108b55d641df1c2c34..370772b1297b78bcc7419684015830a8 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 05ed02186a442cd64419507c35073a7ccc380a6c..6289d9bbf455c22c2260c97974fcda01a3e268b0 100644 +index 20af4df5897c52b8dccba22eff80364fcbab39bd..7dfa8c50044c1f2380a220988526fcb8ed943f3d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -605,6 +605,11 @@ public class PurpurWorldConfig { +@@ -606,6 +606,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch index f85e89fc8..702b2d04d 100644 --- a/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -24,10 +24,10 @@ index 55c245d0dfa369dc6de2197ae37335fba4fae4ae..c9b40515f4c2ff1eedfc9510930c3bae return false; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6289d9bbf455c22c2260c97974fcda01a3e268b0..6e671aea7364de1406ba039398715465ed9ca9e8 100644 +index 7dfa8c50044c1f2380a220988526fcb8ed943f3d..a6e549d9131463b6e1daa91ef70f20c7d494bc99 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -570,6 +570,13 @@ public class PurpurWorldConfig { +@@ -571,6 +571,13 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0152-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0152-Config-to-show-Armor-Stand-arms-on-spawn.patch index 1f2d4cc72..a416e083c 100644 --- a/patches/server/0152-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0152-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to show Armor Stand arms on spawn diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index ffb3ae1d36dda5f521cf3b292d819cb354844806..8ba5701ebec928ba52d88a6671332c80e07f384c 100644 +index b48a3d318a14889c68a1de5c1997b1090aab4029..4c5f20bafe589fbd4a034408edb721ac79bbc666 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java @@ -114,6 +114,7 @@ public class ArmorStand extends LivingEntity { @@ -17,10 +17,10 @@ index ffb3ae1d36dda5f521cf3b292d819cb354844806..8ba5701ebec928ba52d88a6671332c80 public ArmorStand(Level world, double x, double y, double z) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6e671aea7364de1406ba039398715465ed9ca9e8..b82cffe7e61cf9b38d62d44e3bd9a173f08de3ff 100644 +index a6e549d9131463b6e1daa91ef70f20c7d494bc99..6ecc5c76a979a6f51d783b39edc931c7d1b4c9ce 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -103,6 +103,7 @@ public class PurpurWorldConfig { +@@ -104,6 +104,7 @@ public class PurpurWorldConfig { public boolean armorstandMovement = true; public boolean armorstandWaterMovement = true; public boolean armorstandWaterFence = true; @@ -28,7 +28,7 @@ index 6e671aea7364de1406ba039398715465ed9ca9e8..b82cffe7e61cf9b38d62d44e3bd9a173 private void armorstandSettings() { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); -@@ -110,6 +111,7 @@ public class PurpurWorldConfig { +@@ -111,6 +112,7 @@ public class PurpurWorldConfig { armorstandMovement = getBoolean("gameplay-mechanics.armorstand.can-movement-tick", armorstandMovement); armorstandWaterMovement = getBoolean("gameplay-mechanics.armorstand.can-move-in-water", armorstandWaterMovement); armorstandWaterFence = getBoolean("gameplay-mechanics.armorstand.can-move-in-water-over-fence", armorstandWaterFence); diff --git a/patches/server/0153-Option-to-make-doors-require-redstone.patch b/patches/server/0153-Option-to-make-doors-require-redstone.patch index a0bfccb6e..41957604b 100644 --- a/patches/server/0153-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0153-Option-to-make-doors-require-redstone.patch @@ -67,10 +67,10 @@ index c028a7158e41a0754abb8e24dcd647633fbf3fe8..cd65d32f4af016d4937e598c71386a30 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b82cffe7e61cf9b38d62d44e3bd9a173f08de3ff..a89b8de2c5aad1d9b7cade9aa4e15ea1a80444a9 100644 +index 6ecc5c76a979a6f51d783b39edc931c7d1b4c9ce..3af7453995fe6cd27ee4d5d48c08514f81f4da5a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -509,6 +509,16 @@ public class PurpurWorldConfig { +@@ -510,6 +510,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0155-Configurable-sponge-absorption.patch b/patches/server/0155-Configurable-sponge-absorption.patch index ad09eeb92..92ac2d8b9 100644 --- a/patches/server/0155-Configurable-sponge-absorption.patch +++ b/patches/server/0155-Configurable-sponge-absorption.patch @@ -21,10 +21,10 @@ index 4bce895268542531598a01a1bccd8ac1ed703b7d..709dd0af07f2439d7c7e8b5cd0677580 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 a89b8de2c5aad1d9b7cade9aa4e15ea1a80444a9..450eacf1cc38e51b2d3c16f3bd677a76640774c0 100644 +index 3af7453995fe6cd27ee4d5d48c08514f81f4da5a..f303458deec4fb478b5818b64ef71e04075c08bf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -634,6 +634,13 @@ public class PurpurWorldConfig { +@@ -635,6 +635,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0156-Projectile-offset-config.patch b/patches/server/0156-Projectile-offset-config.patch index 513260c67..da1f42d4d 100644 --- a/patches/server/0156-Projectile-offset-config.patch +++ b/patches/server/0156-Projectile-offset-config.patch @@ -18,7 +18,7 @@ index 33df0ca406dc8321b76b393f317bbd1c8ebe6366..220513d3fd5645322886522ea4f6b8c5 entityarrow.setCritArrow(true); } diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index ae6ba3c0a7722674b304291f643960b0a58fca57..561e9acb90639031f19b5ff8685852599672f468 100644 +index 1ae5e17b95d994d69b060fc06c0a807c40a90f17..0a0f19f73a6a4e5aece7c17089dc4d31ed2a5299 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java @@ -64,7 +64,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -96,10 +96,10 @@ index 06c2f30b77a2c8aecc65e0c305f643d53798f364..6d1573161f0d8c7999f84925ba7bbf53 entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1bcedb8d45c745e8261b59340decf70976de0d4b..597c647c637df821c89a32cdb46a12869c4469d6 100644 +index f303458deec4fb478b5818b64ef71e04075c08bf..7fe59327b5f00e8ada0fdd039f67c4d80ca1da63 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -427,6 +427,23 @@ public class PurpurWorldConfig { +@@ -428,6 +428,23 @@ public class PurpurWorldConfig { //} } diff --git a/patches/server/0157-Config-for-powered-rail-activation-distance.patch b/patches/server/0157-Config-for-powered-rail-activation-distance.patch index d0be226b6..5d8ee346b 100644 --- a/patches/server/0157-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0157-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b } else { int j = pos.getX(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 597c647c637df821c89a32cdb46a12869c4469d6..dac4a7c69b322bd1b4e45811cd4f16bbb20877fe 100644 +index 7fe59327b5f00e8ada0fdd039f67c4d80ca1da63..ec1d28071b7525273fedf338d0107fbb47312bdd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -620,6 +620,11 @@ public class PurpurWorldConfig { +@@ -621,6 +621,11 @@ public class PurpurWorldConfig { powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing); } diff --git a/patches/server/0158-Piglin-portal-spawn-modifier.patch b/patches/server/0158-Piglin-portal-spawn-modifier.patch index 7dfee1afa..5e6057919 100644 --- a/patches/server/0158-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0158-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index 2c085c4a154cb0f8a1d38453f43474a764398784..589b437e7c97c846410f293e2f014bdc pos = pos.below(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dac4a7c69b322bd1b4e45811cd4f16bbb20877fe..0e5b40d5880e80d59c9c66f6a3a84bcfd9803b2f 100644 +index ec1d28071b7525273fedf338d0107fbb47312bdd..aa9ce2a40144906de402e287d4cb5e6bf33fd94f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1652,6 +1652,7 @@ public class PurpurWorldConfig { +@@ -1653,6 +1653,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index dac4a7c69b322bd1b4e45811cd4f16bbb20877fe..0e5b40d5880e80d59c9c66f6a3a84bcf private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1664,6 +1665,7 @@ public class PurpurWorldConfig { +@@ -1665,6 +1666,7 @@ public class PurpurWorldConfig { piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); diff --git a/patches/server/0160-Config-for-wither-explosion-radius.patch b/patches/server/0160-Config-for-wither-explosion-radius.patch index e3cfed85f..9d72b3e47 100644 --- a/patches/server/0160-Config-for-wither-explosion-radius.patch +++ b/patches/server/0160-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index f40ab9d5b18c189ba9b572e49243640bd44362d1..b4687453256ead43cf5288994316c7bf if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0e5b40d5880e80d59c9c66f6a3a84bcfd9803b2f..c8596997a2d0ef53ca028373da8ddad321fb44c5 100644 +index aa9ce2a40144906de402e287d4cb5e6bf33fd94f..48fde514ff6dcd5737740d86858c42ab7c2a39c8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2295,6 +2295,7 @@ public class PurpurWorldConfig { +@@ -2296,6 +2296,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 0e5b40d5880e80d59c9c66f6a3a84bcfd9803b2f..c8596997a2d0ef53ca028373da8ddad3 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2315,6 +2316,7 @@ public class PurpurWorldConfig { +@@ -2316,6 +2317,7 @@ public class PurpurWorldConfig { witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/server/0162-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0162-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch deleted file mode 100644 index 7a724c0af..000000000 --- a/patches/server/0162-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: 12emin34 -Date: Thu, 29 Apr 2021 23:56:02 +0200 -Subject: [PATCH] Config for changing the blocks that turn into dirt paths - - -diff --git a/src/main/java/net/minecraft/world/item/ShovelItem.java b/src/main/java/net/minecraft/world/item/ShovelItem.java -index 21212462e6b415e96536a27b2c009d1562f18946..98f4870ab82b25ed8bb144835f74c581ad9b9134 100644 ---- a/src/main/java/net/minecraft/world/item/ShovelItem.java -+++ b/src/main/java/net/minecraft/world/item/ShovelItem.java -@@ -34,13 +34,20 @@ public class ShovelItem extends DiggerItem { - return InteractionResult.PASS; - } else { - Player player = context.getPlayer(); -- BlockState blockState2 = FLATTENABLES.get(blockState.getBlock()); -+ // Purpur start -+ BlockState blockState2 = level.purpurConfig.shovelTurnsBlockToGrassPath.contains(blockState.getBlock()) ? Blocks.DIRT_PATH.defaultBlockState() : null; -+ boolean isUniqueFlattenable; -+ // Purpur end - BlockState blockState3 = null; - Runnable afterAction = null; // Paper - if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { -- afterAction = () -> level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); // Paper -+ // Purpur start -+ isUniqueFlattenable = FLATTENABLES.get(blockState.getBlock()) == null; -+ afterAction = () -> level.playSound(isUniqueFlattenable ? null : player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); // Paper -+ // Purpur end - blockState3 = blockState2; - } else if (blockState.getBlock() instanceof CampfireBlock && blockState.getValue(CampfireBlock.LIT)) { -+ isUniqueFlattenable = false; // Purpur - afterAction = () -> { // Paper - if (!level.isClientSide()) { - level.levelEvent((Player)null, 1009, blockPos, 0); -@@ -50,6 +57,11 @@ public class ShovelItem extends DiggerItem { - }; // Paper - blockState3 = blockState.setValue(CampfireBlock.LIT, Boolean.valueOf(false)); - } -+ // Purpur start -+ else { -+ isUniqueFlattenable = false; -+ } -+ // Purpur end - - if (blockState3 != null) { - if (!level.isClientSide) { -@@ -68,7 +80,7 @@ public class ShovelItem extends DiggerItem { - } - } - -- return InteractionResult.sidedSuccess(level.isClientSide); -+ return isUniqueFlattenable ? InteractionResult.SUCCESS : InteractionResult.sidedSuccess(level.isClientSide); // Purpur - } else { - return InteractionResult.PASS; - } -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c8596997a2d0ef53ca028373da8ddad321fb44c5..6c6de8b218bc0ebb183d6a63fc3dee6b777af03a 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -449,6 +449,21 @@ public class PurpurWorldConfig { - snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); - } - -+ public List shovelTurnsBlockToGrassPath = new ArrayList<>(); -+ private void shovelSettings() { -+ getList("gameplay-mechanics.shovel-turns-block-to-grass-path", new ArrayList(){{ -+ add("minecraft:coarse_dirt"); -+ add("minecraft:dirt"); -+ add("minecraft:grass_block"); -+ add("minecraft:mycelium"); -+ add("minecraft:podzol"); -+ add("minecraft:rooted_dirt"); -+ }}).forEach(key -> { -+ Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation(key.toString())); -+ if (block != Blocks.AIR) shovelTurnsBlockToGrassPath.add(block); -+ }); -+ } -+ - public boolean silkTouchEnabled = false; - public String silkTouchSpawnerName = "Monster Spawner"; - public List silkTouchSpawnerLore = new ArrayList<>(); diff --git a/patches/server/0163-Configurable-piston-push-limit.patch b/patches/server/0162-Configurable-piston-push-limit.patch similarity index 94% rename from patches/server/0163-Configurable-piston-push-limit.patch rename to patches/server/0162-Configurable-piston-push-limit.patch index 67c15fd83..be6248bbf 100644 --- a/patches/server/0163-Configurable-piston-push-limit.patch +++ b/patches/server/0162-Configurable-piston-push-limit.patch @@ -36,10 +36,10 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6c6de8b218bc0ebb183d6a63fc3dee6b777af03a..3ce13a3bfd5409291102f4f425ae76a24a3a177b 100644 +index 48fde514ff6dcd5737740d86858c42ab7c2a39c8..b9741fb7525a7ecb2ef8b497e9fe56ae08e75fa1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -630,6 +630,11 @@ public class PurpurWorldConfig { +@@ -616,6 +616,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0164-Configurable-broadcast-settings.patch b/patches/server/0163-Configurable-broadcast-settings.patch similarity index 94% rename from patches/server/0164-Configurable-broadcast-settings.patch rename to patches/server/0163-Configurable-broadcast-settings.patch index 94a2ef5aa..f0750fc8d 100644 --- a/patches/server/0164-Configurable-broadcast-settings.patch +++ b/patches/server/0163-Configurable-broadcast-settings.patch @@ -17,7 +17,7 @@ index 52891c4a4260d1938f2f4565b5219ad303555638..69d349613f01ab0ac1890734657da529 // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 2bff2de19769a20a68373abe14ed45249e4504ab..eabe8e197faa4e24ad5b31533a3de8470ef8f083 100644 +index 6604c6d7da7867da29054d5dd003eb2b19efa051..11ab2af40c1fc9fe3d69ab344a215cc140dd061a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1003,6 +1003,7 @@ public class ServerPlayer extends Player { @@ -29,7 +29,7 @@ index 2bff2de19769a20a68373abe14ed45249e4504ab..eabe8e197faa4e24ad5b31533a3de847 if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastSystemToTeam(this, ichatbasecomponent); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index dd741a961e3cfdbe81aa087ef983d1fb4dc94cc2..0139da5fcac438530f023a32a75ef454879fe6c1 100644 +index 6b3c9825cf4c8af63a5d39a68796def8c1cb9fa2..37c4963bd410b7bab5824bdbcb7fca1970474386 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -203,6 +203,18 @@ public class PurpurConfig { diff --git a/patches/server/0165-Configurable-mob-blindness.patch b/patches/server/0164-Configurable-mob-blindness.patch similarity index 93% rename from patches/server/0165-Configurable-mob-blindness.patch rename to patches/server/0164-Configurable-mob-blindness.patch index 3b114e7be..490e36e48 100644 --- a/patches/server/0165-Configurable-mob-blindness.patch +++ b/patches/server/0164-Configurable-mob-blindness.patch @@ -28,10 +28,10 @@ index 217a0082f7f260678253f31e381a432099555177..cdae47c490555efad0eb2d2ae6498888 return d0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3ce13a3bfd5409291102f4f425ae76a24a3a177b..80bd3c0c83923b16569a057a62b3184a39812a4e 100644 +index b9741fb7525a7ecb2ef8b497e9fe56ae08e75fa1..e4832e7da3ff08b75e335bf6218df4d12ff6d5ec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -133,6 +133,7 @@ public class PurpurWorldConfig { +@@ -134,6 +134,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = true; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 3ce13a3bfd5409291102f4f425ae76a24a3a177b..80bd3c0c83923b16569a057a62b3184a public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -153,6 +154,7 @@ public class PurpurWorldConfig { +@@ -154,6 +155,7 @@ public class PurpurWorldConfig { persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/server/0166-Hide-hidden-players-from-entity-selector.patch b/patches/server/0165-Hide-hidden-players-from-entity-selector.patch similarity index 98% rename from patches/server/0166-Hide-hidden-players-from-entity-selector.patch rename to patches/server/0165-Hide-hidden-players-from-entity-selector.patch index e234ce8c8..4fad14bb7 100644 --- a/patches/server/0166-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0165-Hide-hidden-players-from-entity-selector.patch @@ -59,7 +59,7 @@ index f25b9330e068c7d9e12cb57a7761cfef9ebaf7bc..7e66aaa960ce7b6dda7c064d4c6856cc + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 0139da5fcac438530f023a32a75ef454879fe6c1..f3ddb65684a2cf7776c6e0137cb7acc7f36eb493 100644 +index 37c4963bd410b7bab5824bdbcb7fca1970474386..a0392847e277f6569661fbe40dbddb9e44b80724 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -246,6 +246,7 @@ public class PurpurConfig { diff --git a/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0166-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 89% rename from patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/server/0166-Config-for-health-to-impact-Creeper-explosion-radius.patch index 03b26374d..c389204c7 100644 --- a/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0166-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 0d9ff20451ed7f82053ffd92538f78653b652dd4..8952afb0ff84df6f99bd545cb4a8a44e87f8d878 100644 +index fd3b1e92a626402112bbd371a0ac1264a2c19c32..a8bc27c858c6ddec2ff2f84b5c1dc51c3b1b04b0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -371,9 +371,10 @@ public class Creeper extends Monster implements PowerableMob { @@ -21,10 +21,10 @@ index 0d9ff20451ed7f82053ffd92538f78653b652dd4..8952afb0ff84df6f99bd545cb4a8a44e // CraftBukkit end this.dead = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 80bd3c0c83923b16569a057a62b3184a39812a4e..ec1f76879ec8cee7d3b968a716ebb467a189e1a4 100644 +index e4832e7da3ff08b75e335bf6218df4d12ff6d5ec..0914cf594bba933958de77cae536b919e3c29265 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -948,6 +948,7 @@ public class PurpurWorldConfig { +@@ -934,6 +934,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 80bd3c0c83923b16569a057a62b3184a39812a4e..ec1f76879ec8cee7d3b968a716ebb467 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -963,6 +964,7 @@ public class PurpurWorldConfig { +@@ -949,6 +950,7 @@ public class PurpurWorldConfig { creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); diff --git a/patches/server/0168-Iron-golem-calm-anger-options.patch b/patches/server/0167-Iron-golem-calm-anger-options.patch similarity index 96% rename from patches/server/0168-Iron-golem-calm-anger-options.patch rename to patches/server/0167-Iron-golem-calm-anger-options.patch index 85b50e143..4b70b3229 100644 --- a/patches/server/0168-Iron-golem-calm-anger-options.patch +++ b/patches/server/0167-Iron-golem-calm-anger-options.patch @@ -25,10 +25,10 @@ index 58539d29b8e2a8c0676cc574f64e7d61613e1451..1ffb8e1c386fc85796432281ac407a93 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec1f76879ec8cee7d3b968a716ebb467a189e1a4..7c32b7ed0bf57a2bc140cc40333627b3c670284e 100644 +index 0914cf594bba933958de77cae536b919e3c29265..c2b6587789fe7a5f6e65f7f9ac57e408604cc852 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1406,6 +1406,8 @@ public class PurpurWorldConfig { +@@ -1392,6 +1392,8 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -37,7 +37,7 @@ index ec1f76879ec8cee7d3b968a716ebb467a189e1a4..7c32b7ed0bf57a2bc140cc40333627b3 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1418,6 +1420,8 @@ public class PurpurWorldConfig { +@@ -1404,6 +1406,8 @@ public class PurpurWorldConfig { } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); diff --git a/patches/server/0169-Breedable-parrots.patch b/patches/server/0168-Breedable-parrots.patch similarity index 92% rename from patches/server/0169-Breedable-parrots.patch rename to patches/server/0168-Breedable-parrots.patch index ab9d0328c..9bd61a512 100644 --- a/patches/server/0169-Breedable-parrots.patch +++ b/patches/server/0168-Breedable-parrots.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Breedable parrots diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index 08935a1f2c4a3f43483719686e5baab5063cdfce..bfae3b94ab035e1c27c988cfcc3b449c7266efd3 100644 +index 4c64feca8d78b907406cc409bd6beef4b3bd35f3..6e8fc61b04796da5a8820812b5e88110f774b77a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java @@ -226,6 +226,7 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index febd60aea31bbdf10b4e3e66a066f47b22da8a09..73a53c86b23fe12eeb3c66523970ea7b private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -328,6 +329,7 @@ public class PurpurWorldConfig { +@@ -329,6 +330,7 @@ public class PurpurWorldConfig { set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D); set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D); } diff --git a/patches/server/0171-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0170-Add-config-change-multiplier-critical-damage-value.patch similarity index 91% rename from patches/server/0171-Add-config-change-multiplier-critical-damage-value.patch rename to patches/server/0170-Add-config-change-multiplier-critical-damage-value.patch index 8397e9cbc..298f4deb2 100644 --- a/patches/server/0171-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0170-Add-config-change-multiplier-critical-damage-value.patch @@ -18,10 +18,10 @@ index 04e816f01db7d2de7ffa9bbaaa72daadaab34831..81ba8875f0077ac1be80533061bcb0e6 f += f1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 73a53c86b23fe12eeb3c66523970ea7b5ab296e0..49b50086b17b273045e7e7d34badaf01bb26fd94 100644 +index 975418f595a595b9c9470bc78f7dfa90b9965e26..dcb36d9b54474306a9dd982a5ecaa41b7248f7ab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -375,6 +375,7 @@ public class PurpurWorldConfig { +@@ -376,6 +376,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index 73a53c86b23fe12eeb3c66523970ea7b5ab296e0..49b50086b17b273045e7e7d34badaf01 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -396,6 +397,7 @@ public class PurpurWorldConfig { +@@ -397,6 +398,7 @@ public class PurpurWorldConfig { creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); diff --git a/patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0171-Option-to-disable-dragon-egg-teleporting.patch similarity index 92% rename from patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch rename to patches/server/0171-Option-to-disable-dragon-egg-teleporting.patch index 70808a6e5..46c4e52e0 100644 --- a/patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0171-Option-to-disable-dragon-egg-teleporting.patch @@ -19,10 +19,10 @@ index 7e1edcc7b9f170b7c649437c2f0dd78c0bab9be4..5f8ac1fdac2c334951261f2b9702f5e7 BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 49b50086b17b273045e7e7d34badaf01bb26fd94..9aac31eae4710df48495860e1e0ed78f13431cfe 100644 +index dcb36d9b54474306a9dd982a5ecaa41b7248f7ab..43958fce6a087231c8db3f959cb852e99c113ac6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -557,6 +557,11 @@ public class PurpurWorldConfig { +@@ -543,6 +543,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0173-Config-for-unverified-username-message.patch b/patches/server/0172-Config-for-unverified-username-message.patch similarity index 97% rename from patches/server/0173-Config-for-unverified-username-message.patch rename to patches/server/0172-Config-for-unverified-username-message.patch index a50199c24..6a00e729b 100644 --- a/patches/server/0173-Config-for-unverified-username-message.patch +++ b/patches/server/0172-Config-for-unverified-username-message.patch @@ -18,7 +18,7 @@ index 878001928327d92423d5f7f6d5ce8772d6fa477f..b4b88a3d4dc66c44ca8f3bad1025c17a } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 3a328537042c3db3cb540b3d0c07a4ea1053f22d..968655055d534f35169dea50d540245e1b1c37cc 100644 +index a0392847e277f6569661fbe40dbddb9e44b80724..d3ea2429fd40fda625fb3e220614f119382f4f54 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -184,6 +184,7 @@ public class PurpurConfig { diff --git a/patches/server/0174-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0173-Make-anvil-cumulative-cost-configurable.patch similarity index 95% rename from patches/server/0174-Make-anvil-cumulative-cost-configurable.patch rename to patches/server/0173-Make-anvil-cumulative-cost-configurable.patch index 9fb33f8a3..56105ae6d 100644 --- a/patches/server/0174-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0173-Make-anvil-cumulative-cost-configurable.patch @@ -18,7 +18,7 @@ index 29ba769c5f803ce2dc5285e65284febf9ee28eb2..cb4a1cd39f12d90d30dd95efa2de58f5 public boolean setItemName(String newItemName) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 3e3a1e859e78d295388706d175dded5dbc41336e..14f2b23248f23804a85b522e9e46ffa170162335 100644 +index d3ea2429fd40fda625fb3e220614f119382f4f54..11ff96c11c318c57c45b5f234f491fa6717ee635 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -269,6 +269,7 @@ public class PurpurConfig { diff --git a/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0174-ShulkerBox-allow-oversized-stacks.patch similarity index 92% rename from patches/server/0175-ShulkerBox-allow-oversized-stacks.patch rename to patches/server/0174-ShulkerBox-allow-oversized-stacks.patch index 9bdc444ac..5e23c2665 100644 --- a/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0174-ShulkerBox-allow-oversized-stacks.patch @@ -9,7 +9,7 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for creative players) instead of routing it through the LootableBuilder. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index fe207cd67517de05b0da84d55c4218357f0274dc..7ddc9a7ff7b1d6de234ea5b1c8f4246d6ba7976d 100644 +index 72fa3a9058bac4769c0b7b27fa988cc9b06f3e75..027bac5687a60ab43ef527a125c5fa27798a4943 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -429,7 +429,7 @@ public class ServerPlayerGameMode { @@ -35,10 +35,10 @@ index b51155ad12515b2d0dd0f202580b9f455c114d9a..dd6c82a418ee299d7a5614cb0260949c blockEntity.saveToItem(itemStack); if (shulkerBoxBlockEntity.hasCustomName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9aac31eae4710df48495860e1e0ed78f13431cfe..a1de38e78586dcbefcac40cff362af385643e031 100644 +index 43958fce6a087231c8db3f959cb852e99c113ac6..609cd9300a8c9432638ed099ea987c6656674402 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -677,6 +677,11 @@ public class PurpurWorldConfig { +@@ -663,6 +663,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0175-Bee-can-work-when-raining-or-at-night.patch similarity index 94% rename from patches/server/0176-Bee-can-work-when-raining-or-at-night.patch rename to patches/server/0175-Bee-can-work-when-raining-or-at-night.patch index c6cd254eb..c5bcd5b6b 100644 --- a/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0175-Bee-can-work-when-raining-or-at-night.patch @@ -31,10 +31,10 @@ index a16a1df28258d605cf5908dbe19bda5d71ad4f45..7b82842b97ce795745cf6ee6399f618c return false; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a1de38e78586dcbefcac40cff362af385643e031..3f4631c2107145248a1fff538b1bf8fa9d4483d7 100644 +index 609cd9300a8c9432638ed099ea987c6656674402..6310e6c8061b0926cd8a5d5e60989e60a11f17bd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -789,6 +789,8 @@ public class PurpurWorldConfig { +@@ -775,6 +775,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index a1de38e78586dcbefcac40cff362af385643e031..3f4631c2107145248a1fff538b1bf8fa private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -802,6 +804,8 @@ public class PurpurWorldConfig { +@@ -788,6 +790,8 @@ public class PurpurWorldConfig { beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); diff --git a/patches/server/0177-API-for-any-mob-to-burn-daylight.patch b/patches/server/0176-API-for-any-mob-to-burn-daylight.patch similarity index 99% rename from patches/server/0177-API-for-any-mob-to-burn-daylight.patch rename to patches/server/0176-API-for-any-mob-to-burn-daylight.patch index c203cd6de..aa212c958 100644 --- a/patches/server/0177-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0176-API-for-any-mob-to-burn-daylight.patch @@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index aab99783b9fd6c181f30b2672d5957438a1fc620..61dd24478dc1f955a3c67e81858aa7cec023b4de 100644 +index c25cc8cf60906df57e2f87d531c0d5771b8a8d37..fec109ee35c036f96be3cf19c65bb79d28bfb9f6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -496,6 +496,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/server/0178-Config-MobEffect-by-world.patch b/patches/server/0177-Config-MobEffect-by-world.patch similarity index 97% rename from patches/server/0178-Config-MobEffect-by-world.patch rename to patches/server/0177-Config-MobEffect-by-world.patch index ce38491cd..8849b1833 100644 --- a/patches/server/0178-Config-MobEffect-by-world.patch +++ b/patches/server/0177-Config-MobEffect-by-world.patch @@ -40,10 +40,10 @@ index 53cc6befb752affcfec65e18365f6d369448d407..01850fc596a85974287ff6750427186d ((CraftPlayer) entityhuman.getBukkitEntity()).sendHealthUpdate(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3f4631c2107145248a1fff538b1bf8fa9d4483d7..782279ff7a53d185d5de58f35e3328e487808ba2 100644 +index 6310e6c8061b0926cd8a5d5e60989e60a11f17bd..6108dfe20c241b94caa88d8137cf2d10917e90c0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -332,6 +332,21 @@ public class PurpurWorldConfig { +@@ -333,6 +333,21 @@ public class PurpurWorldConfig { poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier); } diff --git a/patches/server/0179-Beacon-Activation-Range-Configurable.patch b/patches/server/0178-Beacon-Activation-Range-Configurable.patch similarity index 90% rename from patches/server/0179-Beacon-Activation-Range-Configurable.patch rename to patches/server/0178-Beacon-Activation-Range-Configurable.patch index 4bafae74f..7d4791137 100644 --- a/patches/server/0179-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0178-Beacon-Activation-Range-Configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Beacon Activation Range Configurable 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 59246e24558569f7f50b4d4d508616798091c888..cc03c02f290ee8d58a2fea54b1f977f49a2cec6e 100644 +index 3b866e2c20ee7bfc981ff09b29065530de993778..12578b377b6e939971fb2dcba08637df60643e37 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 @@ -84,6 +84,16 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name @@ -26,10 +26,10 @@ index 59246e24558569f7f50b4d4d508616798091c888..cc03c02f290ee8d58a2fea54b1f977f4 } else { return effectRange; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 782279ff7a53d185d5de58f35e3328e487808ba2..dce7c0132147d80d6ced429895cb671ab91dddfc 100644 +index 6108dfe20c241b94caa88d8137cf2d10917e90c0..aca4ef86ce290d2b81235bc8e8413eec2adc5819 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -524,6 +524,17 @@ public class PurpurWorldConfig { +@@ -510,6 +510,17 @@ public class PurpurWorldConfig { anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); } diff --git a/patches/server/0180-Add-toggle-for-sand-duping-fix.patch b/patches/server/0179-Add-toggle-for-sand-duping-fix.patch similarity index 93% rename from patches/server/0180-Add-toggle-for-sand-duping-fix.patch rename to patches/server/0179-Add-toggle-for-sand-duping-fix.patch index ace4bde92..a04d4cf0b 100644 --- a/patches/server/0180-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0179-Add-toggle-for-sand-duping-fix.patch @@ -27,10 +27,10 @@ index 18eaccb39a4c81338a8cbebe3de03934913ac2a4..7ad5583f05b608d5a34a33fb77c5bf91 } // 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 dce7c0132147d80d6ced429895cb671ab91dddfc..3a67947071d2c7c88d3d951fea86267e49720185 100644 +index aca4ef86ce290d2b81235bc8e8413eec2adc5819..abed84824b2735d5c68b63e230c60d58968280fa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -703,6 +703,11 @@ public class PurpurWorldConfig { +@@ -689,6 +689,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0180-Add-toggle-for-end-portal-safe-teleporting.patch similarity index 92% rename from patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch rename to patches/server/0180-Add-toggle-for-end-portal-safe-teleporting.patch index 8c354c7d9..2337fc9a8 100644 --- a/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0180-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,7 +5,7 @@ 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 620dbbf8fc411cf52f71d00de9334f41a2a34010..8f21dbd5eb43dec6aa059ded36b92b4322ecb24c 100644 +index fec109ee35c036f96be3cf19c65bb79d28bfb9f6..9e3eadf780cca5ef01b6c0c50e18a8cda8346a36 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3132,7 +3132,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -45,10 +45,10 @@ index f80f6da484f4144e743079e5104bf503419074b2..2deddc746e43896584bd65ba8e7971a8 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 3a67947071d2c7c88d3d951fea86267e49720185..376ea62f65e78b5e69865ce2cf8cb46a6df0a900 100644 +index abed84824b2735d5c68b63e230c60d58968280fa..63d06d68eda596fd2a434f48eb712eb5a39d3cc8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -651,6 +651,11 @@ public class PurpurWorldConfig { +@@ -637,6 +637,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0182-Make-lightning-rod-range-configurable.patch b/patches/server/0181-Make-lightning-rod-range-configurable.patch similarity index 96% rename from patches/server/0182-Make-lightning-rod-range-configurable.patch rename to patches/server/0181-Make-lightning-rod-range-configurable.patch index cc0acecf0..8b7ed732d 100644 --- a/patches/server/0182-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0181-Make-lightning-rod-range-configurable.patch @@ -18,7 +18,7 @@ index 49c412f46854ee877de1721b08629e8a3cd319f9..fea5481c98e4cbcaecb9f4adef35b734 return optional.map((blockposition1) -> { return blockposition1.above(1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 14f2b23248f23804a85b522e9e46ffa170162335..90354c009041e38143464f082ee8b6b54a5ec8cb 100644 +index 11ff96c11c318c57c45b5f234f491fa6717ee635..4494d0912579475a6de71ae4290eb2e7c372b94a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -270,6 +270,7 @@ public class PurpurConfig { diff --git a/patches/server/0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch b/patches/server/0182-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch similarity index 95% rename from patches/server/0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch rename to patches/server/0182-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch index 806490bb3..813ddd703 100644 --- a/patches/server/0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch +++ b/patches/server/0182-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch @@ -55,10 +55,10 @@ index 2038df72f8d7d33d4105de8129628daf21de6f0f..31ec6022b305df0ae02364c916ecf184 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 376ea62f65e78b5e69865ce2cf8cb46a6df0a900..59ed794d07a0be21a53601d7af59bac809142231 100644 +index 63d06d68eda596fd2a434f48eb712eb5a39d3cc8..507988ac97caec8ea87bdb9a642c688e3ea92881 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -391,6 +391,8 @@ public class PurpurWorldConfig { +@@ -392,6 +392,8 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -67,7 +67,7 @@ index 376ea62f65e78b5e69865ce2cf8cb46a6df0a900..59ed794d07a0be21a53601d7af59bac8 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -413,6 +415,8 @@ public class PurpurWorldConfig { +@@ -414,6 +416,8 @@ public class PurpurWorldConfig { playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); diff --git a/patches/server/0184-Allow-player-join-full-server-by-permission.patch b/patches/server/0183-Allow-player-join-full-server-by-permission.patch similarity index 93% rename from patches/server/0184-Allow-player-join-full-server-by-permission.patch rename to patches/server/0183-Allow-player-join-full-server-by-permission.patch index e34bb6a16..d2f821ed2 100644 --- a/patches/server/0184-Allow-player-join-full-server-by-permission.patch +++ b/patches/server/0183-Allow-player-join-full-server-by-permission.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow player join full server by permission diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d057f0f6755595fc5e1fce7ed09b1fc60906d9cb..89e773a73a0010fe376d0c7a68335eb72e6fa355 100644 +index 3701c536e7b020a9943cb4063dcc3ba94a5d1051..1168e6daa5131af577e4b51008696af8cf24caca 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -741,7 +741,7 @@ public abstract class PlayerList { diff --git a/patches/server/0185-Add-portal-waiting-option-permission-bypass.patch b/patches/server/0184-Add-portal-waiting-option-permission-bypass.patch similarity index 91% rename from patches/server/0185-Add-portal-waiting-option-permission-bypass.patch rename to patches/server/0184-Add-portal-waiting-option-permission-bypass.patch index d859d2223..65b724635 100644 --- a/patches/server/0185-Add-portal-waiting-option-permission-bypass.patch +++ b/patches/server/0184-Add-portal-waiting-option-permission-bypass.patch @@ -26,7 +26,7 @@ index bea9f52a6240794d45128659a62487f48f9f03dd..528aeec3f322ee2094098093e6016e41 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 0f3e696582cd288357598490e8af0131ab30bdfc..355797357f1c1cfceb8dbc016ef1b675c9a0759a 100644 +index 5fe9a0985432ac6cdd28a2a138854a24f10e42ba..9163bb797a22daedbc822ecc2ad33683a2d8a022 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -38,10 +38,10 @@ index 0f3e696582cd288357598490e8af0131ab30bdfc..355797357f1c1cfceb8dbc016ef1b675 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 59ed794d07a0be21a53601d7af59bac809142231..e06ac775e1f1cb4d7ff8ae401f9dbe649d7e8aad 100644 +index 507988ac97caec8ea87bdb9a642c688e3ea92881..8c23bb32b5dcfe582becb59fff4056389bce3bdb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -393,6 +393,8 @@ public class PurpurWorldConfig { +@@ -394,6 +394,8 @@ public class PurpurWorldConfig { public double playerCriticalDamageMultiplier = 1.5D; public int playerBurpDelay = 10; public boolean playerBurpWhenFull = false; @@ -50,7 +50,7 @@ index 59ed794d07a0be21a53601d7af59bac809142231..e06ac775e1f1cb4d7ff8ae401f9dbe64 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -417,6 +419,8 @@ public class PurpurWorldConfig { +@@ -418,6 +420,8 @@ public class PurpurWorldConfig { playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); playerBurpDelay = getInt("gameplay-mechanics.player.burp-delay", playerBurpDelay); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); diff --git a/patches/server/0186-Shulker-spawn-from-bullet-options.patch b/patches/server/0185-Shulker-spawn-from-bullet-options.patch similarity index 96% rename from patches/server/0186-Shulker-spawn-from-bullet-options.patch rename to patches/server/0185-Shulker-spawn-from-bullet-options.patch index 33ea1be66..d0373a5f8 100644 --- a/patches/server/0186-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0185-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 e06ac775e1f1cb4d7ff8ae401f9dbe649d7e8aad..5b00ed1c706304639a509c19650d08688c7bfb22 100644 +index 8c23bb32b5dcfe582becb59fff4056389bce3bdb..3467b6b58df83cdf1ac58986f5e0a1d8ce3ba888 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1946,6 +1946,11 @@ public class PurpurWorldConfig { +@@ -1932,6 +1932,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -83,7 +83,7 @@ index e06ac775e1f1cb4d7ff8ae401f9dbe649d7e8aad..5b00ed1c706304639a509c19650d0868 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1957,6 +1962,11 @@ public class PurpurWorldConfig { +@@ -1943,6 +1948,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/0187-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0186-Eating-glow-berries-adds-glow-effect.patch similarity index 95% rename from patches/server/0187-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0186-Eating-glow-berries-adds-glow-effect.patch index 2688162c5..eec27a962 100644 --- a/patches/server/0187-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0186-Eating-glow-berries-adds-glow-effect.patch @@ -18,10 +18,10 @@ index e6f8cb165f7e3da5f0edfc952d14059516de8acf..31f5ed9dd1727eee24804a384817d2b7 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 5b00ed1c706304639a509c19650d08688c7bfb22..67c17238317ee8e83e412ef826c658cd6831ba0e 100644 +index 3467b6b58df83cdf1ac58986f5e0a1d8ce3ba888..d05c6cbd36feefb19c267b6ec4d8d155e212bf6b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -221,6 +221,7 @@ public class PurpurWorldConfig { +@@ -222,6 +222,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index 5b00ed1c706304639a509c19650d08688c7bfb22..67c17238317ee8e83e412ef826c658cd private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -266,6 +267,7 @@ public class PurpurWorldConfig { +@@ -267,6 +268,7 @@ public class PurpurWorldConfig { enderPearlCooldown = getInt("gameplay-mechanics.item.ender-pearl.cooldown", enderPearlCooldown); enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); diff --git a/patches/server/0188-Option-to-make-drowned-break-doors.patch b/patches/server/0187-Option-to-make-drowned-break-doors.patch similarity index 94% rename from patches/server/0188-Option-to-make-drowned-break-doors.patch rename to patches/server/0187-Option-to-make-drowned-break-doors.patch index b1ea7ad0d..aa985925f 100644 --- a/patches/server/0188-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0187-Option-to-make-drowned-break-doors.patch @@ -34,10 +34,10 @@ index 902f831ea001145f73691b96f2fca8245a4fc05a..9346d634dd2b8cb3d89aa7ccf12fec6f @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 67c17238317ee8e83e412ef826c658cd6831ba0e..75aeac5b5dc18c91e21b36f0f05a3b9a45d95e7a 100644 +index d05c6cbd36feefb19c267b6ec4d8d155e212bf6b..4b94dfaf1a2cd4fba7c3994e6b505cd650bb7e73 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1092,6 +1092,7 @@ public class PurpurWorldConfig { +@@ -1078,6 +1078,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index 67c17238317ee8e83e412ef826c658cd6831ba0e..75aeac5b5dc18c91e21b36f0f05a3b9a private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1107,6 +1108,7 @@ public class PurpurWorldConfig { +@@ -1093,6 +1094,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/0189-Configurable-hunger-starvation-damage.patch b/patches/server/0188-Configurable-hunger-starvation-damage.patch similarity index 92% rename from patches/server/0189-Configurable-hunger-starvation-damage.patch rename to patches/server/0188-Configurable-hunger-starvation-damage.patch index fa216efec..42eb4b715 100644 --- a/patches/server/0189-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0188-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 31ec6022b305df0ae02364c916ecf18425a0bc36..e54af9ff2a786e919b8261aa27509be9 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 75aeac5b5dc18c91e21b36f0f05a3b9a45d95e7a..bca6e16058f19215b55f8c0668eedd0630dae916 100644 +index 4b94dfaf1a2cd4fba7c3994e6b505cd650bb7e73..dd4aa8aa60a69eaf89f94eb1bbe0c20029a75dbd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2603,4 +2603,9 @@ public class PurpurWorldConfig { +@@ -2589,4 +2589,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/0190-Enhance-SysoutCatcher.patch b/patches/server/0189-Enhance-SysoutCatcher.patch similarity index 100% rename from patches/server/0190-Enhance-SysoutCatcher.patch rename to patches/server/0189-Enhance-SysoutCatcher.patch diff --git a/patches/server/0191-Add-uptime-command.patch b/patches/server/0190-Add-uptime-command.patch similarity index 97% rename from patches/server/0191-Add-uptime-command.patch rename to patches/server/0190-Add-uptime-command.patch index 0c5c0c417..dd5c754bf 100644 --- a/patches/server/0191-Add-uptime-command.patch +++ b/patches/server/0190-Add-uptime-command.patch @@ -17,7 +17,7 @@ index 4e721dfca7559620d8ce65a6703f2089a839f4a0..7aae9e3c60ba15b8dcd8174a4d70866e } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f69ea0d2137419079d8ee59e009fcebab8f3d7e6..ee822fadef35f45effa08c552b35a274599f11ce 100644 +index 7f3bed76a2991e438bdc7b44048a73a199ca4ae6..7d3ef7134a30a646f17978aee2b61a11e14b53b6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -294,6 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop consumer = pair.getSecond(); + // Purpur start + Block clickedBlock = level.getBlockState(blockPos).getBlock(); -+ var tillable = level.purpurConfig.hoeTillables.get(level.getBlockState(blockPos).getBlock()); ++ var tillable = level.purpurConfig.hoeTillables.get(clickedBlock); + if (tillable == null) { return InteractionResult.PASS; } else { + Predicate predicate = tillable.condition().predicate(); + Consumer consumer = (ctx) -> { @@ -116,16 +116,45 @@ index 180aec596110309aade13d2080f8824d152b07cb..c4aec1e5135a79837918b692e75a7b55 } } +- return InteractionResult.sidedSuccess(level.isClientSide); ++ return InteractionResult.SUCCESS; // Purpur - force arm swing + } else { + return InteractionResult.PASS; + } +diff --git a/src/main/java/net/minecraft/world/item/ShovelItem.java b/src/main/java/net/minecraft/world/item/ShovelItem.java +index 21212462e6b415e96536a27b2c009d1562f18946..193bcb12152347f5f02ce18b01ba918e5e838f30 100644 +--- a/src/main/java/net/minecraft/world/item/ShovelItem.java ++++ b/src/main/java/net/minecraft/world/item/ShovelItem.java +@@ -37,9 +37,12 @@ public class ShovelItem extends DiggerItem { + BlockState blockState2 = FLATTENABLES.get(blockState.getBlock()); + BlockState blockState3 = null; + Runnable afterAction = null; // Paper +- if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { +- afterAction = () -> level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); // Paper +- blockState3 = blockState2; ++ // Purpur start ++ var flattenable = level.purpurConfig.shovelFlattenables.get(blockState.getBlock()); ++ if (flattenable != null && level.getBlockState(blockPos.above()).isAir()) { ++ afterAction = () -> {if (!FLATTENABLES.containsKey(blockState.getBlock())) level.playSound(null, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F);}; // Paper ++ blockState3 = flattenable.into().defaultBlockState(); ++ // Purpur end + } else if (blockState.getBlock() instanceof CampfireBlock && blockState.getValue(CampfireBlock.LIT)) { + afterAction = () -> { // Paper + if (!level.isClientSide()) { +@@ -68,7 +71,7 @@ public class ShovelItem extends DiggerItem { + } + } + - return InteractionResult.sidedSuccess(level.isClientSide); + return InteractionResult.SUCCESS; // Purpur - force arm swing } else { return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bca6e16058f19215b55f8c0668eedd0630dae916..9e7aa8fedad808823b5718610412d89554be6d24 100644 +index dd4aa8aa60a69eaf89f94eb1bbe0c20029a75dbd..8499317d3be3fbbb99e5bc29b5a7944bbfcb1606 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -527,6 +527,167 @@ public class PurpurWorldConfig { +@@ -513,6 +513,206 @@ public class PurpurWorldConfig { }); } @@ -133,11 +162,13 @@ index bca6e16058f19215b55f8c0668eedd0630dae916..9e7aa8fedad808823b5718610412d895 + public Map axeWaxables = new HashMap<>(); + public Map axeWeatherables = new HashMap<>(); + public Map hoeTillables = new HashMap<>(); ++ public Map shovelFlattenables = new HashMap<>(); + private void toolSettings() { + axeStrippables.clear(); + axeWaxables.clear(); + axeWeatherables.clear(); + hoeTillables.clear(); ++ shovelFlattenables.clear(); + if (PurpurConfig.version < 18) { + ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + ".tools.hoe.tilling"); + if (section != null) { @@ -159,6 +190,19 @@ index bca6e16058f19215b55f8c0668eedd0630dae916..9e7aa8fedad808823b5718610412d895 + PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:cherry_wood", Map.of("into", "minecraft:stripped_cherry_wood", "drops", new HashMap())); + PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:bamboo_block", Map.of("into", "minecraft:stripped_bamboo_block", "drops", new HashMap())); + } ++ if (PurpurConfig.version < 33) { ++ getList("gameplay-mechanics.shovel-turns-block-to-grass-path", new ArrayList(){{ ++ add("minecraft:coarse_dirt"); ++ add("minecraft:dirt"); ++ add("minecraft:grass_block"); ++ add("minecraft:mycelium"); ++ add("minecraft:podzol"); ++ add("minecraft:rooted_dirt"); ++ }}).forEach(key -> { ++ PurpurConfig.config.set("world-settings.default.tools.shovel.flattenables." + key.toString(), Map.of("into", "minecraft:dirt_path", "drops", new HashMap())); ++ }); ++ set("gameplay-mechanics.shovel-turns-block-to-grass-path", null); ++ } + getMap("tools.axe.strippables", Map.ofEntries( + Map.entry("minecraft:oak_wood", Map.of("into", "minecraft:stripped_oak_wood", "drops", new HashMap())), + Map.entry("minecraft:oak_log", Map.of("into", "minecraft:stripped_oak_log", "drops", new HashMap())), @@ -288,6 +332,30 @@ index bca6e16058f19215b55f8c0668eedd0630dae916..9e7aa8fedad808823b5718610412d895 + }); + hoeTillables.put(block, new Tillable(condition, into, drops)); + }); ++ getMap("tools.shovel.flattenables", Map.ofEntries( ++ Map.entry("minecraft:grass_block", Map.of("into", "minecraft:dirt_path", "drops", new HashMap())), ++ Map.entry("minecraft:dirt", Map.of("into", "minecraft:dirt_path", "drops", new HashMap())), ++ Map.entry("minecraft:podzol", Map.of("into", "minecraft:dirt_path", "drops", new HashMap())), ++ Map.entry("minecraft:coarse_dirt", Map.of("into", "minecraft:dirt_path", "drops", new HashMap())), ++ Map.entry("minecraft:mycelium", Map.of("into", "minecraft:dirt_path", "drops", new HashMap())), ++ Map.entry("minecraft:rooted_dirt", Map.of("into", "minecraft:dirt_path", "drops", new HashMap()))) ++ ).forEach((blockId, obj) -> { ++ Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation(blockId)); ++ if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.shovel.flattenables`: " + blockId); return; } ++ if (!(obj instanceof Map map)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.shovel.flattenables." + blockId + "`"); return; } ++ String intoId = (String) map.get("into"); ++ Block into = BuiltInRegistries.BLOCK.get(new ResourceLocation(intoId)); ++ if (into == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.shovel.flattenables." + blockId + ".into`: " + intoId); return; } ++ Object dropsObj = map.get("drops"); ++ if (!(dropsObj instanceof Map dropsMap)) { PurpurConfig.log(Level.SEVERE, "Invalid yaml for `tools.shovel.flattenables." + blockId + ".drops`"); return; } ++ Map drops = new HashMap<>(); ++ dropsMap.forEach((itemId, chance) -> { ++ Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(itemId.toString())); ++ if (item == Items.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid item for `tools.shovel.flattenables." + blockId + ".drops`: " + itemId); return; } ++ drops.put(item, (double) chance); ++ }); ++ shovelFlattenables.put(block, new Flattenable(into, drops)); ++ }); + } + public boolean anvilAllowColors = false; @@ -323,6 +391,24 @@ index 0000000000000000000000000000000000000000..e18c37f06730da9d3055d5215e813b14 + return drops; + } +} +diff --git a/src/main/java/org/purpurmc/purpur/tool/Flattenable.java b/src/main/java/org/purpurmc/purpur/tool/Flattenable.java +new file mode 100644 +index 0000000000000000000000000000000000000000..345d4ee4ff0b78bd1050959711a4f5d16a5e8aee +--- /dev/null ++++ b/src/main/java/org/purpurmc/purpur/tool/Flattenable.java +@@ -0,0 +1,12 @@ ++package org.purpurmc.purpur.tool; ++ ++import net.minecraft.world.item.Item; ++import net.minecraft.world.level.block.Block; ++ ++import java.util.Map; ++ ++public class Flattenable extends Actionable { ++ public Flattenable(Block into, Map drops) { ++ super(into, drops); ++ } ++} diff --git a/src/main/java/org/purpurmc/purpur/tool/Strippable.java b/src/main/java/org/purpurmc/purpur/tool/Strippable.java new file mode 100644 index 0000000000000000000000000000000000000000..bf5402214f41af9c09bd6c5c4f45d330516d742e diff --git a/patches/server/0193-Store-placer-on-Block-when-placed.patch b/patches/server/0192-Store-placer-on-Block-when-placed.patch similarity index 100% rename from patches/server/0193-Store-placer-on-Block-when-placed.patch rename to patches/server/0192-Store-placer-on-Block-when-placed.patch diff --git a/patches/server/0194-Summoner-API.patch b/patches/server/0193-Summoner-API.patch similarity index 98% rename from patches/server/0194-Summoner-API.patch rename to patches/server/0193-Summoner-API.patch index 12fe91f25..15166da09 100644 --- a/patches/server/0194-Summoner-API.patch +++ b/patches/server/0193-Summoner-API.patch @@ -49,7 +49,7 @@ index 1ffb8e1c386fc85796432281ac407a935169b186..c2817324ff57860ea2628dc4ac8e78b7 } diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 2acd9fdd1b311f00cc5fae7d879427ededdeecec..e33364beff36e255989520d5d076729c9c8ed1fe 100644 +index a1efde792eaa3f80cd0c7c48e38bbd07e1eb5c9d..20f2fd0edf290d448d06e4772b5947fc7865c20b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -49,6 +49,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -93,7 +93,7 @@ index 2acd9fdd1b311f00cc5fae7d879427ededdeecec..e33364beff36e255989520d5d076729c } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 20a322a362fd36310e85e6efb110fff92df4d344..d2213e9a03713a7909a6e1b2aef408ab01c97f01 100644 +index 257cd3ea1830b46d1c51242cd639c4f0e21c8774..86b06182616fe07f1a5ef2b1799c434884cba149 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -84,6 +84,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob diff --git a/patches/server/0195-Customizable-sleeping-actionbar-messages.patch b/patches/server/0194-Customizable-sleeping-actionbar-messages.patch similarity index 97% rename from patches/server/0195-Customizable-sleeping-actionbar-messages.patch rename to patches/server/0194-Customizable-sleeping-actionbar-messages.patch index bb389e93c..f9682628c 100644 --- a/patches/server/0195-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0194-Customizable-sleeping-actionbar-messages.patch @@ -38,7 +38,7 @@ index fea5481c98e4cbcaecb9f4adef35b7340ad0c9b8..df8efd93ad6ab30974e3025187cd234b } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 669174925e7dcca0e5a8b5c5d5feb241b58e8719..714acff3f53ef463d1de1d5f301b9a2f89711acc 100644 +index 685a30ecdd3af8db8f0caf99db6e576ed293fd1b..0e0024e235ce0ffbb54893ff250f61061d4ebe1f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -186,6 +186,8 @@ public class PurpurConfig { diff --git a/patches/server/0196-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0195-option-to-disable-shulker-box-items-from-dropping-co.patch similarity index 91% rename from patches/server/0196-option-to-disable-shulker-box-items-from-dropping-co.patch rename to patches/server/0195-option-to-disable-shulker-box-items-from-dropping-co.patch index 9a6e90bb8..6964fab03 100644 --- a/patches/server/0196-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0195-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,10 +19,10 @@ index ebee8de2ed831755b6fd154f6cc77ac993839bb9..df88c6a0f3211ec9bcdbd7c023534da5 CompoundTag nbttagcompound = BlockItem.getBlockEntityData(itemstack); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9e7aa8fedad808823b5718610412d89554be6d24..8986bbd31b57ce1957344964de838abfecc47f19 100644 +index 8499317d3be3fbbb99e5bc29b5a7944bbfcb1606..7c132901b4302c6c3a948421d926069a4477edf1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -222,6 +222,7 @@ public class PurpurWorldConfig { +@@ -223,6 +223,7 @@ public class PurpurWorldConfig { public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; @@ -30,7 +30,7 @@ index 9e7aa8fedad808823b5718610412d89554be6d24..8986bbd31b57ce1957344964de838abf private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -268,6 +269,7 @@ public class PurpurWorldConfig { +@@ -269,6 +270,7 @@ public class PurpurWorldConfig { enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); diff --git a/patches/server/0197-Big-dripleaf-tilt-delay.patch b/patches/server/0196-Big-dripleaf-tilt-delay.patch similarity index 91% rename from patches/server/0197-Big-dripleaf-tilt-delay.patch rename to patches/server/0196-Big-dripleaf-tilt-delay.patch index 503ed5280..567b0ee72 100644 --- a/patches/server/0197-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0196-Big-dripleaf-tilt-delay.patch @@ -11,7 +11,7 @@ PARTIAL: big_dripleaf with PARTIAL tilt will change to FULL tilt after 10 ticks UNSTABLE: big_dripleaf with FULL tilt will change back to no tilt after 100 ticks diff --git a/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java b/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java -index 7455847cf8a05ed237d2df84ae2d9b1d2f2d7176..2960f5e35012665939c2d670d212aa4d6cb228db 100644 +index 5921f7ebb56e1d5d3004ae327271873093cff357..c7bb655983d2ee2c6461d23d6fa921def1a9a74c 100644 --- a/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BigDripleafBlock.java @@ -236,7 +236,7 @@ public class BigDripleafBlock extends HorizontalDirectionalBlock implements Bone @@ -24,10 +24,10 @@ index 7455847cf8a05ed237d2df84ae2d9b1d2f2d7176..2960f5e35012665939c2d670d212aa4d if (i != -1) { world.scheduleTick(blockposition, (Block) this, i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8986bbd31b57ce1957344964de838abfecc47f19..b14c40201d188d062eda0c1e944529ab755ec23c 100644 +index 7c132901b4302c6c3a948421d926069a4477edf1..1493e7ba368af26a9c5161f16a3be4af2564bc6d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -729,6 +729,22 @@ public class PurpurWorldConfig { +@@ -754,6 +754,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0198-Player-ridable-in-water-option.patch b/patches/server/0197-Player-ridable-in-water-option.patch similarity index 91% rename from patches/server/0198-Player-ridable-in-water-option.patch rename to patches/server/0197-Player-ridable-in-water-option.patch index 2a0c35593..ab872a7e8 100644 --- a/patches/server/0198-Player-ridable-in-water-option.patch +++ b/patches/server/0197-Player-ridable-in-water-option.patch @@ -21,10 +21,10 @@ index 528aeec3f322ee2094098093e6016e41ff382cf3..0a9d8b22c7127b87826d9d256a5f36c3 if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) { if (this.getShoulderEntityLeft().isEmpty()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b14c40201d188d062eda0c1e944529ab755ec23c..c711bf4777252bfdc1dbdf5bc53e8194855ef841 100644 +index 1493e7ba368af26a9c5161f16a3be4af2564bc6d..b9faf352d774ed18e8af95597ded31abf3aee69a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -399,6 +399,7 @@ public class PurpurWorldConfig { +@@ -400,6 +400,7 @@ public class PurpurWorldConfig { public boolean playerBurpWhenFull = false; public int playerPortalWaitTime = 80; public int playerCreativePortalWaitTime = 1; @@ -32,7 +32,7 @@ index b14c40201d188d062eda0c1e944529ab755ec23c..c711bf4777252bfdc1dbdf5bc53e8194 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -425,6 +426,7 @@ public class PurpurWorldConfig { +@@ -426,6 +427,7 @@ public class PurpurWorldConfig { playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); playerPortalWaitTime = getInt("gameplay-mechanics.player.portal-wait-time", playerPortalWaitTime); playerCreativePortalWaitTime = getInt("gameplay-mechanics.player.creative-portal-wait-time", playerCreativePortalWaitTime); diff --git a/patches/server/0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0198-Config-to-disable-Enderman-teleport-on-projectile-hi.patch similarity index 88% rename from patches/server/0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch rename to patches/server/0198-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 0c1c9af62..76b9df3ec 100644 --- a/patches/server/0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0198-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to disable Enderman teleport on projectile hit diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index b78c18c2c6a791539b87b9c0a5947ca0f731755c..869f7488f420f23941754d484546901cd25bcd6f 100644 +index f4bf81ebcc792c8e04fa700e84b13b3b688dbdac..50e1e1b7b9340689a2310e7100c3fe33e5ad0940 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -448,6 +448,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -17,10 +17,10 @@ index b78c18c2c6a791539b87b9c0a5947ca0f731755c..869f7488f420f23941754d484546901c for (int i = 0; i < 64; ++i) { if (this.teleport()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c711bf4777252bfdc1dbdf5bc53e8194855ef841..a72a5b23c201ddabca0b5c3c2bcec226a1b2763d 100644 +index b9faf352d774ed18e8af95597ded31abf3aee69a..dd1110d14adf4c1220470e902900e5fa166b1c3f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1350,6 +1350,7 @@ public class PurpurWorldConfig { +@@ -1375,6 +1375,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -28,7 +28,7 @@ index c711bf4777252bfdc1dbdf5bc53e8194855ef841..a72a5b23c201ddabca0b5c3c2bcec226 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1372,6 +1373,7 @@ public class PurpurWorldConfig { +@@ -1397,6 +1398,7 @@ public class PurpurWorldConfig { endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); diff --git a/patches/server/0200-Add-compass-command.patch b/patches/server/0199-Add-compass-command.patch similarity index 97% rename from patches/server/0200-Add-compass-command.patch rename to patches/server/0199-Add-compass-command.patch index 85604ff48..a01fcca04 100644 --- a/patches/server/0200-Add-compass-command.patch +++ b/patches/server/0199-Add-compass-command.patch @@ -17,7 +17,7 @@ index 7aae9e3c60ba15b8dcd8174a4d70866edebb6cca..5f6cc8b16af6dce3b74f0c2c662b0ecf 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 03243bfab3d2f20e6ec030af7062eb9c031f9c99..5b54ca77202ae90fd439ea29572e15858c0a0bab 100644 +index 11ab2af40c1fc9fe3d69ab344a215cc140dd061a..83541ef2f3c27e13ebf244b056d2f40e1c60e96a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -280,6 +280,7 @@ public class ServerPlayer extends Player { @@ -59,7 +59,7 @@ index 03243bfab3d2f20e6ec030af7062eb9c031f9c99..5b54ca77202ae90fd439ea29572e1585 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 714acff3f53ef463d1de1d5f301b9a2f89711acc..351fc72f0d1450114285b0577e8d5e533ad62901 100644 +index 0e0024e235ce0ffbb54893ff250f61061d4ebe1f..83ba390660a083b936851d66c9566ab2d100c71a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -253,6 +253,11 @@ public class PurpurConfig { @@ -89,10 +89,10 @@ index 714acff3f53ef463d1de1d5f301b9a2f89711acc..351fc72f0d1450114285b0577e8d5e53 hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a72a5b23c201ddabca0b5c3c2bcec226a1b2763d..09381007ea956e1351df462f87c7454d0559c25d 100644 +index dd1110d14adf4c1220470e902900e5fa166b1c3f..3cea16e7e1a2153e7cf7ecf5922393d0e717aa9b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -223,6 +223,7 @@ public class PurpurWorldConfig { +@@ -224,6 +224,7 @@ public class PurpurWorldConfig { public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; @@ -100,7 +100,7 @@ index a72a5b23c201ddabca0b5c3c2bcec226a1b2763d..09381007ea956e1351df462f87c7454d private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -270,6 +271,7 @@ public class PurpurWorldConfig { +@@ -271,6 +272,7 @@ public class PurpurWorldConfig { enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); diff --git a/patches/server/0201-Toggle-for-kinetic-damage.patch b/patches/server/0200-Toggle-for-kinetic-damage.patch similarity index 93% rename from patches/server/0201-Toggle-for-kinetic-damage.patch rename to patches/server/0200-Toggle-for-kinetic-damage.patch index 6451ac133..914f22930 100644 --- a/patches/server/0201-Toggle-for-kinetic-damage.patch +++ b/patches/server/0200-Toggle-for-kinetic-damage.patch @@ -17,10 +17,10 @@ index 972c0e43e3f099706b9ee744551d43d31ffb3fa7..21d6851cb903f214db92109a6c16bb73 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 09381007ea956e1351df462f87c7454d0559c25d..2f7da583a3de7064a766edb452cc2db4dd327c70 100644 +index 3cea16e7e1a2153e7cf7ecf5922393d0e717aa9b..39ebaedab2c3f812642428f6f673b2dfa0652882 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -183,12 +183,14 @@ public class PurpurWorldConfig { +@@ -184,12 +184,14 @@ public class PurpurWorldConfig { public boolean elytraIgnoreUnbreaking = false; public int elytraDamagePerFireworkBoost = 0; public int elytraDamagePerTridentBoost = 0; diff --git a/patches/server/0202-Add-Option-for-disable-observer-clocks.patch b/patches/server/0201-Add-Option-for-disable-observer-clocks.patch similarity index 93% rename from patches/server/0202-Add-Option-for-disable-observer-clocks.patch rename to patches/server/0201-Add-Option-for-disable-observer-clocks.patch index d11e6c202..b7e1a8603 100644 --- a/patches/server/0202-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0201-Add-Option-for-disable-observer-clocks.patch @@ -18,10 +18,10 @@ index 7b45d6b9a005036ca5051d089a7be792eb87012f..8806c97ecc6bdd8a64c2d82bb2f58f46 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2f7da583a3de7064a766edb452cc2db4dd327c70..465aa4c25938c0d921a7a4935f1194246d8fddc0 100644 +index 39ebaedab2c3f812642428f6f673b2dfa0652882..3b96c76b593e9e0ec9c0a82bec47b326085f8264 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -370,6 +370,11 @@ public class PurpurWorldConfig { +@@ -371,6 +371,11 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0203-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0202-Customizeable-Zombie-Villager-curing-times.patch similarity index 92% rename from patches/server/0203-Customizeable-Zombie-Villager-curing-times.patch rename to patches/server/0202-Customizeable-Zombie-Villager-curing-times.patch index 178e13dcb..64f634ccd 100644 --- a/patches/server/0203-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0202-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index c3f220a85b91a25662c943b5ee4508cd7a18c75d..40b3498c57c62f8bdaac50546ca47f49 return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 465aa4c25938c0d921a7a4935f1194246d8fddc0..b2451d579db682dbb83dbdfb7854ed6181a1b649 100644 +index 3b96c76b593e9e0ec9c0a82bec47b326085f8264..fc186aaa1df69049dbe9586e6f40396de9be3a01 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2751,6 +2751,8 @@ public class PurpurWorldConfig { +@@ -2776,6 +2776,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index 465aa4c25938c0d921a7a4935f1194246d8fddc0..b2451d579db682dbb83dbdfb7854ed61 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2766,6 +2768,8 @@ public class PurpurWorldConfig { +@@ -2791,6 +2793,8 @@ public class PurpurWorldConfig { zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); diff --git a/patches/server/0204-Option-for-sponges-to-work-on-lava-and-mud.patch b/patches/server/0203-Option-for-sponges-to-work-on-lava-and-mud.patch similarity index 95% rename from patches/server/0204-Option-for-sponges-to-work-on-lava-and-mud.patch rename to patches/server/0203-Option-for-sponges-to-work-on-lava-and-mud.patch index 9be6b2035..71e673718 100644 --- a/patches/server/0204-Option-for-sponges-to-work-on-lava-and-mud.patch +++ b/patches/server/0203-Option-for-sponges-to-work-on-lava-and-mud.patch @@ -30,10 +30,10 @@ index 709dd0af07f2439d7c7e8b5cd0677580dc3f6278..2276fed1feb4fea59b5bd49b5e4586d4 if (!iblockdata.is(Blocks.KELP) && !iblockdata.is(Blocks.KELP_PLANT) && !iblockdata.is(Blocks.SEAGRASS) && !iblockdata.is(Blocks.TALL_SEAGRASS)) { return false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e93efa6315cab1c83296a918cbdb049497231acb..6ac4518a1f40a3b1feb6818e4f04efcf59fc0ece 100644 +index fc186aaa1df69049dbe9586e6f40396de9be3a01..d418d22fb414ad0a817d783885a4a8e22b573090 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -930,9 +930,13 @@ public class PurpurWorldConfig { +@@ -955,9 +955,13 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 65; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0204-Toggle-for-Wither-s-spawn-sound.patch similarity index 91% rename from patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch rename to patches/server/0204-Toggle-for-Wither-s-spawn-sound.patch index b0ce5ecc1..60f6b2e5e 100644 --- a/patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0204-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index 86b06182616fe07f1a5ef2b1799c434884cba149..9abc47eb3d0c1a0ee0868ec223431f4d // this.level().globalLevelEvent(1023, new BlockPosition(this), 0); int viewDistance = ((ServerLevel) this.level()).getCraftServer().getViewDistance() * 16; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6ac4518a1f40a3b1feb6818e4f04efcf59fc0ece..db9b45cedd0b120c5666b286f096f1cd9fe27b35 100644 +index d418d22fb414ad0a817d783885a4a8e22b573090..aaabf7a8eef4293086605419cf3d56a2ea9eedad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2598,6 +2598,7 @@ public class PurpurWorldConfig { +@@ -2623,6 +2623,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index 6ac4518a1f40a3b1feb6818e4f04efcf59fc0ece..db9b45cedd0b120c5666b286f096f1cd private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2619,6 +2620,7 @@ public class PurpurWorldConfig { +@@ -2644,6 +2645,7 @@ public class PurpurWorldConfig { witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); diff --git a/patches/server/0206-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0205-Cactus-breaks-from-solid-neighbors-config.patch similarity index 92% rename from patches/server/0206-Cactus-breaks-from-solid-neighbors-config.patch rename to patches/server/0205-Cactus-breaks-from-solid-neighbors-config.patch index 323402b7c..04a97cbb4 100644 --- a/patches/server/0206-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0205-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index 0003fb51ae3a6575575e10b4c86719f3061e2577..c2ca3432a47124d02e1aaf8ffb621f9a return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index db9b45cedd0b120c5666b286f096f1cd9fe27b35..3c62800c6e44801a01bac13fa71e0f291404083f 100644 +index aaabf7a8eef4293086605419cf3d56a2ea9eedad..ddc842b926c16ec5c71a2407b0427fe3e21459f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -756,6 +756,11 @@ public class PurpurWorldConfig { +@@ -781,6 +781,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0207-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0206-Config-to-remove-curse-of-binding-with-weakness.patch similarity index 93% rename from patches/server/0207-Config-to-remove-curse-of-binding-with-weakness.patch rename to patches/server/0206-Config-to-remove-curse-of-binding-with-weakness.patch index 8a5f43062..ebdc9ce39 100644 --- a/patches/server/0207-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0206-Config-to-remove-curse-of-binding-with-weakness.patch @@ -26,10 +26,10 @@ index c549618421c5d077c3d977d8d2064eca2acc438a..5972fa434847d24fa98b7895fd8386d2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3c62800c6e44801a01bac13fa71e0f291404083f..68c9e188e84de378ded98ca020c33be12f3f72c1 100644 +index ddc842b926c16ec5c71a2407b0427fe3e21459f3..3bba3d294584d5477ffb78e43ba4f38e5b43dfd0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -409,6 +409,7 @@ public class PurpurWorldConfig { +@@ -410,6 +410,7 @@ public class PurpurWorldConfig { public int playerPortalWaitTime = 80; public int playerCreativePortalWaitTime = 1; public boolean playerRidableInWater = false; @@ -37,7 +37,7 @@ index 3c62800c6e44801a01bac13fa71e0f291404083f..68c9e188e84de378ded98ca020c33be1 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -436,6 +437,7 @@ public class PurpurWorldConfig { +@@ -437,6 +438,7 @@ public class PurpurWorldConfig { playerPortalWaitTime = getInt("gameplay-mechanics.player.portal-wait-time", playerPortalWaitTime); playerCreativePortalWaitTime = getInt("gameplay-mechanics.player.creative-portal-wait-time", playerCreativePortalWaitTime); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); diff --git a/patches/server/0208-Conduit-behavior-configuration.patch b/patches/server/0207-Conduit-behavior-configuration.patch similarity index 97% rename from patches/server/0208-Conduit-behavior-configuration.patch rename to patches/server/0207-Conduit-behavior-configuration.patch index a783290d8..c1f526e0a 100644 --- a/patches/server/0208-Conduit-behavior-configuration.patch +++ b/patches/server/0207-Conduit-behavior-configuration.patch @@ -77,10 +77,10 @@ index 963a596154091b79ca139af6274aa323518ad1ad..4dcac3899a500d8586580bcfd5b4516e }); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 68c9e188e84de378ded98ca020c33be12f3f72c1..da1a00cf122265d950a1120363cf6c274db3ec70 100644 +index 3bba3d294584d5477ffb78e43ba4f38e5b43dfd0..5a258aec385fb4e9f29ba2391a7feabaa93a9cf6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2817,4 +2817,27 @@ public class PurpurWorldConfig { +@@ -2842,4 +2842,27 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0209-Cauldron-fill-chances.patch b/patches/server/0208-Cauldron-fill-chances.patch similarity index 96% rename from patches/server/0209-Cauldron-fill-chances.patch rename to patches/server/0208-Cauldron-fill-chances.patch index 1888b7a0a..b89bd2f33 100644 --- a/patches/server/0209-Cauldron-fill-chances.patch +++ b/patches/server/0208-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index cd943997f11f5ea5c600fdc6db96043fb0fa713c..4adeda49a2e422e11f885bffb311653d if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index da1a00cf122265d950a1120363cf6c274db3ec70..8905174d72d4f9a0be6be6e91c8c5be3e57d43fb 100644 +index 5a258aec385fb4e9f29ba2391a7feabaa93a9cf6..66188b371efe432f177e466f0431bf07bf36241d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2840,4 +2840,15 @@ public class PurpurWorldConfig { +@@ -2865,4 +2865,15 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0210-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0209-Config-to-allow-mobs-to-pathfind-over-rails.patch similarity index 93% rename from patches/server/0210-Config-to-allow-mobs-to-pathfind-over-rails.patch rename to patches/server/0209-Config-to-allow-mobs-to-pathfind-over-rails.patch index d147e2428..ba8eb2f5a 100644 --- a/patches/server/0210-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0209-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -18,10 +18,10 @@ index 3583fcf5284bc5883308876dbd9886664b391e28..d976a6df54c1e817def2d588692abe25 if (node != null && (node.type == BlockPathTypes.OPEN || node.type == BlockPathTypes.WALKABLE) && this.mob.getBbWidth() < 1.0F) { double g = (double)(x - direction.getStepX()) + 0.5D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8905174d72d4f9a0be6be6e91c8c5be3e57d43fb..9f23f07a34d4c8fcd9bda8b6a1bb015a9f6ed848 100644 +index 66188b371efe432f177e466f0431bf07bf36241d..baa7fb5a53b786916e42c7578eaf857a10b8103c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -139,6 +139,7 @@ public class PurpurWorldConfig { +@@ -140,6 +140,7 @@ public class PurpurWorldConfig { public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -29,7 +29,7 @@ index 8905174d72d4f9a0be6be6e91c8c5be3e57d43fb..9f23f07a34d4c8fcd9bda8b6a1bb015a private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -160,6 +161,7 @@ public class PurpurWorldConfig { +@@ -161,6 +162,7 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); diff --git a/patches/server/0211-Shulker-change-color-with-dye.patch b/patches/server/0210-Shulker-change-color-with-dye.patch similarity index 94% rename from patches/server/0211-Shulker-change-color-with-dye.patch rename to patches/server/0210-Shulker-change-color-with-dye.patch index b66960734..e508169a6 100644 --- a/patches/server/0211-Shulker-change-color-with-dye.patch +++ b/patches/server/0210-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index a0b19ffbdb64c40d8b92ed82104dde323b466190..714adaf017813eb64bb3a9a60b5ff457 protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9f23f07a34d4c8fcd9bda8b6a1bb015a9f6ed848..57632349545a15602d4257f48bd2a1fddc5a3732 100644 +index baa7fb5a53b786916e42c7578eaf857a10b8103c..281449edbf060809b0bc9e2b5d28dfa5182a5a29 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2160,6 +2160,7 @@ public class PurpurWorldConfig { +@@ -2185,6 +2185,7 @@ public class PurpurWorldConfig { public double shulkerSpawnFromBulletNearbyRange = 8.0D; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; @@ -58,7 +58,7 @@ index 9f23f07a34d4c8fcd9bda8b6a1bb015a9f6ed848..57632349545a15602d4257f48bd2a1fd private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2176,6 +2177,7 @@ public class PurpurWorldConfig { +@@ -2201,6 +2202,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange); shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); diff --git a/patches/server/0212-Extended-OfflinePlayer-API.patch b/patches/server/0211-Extended-OfflinePlayer-API.patch similarity index 100% rename from patches/server/0212-Extended-OfflinePlayer-API.patch rename to patches/server/0211-Extended-OfflinePlayer-API.patch diff --git a/patches/server/0213-Added-the-ability-to-add-combustible-items.patch b/patches/server/0212-Added-the-ability-to-add-combustible-items.patch similarity index 97% rename from patches/server/0213-Added-the-ability-to-add-combustible-items.patch rename to patches/server/0212-Added-the-ability-to-add-combustible-items.patch index 5262b9592..a580845e5 100644 --- a/patches/server/0213-Added-the-ability-to-add-combustible-items.patch +++ b/patches/server/0212-Added-the-ability-to-add-combustible-items.patch @@ -51,7 +51,7 @@ index ca2052804ad829a1528a9c5a0a792275beead113..997d0fab71eacc6466ffe3bc8f6349e5 private int maxStack = MAX_STACK; public List transaction = new java.util.ArrayList(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 569040a852d0985d0af0c29643dae7eecf5fe9a3..d84e3e0f24c553acdbc71d096e1f000c669313cc 100644 +index 05e9574fcde85786deb4fc07d1d73a88adf2a57e..77d80968f684947290044e8686132d2e4d4fcb8a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1555,6 +1555,19 @@ public final class CraftServer implements Server { diff --git a/patches/server/0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 93% rename from patches/server/0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index e4fdb5b51..b474c387a 100644 --- a/patches/server/0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0213-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -25,10 +25,10 @@ index df8efd93ad6ab30974e3025187cd234b37111129..8cbb36b2dbcb9a1470c95746d7d481a1 // 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 57632349545a15602d4257f48bd2a1fddc5a3732..c4bbf2285fd6f3f3855122e6735fa5af65054772 100644 +index 281449edbf060809b0bc9e2b5d28dfa5182a5a29..c8b8d1e69a82ff95cd5727d6f72c9e2bff544888 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -140,6 +140,8 @@ public class PurpurWorldConfig { +@@ -141,6 +141,8 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean mobsIgnoreRails = false; @@ -37,7 +37,7 @@ index 57632349545a15602d4257f48bd2a1fddc5a3732..c4bbf2285fd6f3f3855122e6735fa5af private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -162,6 +164,8 @@ public class PurpurWorldConfig { +@@ -163,6 +165,8 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); diff --git a/patches/server/0215-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0214-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 96% rename from patches/server/0215-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0214-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 9da98b4fc..469b1cd54 100644 --- a/patches/server/0215-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0214-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,10 +45,10 @@ index 0453397c157c8c7968947445f41bc46b68b111e8..ed35878fdb9dffcd46c27d26ee837940 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 c4bbf2285fd6f3f3855122e6735fa5af65054772..f58b825e4a00dc34967fb2ad15d67fa823ccc5ac 100644 +index c8b8d1e69a82ff95cd5727d6f72c9e2bff544888..ed5b76badb28cc6493c9c593f8a0d2c261ba358f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -716,6 +716,11 @@ public class PurpurWorldConfig { +@@ -741,6 +741,11 @@ public class PurpurWorldConfig { anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); } @@ -60,7 +60,7 @@ index c4bbf2285fd6f3f3855122e6735fa5af65054772..f58b825e4a00dc34967fb2ad15d67fa8 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -853,6 +858,11 @@ public class PurpurWorldConfig { +@@ -878,6 +883,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } diff --git a/patches/server/0216-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch similarity index 95% rename from patches/server/0216-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch index 5afbe8dc5..2f443a10e 100644 --- a/patches/server/0216-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0215-Shift-right-click-to-use-exp-for-mending.patch @@ -48,10 +48,10 @@ index 3df9f6e0f8004ba329d32de2547174dc9bfe084b..2261f971b85afcb1153cf9e63f0148f4 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 f58b825e4a00dc34967fb2ad15d67fa823ccc5ac..cacbb0b957e723d3c959368808319813cf926626 100644 +index ed5b76badb28cc6493c9c593f8a0d2c261ba358f..ae94cf438da5fbbe694c49c709b7f9d41fa5cdfb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -416,6 +416,7 @@ public class PurpurWorldConfig { +@@ -417,6 +417,7 @@ public class PurpurWorldConfig { public int playerCreativePortalWaitTime = 1; public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; @@ -59,7 +59,7 @@ index f58b825e4a00dc34967fb2ad15d67fa823ccc5ac..cacbb0b957e723d3c959368808319813 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -444,6 +445,7 @@ public class PurpurWorldConfig { +@@ -445,6 +446,7 @@ public class PurpurWorldConfig { playerCreativePortalWaitTime = getInt("gameplay-mechanics.player.creative-portal-wait-time", playerCreativePortalWaitTime); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); diff --git a/patches/server/0217-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0216-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 95% rename from patches/server/0217-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0216-Dolphins-naturally-aggressive-to-players-chance.patch index 807b30b97..39d009601 100644 --- a/patches/server/0217-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0216-Dolphins-naturally-aggressive-to-players-chance.patch @@ -48,10 +48,10 @@ index 77746eeffdc612793a6c907f222753bce5cd0ed4..b6342637f1b42b6368dcda17eea4b39a 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 cacbb0b957e723d3c959368808319813cf926626..9e779be593b962c5b3212198accfb1b9e61f27d9 100644 +index ae94cf438da5fbbe694c49c709b7f9d41fa5cdfb..2bd18777211ce48a3836dc281a8a715f2711c18c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1258,6 +1258,7 @@ public class PurpurWorldConfig { +@@ -1283,6 +1283,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -59,7 +59,7 @@ index cacbb0b957e723d3c959368808319813cf926626..9e779be593b962c5b3212198accfb1b9 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1272,6 +1273,7 @@ public class PurpurWorldConfig { +@@ -1297,6 +1298,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/0218-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0217-Cows-naturally-aggressive-to-players-chance.patch similarity index 96% rename from patches/server/0218-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0217-Cows-naturally-aggressive-to-players-chance.patch index 9e431716b..66ae50355 100644 --- a/patches/server/0218-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0217-Cows-naturally-aggressive-to-players-chance.patch @@ -57,10 +57,10 @@ index 8d714c029cf3b62af1ff8140a82ed3ae463e0e18..37f073e821a1b0f8efe89a7d88ce732c @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9e779be593b962c5b3212198accfb1b9e61f27d9..7937789f9b46abb07c9dec8e8c3f3422aad8c9a5 100644 +index 2bd18777211ce48a3836dc281a8a715f2711c18c..f079d2f8ba35b425ad34316ec9002a7342b15f2c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1207,7 +1207,14 @@ public class PurpurWorldConfig { +@@ -1232,7 +1232,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -75,7 +75,7 @@ index 9e779be593b962c5b3212198accfb1b9e61f27d9..7937789f9b46abb07c9dec8e8c3f3422 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1220,6 +1227,8 @@ public class PurpurWorldConfig { +@@ -1245,6 +1252,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/0219-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0218-Option-for-beds-to-explode-on-villager-sleep.patch similarity index 92% rename from patches/server/0219-Option-for-beds-to-explode-on-villager-sleep.patch rename to patches/server/0218-Option-for-beds-to-explode-on-villager-sleep.patch index 09c8e5df8..3d87f654c 100644 --- a/patches/server/0219-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0218-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index 444dbab9a1c95d1f8bc97e165e5302473a29c7e8..2ffceda6ce3cfe515f9348dafc28b046 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 7937789f9b46abb07c9dec8e8c3f3422aad8c9a5..ef888dc8656922c929cc410fd1da28241e52c5f7 100644 +index f079d2f8ba35b425ad34316ec9002a7342b15f2c..9cd54516de177e8d731b605cf892080d686ce9af 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -735,6 +735,7 @@ public class PurpurWorldConfig { +@@ -760,6 +760,7 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; @@ -33,7 +33,7 @@ index 7937789f9b46abb07c9dec8e8c3f3422aad8c9a5..ef888dc8656922c929cc410fd1da2824 public double bedExplosionPower = 5.0D; public boolean bedExplosionFire = true; public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; -@@ -745,6 +746,7 @@ public class PurpurWorldConfig { +@@ -770,6 +771,7 @@ public class PurpurWorldConfig { } } bedExplode = getBoolean("blocks.bed.explode", bedExplode); diff --git a/patches/server/0220-Halloween-options-and-optimizations.patch b/patches/server/0219-Halloween-options-and-optimizations.patch similarity index 97% rename from patches/server/0220-Halloween-options-and-optimizations.patch rename to patches/server/0219-Halloween-options-and-optimizations.patch index fb221cb13..e48eab6f3 100644 --- a/patches/server/0220-Halloween-options-and-optimizations.patch +++ b/patches/server/0219-Halloween-options-and-optimizations.patch @@ -60,10 +60,10 @@ index 0bc90b6d5c5a3cb3477d41336a9bb1130ff32fa1..a8d2f8654ee370e98bb1c4e7e1111deb 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 ef888dc8656922c929cc410fd1da28241e52c5f7..db1d5e263cf67a1ce23db51f44f24705e640383c 100644 +index 9cd54516de177e8d731b605cf892080d686ce9af..69459dae24e2c9a98e1008c7a7df77d0f271723d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1600,6 +1600,13 @@ public class PurpurWorldConfig { +@@ -1625,6 +1625,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0221-Config-for-grindstones.patch b/patches/server/0220-Config-for-grindstones.patch similarity index 98% rename from patches/server/0221-Config-for-grindstones.patch rename to patches/server/0220-Config-for-grindstones.patch index 4aee2d702..ddc7981e5 100644 --- a/patches/server/0221-Config-for-grindstones.patch +++ b/patches/server/0220-Config-for-grindstones.patch @@ -57,7 +57,7 @@ index b56766ff0e61691294b40ea8c2370940c0e8b640..6860e3467bf785e9d017fc98fce1e3cf } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 351fc72f0d1450114285b0577e8d5e533ad62901..ec519c0e6388eac27f9eb6fcd85713763206d71e 100644 +index 83ba390660a083b936851d66c9566ab2d100c71a..87c3c6d6348497ab29daf2dd8f0ffddefb51af77 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -307,6 +307,9 @@ public class PurpurConfig { diff --git a/patches/server/0222-UPnP-Port-Forwarding.patch b/patches/server/0221-UPnP-Port-Forwarding.patch similarity index 97% rename from patches/server/0222-UPnP-Port-Forwarding.patch rename to patches/server/0221-UPnP-Port-Forwarding.patch index 585f91bbd..8f4d7159a 100644 --- a/patches/server/0222-UPnP-Port-Forwarding.patch +++ b/patches/server/0221-UPnP-Port-Forwarding.patch @@ -67,7 +67,7 @@ index 012c990efb2647b0a3e983b23fed98c6e3f2224b..62c437f5618032b78d1b68c5c2490d4d // CraftBukkit start // this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage)); // Spigot - moved up diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 1c84ec21bcd7b121a0107294a3c781c6b6cabeaa..4822aa7c084fd975759a3e0395e17b4e381c6404 100644 +index 87c3c6d6348497ab29daf2dd8f0ffddefb51af77..e3452d054ca9d7d1426619fdc1313af83e830ed3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -422,4 +422,9 @@ public class PurpurConfig { diff --git a/patches/server/0223-Campfire-option-for-lit-when-placed.patch b/patches/server/0222-Campfire-option-for-lit-when-placed.patch similarity index 94% rename from patches/server/0223-Campfire-option-for-lit-when-placed.patch rename to patches/server/0222-Campfire-option-for-lit-when-placed.patch index a944d1490..b30c33e07 100644 --- a/patches/server/0223-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0222-Campfire-option-for-lit-when-placed.patch @@ -18,10 +18,10 @@ index 219c87dcf065e86512f330fbeec59e55f4675083..f8fd3b320494d1c1e8ee3d170f2feebd @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index db1d5e263cf67a1ce23db51f44f24705e640383c..67c7a30eff159ff9f399bc7dec85b0f42336b250 100644 +index 69459dae24e2c9a98e1008c7a7df77d0f271723d..0b807f53541051328ff14ae71974523a73543aff 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -778,6 +778,11 @@ public class PurpurWorldConfig { +@@ -803,6 +803,11 @@ public class PurpurWorldConfig { cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); } diff --git a/patches/server/0224-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0223-options-to-extinguish-fire-blocks-with-snowballs.patch similarity index 96% rename from patches/server/0224-options-to-extinguish-fire-blocks-with-snowballs.patch rename to patches/server/0223-options-to-extinguish-fire-blocks-with-snowballs.patch index cd8aadcb0..d181f34b8 100644 --- a/patches/server/0224-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0223-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,10 +46,10 @@ index b90cedad282e95a067aca176fafa9f72a726f520..440d3d72d8b2dac14f83a83caa5ae9db 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 67c7a30eff159ff9f399bc7dec85b0f42336b250..e7772566bc9a400921938957cdb9c1d762a5e240 100644 +index 0b807f53541051328ff14ae71974523a73543aff..885a05cc135559b9a663a368840e13e8ab16e749 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -232,6 +232,9 @@ public class PurpurWorldConfig { +@@ -233,6 +233,9 @@ public class PurpurWorldConfig { public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; public boolean compassItemShowsBossBar = false; @@ -59,7 +59,7 @@ index 67c7a30eff159ff9f399bc7dec85b0f42336b250..e7772566bc9a400921938957cdb9c1d7 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -280,6 +283,9 @@ public class PurpurWorldConfig { +@@ -281,6 +284,9 @@ public class PurpurWorldConfig { glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); compassItemShowsBossBar = getBoolean("gameplay-mechanics.item.compass.holding-shows-bossbar", compassItemShowsBossBar); diff --git a/patches/server/0225-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0224-Add-option-to-disable-zombie-villagers-cure.patch similarity index 92% rename from patches/server/0225-Add-option-to-disable-zombie-villagers-cure.patch rename to patches/server/0224-Add-option-to-disable-zombie-villagers-cure.patch index 73da3605b..e7f8ce1ff 100644 --- a/patches/server/0225-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0224-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index 40b3498c57c62f8bdaac50546ca47f4927db7bfa..b8e0ae0714fd2b77831fb714b1bad901 itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e7772566bc9a400921938957cdb9c1d762a5e240..67a7756d5b4c2c73c314cd23a05aff04e4f05255 100644 +index 885a05cc135559b9a663a368840e13e8ab16e749..c21cd0400a7552c154a65951f648fb609d1bf883 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2817,6 +2817,7 @@ public class PurpurWorldConfig { +@@ -2842,6 +2842,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index e7772566bc9a400921938957cdb9c1d762a5e240..67a7756d5b4c2c73c314cd23a05aff04 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2834,6 +2835,7 @@ public class PurpurWorldConfig { +@@ -2859,6 +2860,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/0226-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0225-Persistent-BlockEntity-Lore-and-DisplayName.patch similarity index 98% rename from patches/server/0226-Persistent-BlockEntity-Lore-and-DisplayName.patch rename to patches/server/0225-Persistent-BlockEntity-Lore-and-DisplayName.patch index 3c916779b..c86bb3e74 100644 --- a/patches/server/0226-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0225-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -195,10 +195,10 @@ index 370a25d2deb54f10a35ee24d9e7e92fbfde60edf..2f19f6ac5de454845f5d13a3ebb93af6 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 67a7756d5b4c2c73c314cd23a05aff04e4f05255..b1a5b0a202c45d085a10668c272b1d7d6ac900e8 100644 +index c21cd0400a7552c154a65951f648fb609d1bf883..c573d694e60c7fd4dc1820873be99b4da82405cb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -131,6 +131,7 @@ public class PurpurWorldConfig { +@@ -132,6 +132,7 @@ public class PurpurWorldConfig { public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; @@ -206,7 +206,7 @@ index 67a7756d5b4c2c73c314cd23a05aff04e4f05255..b1a5b0a202c45d085a10668c272b1d7d public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; public double mobsBlindnessMultiplier = 1; -@@ -154,6 +155,7 @@ public class PurpurWorldConfig { +@@ -155,6 +156,7 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); diff --git a/patches/server/0227-Signs-allow-color-codes.patch b/patches/server/0226-Signs-allow-color-codes.patch similarity index 97% rename from patches/server/0227-Signs-allow-color-codes.patch rename to patches/server/0226-Signs-allow-color-codes.patch index 1ede8c0ba..ed2b50b2a 100644 --- a/patches/server/0227-Signs-allow-color-codes.patch +++ b/patches/server/0226-Signs-allow-color-codes.patch @@ -84,10 +84,10 @@ index 38cde466714e5663cd416b6afd5d2558e139ec09..2d625f18f2ba42ee5a1ebeea78ca395a 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 b1a5b0a202c45d085a10668c272b1d7d6ac900e8..8b55b918df283d55ca402255e45c39a619a6724c 100644 +index c573d694e60c7fd4dc1820873be99b4da82405cb..51593a72991cd2b7a080383547900d8c62a4d4df 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -958,6 +958,11 @@ public class PurpurWorldConfig { +@@ -983,6 +983,11 @@ public class PurpurWorldConfig { shulkerBoxAllowOversizedStacks = getBoolean("blocks.shulker_box.allow-oversized-stacks", shulkerBoxAllowOversizedStacks); } diff --git a/patches/server/0228-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch b/patches/server/0227-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch similarity index 99% rename from patches/server/0228-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch rename to patches/server/0227-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch index f93f154f1..7a51a0a5a 100644 --- a/patches/server/0228-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch +++ b/patches/server/0227-Kelp-cave-weeping-and-twisting-vines-configurable-ma.patch @@ -135,7 +135,7 @@ index e5c135ec059746b75fe58516809584221285cdbe..713c7e6e31a3e1097b612c77a4fce147 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 1c277fca191df2ed3cc397ec247a7d785d97a894..7467d3738b1159323606f08e7086dba653063211 100644 +index e3452d054ca9d7d1426619fdc1313af83e830ed3..bd77c57d7d36dda517b50736c06e90bea46fc779 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -310,6 +310,10 @@ public class PurpurConfig { diff --git a/patches/server/0229-Mobs-always-drop-experience.patch b/patches/server/0228-Mobs-always-drop-experience.patch similarity index 94% rename from patches/server/0229-Mobs-always-drop-experience.patch rename to patches/server/0228-Mobs-always-drop-experience.patch index 67d93daa3..248ec1b19 100644 --- a/patches/server/0229-Mobs-always-drop-experience.patch +++ b/patches/server/0228-Mobs-always-drop-experience.patch @@ -1157,10 +1157,10 @@ index 68d263a7647e395d981014f7cc761fe76fc74cb6..970b1f6eaeeddf9928ba61239248ecd2 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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d32910062747001 100644 +index 51593a72991cd2b7a080383547900d8c62a4d4df..e088bd15d2723fe02ef65f31051451385c75869c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1025,12 +1025,14 @@ public class PurpurWorldConfig { +@@ -1050,12 +1050,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean batRidable = false; -@@ -1046,6 +1048,7 @@ public class PurpurWorldConfig { +@@ -1071,6 +1073,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1065,6 +1068,7 @@ public class PurpurWorldConfig { +@@ -1090,6 +1093,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean beeRidable = false; -@@ -1076,6 +1080,7 @@ public class PurpurWorldConfig { +@@ -1101,6 +1105,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1091,6 +1096,7 @@ public class PurpurWorldConfig { +@@ -1116,6 +1121,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean blazeRidable = false; -@@ -1099,6 +1105,7 @@ public class PurpurWorldConfig { +@@ -1124,6 +1130,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1111,6 +1118,7 @@ public class PurpurWorldConfig { +@@ -1136,6 +1143,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean camelRidableInWater = false; -@@ -1142,6 +1150,7 @@ public class PurpurWorldConfig { +@@ -1167,6 +1175,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1162,6 +1171,7 @@ public class PurpurWorldConfig { +@@ -1187,6 +1196,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean caveSpiderRidable = false; -@@ -1169,6 +1179,7 @@ public class PurpurWorldConfig { +@@ -1194,6 +1204,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1180,6 +1191,7 @@ public class PurpurWorldConfig { +@@ -1205,6 +1216,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean chickenRidable = false; -@@ -1189,6 +1201,7 @@ public class PurpurWorldConfig { +@@ -1214,6 +1226,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1202,12 +1215,14 @@ public class PurpurWorldConfig { +@@ -1227,12 +1240,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1218,6 +1233,7 @@ public class PurpurWorldConfig { +@@ -1243,6 +1258,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean cowRidable = false; -@@ -1229,6 +1245,7 @@ public class PurpurWorldConfig { +@@ -1254,6 +1270,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1249,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1274,6 +1291,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean creeperRidable = false; -@@ -1261,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1286,6 +1304,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1277,6 +1296,7 @@ public class PurpurWorldConfig { +@@ -1302,6 +1321,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean dolphinRidable = false; -@@ -1288,6 +1308,7 @@ public class PurpurWorldConfig { +@@ -1313,6 +1333,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1303,6 +1324,7 @@ public class PurpurWorldConfig { +@@ -1328,6 +1349,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean donkeyRidableInWater = false; -@@ -1314,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1339,6 +1361,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1331,6 +1354,7 @@ public class PurpurWorldConfig { +@@ -1356,6 +1379,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean drownedRidable = false; -@@ -1343,6 +1367,7 @@ public class PurpurWorldConfig { +@@ -1368,6 +1392,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1359,12 +1384,14 @@ public class PurpurWorldConfig { +@@ -1384,12 +1409,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1375,6 +1402,7 @@ public class PurpurWorldConfig { +@@ -1400,6 +1427,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean enderDragonRidable = false; -@@ -1420,6 +1448,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1473,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1443,6 +1472,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1497,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean endermiteRidable = false; -@@ -1450,6 +1480,7 @@ public class PurpurWorldConfig { +@@ -1475,6 +1505,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1461,6 +1492,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1517,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean evokerRidable = false; -@@ -1469,6 +1501,7 @@ public class PurpurWorldConfig { +@@ -1494,6 +1526,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1481,6 +1514,7 @@ public class PurpurWorldConfig { +@@ -1506,6 +1539,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean foxRidable = false; -@@ -1491,6 +1525,7 @@ public class PurpurWorldConfig { +@@ -1516,6 +1550,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1505,6 +1540,7 @@ public class PurpurWorldConfig { +@@ -1530,6 +1565,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean frogRidable = false; -@@ -1526,6 +1562,7 @@ public class PurpurWorldConfig { +@@ -1551,6 +1587,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1538,6 +1575,7 @@ public class PurpurWorldConfig { +@@ -1563,6 +1600,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean giantRidable = false; -@@ -1551,6 +1589,7 @@ public class PurpurWorldConfig { +@@ -1576,6 +1614,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1572,6 +1611,7 @@ public class PurpurWorldConfig { +@@ -1597,6 +1636,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean glowSquidRidable = false; -@@ -1579,12 +1619,14 @@ public class PurpurWorldConfig { +@@ -1604,12 +1644,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean goatRidable = false; -@@ -1593,6 +1635,7 @@ public class PurpurWorldConfig { +@@ -1618,6 +1660,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1600,12 +1643,14 @@ public class PurpurWorldConfig { +@@ -1625,12 +1668,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1616,6 +1661,7 @@ public class PurpurWorldConfig { +@@ -1641,6 +1686,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean forceHalloweenSeason = false; -@@ -1631,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1702,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1643,6 +1690,7 @@ public class PurpurWorldConfig { +@@ -1668,6 +1715,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean horseRidableInWater = false; -@@ -1654,6 +1702,7 @@ public class PurpurWorldConfig { +@@ -1679,6 +1727,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1547,7 +1547,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1671,6 +1720,7 @@ public class PurpurWorldConfig { +@@ -1696,6 +1745,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean huskRidable = false; -@@ -1682,6 +1732,7 @@ public class PurpurWorldConfig { +@@ -1707,6 +1757,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1697,6 +1748,7 @@ public class PurpurWorldConfig { +@@ -1722,6 +1773,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean illusionerRidable = false; -@@ -1706,6 +1758,7 @@ public class PurpurWorldConfig { +@@ -1731,6 +1783,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1723,6 +1776,7 @@ public class PurpurWorldConfig { +@@ -1748,6 +1801,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean ironGolemRidable = false; -@@ -1733,6 +1787,7 @@ public class PurpurWorldConfig { +@@ -1758,6 +1812,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1747,6 +1802,7 @@ public class PurpurWorldConfig { +@@ -1772,6 +1827,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean llamaRidable = false; -@@ -1761,6 +1817,7 @@ public class PurpurWorldConfig { +@@ -1786,6 +1842,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1781,6 +1838,7 @@ public class PurpurWorldConfig { +@@ -1806,6 +1863,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean magmaCubeRidable = false; -@@ -1791,6 +1849,7 @@ public class PurpurWorldConfig { +@@ -1816,6 +1874,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1805,6 +1864,7 @@ public class PurpurWorldConfig { +@@ -1830,6 +1889,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean mooshroomRidable = false; -@@ -1813,6 +1873,7 @@ public class PurpurWorldConfig { +@@ -1838,6 +1898,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1825,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1850,6 +1911,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean muleRidableInWater = false; -@@ -1836,6 +1898,7 @@ public class PurpurWorldConfig { +@@ -1861,6 +1923,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1853,6 +1916,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1941,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean ocelotRidable = false; -@@ -1861,6 +1925,7 @@ public class PurpurWorldConfig { +@@ -1886,6 +1950,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1873,6 +1938,7 @@ public class PurpurWorldConfig { +@@ -1898,6 +1963,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean pandaRidable = false; -@@ -1881,6 +1947,7 @@ public class PurpurWorldConfig { +@@ -1906,6 +1972,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1893,6 +1960,7 @@ public class PurpurWorldConfig { +@@ -1918,6 +1985,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean parrotRidable = false; -@@ -1902,6 +1970,7 @@ public class PurpurWorldConfig { +@@ -1927,6 +1995,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1915,6 +1984,7 @@ public class PurpurWorldConfig { +@@ -1940,6 +2009,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean phantomRidable = false; -@@ -1942,6 +2012,7 @@ public class PurpurWorldConfig { +@@ -1967,6 +2037,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1977,6 +2048,7 @@ public class PurpurWorldConfig { +@@ -2002,6 +2073,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean pigRidable = false; -@@ -1986,6 +2058,7 @@ public class PurpurWorldConfig { +@@ -2011,6 +2083,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1999,6 +2072,7 @@ public class PurpurWorldConfig { +@@ -2024,6 +2097,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean piglinRidable = false; -@@ -2008,6 +2082,7 @@ public class PurpurWorldConfig { +@@ -2033,6 +2107,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2021,6 +2096,7 @@ public class PurpurWorldConfig { +@@ -2046,6 +2121,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean piglinBruteRidable = false; -@@ -2028,6 +2104,7 @@ public class PurpurWorldConfig { +@@ -2053,6 +2129,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2039,6 +2116,7 @@ public class PurpurWorldConfig { +@@ -2064,6 +2141,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean pillagerRidable = false; -@@ -2047,6 +2125,7 @@ public class PurpurWorldConfig { +@@ -2072,6 +2150,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2059,6 +2138,7 @@ public class PurpurWorldConfig { +@@ -2084,6 +2163,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean polarBearRidable = false; -@@ -2069,6 +2149,7 @@ public class PurpurWorldConfig { +@@ -2094,6 +2174,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2084,12 +2165,14 @@ public class PurpurWorldConfig { +@@ -2109,12 +2190,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2100,6 +2183,7 @@ public class PurpurWorldConfig { +@@ -2125,6 +2208,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean rabbitRidable = false; -@@ -2111,6 +2195,7 @@ public class PurpurWorldConfig { +@@ -2136,6 +2220,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2126,6 +2211,7 @@ public class PurpurWorldConfig { +@@ -2151,6 +2236,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean ravagerRidable = false; -@@ -2135,6 +2221,7 @@ public class PurpurWorldConfig { +@@ -2160,6 +2246,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2164,12 +2251,14 @@ public class PurpurWorldConfig { +@@ -2189,12 +2276,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2180,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2205,6 +2294,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean sheepRidable = false; -@@ -2189,6 +2279,7 @@ public class PurpurWorldConfig { +@@ -2214,6 +2304,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2202,6 +2293,7 @@ public class PurpurWorldConfig { +@@ -2227,6 +2318,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean shulkerRidable = false; -@@ -2215,6 +2307,7 @@ public class PurpurWorldConfig { +@@ -2240,6 +2332,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2232,6 +2325,7 @@ public class PurpurWorldConfig { +@@ -2257,6 +2350,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean silverfishRidable = false; -@@ -2240,6 +2334,7 @@ public class PurpurWorldConfig { +@@ -2265,6 +2359,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2252,6 +2347,7 @@ public class PurpurWorldConfig { +@@ -2277,6 +2372,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean skeletonRidable = false; -@@ -2259,6 +2355,7 @@ public class PurpurWorldConfig { +@@ -2284,6 +2380,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2270,6 +2367,7 @@ public class PurpurWorldConfig { +@@ -2295,6 +2392,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean skeletonHorseRidableInWater = true; -@@ -2281,6 +2379,7 @@ public class PurpurWorldConfig { +@@ -2306,6 +2404,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2297,6 +2396,7 @@ public class PurpurWorldConfig { +@@ -2322,6 +2421,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean slimeRidable = false; -@@ -2307,6 +2407,7 @@ public class PurpurWorldConfig { +@@ -2332,6 +2432,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2321,6 +2422,7 @@ public class PurpurWorldConfig { +@@ -2346,6 +2447,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean snowGolemRidable = false; -@@ -2336,6 +2438,7 @@ public class PurpurWorldConfig { +@@ -2361,6 +2463,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2355,6 +2458,7 @@ public class PurpurWorldConfig { +@@ -2380,6 +2483,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean snifferRidable = false; -@@ -2377,6 +2481,7 @@ public class PurpurWorldConfig { +@@ -2402,6 +2506,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2390,6 +2495,7 @@ public class PurpurWorldConfig { +@@ -2415,6 +2520,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean spiderRidable = false; -@@ -2397,6 +2503,7 @@ public class PurpurWorldConfig { +@@ -2422,6 +2528,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2408,6 +2515,7 @@ public class PurpurWorldConfig { +@@ -2433,6 +2540,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean strayRidable = false; -@@ -2415,6 +2523,7 @@ public class PurpurWorldConfig { +@@ -2440,6 +2548,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2426,6 +2535,7 @@ public class PurpurWorldConfig { +@@ -2451,6 +2560,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean striderRidable = false; -@@ -2435,6 +2545,7 @@ public class PurpurWorldConfig { +@@ -2460,6 +2570,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2448,6 +2559,7 @@ public class PurpurWorldConfig { +@@ -2473,6 +2584,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean tadpoleRidable = false; -@@ -2470,6 +2582,7 @@ public class PurpurWorldConfig { +@@ -2495,6 +2607,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2489,12 +2602,14 @@ public class PurpurWorldConfig { +@@ -2514,12 +2627,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2505,6 +2620,7 @@ public class PurpurWorldConfig { +@@ -2530,6 +2645,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean turtleRidable = false; -@@ -2513,6 +2629,7 @@ public class PurpurWorldConfig { +@@ -2538,6 +2654,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2525,6 +2642,7 @@ public class PurpurWorldConfig { +@@ -2550,6 +2667,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean vexRidable = false; -@@ -2533,6 +2651,7 @@ public class PurpurWorldConfig { +@@ -2558,6 +2676,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2545,6 +2664,7 @@ public class PurpurWorldConfig { +@@ -2570,6 +2689,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean villagerRidable = false; -@@ -2560,6 +2680,7 @@ public class PurpurWorldConfig { +@@ -2585,6 +2705,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2579,6 +2700,7 @@ public class PurpurWorldConfig { +@@ -2604,6 +2725,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean vindicatorRidable = false; -@@ -2587,6 +2709,7 @@ public class PurpurWorldConfig { +@@ -2612,6 +2734,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2599,6 +2722,7 @@ public class PurpurWorldConfig { +@@ -2624,6 +2747,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean wanderingTraderRidable = false; -@@ -2609,6 +2733,7 @@ public class PurpurWorldConfig { +@@ -2634,6 +2758,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2623,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2648,6 +2773,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean wardenRidable = false; -@@ -2639,6 +2765,7 @@ public class PurpurWorldConfig { +@@ -2664,6 +2790,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2650,6 +2777,7 @@ public class PurpurWorldConfig { +@@ -2675,6 +2802,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean witherRidable = false; -@@ -2664,6 +2792,7 @@ public class PurpurWorldConfig { +@@ -2689,6 +2817,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2686,6 +2815,7 @@ public class PurpurWorldConfig { +@@ -2711,6 +2840,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean witherSkeletonRidable = false; -@@ -2693,6 +2823,7 @@ public class PurpurWorldConfig { +@@ -2718,6 +2848,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2704,6 +2835,7 @@ public class PurpurWorldConfig { +@@ -2729,6 +2860,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean wolfRidable = false; -@@ -2715,6 +2847,7 @@ public class PurpurWorldConfig { +@@ -2740,6 +2872,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2734,6 +2867,7 @@ public class PurpurWorldConfig { +@@ -2759,6 +2892,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean zoglinRidable = false; -@@ -2741,6 +2875,7 @@ public class PurpurWorldConfig { +@@ -2766,6 +2900,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2752,6 +2887,7 @@ public class PurpurWorldConfig { +@@ -2777,6 +2912,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean zombieRidable = false; -@@ -2765,6 +2901,7 @@ public class PurpurWorldConfig { +@@ -2790,6 +2926,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2782,6 +2919,7 @@ public class PurpurWorldConfig { +@@ -2807,6 +2944,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean zombieHorseRidableInWater = false; -@@ -2794,6 +2932,7 @@ public class PurpurWorldConfig { +@@ -2819,6 +2957,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2811,6 +2950,7 @@ public class PurpurWorldConfig { +@@ -2836,6 +2975,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean zombieVillagerRidable = false; -@@ -2825,6 +2965,7 @@ public class PurpurWorldConfig { +@@ -2850,6 +2990,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2843,6 +2984,7 @@ public class PurpurWorldConfig { +@@ -2868,6 +3009,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 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 } public boolean zombifiedPiglinRidable = false; -@@ -2855,6 +2997,7 @@ public class PurpurWorldConfig { +@@ -2880,6 +3022,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 8b55b918df283d55ca402255e45c39a619a6724c..2e6480fa2bf4b7ed98d202d80d329100 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2871,6 +3014,7 @@ public class PurpurWorldConfig { +@@ -2896,6 +3039,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/0230-Potion-NamespacedKey.patch b/patches/server/0229-Potion-NamespacedKey.patch similarity index 100% rename from patches/server/0230-Potion-NamespacedKey.patch rename to patches/server/0229-Potion-NamespacedKey.patch diff --git a/patches/server/0231-Grindstone-API.patch b/patches/server/0230-Grindstone-API.patch similarity index 100% rename from patches/server/0231-Grindstone-API.patch rename to patches/server/0230-Grindstone-API.patch diff --git a/patches/server/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0231-Ability-for-hoe-to-replant-crops-and-nether-warts.patch similarity index 94% rename from patches/server/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch rename to patches/server/0231-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index d492ea779..407d56aa5 100644 --- a/patches/server/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0231-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,21 +74,21 @@ index e55720c4d2fbdf6aae526910e87a67c29cf906fd..0e4026e9d39735b840f12e59f84469b9 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2e6480fa2bf4b7ed98d202d80d32910062747001..6af8c085f0accf7c450e3e53183e3002930c5b23 100644 +index e088bd15d2723fe02ef65f31051451385c75869c..25804886a3f406b772ed84cf5ed3e600d686f7e4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -562,6 +562,8 @@ public class PurpurWorldConfig { - public Map axeWaxables = new HashMap<>(); +@@ -549,6 +549,8 @@ public class PurpurWorldConfig { public Map axeWeatherables = new HashMap<>(); public Map hoeTillables = new HashMap<>(); + public Map shovelFlattenables = new HashMap<>(); + public boolean hoeReplantsCrops = false; + public boolean hoeReplantsNetherWarts = false; private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -717,6 +719,8 @@ public class PurpurWorldConfig { +@@ -742,6 +744,8 @@ public class PurpurWorldConfig { }); - hoeTillables.put(block, new Tillable(condition, into, drops)); + shovelFlattenables.put(block, new Flattenable(into, drops)); }); + hoeReplantsCrops = getBoolean("tools.hoe.replant-crops", hoeReplantsCrops); + hoeReplantsNetherWarts = getBoolean("tools.hoe.replant-nether-warts", hoeReplantsNetherWarts); diff --git a/patches/server/0233-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0232-Shearing-jeb-produces-random-color-wool.patch similarity index 92% rename from patches/server/0233-Shearing-jeb-produces-random-color-wool.patch rename to patches/server/0232-Shearing-jeb-produces-random-color-wool.patch index ef373af6a..7052d4fc5 100644 --- a/patches/server/0233-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0232-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index a1b323ecba25910e97f154e487acc94943117e0c..62d8ae4c689170420c7850fbbb402be8 if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6af8c085f0accf7c450e3e53183e3002930c5b23..a6c7de9fdb96d0c8d741bc72c9c4154a165f67f3 100644 +index 25804886a3f406b772ed84cf5ed3e600d686f7e4..2000aa2b43ad0b386d765248435d8714f35e1673 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2284,6 +2284,7 @@ public class PurpurWorldConfig { +@@ -2309,6 +2309,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 6af8c085f0accf7c450e3e53183e3002930c5b23..a6c7de9fdb96d0c8d741bc72c9c4154a private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2298,6 +2299,7 @@ public class PurpurWorldConfig { +@@ -2323,6 +2324,7 @@ public class PurpurWorldConfig { sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp); diff --git a/patches/server/0234-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0233-Turtle-eggs-random-tick-crack-chance.patch similarity index 93% rename from patches/server/0234-Turtle-eggs-random-tick-crack-chance.patch rename to patches/server/0233-Turtle-eggs-random-tick-crack-chance.patch index b65d9e3ae..146bbbaa3 100644 --- a/patches/server/0234-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0233-Turtle-eggs-random-tick-crack-chance.patch @@ -18,10 +18,10 @@ index 7495e0e8beedad59fff24ebf189b58b307f7d796..70997b83fd7631ebf3c5bda67ef77bef @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a6c7de9fdb96d0c8d741bc72c9c4154a165f67f3..09129e897b29e0ee775333ff663c6cb5c92b7857 100644 +index 2000aa2b43ad0b386d765248435d8714f35e1673..3cfb762c9c8af78ba6320d563516e879530a1f95 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -992,11 +992,13 @@ public class PurpurWorldConfig { +@@ -1017,11 +1017,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0235-Mob-head-visibility-percent.patch b/patches/server/0234-Mob-head-visibility-percent.patch similarity index 91% rename from patches/server/0235-Mob-head-visibility-percent.patch rename to patches/server/0234-Mob-head-visibility-percent.patch index 455ff5e30..437bda84c 100644 --- a/patches/server/0235-Mob-head-visibility-percent.patch +++ b/patches/server/0234-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index 21d6851cb903f214db92109a6c16bb7367e40e1c..aff8b1b0683e52038b6d92e052a012c9 // 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 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f5009228f 100644 +index 3cfb762c9c8af78ba6320d563516e879530a1f95..29cf03dec710b56b6f8ebdf25965e69f89c69879 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1286,6 +1286,7 @@ public class PurpurWorldConfig { +@@ -1311,6 +1311,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1303,6 +1304,7 @@ public class PurpurWorldConfig { +@@ -1328,6 +1329,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 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f } public boolean dolphinRidable = false; -@@ -2089,6 +2091,7 @@ public class PurpurWorldConfig { +@@ -2114,6 +2116,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2103,6 +2106,7 @@ public class PurpurWorldConfig { +@@ -2128,6 +2131,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 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f } public boolean piglinBruteRidable = false; -@@ -2364,6 +2368,7 @@ public class PurpurWorldConfig { +@@ -2389,6 +2393,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2376,6 +2381,7 @@ public class PurpurWorldConfig { +@@ -2401,6 +2406,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 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f } public boolean skeletonHorseRidableInWater = true; -@@ -2910,6 +2916,7 @@ public class PurpurWorldConfig { +@@ -2935,6 +2941,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 09129e897b29e0ee775333ff663c6cb5c92b7857..13b8de2398f4c105e8e010289b3d492f private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2928,6 +2935,7 @@ public class PurpurWorldConfig { +@@ -2953,6 +2960,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/0236-Configurable-valid-characters-for-usernames.patch b/patches/server/0235-Configurable-valid-characters-for-usernames.patch similarity index 95% rename from patches/server/0236-Configurable-valid-characters-for-usernames.patch rename to patches/server/0235-Configurable-valid-characters-for-usernames.patch index cd09132c2..7613adffe 100644 --- a/patches/server/0236-Configurable-valid-characters-for-usernames.patch +++ b/patches/server/0235-Configurable-valid-characters-for-usernames.patch @@ -18,7 +18,7 @@ index b4b88a3d4dc66c44ca8f3bad1025c17a9993ac1d..01d5fa265fb2818465b5a71a2e2efeec char c = in.charAt(i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c85e7c7f672508f4ca8152e6823b715e64802d51..1b5f88da5c2a8702c268bee9691f4f5c92d5aeaa 100644 +index bd77c57d7d36dda517b50736c06e90bea46fc779..de2f30e24a1a2f3d881a5e036b2e883567b2db70 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -455,4 +455,11 @@ public class PurpurConfig { diff --git a/patches/server/0237-Shears-can-have-looting-enchantment.patch b/patches/server/0236-Shears-can-have-looting-enchantment.patch similarity index 98% rename from patches/server/0237-Shears-can-have-looting-enchantment.patch rename to patches/server/0236-Shears-can-have-looting-enchantment.patch index 7e20f5169..0e2696a73 100644 --- a/patches/server/0237-Shears-can-have-looting-enchantment.patch +++ b/patches/server/0236-Shears-can-have-looting-enchantment.patch @@ -94,7 +94,7 @@ index 62d8ae4c689170420c7850fbbb402be85b565882..54de1f782e45cb3e3b1442aeb56b6e85 for (int j = 0; j < i; ++j) { this.forceDrops = true; // CraftBukkit diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index dd4d3dbda72a3bf0aabce0f999121f401f85b8a4..7cd368b252fa6ad6956685f68c730c4a2273c10e 100644 +index fc8526af7e1df15794b4560b58e7f6a47508aa08..8b364fe9f3a3d47ae6daa331b8f16941ca17432a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -199,7 +199,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -158,7 +158,7 @@ index 4007c16550683e23b396dfdff29530a82523fe05..8fe09c13643d99639fb242da4367c42e public int getMinCost(int level) { return 15 + (level - 1) * 9; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 1429ff6e89efd58a618c1b1bbeea567466f5f397..eb5747485a43bc5c5574cfc539bdc98bee045e9f 100644 +index de2f30e24a1a2f3d881a5e036b2e883567b2db70..c0ec042d3e4b322154ae58dbc0bb95b7ddbcbdd9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -389,6 +389,7 @@ public class PurpurConfig { diff --git a/patches/server/0238-Stop-bees-from-dying-after-stinging.patch b/patches/server/0237-Stop-bees-from-dying-after-stinging.patch similarity index 90% rename from patches/server/0238-Stop-bees-from-dying-after-stinging.patch rename to patches/server/0237-Stop-bees-from-dying-after-stinging.patch index 7d214c92c..3f949772d 100644 --- a/patches/server/0238-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0237-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index ac4ca4de2be18a08268b24dfe259cfd136b1a4da..e837500019157129007841c847d807eb ++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 13b8de2398f4c105e8e010289b3d492f5009228f..40e4ca084fe829ce422052986f43f3e4ce551da0 100644 +index 29cf03dec710b56b6f8ebdf25965e69f89c69879..7f19ad410e342607d46a37652b349ce19d775258 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1087,6 +1087,7 @@ public class PurpurWorldConfig { +@@ -1112,6 +1112,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index 13b8de2398f4c105e8e010289b3d492f5009228f..40e4ca084fe829ce422052986f43f3e4 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1103,6 +1104,7 @@ public class PurpurWorldConfig { +@@ -1128,6 +1129,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/0239-Give-bee-counts-in-beehives-to-Purpur-clients.patch b/patches/server/0238-Give-bee-counts-in-beehives-to-Purpur-clients.patch similarity index 98% rename from patches/server/0239-Give-bee-counts-in-beehives-to-Purpur-clients.patch rename to patches/server/0238-Give-bee-counts-in-beehives-to-Purpur-clients.patch index 154484fc1..2c7a2cf1a 100644 --- a/patches/server/0239-Give-bee-counts-in-beehives-to-Purpur-clients.patch +++ b/patches/server/0238-Give-bee-counts-in-beehives-to-Purpur-clients.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 922373558de4ee1492335711c07494a59227b626..0255f5f21da2a108a25c8a166717706d300b0cae 100644 +index 7746e968094f3238b8cb76062ae40a8b0363c5b9..11bb87a0800e6d1f36be55b91869794e5eef2cd3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1034,6 +1034,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 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 67797e29f9b31eaa698c81e798ac19834a9fdf1b..2c334639b53defdc9d8cd21f8650ebce61392dac 100644 +index 195b62e7a311ca344463cfc89b38fd3ea12eac26..99a530b88a9d41abda4ca352b5e5ec9d12aa9a4b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2726,6 +2726,8 @@ public class PurpurWorldConfig { +@@ -2751,6 +2751,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 67797e29f9b31eaa698c81e798ac19834a9fdf1b..2c334639b53defdc9d8cd21f8650ebce private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2759,6 +2761,8 @@ public class PurpurWorldConfig { +@@ -2784,6 +2786,8 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0256-Stonecutter-damage.patch b/patches/server/0255-Stonecutter-damage.patch similarity index 96% rename from patches/server/0256-Stonecutter-damage.patch rename to patches/server/0255-Stonecutter-damage.patch index 22c3304fa..6e1eda312 100644 --- a/patches/server/0256-Stonecutter-damage.patch +++ b/patches/server/0255-Stonecutter-damage.patch @@ -90,7 +90,7 @@ index d976a6df54c1e817def2d588692abe25a03ee0fa..ba57accc272958da4714896baeadb52c return BlockPathTypes.STICKY_HONEY; } else if (blockState.is(Blocks.COCOA)) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 87eb0a2ac646df2e94d600078259df5eacc4e9c5..153957dc82b8552214517e5b60aafb95b59e95d5 100644 +index 959ce984af6397df8bfb010589037489f2c0148f..49343a0375c09ff6bdcb03b477ea93210a580175 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -207,8 +207,10 @@ public class PurpurConfig { @@ -105,10 +105,10 @@ index 87eb0a2ac646df2e94d600078259df5eacc4e9c5..153957dc82b8552214517e5b60aafb95 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 2c334639b53defdc9d8cd21f8650ebce61392dac..acedbb0ba5310aaeadcbec340d252b5fbc756733 100644 +index 99a530b88a9d41abda4ca352b5e5ec9d12aa9a4b..9e71c9c6f374014d8b86790d2f5f2c90ea35f1a9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1002,6 +1002,11 @@ public class PurpurWorldConfig { +@@ -1027,6 +1027,11 @@ public class PurpurWorldConfig { spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud); } diff --git a/patches/server/0257-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0256-Configurable-damage-settings-for-magma-blocks.patch similarity index 94% rename from patches/server/0257-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0256-Configurable-damage-settings-for-magma-blocks.patch index 980756609..4211cd69a 100644 --- a/patches/server/0257-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0256-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index 1b766045687e4dcded5cbcc50b746c55b9a34e22..be365914856593bb3c4e1945cc990786 entity.hurt(world.damageSources().hotFloor(), 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index acedbb0ba5310aaeadcbec340d252b5fbc756733..b6a9c51e1afeb4003f2d0f81f0e11ce285fc484b 100644 +index 9e71c9c6f374014d8b86790d2f5f2c90ea35f1a9..20355a20702bf728228e2795e83618d5313d6b0f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -933,6 +933,13 @@ public class PurpurWorldConfig { +@@ -958,6 +958,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0258-Add-config-for-snow-on-blue-ice.patch b/patches/server/0257-Add-config-for-snow-on-blue-ice.patch similarity index 93% rename from patches/server/0258-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0257-Add-config-for-snow-on-blue-ice.patch index 028dfeacd..999416ebc 100644 --- a/patches/server/0258-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0257-Add-config-for-snow-on-blue-ice.patch @@ -22,10 +22,10 @@ index 14e00c7feb1c051d56a3d27cd00dcef072dd771a..4952fb1aaaafb55baa0fddb389f966a1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b6a9c51e1afeb4003f2d0f81f0e11ce285fc484b..190715b743f9a37716e3478e6dca40e0a2513b59 100644 +index 20355a20702bf728228e2795e83618d5313d6b0f..19c6d008dc8f310bc42a4db7be3fa4abd4ccd3b2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -914,9 +914,11 @@ public class PurpurWorldConfig { +@@ -939,9 +939,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0259-Skeletons-eat-wither-roses.patch b/patches/server/0258-Skeletons-eat-wither-roses.patch similarity index 96% rename from patches/server/0259-Skeletons-eat-wither-roses.patch rename to patches/server/0258-Skeletons-eat-wither-roses.patch index 82f2c9753..255dc18b9 100644 --- a/patches/server/0259-Skeletons-eat-wither-roses.patch +++ b/patches/server/0258-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 9b43150a00d7fac85aa69f5a2dbffd0dfdae4b86..f4a47ac2c86cc95178922cce7320ba1e + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 190715b743f9a37716e3478e6dca40e0a2513b59..434f4ea6679b9de4717c7a3ebd9850f8c116cf38 100644 +index 19c6d008dc8f310bc42a4db7be3fa4abd4ccd3b2..9857a1e836db94304f01ef86254ab8f0c0c01714 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2410,6 +2410,7 @@ public class PurpurWorldConfig { +@@ -2435,6 +2435,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 190715b743f9a37716e3478e6dca40e0a2513b59..434f4ea6679b9de4717c7a3ebd9850f8 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2423,6 +2424,7 @@ public class PurpurWorldConfig { +@@ -2448,6 +2449,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/0260-Enchantment-Table-Persists-Lapis.patch b/patches/server/0259-Enchantment-Table-Persists-Lapis.patch similarity index 98% rename from patches/server/0260-Enchantment-Table-Persists-Lapis.patch rename to patches/server/0259-Enchantment-Table-Persists-Lapis.patch index f358d1430..6c7fd7946 100644 --- a/patches/server/0260-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0259-Enchantment-Table-Persists-Lapis.patch @@ -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 434f4ea6679b9de4717c7a3ebd9850f8c116cf38..d3ff694f9bacd1ff673fd468ed9b13dc9ead738c 100644 +index 9857a1e836db94304f01ef86254ab8f0c0c01714..1cd7ceb06be653fadde9dd8080050ae6489306d2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1445,6 +1445,11 @@ public class PurpurWorldConfig { +@@ -1470,6 +1470,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0261-Spark-Profiler.patch b/patches/server/0260-Spark-Profiler.patch similarity index 100% rename from patches/server/0261-Spark-Profiler.patch rename to patches/server/0260-Spark-Profiler.patch diff --git a/patches/server/0262-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0261-Option-to-disable-kick-for-out-of-order-chat.patch similarity index 95% rename from patches/server/0262-Option-to-disable-kick-for-out-of-order-chat.patch rename to patches/server/0261-Option-to-disable-kick-for-out-of-order-chat.patch index 0a89da4fd..61917c274 100644 --- a/patches/server/0262-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0261-Option-to-disable-kick-for-out-of-order-chat.patch @@ -18,7 +18,7 @@ index 2261f971b85afcb1153cf9e63f0148f492fa18a4..5b26de82b57baaae355e4f32dbd53218 } while (!this.lastChatTimeStamp.compareAndSet(instant1, timestamp)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 7de15635c9b63215771e75ee4840b99a7afbf731..b6128702e5d1f6633824cd1a2edfc8f9b477e8ea 100644 +index 49343a0375c09ff6bdcb03b477ea93210a580175..bf8f740b33b56d0afbea12596eea7a6ab0bc2a4b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -459,9 +459,11 @@ public class PurpurConfig { diff --git a/patches/server/0263-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0262-Config-for-sculk-shrieker-can_summon-state.patch similarity index 93% rename from patches/server/0263-Config-for-sculk-shrieker-can_summon-state.patch rename to patches/server/0262-Config-for-sculk-shrieker-can_summon-state.patch index b98f09149..1840302ef 100644 --- a/patches/server/0263-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0262-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,10 +18,10 @@ index 02d01eabb9606ae8c3b76ad9fa4bb9a525e247b1..ce51fec4a874f9466f9966684c535315 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d3ff694f9bacd1ff673fd468ed9b13dc9ead738c..ac73bb671fd12f1aeeeef8d9db28f0e3e35c3cbb 100644 +index 1cd7ceb06be653fadde9dd8080050ae6489306d2..96c980686dc69797a8582e915f9c7c44e9ecfd9d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -978,6 +978,11 @@ public class PurpurWorldConfig { +@@ -1003,6 +1003,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0264-Config-to-not-let-coral-die.patch b/patches/server/0263-Config-to-not-let-coral-die.patch similarity index 94% rename from patches/server/0264-Config-to-not-let-coral-die.patch rename to patches/server/0263-Config-to-not-let-coral-die.patch index 1bb0548d0..2cd1231c1 100644 --- a/patches/server/0264-Config-to-not-let-coral-die.patch +++ b/patches/server/0263-Config-to-not-let-coral-die.patch @@ -29,10 +29,10 @@ index 88faea00be60a519f56f975a5311df5e1eb3e6b8..cbb726ac367be81e27d3a86643baf7c4 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 ac73bb671fd12f1aeeeef8d9db28f0e3e35c3cbb..f41a2cad0736c3133104dc03d3b2ce4002ad3504 100644 +index 96c980686dc69797a8582e915f9c7c44e9ecfd9d..81463d5f0f0937fdd20e0d3b4b77f5e58178d6eb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -815,6 +815,11 @@ public class PurpurWorldConfig { +@@ -840,6 +840,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0265-Add-local-difficulty-api.patch b/patches/server/0264-Add-local-difficulty-api.patch similarity index 91% rename from patches/server/0265-Add-local-difficulty-api.patch rename to patches/server/0264-Add-local-difficulty-api.patch index 1b97a5bd7..58f0258a5 100644 --- a/patches/server/0265-Add-local-difficulty-api.patch +++ b/patches/server/0264-Add-local-difficulty-api.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 550dcb7d595221b221e4710890d8a3cad789fc07..4720939d138300ed410871e40d3d2800224a7987 100644 +index f857f490ffba2f25f7c06c5fb1a1905f0b51fbe2..a2e852adf47261b1b2eb9734cc90f4676ed58126 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -2290,6 +2290,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/server/0266-Add-toggle-for-RNG-manipulation.patch b/patches/server/0265-Add-toggle-for-RNG-manipulation.patch similarity index 95% rename from patches/server/0266-Add-toggle-for-RNG-manipulation.patch rename to patches/server/0265-Add-toggle-for-RNG-manipulation.patch index ecb3fe4c8..0001e61b6 100644 --- a/patches/server/0266-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0265-Add-toggle-for-RNG-manipulation.patch @@ -33,10 +33,10 @@ index 88c238e492b1081d1a64a3b6f05d7baa17e5d8c9..dd7f2beabf0edad4143ac2365ac04a22 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f41a2cad0736c3133104dc03d3b2ce4002ad3504..103fdcc4546649c29f97d5ebb90beddc3387018e 100644 +index 81463d5f0f0937fdd20e0d3b4b77f5e58178d6eb..da50462eb405a1b401f8261cd30f5e476c61ad46 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -205,9 +205,11 @@ public class PurpurWorldConfig { +@@ -206,9 +206,11 @@ public class PurpurWorldConfig { public int entityLifeSpan = 0; public float entityLeftHandedChance = 0.05f; diff --git a/patches/server/0267-Send-client-custom-name-of-BE.patch b/patches/server/0266-Send-client-custom-name-of-BE.patch similarity index 100% rename from patches/server/0267-Send-client-custom-name-of-BE.patch rename to patches/server/0266-Send-client-custom-name-of-BE.patch diff --git a/patches/server/0268-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch b/patches/server/0267-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch similarity index 98% rename from patches/server/0268-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch rename to patches/server/0267-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch index 6e82e4f2d..35bc0a7a6 100644 --- a/patches/server/0268-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch +++ b/patches/server/0267-PaperPR-7822-Fix-exact-choice-recipe-book-clicks.patch @@ -85,7 +85,7 @@ index 574ebb3a2fcd0e4e426a8a7ee88d722ed3b9c3f5..862972afa333422592a25b854cec191e } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 500d5bfb80d39d5030c17bd419ea07dabcf9ff67..9e78c913da090d351d3dbaff3eff7d19fb18c8e4 100644 +index f76f912501fc647f759dbd54b2b220f5b95c1407..7e68596e28db88213e9352f798c5a4ce37cc5656 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -113,6 +113,7 @@ import org.bukkit.event.world.StructureGrowEvent; diff --git a/patches/server/0269-Allow-custom-ChatDecorators.patch b/patches/server/0268-Allow-custom-ChatDecorators.patch similarity index 100% rename from patches/server/0269-Allow-custom-ChatDecorators.patch rename to patches/server/0268-Allow-custom-ChatDecorators.patch diff --git a/patches/server/0270-Remove-Timings.patch b/patches/server/0269-Remove-Timings.patch similarity index 100% rename from patches/server/0270-Remove-Timings.patch rename to patches/server/0269-Remove-Timings.patch diff --git a/patches/server/0271-Remove-Mojang-Profiler.patch b/patches/server/0270-Remove-Mojang-Profiler.patch similarity index 100% rename from patches/server/0271-Remove-Mojang-Profiler.patch rename to patches/server/0270-Remove-Mojang-Profiler.patch diff --git a/patches/server/0272-Add-more-logger-output-for-invalid-movement-kicks.patch b/patches/server/0271-Add-more-logger-output-for-invalid-movement-kicks.patch similarity index 96% rename from patches/server/0272-Add-more-logger-output-for-invalid-movement-kicks.patch rename to patches/server/0271-Add-more-logger-output-for-invalid-movement-kicks.patch index 805c9f444..3ab8f18f7 100644 --- a/patches/server/0272-Add-more-logger-output-for-invalid-movement-kicks.patch +++ b/patches/server/0271-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 ea017dd7db03c25db92c57e802a598670a6824e6..baa8e8b74a3d802c9f32378f15e038f32e90a11d 100644 +index c08e1745cf1ae9914db64fdc9dbe52f3da50ffec..b2f7ed77758a6c0a38cebf9b38b32508b6496fcf 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -867,6 +867,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic diff --git a/patches/server/0273-Add-Bee-API.patch b/patches/server/0272-Add-Bee-API.patch similarity index 100% rename from patches/server/0273-Add-Bee-API.patch rename to patches/server/0272-Add-Bee-API.patch diff --git a/patches/server/0274-Debug-Marker-API.patch b/patches/server/0273-Debug-Marker-API.patch similarity index 100% rename from patches/server/0274-Debug-Marker-API.patch rename to patches/server/0273-Debug-Marker-API.patch diff --git a/patches/server/0275-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0274-mob-spawning-option-to-ignore-creative-players.patch similarity index 93% rename from patches/server/0275-mob-spawning-option-to-ignore-creative-players.patch rename to patches/server/0274-mob-spawning-option-to-ignore-creative-players.patch index a68934191..01c94cf6e 100644 --- a/patches/server/0275-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0274-mob-spawning-option-to-ignore-creative-players.patch @@ -18,10 +18,10 @@ index 1894348413f3b30bd9c4286fa533c1037f07f870..327a3d5cd5ea4db98e6bad90fc0bb146 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 103fdcc4546649c29f97d5ebb90beddc3387018e..f65cc17c1c631ecf5749f8945c0e7d3111acc45d 100644 +index da50462eb405a1b401f8261cd30f5e476c61ad46..ab275aeebd8e8fff69242bfae07e66efea4b1173 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -378,6 +378,7 @@ public class PurpurWorldConfig { +@@ -379,6 +379,7 @@ public class PurpurWorldConfig { public boolean phantomSpawning; public boolean villagerTraderSpawning; public boolean villageSiegeSpawning; @@ -29,7 +29,7 @@ index 103fdcc4546649c29f97d5ebb90beddc3387018e..f65cc17c1c631ecf5749f8945c0e7d31 private void mobSpawnerSettings() { // values of "default" or null will default to true only if the world environment is normal (aka overworld) Predicate predicate = (bool) -> (bool != null && bool) || (bool == null && environment == World.Environment.NORMAL); -@@ -386,6 +387,7 @@ public class PurpurWorldConfig { +@@ -387,6 +388,7 @@ public class PurpurWorldConfig { phantomSpawning = getBoolean("gameplay-mechanics.mob-spawning.phantoms", predicate); villagerTraderSpawning = getBoolean("gameplay-mechanics.mob-spawning.wandering-traders", predicate); villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); diff --git a/patches/server/0276-Add-skeleton-bow-accuracy-option.patch b/patches/server/0275-Add-skeleton-bow-accuracy-option.patch similarity index 94% rename from patches/server/0276-Add-skeleton-bow-accuracy-option.patch rename to patches/server/0275-Add-skeleton-bow-accuracy-option.patch index 66433e68a..a63f9b670 100644 --- a/patches/server/0276-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0275-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index 41376b705748e14c1c4174e07732ce09ad8e581f..dd84433a988712da9d799cbda2487a90 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 f65cc17c1c631ecf5749f8945c0e7d3111acc45d..81b7d6e50e4b54a1b210f0ec43631951dff93e11 100644 +index ab275aeebd8e8fff69242bfae07e66efea4b1173..f246aff15aa9e281600ccd796038b663f7dc5f73 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2430,6 +2430,8 @@ public class PurpurWorldConfig { +@@ -2455,6 +2455,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index f65cc17c1c631ecf5749f8945c0e7d3111acc45d..81b7d6e50e4b54a1b210f0ec43631951 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2444,6 +2446,18 @@ public class PurpurWorldConfig { +@@ -2469,6 +2471,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/0277-Allay-respect-item-NBT.patch b/patches/server/0276-Allay-respect-item-NBT.patch similarity index 95% rename from patches/server/0277-Allay-respect-item-NBT.patch rename to patches/server/0276-Allay-respect-item-NBT.patch index f4f388688..2c8b1a04c 100644 --- a/patches/server/0277-Allay-respect-item-NBT.patch +++ b/patches/server/0276-Allay-respect-item-NBT.patch @@ -44,10 +44,10 @@ index d50bf1b980231a1045c1c9df622a9a50fc2ed893..7166f4a39fd615e10d7b1f53c5736383 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 81b7d6e50e4b54a1b210f0ec43631951dff93e11..c291c262a9cd0afd162cd228ecd883f34b8ff2f8 100644 +index f246aff15aa9e281600ccd796038b663f7dc5f73..1a0bab0f586a3bba681f001b27421e81ee69537d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1064,10 +1064,13 @@ public class PurpurWorldConfig { +@@ -1089,10 +1089,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = true; public boolean allayControllable = true; diff --git a/patches/server/0278-Add-death-screen-API.patch b/patches/server/0277-Add-death-screen-API.patch similarity index 100% rename from patches/server/0278-Add-death-screen-API.patch rename to patches/server/0277-Add-death-screen-API.patch diff --git a/patches/server/0279-Make-pufferfish-config-relocatable.patch b/patches/server/0278-Make-pufferfish-config-relocatable.patch similarity index 96% rename from patches/server/0279-Make-pufferfish-config-relocatable.patch rename to patches/server/0278-Make-pufferfish-config-relocatable.patch index 2b053b41e..3970a76c1 100644 --- a/patches/server/0279-Make-pufferfish-config-relocatable.patch +++ b/patches/server/0278-Make-pufferfish-config-relocatable.patch @@ -38,7 +38,7 @@ index fa258f1a15a93db0c3401397433b184938412a9b..41db72915baa4c02b11a701dfdde09b6 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 6832f7990c4e6777b39dd5de60a207b324baaf00..0bc9b176a3b86a5b4153a2110621534c692d8240 100644 +index 75e10acdab366deea1ff47274424aeae11173c8c..9a3374a1236164194ef0df43ed639296cbe1c731 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -179,6 +179,12 @@ public class Main { diff --git a/patches/server/0280-Implement-ram-and-rambar-commands.patch b/patches/server/0279-Implement-ram-and-rambar-commands.patch similarity index 98% rename from patches/server/0280-Implement-ram-and-rambar-commands.patch rename to patches/server/0279-Implement-ram-and-rambar-commands.patch index 6003827bf..246d5837e 100644 --- a/patches/server/0280-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0279-Implement-ram-and-rambar-commands.patch @@ -18,7 +18,7 @@ index 52b06c34d9d3ffb8844556e7b0eaed5a7f03da0c..5c0085589b08f199c75ceeab8d0cf25e 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 3ab54ab8d0a5ccf1abaa53cf3ce5b25febcd184d..c9a8556d0aa832f05068c8e14343450d3be159bd 100644 +index 20200dfe5b6af64083562dc748bfaf43c3b8cca5..567f60a054dcc3b200ded49ed1b19149a032837d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -279,6 +279,7 @@ public class ServerPlayer extends Player { @@ -61,7 +61,7 @@ index 3ab54ab8d0a5ccf1abaa53cf3ce5b25febcd184d..c9a8556d0aa832f05068c8e14343450d return this.tpsBar; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index b6128702e5d1f6633824cd1a2edfc8f9b477e8ea..14d7a9eca55160290644bbf840665a94441ca4b4 100644 +index bf8f740b33b56d0afbea12596eea7a6ab0bc2a4b..a509f6362801e70236599d0f70add59c2855bc4f 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/0281-Add-item-packet-serialize-event.patch b/patches/server/0280-Add-item-packet-serialize-event.patch similarity index 97% rename from patches/server/0281-Add-item-packet-serialize-event.patch rename to patches/server/0280-Add-item-packet-serialize-event.patch index d93ebc453..b119b6fb8 100644 --- a/patches/server/0281-Add-item-packet-serialize-event.patch +++ b/patches/server/0280-Add-item-packet-serialize-event.patch @@ -65,7 +65,7 @@ index b2f7ed77758a6c0a38cebf9b38b32508b6496fcf..ac70ab790f73e35fd5ec880f5a884da9 boolean flag1 = packet.getSlotNum() >= 1 && packet.getSlotNum() <= 45; boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 751067f369457b5a4ee43f90c8783a4a36c20138..aef6b0c3e83a90bd6373992410251eaa1c914fb1 100644 +index a509f6362801e70236599d0f70add59c2855bc4f..d2e30ccf010225facfe04d604a1fc98f57a4660e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -566,4 +566,9 @@ public class PurpurConfig { diff --git a/patches/server/0282-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0281-Add-an-option-to-fix-MC-3304-projectile-looting.patch similarity index 98% rename from patches/server/0282-Add-an-option-to-fix-MC-3304-projectile-looting.patch rename to patches/server/0281-Add-an-option-to-fix-MC-3304-projectile-looting.patch index c64ca4c8c..1e1e75b74 100644 --- a/patches/server/0282-Add-an-option-to-fix-MC-3304-projectile-looting.patch +++ b/patches/server/0281-Add-an-option-to-fix-MC-3304-projectile-looting.patch @@ -104,7 +104,7 @@ index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..15d8e9261a89da30529ac347462c5209 if (context.hasParam(LootContextParams.LOOTING_MOD)) { i = context.getParamOrNull(LootContextParams.LOOTING_MOD); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index aef6b0c3e83a90bd6373992410251eaa1c914fb1..91ef20d68ad386a038aca0bfe3a5c23f90eeab0d 100644 +index d2e30ccf010225facfe04d604a1fc98f57a4660e..6202d4279042c62a74d49b7b8733444093cb6a2a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -571,4 +571,9 @@ public class PurpurConfig { diff --git a/patches/server/0283-Configurable-block-blast-resistance.patch b/patches/server/0282-Configurable-block-blast-resistance.patch similarity index 97% rename from patches/server/0283-Configurable-block-blast-resistance.patch rename to patches/server/0282-Configurable-block-blast-resistance.patch index 2b5e8ff1f..deddae3bf 100644 --- a/patches/server/0283-Configurable-block-blast-resistance.patch +++ b/patches/server/0282-Configurable-block-blast-resistance.patch @@ -44,7 +44,7 @@ index ec6c63075306f9e5389e83641d2c8a82369ddc6b..0f16deddd8cbb506ef7886f57ae640a4 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 91ef20d68ad386a038aca0bfe3a5c23f90eeab0d..4e664a3d93cf38f136c8c6b77f930ae6b00565d3 100644 +index 6202d4279042c62a74d49b7b8733444093cb6a2a..be91c68f20547d883911b9ac6d81fdd1aaa51092 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -576,4 +576,19 @@ public class PurpurConfig { diff --git a/patches/server/0284-Configurable-block-fall-damage-modifiers.patch b/patches/server/0283-Configurable-block-fall-damage-modifiers.patch similarity index 98% rename from patches/server/0284-Configurable-block-fall-damage-modifiers.patch rename to patches/server/0283-Configurable-block-fall-damage-modifiers.patch index a367f33fe..8ffc64bcd 100644 --- a/patches/server/0284-Configurable-block-fall-damage-modifiers.patch +++ b/patches/server/0283-Configurable-block-fall-damage-modifiers.patch @@ -54,7 +54,7 @@ index cfbe1dae76db76cf54a4f5d72aca72d5e893859e..74cb10230d459ac9f300a9d59af504d2 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 4e664a3d93cf38f136c8c6b77f930ae6b00565d3..a4e2c4fd8a1f7c5d882565677e9cc8939f5d9337 100644 +index be91c68f20547d883911b9ac6d81fdd1aaa51092..52762bde9e079f3610307c718213a93b2a2db788 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -591,4 +591,50 @@ public class PurpurConfig { diff --git a/patches/server/0285-Language-API.patch b/patches/server/0284-Language-API.patch similarity index 93% rename from patches/server/0285-Language-API.patch rename to patches/server/0284-Language-API.patch index 144afdc84..9ff175bfa 100644 --- a/patches/server/0285-Language-API.patch +++ b/patches/server/0284-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 1f70b0e41915516a4826ad3ffb05876325ad941a..60fbac7b09ba7de1127d53ba296ea7b843105b2a 100644 +index 89f4e1146a22ee9dc610b67d0316dd9412e33a24..0a4dfec98470050a0ec9c3693496751fa78fec81 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -397,6 +397,20 @@ public final class CraftServer implements Server { diff --git a/patches/server/0286-Milk-Keeps-Beneficial-Effects.patch b/patches/server/0285-Milk-Keeps-Beneficial-Effects.patch similarity index 95% rename from patches/server/0286-Milk-Keeps-Beneficial-Effects.patch rename to patches/server/0285-Milk-Keeps-Beneficial-Effects.patch index c198541b7..7c426b1b3 100644 --- a/patches/server/0286-Milk-Keeps-Beneficial-Effects.patch +++ b/patches/server/0285-Milk-Keeps-Beneficial-Effects.patch @@ -30,10 +30,10 @@ index 970b1f6eaeeddf9928ba61239248ecd2234eda9a..0e5fae26bf89749e446050c92dc7c23d 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 c291c262a9cd0afd162cd228ecd883f34b8ff2f8..038f052963a61c99c5bd2ca97534e9c7dbf05db4 100644 +index 1a0bab0f586a3bba681f001b27421e81ee69537d..7a47cb898a8e175572cf014b7e801b99a3e03c02 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -129,6 +129,7 @@ public class PurpurWorldConfig { +@@ -130,6 +130,7 @@ public class PurpurWorldConfig { public boolean fireballsBypassMobGriefing = false; public boolean imposeTeleportRestrictionsOnGateways = false; public boolean milkCuresBadOmen = true; @@ -41,7 +41,7 @@ index c291c262a9cd0afd162cd228ecd883f34b8ff2f8..038f052963a61c99c5bd2ca97534e9c7 public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; public boolean persistentTileEntityDisplayNames = false; -@@ -155,6 +156,7 @@ public class PurpurWorldConfig { +@@ -156,6 +157,7 @@ public class PurpurWorldConfig { fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0287-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch b/patches/server/0286-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch similarity index 100% rename from patches/server/0287-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch rename to patches/server/0286-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/patches/server/0288-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0287-Add-log-suppression-for-LibraryLoader.patch similarity index 94% rename from patches/server/0288-Add-log-suppression-for-LibraryLoader.patch rename to patches/server/0287-Add-log-suppression-for-LibraryLoader.patch index 2a800074c..0f964ba7e 100644 --- a/patches/server/0288-Add-log-suppression-for-LibraryLoader.patch +++ b/patches/server/0287-Add-log-suppression-for-LibraryLoader.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add log suppression for LibraryLoader diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ac85d0b2a836d44ebadd50b3c80de95a85ff7f61..96d21b8600b31b955dcc47823688425a5b1ec624 100644 +index 52762bde9e079f3610307c718213a93b2a2db788..08f52dd71813d02b5bf02bafa59279bec3dd5d7e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -468,11 +468,14 @@ public class PurpurConfig { diff --git a/patches/server/0289-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0288-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 92% rename from patches/server/0289-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0288-Add-option-to-allow-creeper-to-encircle-target-when-.patch index 561785cf8..fc9eb39c2 100644 --- a/patches/server/0289-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0288-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 038f052963a61c99c5bd2ca97534e9c7dbf05db4..d655b61060b183a4eaab24a27b4a3b57d09715a9 100644 +index 7a47cb898a8e175572cf014b7e801b99a3e03c02..57e33d478b7be8afa329ca4ee7100a94382f0f8d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1338,6 +1338,7 @@ public class PurpurWorldConfig { +@@ -1363,6 +1363,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 038f052963a61c99c5bd2ca97534e9c7dbf05db4..d655b61060b183a4eaab24a27b4a3b57 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1356,6 +1357,7 @@ public class PurpurWorldConfig { +@@ -1381,6 +1382,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/0290-Fire-Immunity-API.patch b/patches/server/0289-Fire-Immunity-API.patch similarity index 97% rename from patches/server/0290-Fire-Immunity-API.patch rename to patches/server/0289-Fire-Immunity-API.patch index f35b45d1b..e709e9ac8 100644 --- a/patches/server/0290-Fire-Immunity-API.patch +++ b/patches/server/0289-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 2680aeabddc2dabc2c92e187149a567a842cada1..146612fc235f4879123c73b59b1a15ef45c5d5dc 100644 +index 15f6e27c5c87532ab41e0808a7bbed56569ba93b..f03a919020958659b48fd0f13dc4672b3fe9bf8e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -417,6 +417,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/server/0291-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0290-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 93% rename from patches/server/0291-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0290-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 5aea7564a..0e10c1176 100644 --- a/patches/server/0291-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0290-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -17,10 +17,10 @@ index f03a919020958659b48fd0f13dc4672b3fe9bf8e..4cff80a117352fb934a4fefbe9684847 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d655b61060b183a4eaab24a27b4a3b57d09715a9..d403c1f48912121f166bfabf8cd3f00ef412df4f 100644 +index 57e33d478b7be8afa329ca4ee7100a94382f0f8d..fb374a0e3930a190a358bca507099f5ea35df084 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 { +@@ -421,6 +421,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -28,7 +28,7 @@ index d655b61060b183a4eaab24a27b4a3b57d09715a9..d403c1f48912121f166bfabf8cd3f00e public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; -@@ -451,6 +452,7 @@ public class PurpurWorldConfig { +@@ -452,6 +453,7 @@ public class PurpurWorldConfig { playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/patches/server/0292-Added-got-ram-event.patch b/patches/server/0291-Added-got-ram-event.patch similarity index 100% rename from patches/server/0292-Added-got-ram-event.patch rename to patches/server/0291-Added-got-ram-event.patch diff --git a/patches/server/0293-Log-skipped-entity-s-position.patch b/patches/server/0292-Log-skipped-entity-s-position.patch similarity index 100% rename from patches/server/0293-Log-skipped-entity-s-position.patch rename to patches/server/0292-Log-skipped-entity-s-position.patch diff --git a/patches/server/0294-End-Crystal-Cramming.patch b/patches/server/0293-End-Crystal-Cramming.patch similarity index 91% rename from patches/server/0294-End-Crystal-Cramming.patch rename to patches/server/0293-End-Crystal-Cramming.patch index d8de380b1..ace33fccc 100644 --- a/patches/server/0294-End-Crystal-Cramming.patch +++ b/patches/server/0293-End-Crystal-Cramming.patch @@ -17,10 +17,10 @@ index 564d17bc460e2a04947ff9676fbf4c8b1569659c..440add62fcfa62d483409e1aecfc9159 // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d403c1f48912121f166bfabf8cd3f00ef412df4f..4074ade3428ef164d8b33598b8fb9fe36304a989 100644 +index fb374a0e3930a190a358bca507099f5ea35df084..675c85561ed42468b490e33feb31e4de0ecbf123 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -858,6 +858,7 @@ public class PurpurWorldConfig { +@@ -883,6 +883,7 @@ public class PurpurWorldConfig { public double basedEndCrystalExplosionPower = 6.0D; public boolean basedEndCrystalExplosionFire = false; public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; @@ -28,7 +28,7 @@ index d403c1f48912121f166bfabf8cd3f00ef412df4f..4074ade3428ef164d8b33598b8fb9fe3 private void endCrystalSettings() { if (PurpurConfig.version < 31) { if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) { -@@ -885,6 +886,7 @@ public class PurpurWorldConfig { +@@ -910,6 +911,7 @@ public class PurpurWorldConfig { log(Level.SEVERE, "Unknown value for `blocks.end-crystal.base.explosion-effect`! Using default of `BLOCK`"); basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; } diff --git a/patches/server/0295-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0294-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 95% rename from patches/server/0295-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0294-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index 9fa90c26a..065732065 100644 --- a/patches/server/0295-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0294-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -36,10 +36,10 @@ index 12578b377b6e939971fb2dcba08637df60643e37..2e6220c5a6c871401ce9734adfab710d 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 4074ade3428ef164d8b33598b8fb9fe36304a989..e03666618b01f2f71b2a91887a87478ae9bbc1b9 100644 +index 675c85561ed42468b490e33feb31e4de0ecbf123..9ede1fc9d3d9c0dfa9cce3026a8b9bb6ff881748 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -757,11 +757,13 @@ public class PurpurWorldConfig { +@@ -782,11 +782,13 @@ public class PurpurWorldConfig { public int beaconLevelTwo = 30; public int beaconLevelThree = 40; public int beaconLevelFour = 50; diff --git a/patches/server/0296-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0295-Add-attribute-clamping-and-armor-limit-config.patch similarity index 97% rename from patches/server/0296-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0295-Add-attribute-clamping-and-armor-limit-config.patch index 3439caf9e..58cf89a57 100644 --- a/patches/server/0296-Add-attribute-clamping-and-armor-limit-config.patch +++ b/patches/server/0295-Add-attribute-clamping-and-armor-limit-config.patch @@ -36,7 +36,7 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ae992fdb613f8a60b5f068a32be4a2e0f64bfee3..f03aba5c25896677d9d37e3fa010590b1ab7e3b6 100644 +index 08f52dd71813d02b5bf02bafa59279bec3dd5d7e..414f467825fece602fbe7446e349657264d135ed 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -580,6 +580,16 @@ public class PurpurConfig { diff --git a/patches/server/0297-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0296-Config-to-remove-explosion-radius-clamp.patch similarity index 95% rename from patches/server/0297-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0296-Config-to-remove-explosion-radius-clamp.patch index aaf70e39c..5b24c2200 100644 --- a/patches/server/0297-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0296-Config-to-remove-explosion-radius-clamp.patch @@ -39,10 +39,10 @@ index e35ebb5b923c2f63e37e5dae006bc4a030e49bb7..dcc3b333f3647631e2fb695d0854036d } // CraftBukkit end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e03666618b01f2f71b2a91887a87478ae9bbc1b9..6233295c55c754732ef8a7388b9d1173b3d0099f 100644 +index 9ede1fc9d3d9c0dfa9cce3026a8b9bb6ff881748..9f73f5e56c73f5fe46a7532f99041db8f1307893 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -214,6 +214,11 @@ public class PurpurWorldConfig { +@@ -215,6 +215,11 @@ public class PurpurWorldConfig { entitySharedRandom = getBoolean("settings.entity.shared-random", entitySharedRandom); } diff --git a/patches/server/0298-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0297-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 98% rename from patches/server/0298-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0297-bonemealable-sugarcane-cactus-and-netherwart.patch index 00c22dcc4..6528b77ee 100644 --- a/patches/server/0298-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0297-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -137,10 +137,10 @@ index c3f500580d257e1397f2eb7c47b063a6fe6bb405..0d5c6bdfd4aeda472804b493315bf21a + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6233295c55c754732ef8a7388b9d1173b3d0099f..69c799b1dd5861e7f3e1b6d3c07ac75071606369 100644 +index 9f73f5e56c73f5fe46a7532f99041db8f1307893..70f6fa78b368564a136ba756d2f5b209da5edf9a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -811,8 +811,20 @@ public class PurpurWorldConfig { +@@ -836,8 +836,20 @@ public class PurpurWorldConfig { } public boolean cactusBreaksFromSolidNeighbors = true; diff --git a/patches/server/0299-Add-PreExplodeEvents.patch b/patches/server/0298-Add-PreExplodeEvents.patch similarity index 100% rename from patches/server/0299-Add-PreExplodeEvents.patch rename to patches/server/0298-Add-PreExplodeEvents.patch diff --git a/patches/server/0300-Improve-output-of-plugins-command.patch b/patches/server/0299-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0300-Improve-output-of-plugins-command.patch rename to patches/server/0299-Improve-output-of-plugins-command.patch diff --git a/patches/server/0301-Add-mending-multiplier.patch b/patches/server/0300-Add-mending-multiplier.patch similarity index 91% rename from patches/server/0301-Add-mending-multiplier.patch rename to patches/server/0300-Add-mending-multiplier.patch index ffd1fd722..db53c7aa5 100644 --- a/patches/server/0301-Add-mending-multiplier.patch +++ b/patches/server/0300-Add-mending-multiplier.patch @@ -27,10 +27,10 @@ index b2233635b6acc35ea3668c36c56e57f15420ac62..724bf857bf1b89cb0947b8a82e0ce09a 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 69c799b1dd5861e7f3e1b6d3c07ac75071606369..f9a34b9baa4b1c7e0a0307c991b4c1eb7d559f8c 100644 +index 70f6fa78b368564a136ba756d2f5b209da5edf9a..225446a3d361fdbd749ca16bd53352fda20637c6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -120,6 +120,7 @@ public class PurpurWorldConfig { +@@ -121,6 +121,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -38,7 +38,7 @@ index 69c799b1dd5861e7f3e1b6d3c07ac75071606369..f9a34b9baa4b1c7e0a0307c991b4c1eb public boolean alwaysTameInCreative = false; public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = false; -@@ -147,6 +148,7 @@ public class PurpurWorldConfig { +@@ -148,6 +149,7 @@ public class PurpurWorldConfig { public int mobLastHurtByPlayerTime = 100; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0302-Make-GUI-Great-Again.patch b/patches/server/0301-Make-GUI-Great-Again.patch similarity index 100% rename from patches/server/0302-Make-GUI-Great-Again.patch rename to patches/server/0301-Make-GUI-Great-Again.patch diff --git a/patches/server/0303-Stored-Bee-API.patch b/patches/server/0302-Stored-Bee-API.patch similarity index 100% rename from patches/server/0303-Stored-Bee-API.patch rename to patches/server/0302-Stored-Bee-API.patch diff --git a/patches/server/0304-Shears-can-defuse-TNT.patch b/patches/server/0303-Shears-can-defuse-TNT.patch similarity index 95% rename from patches/server/0304-Shears-can-defuse-TNT.patch rename to patches/server/0303-Shears-can-defuse-TNT.patch index bdd1ea55d..562b8a103 100644 --- a/patches/server/0304-Shears-can-defuse-TNT.patch +++ b/patches/server/0303-Shears-can-defuse-TNT.patch @@ -42,10 +42,10 @@ index 4ce3e69970dd9eb251d0538a2d233ca30e9e5e47..afc65b8bb7e7f7f70a25f2d869412ed3 + // 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 f9a34b9baa4b1c7e0a0307c991b4c1eb7d559f8c..06a89fca008aa03521c4c9d31b495e6e2b000579 100644 +index 225446a3d361fdbd749ca16bd53352fda20637c6..037a82c419ffe31cc8456ab69c1bdc1b1388e173 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3200,4 +3200,11 @@ public class PurpurWorldConfig { +@@ -3225,4 +3225,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/0305-Explorer-Map-API.patch b/patches/server/0304-Explorer-Map-API.patch similarity index 95% rename from patches/server/0305-Explorer-Map-API.patch rename to patches/server/0304-Explorer-Map-API.patch index 4ce466e5c..1e1393e24 100644 --- a/patches/server/0305-Explorer-Map-API.patch +++ b/patches/server/0304-Explorer-Map-API.patch @@ -17,7 +17,7 @@ index d3c29e6bf8b3c2dd628809177dac50220a7de415..735486b46581bb3b91c85f57490b560f 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 3b12030b49b1c539684d75ca3896eb498400ef99..23c7ded4049c08bc62f8b823e0967da4f3df4bf9 100644 +index 50713f03c783c63f93710d986d94af544be0615a..e64921f454c88e2ca9e1396fcb1ca7c179ff71a7 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 @@ -66,6 +66,7 @@ public class MapItemSavedData extends SavedData { diff --git a/patches/server/0306-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0305-Option-Ocelot-Spawn-Under-Sea-Level.patch similarity index 91% rename from patches/server/0306-Option-Ocelot-Spawn-Under-Sea-Level.patch rename to patches/server/0305-Option-Ocelot-Spawn-Under-Sea-Level.patch index 3c5b3dce6..21888b286 100644 --- a/patches/server/0306-Option-Ocelot-Spawn-Under-Sea-Level.patch +++ b/patches/server/0305-Option-Ocelot-Spawn-Under-Sea-Level.patch @@ -18,10 +18,10 @@ index c72d5e7c2a19c5690a8065c95c75f0415358c2a9..45fb438065b1db2a9baa648f4d397472 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 06a89fca008aa03521c4c9d31b495e6e2b000579..db14d7aa3fecb0e6de4c9c534f64007aaecd7289 100644 +index 037a82c419ffe31cc8456ab69c1bdc1b1388e173..0e97df2f51d45655034402d09a4bdaff23a44211 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2017,6 +2017,7 @@ public class PurpurWorldConfig { +@@ -2042,6 +2042,7 @@ public class PurpurWorldConfig { public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; public boolean ocelotAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 06a89fca008aa03521c4c9d31b495e6e2b000579..db14d7aa3fecb0e6de4c9c534f64007a private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -2030,6 +2031,7 @@ public class PurpurWorldConfig { +@@ -2055,6 +2056,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);