From 625e4adbd82b95f5e681010bc87cfffedf8f9b6b Mon Sep 17 00:00:00 2001 From: granny Date: Tue, 20 Jun 2023 17:25:29 -0700 Subject: [PATCH] remove rainglow patch in favor of paper plugin impl https://modrinth.com/plugin/rainglow-paper supersedes #1351 --- patches/server/0004-Purpur-config-files.patch | 5 +- patches/server/0008-Ridables.patch | 4 +- ...-Configurable-entity-base-attributes.patch | 16 +- 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 | 6 +- ...bit-naturally-spawn-toast-and-killer.patch | 6 +- .../server/0030-Tulips-change-fox-type.patch | 6 +- .../server/0031-Breedable-Polar-Bears.patch | 6 +- .../server/0032-Chickens-can-retaliate.patch | 6 +- ...option-to-set-armorstand-step-height.patch | 4 +- .../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 | 6 +- ...39-Ender-dragon-always-drop-full-exp.patch | 6 +- ...moisten-from-water-directly-under-it.patch | 4 +- ...-Minecart-settings-and-WASD-controls.patch | 4 +- ...able-loot-drops-on-death-by-cramming.patch | 6 +- ...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 | 10 +- ...0050-Villagers-follow-emerald-blocks.patch | 10 +- .../0051-Allow-leashing-villagers.patch | 10 +- .../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 | 4 +- ...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 | 6 +- .../server/0062-Item-entity-immunities.patch | 4 +- .../0066-Configurable-jockey-options.patch | 22 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 6 +- .../0068-Add-phantom-spawning-options.patch | 6 +- ...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 | 8 +- ...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 | 6 +- ...ggling-special-MobSpawners-per-world.patch | 6 +- .../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 | 6 +- ...e-entity-breeding-times-configurable.patch | 96 +++--- ...mes-from-item-forms-of-entities-to-e.patch | 10 +- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 4 +- ...llowing-Endermen-to-despawn-even-whi.patch | 6 +- ...108-Add-configurable-snowball-damage.patch | 4 +- ...09-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0110-Add-boat-fall-damage-config.patch | 6 +- .../0111-Snow-Golem-rate-of-fire-config.patch | 6 +- ...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 | 6 +- ...0126-Add-EntityTeleportHinderedEvent.patch | 6 +- .../0127-Farmland-trampling-changes.patch | 4 +- ...28-Movement-options-for-armor-stands.patch | 4 +- .../server/0129-Fix-stuck-in-portals.patch | 6 +- ...oggle-for-water-sensitive-mob-damage.patch | 260 ++++++++-------- ...31-Config-to-always-tame-in-Creative.patch | 6 +- .../0132-End-crystal-explosion-options.patch | 4 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 +- .../server/0134-Dont-run-with-scissors.patch | 8 +- patches/server/0135-One-Punch-Man.patch | 8 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 6 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 6 +- ...an-aggressiveness-towards-Endermites.patch | 6 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +- patches/server/0141-Tick-fluids-config.patch | 6 +- ...142-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 6 +- ...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 | 10 +- patches/server/0149-Drowning-Settings.patch | 4 +- ...Break-individual-slabs-when-sneaking.patch | 4 +- ...-to-disable-hostile-mob-spawn-on-ice.patch | 4 +- ...ig-to-show-Armor-Stand-arms-on-spawn.patch | 6 +- ...ption-to-make-doors-require-redstone.patch | 4 +- .../0155-Configurable-sponge-absorption.patch | 4 +- .../0156-Projectile-offset-config.patch | 4 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0158-Piglin-portal-spawn-modifier.patch | 6 +- ...0-Config-for-wither-explosion-radius.patch | 8 +- ...ing-the-blocks-that-turn-into-dirt-p.patch | 4 +- .../0163-Configurable-piston-push-limit.patch | 4 +- .../0165-Configurable-mob-blindness.patch | 8 +- ...h-to-impact-Creeper-explosion-radius.patch | 6 +- .../0168-Iron-golem-calm-anger-options.patch | 6 +- patches/server/0169-Breedable-parrots.patch | 6 +- ...igurable-powered-rail-boost-modifier.patch | 6 +- ...nge-multiplier-critical-damage-value.patch | 6 +- ...on-to-disable-dragon-egg-teleporting.patch | 4 +- ...75-ShulkerBox-allow-oversized-stacks.patch | 4 +- ...ee-can-work-when-raining-or-at-night.patch | 6 +- .../0178-Config-MobEffect-by-world.patch | 4 +- ...Beacon-Activation-Range-Configurable.patch | 4 +- .../0180-Add-toggle-for-sand-duping-fix.patch | 4 +- ...ggle-for-end-portal-safe-teleporting.patch | 4 +- ...after-eating-food-fills-hunger-bar-c.patch | 6 +- ...tal-waiting-option-permission-bypass.patch | 6 +- ...86-Shulker-spawn-from-bullet-options.patch | 6 +- ...Eating-glow-berries-adds-glow-effect.patch | 6 +- ...8-Option-to-make-drowned-break-doors.patch | 6 +- ...onfigurable-hunger-starvation-damage.patch | 4 +- .../server/0192-Tool-actionable-options.patch | 4 +- ...e-shulker-box-items-from-dropping-co.patch | 6 +- .../server/0197-Big-dripleaf-tilt-delay.patch | 4 +- .../0198-Player-ridable-in-water-option.patch | 6 +- ...e-Enderman-teleport-on-projectile-hi.patch | 6 +- patches/server/0200-Add-compass-command.patch | 6 +- .../0201-Toggle-for-kinetic-damage.patch | 6 +- ...d-Option-for-disable-observer-clocks.patch | 4 +- ...izeable-Zombie-Villager-curing-times.patch | 6 +- ...4-Option-for-sponges-to-work-on-lava.patch | 4 +- ...0205-Toggle-for-Wither-s-spawn-sound.patch | 6 +- ...s-breaks-from-solid-neighbors-config.patch | 4 +- ...emove-curse-of-binding-with-weakness.patch | 6 +- .../0208-Conduit-behavior-configuration.patch | 4 +- .../server/0209-Cauldron-fill-chances.patch | 4 +- ...to-allow-mobs-to-pathfind-over-rails.patch | 6 +- .../0211-Shulker-change-color-with-dye.patch | 6 +- ...ain-and-thunder-should-stop-on-sleep.patch | 6 +- ...a-blocks-to-grow-into-trees-naturall.patch | 6 +- ...t-right-click-to-use-exp-for-mending.patch | 8 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...or-beds-to-explode-on-villager-sleep.patch | 6 +- ...-Halloween-options-and-optimizations.patch | 4 +- ...-Campfire-option-for-lit-when-placed.patch | 4 +- ...xtinguish-fire-blocks-with-snowballs.patch | 6 +- ...ion-to-disable-zombie-villagers-cure.patch | 6 +- ...ent-BlockEntity-Lore-and-DisplayName.patch | 6 +- .../server/0227-Signs-allow-color-codes.patch | 4 +- .../0229-Mobs-always-drop-experience.patch | 278 +++++++++--------- ...oe-to-replant-crops-and-nether-warts.patch | 6 +- ...aring-jeb-produces-random-color-wool.patch | 6 +- ...Turtle-eggs-random-tick-crack-chance.patch | 4 +- .../0235-Mob-head-visibility-percent.patch | 20 +- ...-Stop-bees-from-dying-after-stinging.patch | 6 +- ...Configurable-farmland-trample-height.patch | 6 +- ...Configurable-player-pickup-exp-delay.patch | 6 +- patches/server/0242-Allow-void-trading.patch | 6 +- .../0244-Configurable-phantom-size.patch | 6 +- ...nfigurable-minimum-demand-for-trades.patch | 6 +- .../0248-Lobotomize-stuck-villagers.patch | 6 +- ...tion-for-villager-display-trade-item.patch | 6 +- ...awner-not-spawning-water-animals-cor.patch | 4 +- ...fig-for-mob-last-hurt-by-player-time.patch | 10 +- .../0252-Anvil-repair-damage-options.patch | 4 +- ...e-turtle-egg-trampling-with-feather-.patch | 4 +- ...urable-search-radius-for-villagers-t.patch | 6 +- patches/server/0257-Stonecutter-damage.patch | 4 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...0259-Add-config-for-snow-on-blue-ice.patch | 4 +- .../0260-Skeletons-eat-wither-roses.patch | 6 +- ...261-Enchantment-Table-Persists-Lapis.patch | 4 +- ...-for-sculk-shrieker-can_summon-state.patch | 4 +- .../0265-Config-to-not-let-coral-die.patch | 4 +- ...0267-Add-toggle-for-RNG-manipulation.patch | 4 +- ...ng-option-to-ignore-creative-players.patch | 6 +- ...277-Add-skeleton-bow-accuracy-option.patch | 6 +- .../server/0278-Allay-respect-item-NBT.patch | 6 +- ...n-to-fix-MC-3304-projectile-looting.patch} | 0 ...squid-colors-for-rainglow-fabric-mod.patch | 128 -------- ...Configurable-block-blast-resistance.patch} | 0 ...gurable-block-fall-damage-modifiers.patch} | 0 ...uage-API.patch => 0287-Language-API.patch} | 0 ... 0288-Milk-Keeps-Beneficial-Effects.patch} | 8 +- ...s-not-looking-up-and-down-when-stra.patch} | 0 ...d-log-suppression-for-LibraryLoader.patch} | 0 ...ow-creeper-to-encircle-target-when-.patch} | 6 +- ...API.patch => 0292-Fire-Immunity-API.patch} | 0 ...eport-to-spawn-on-nether-ceiling-da.patch} | 6 +- ...t.patch => 0294-Added-got-ram-event.patch} | 0 ... 0295-Log-skipped-entity-s-position.patch} | 0 ....patch => 0296-End-Crystal-Cramming.patch} | 6 +- ...eacon-effects-when-covered-by-tinte.patch} | 4 +- ...ute-clamping-and-armor-limit-config.patch} | 0 ...ig-to-remove-explosion-radius-clamp.patch} | 4 +- ...ble-sugarcane-cactus-and-netherwart.patch} | 4 +- ....patch => 0301-Add-PreExplodeEvents.patch} | 0 ...2-Improve-output-of-plugins-command.patch} | 0 ...atch => 0303-Add-mending-multiplier.patch} | 6 +- ....patch => 0304-Make-GUI-Great-Again.patch} | 0 217 files changed, 919 insertions(+), 1048 deletions(-) rename patches/server/{0285-Add-an-option-to-fix-MC-3304-projectile-looting.patch => 0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch} (100%) delete mode 100644 patches/server/0284-Implement-squid-colors-for-rainglow-fabric-mod.patch rename patches/server/{0286-Configurable-block-blast-resistance.patch => 0285-Configurable-block-blast-resistance.patch} (100%) rename patches/server/{0287-Configurable-block-fall-damage-modifiers.patch => 0286-Configurable-block-fall-damage-modifiers.patch} (100%) rename patches/server/{0288-Language-API.patch => 0287-Language-API.patch} (100%) rename patches/server/{0289-Milk-Keeps-Beneficial-Effects.patch => 0288-Milk-Keeps-Beneficial-Effects.patch} (93%) rename patches/server/{0290-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch => 0289-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch} (100%) rename patches/server/{0291-Add-log-suppression-for-LibraryLoader.patch => 0290-Add-log-suppression-for-LibraryLoader.patch} (100%) rename patches/server/{0292-Add-option-to-allow-creeper-to-encircle-target-when-.patch => 0291-Add-option-to-allow-creeper-to-encircle-target-when-.patch} (92%) rename patches/server/{0293-Fire-Immunity-API.patch => 0292-Fire-Immunity-API.patch} (100%) rename patches/server/{0294-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch => 0293-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch} (93%) rename patches/server/{0295-Added-got-ram-event.patch => 0294-Added-got-ram-event.patch} (100%) rename patches/server/{0296-Log-skipped-entity-s-position.patch => 0295-Log-skipped-entity-s-position.patch} (100%) rename patches/server/{0297-End-Crystal-Cramming.patch => 0296-End-Crystal-Cramming.patch} (91%) rename patches/server/{0298-Option-to-allow-beacon-effects-when-covered-by-tinte.patch => 0297-Option-to-allow-beacon-effects-when-covered-by-tinte.patch} (95%) rename patches/server/{0299-Add-attribute-clamping-and-armor-limit-config.patch => 0298-Add-attribute-clamping-and-armor-limit-config.patch} (100%) rename patches/server/{0300-Config-to-remove-explosion-radius-clamp.patch => 0299-Config-to-remove-explosion-radius-clamp.patch} (95%) rename patches/server/{0301-bonemealable-sugarcane-cactus-and-netherwart.patch => 0300-bonemealable-sugarcane-cactus-and-netherwart.patch} (98%) rename patches/server/{0302-Add-PreExplodeEvents.patch => 0301-Add-PreExplodeEvents.patch} (100%) rename patches/server/{0303-Improve-output-of-plugins-command.patch => 0302-Improve-output-of-plugins-command.patch} (100%) rename patches/server/{0304-Add-mending-multiplier.patch => 0303-Add-mending-multiplier.patch} (91%) rename patches/server/{0305-Make-GUI-Great-Again.patch => 0304-Make-GUI-Great-Again.patch} (100%) diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 691cc2786..d95a90fc6 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -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..2b7f1dedb3289efc7e42a138f4483f4969902801 +index 0000000000000000000000000000000000000000..670d5e9adf4719f4e8932b37e5deb1170e8066f0 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -0,0 +1,94 @@ +@@ -0,0 +1,93 @@ +package org.purpurmc.purpur; + +import net.minecraft.core.registries.BuiltInRegistries; @@ -378,7 +378,6 @@ index 0000000000000000000000000000000000000000..2b7f1dedb3289efc7e42a138f4483f49 +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.entity.GlowSquidColor; +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 81b76445a..30a94421e 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -5284,10 +5284,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 2b7f1dedb3289efc7e42a138f4483f4969902801..3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a 100644 +index 670d5e9adf4719f4e8932b37e5deb1170e8066f0..b59e8dcb65edc3dc6ac4d42dba2a7615286aef57 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -91,4 +91,722 @@ public class PurpurWorldConfig { +@@ -90,4 +90,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 6281a99ef..dc8947be7 100644 --- a/patches/server/0009-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -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 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb153243b23 100644 +index b59e8dcb65edc3dc6ac4d42dba2a7615286aef57..5fd42d8604491268074d5ff516657f5d07761092 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,99 +114,190 @@ public class PurpurWorldConfig { +@@ -113,99 +113,190 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; @@ -1698,7 +1698,7 @@ index 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb1 } public boolean dolphinRidable = false; -@@ -214,80 +305,161 @@ public class PurpurWorldConfig { +@@ -213,80 +304,161 @@ public class PurpurWorldConfig { public int dolphinSpitCooldown = 20; public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; @@ -1860,7 +1860,7 @@ index 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb1 } public boolean frogRidable = false; -@@ -305,147 +477,316 @@ public class PurpurWorldConfig { +@@ -304,147 +476,316 @@ public class PurpurWorldConfig { public boolean ghastRidableInWater = true; public boolean ghastControllable = true; public double ghastMaxY = 320D; @@ -2177,7 +2177,7 @@ index 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb1 } public boolean phantomRidable = false; -@@ -455,6 +796,10 @@ public class PurpurWorldConfig { +@@ -454,6 +795,10 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -2188,7 +2188,7 @@ index 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb1 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -463,189 +808,361 @@ public class PurpurWorldConfig { +@@ -462,189 +807,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 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb1 } public boolean tadpoleRidable = false; -@@ -660,64 +1177,125 @@ public class PurpurWorldConfig { +@@ -659,64 +1176,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2676,7 +2676,7 @@ index 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..049658a2c939255003a8b32a18b67bb1 } public boolean wardenRidable = false; -@@ -732,81 +1310,165 @@ public class PurpurWorldConfig { +@@ -731,81 +1309,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 85432b9f8..5755b4640 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -79,7 +79,7 @@ index 77c38ea427dac0176941f8bc26ebe540c0dd4c02..e528d3bb75b892e1674e4c282b91a281 return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 304b825da36f883b887118a20975f49347f76940..8aed172bc6d719e39415eca1961f1d0fdedc495f 100644 +index 3c1afd3fc37ad0540beb07798f8ecf0cd6acc80f..45e32ff5e8f92de4494710c87f078e57932d2cc8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -340,6 +340,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -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 049658a2c939255003a8b32a18b67bb153243b23..2596204f9b1d0b9fd54ac71f7cecc16935ac5595 100644 +index 5fd42d8604491268074d5ff516657f5d07761092..4eb4e0b7748334c5a9d693164600854b81b1ad9e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -92,6 +92,24 @@ public class PurpurWorldConfig { +@@ -91,6 +91,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 ec9e5747e..c45ad30a9 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0018-Player-invulnerabilities.patch @@ -146,10 +146,10 @@ index 86793c8225e3206f9c9791a3c7524de039227b53..5e5797761735ce24a8dd2cb934b38575 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2596204f9b1d0b9fd54ac71f7cecc16935ac5595..b577fde66a4c4e1d7d83732649b1fcd136a838cb 100644 +index 4eb4e0b7748334c5a9d693164600854b81b1ad9e..3bd21513a0a8e984dfc8c0471c794a8e68344009 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,8 @@ public class PurpurWorldConfig { +@@ -96,6 +96,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutCountAsSleeping = false; public boolean idleTimeoutUpdateTabList = false; public boolean idleTimeoutTargetPlayer = true; @@ -158,7 +158,7 @@ index 2596204f9b1d0b9fd54ac71f7cecc16935ac5595..b577fde66a4c4e1d7d83732649b1fcd1 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -108,6 +110,8 @@ public class PurpurWorldConfig { +@@ -107,6 +109,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 c293832bc..fb74cafcf 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 b577fde66a4c4e1d7d83732649b1fcd136a838cb..22d561b588b0d1c5b67d8d2144f397a5c674da58 100644 +index 3bd21513a0a8e984dfc8c0471c794a8e68344009..2e19608b5e8f310c55e48ea919ef4898d6d3fdf7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,6 +114,38 @@ public class PurpurWorldConfig { +@@ -113,6 +113,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 7d94babe8..2771468a7 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 22d561b588b0d1c5b67d8d2144f397a5c674da58..a48daeb4f143083161af2545ab690324004ef2d5 100644 +index 2e19608b5e8f310c55e48ea919ef4898d6d3fdf7..e3de7a70c8ff604926d4822c647fe158a3868ab4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -146,6 +146,15 @@ public class PurpurWorldConfig { +@@ -145,6 +145,15 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0025-Giants-AI-settings.patch b/patches/server/0025-Giants-AI-settings.patch index caba87c16..827fa539c 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 a48daeb4f143083161af2545ab690324004ef2d5..5a9742865ca7e716d2af6e889e5657a699315344 100644 +index e3de7a70c8ff604926d4822c647fe158a3868ab4..232f3df733b13e6dcacca867b4d0b042ae0d1935 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -560,6 +560,10 @@ public class PurpurWorldConfig { +@@ -559,6 +559,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -127,7 +127,7 @@ index a48daeb4f143083161af2545ab690324004ef2d5..5a9742865ca7e716d2af6e889e5657a6 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -576,6 +580,10 @@ public class PurpurWorldConfig { +@@ -575,6 +579,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 e3efaa6dc..4063a2b25 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 5a9742865ca7e716d2af6e889e5657a699315344..82778ad99df11c9bdfa80409bc77e36710e03439 100644 +index 232f3df733b13e6dcacca867b4d0b042ae0d1935..35dc3c23cf0c73a24b91e86fe13c3b82642f9c8e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1490,6 +1490,7 @@ public class PurpurWorldConfig { +@@ -1489,6 +1489,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -41,7 +41,7 @@ index 5a9742865ca7e716d2af6e889e5657a699315344..82778ad99df11c9bdfa80409bc77e367 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1505,6 +1506,7 @@ public class PurpurWorldConfig { +@@ -1504,6 +1505,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 2499cfe24..b69a48e4f 100644 --- a/patches/server/0027-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0027-Charged-creeper-naturally-spawn.patch @@ -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 82778ad99df11c9bdfa80409bc77e36710e03439..1dd0552b3e6284138a2f5219a040946d0d7fd6b9 100644 +index 35dc3c23cf0c73a24b91e86fe13c3b82642f9c8e..0e234ab2309cd75631c75626a3984d7912acc007 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -351,6 +351,7 @@ public class PurpurWorldConfig { +@@ -350,6 +350,7 @@ public class PurpurWorldConfig { public boolean creeperRidableInWater = true; public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; @@ -35,7 +35,7 @@ index 82778ad99df11c9bdfa80409bc77e36710e03439..1dd0552b3e6284138a2f5219a040946d private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -361,6 +362,7 @@ public class PurpurWorldConfig { +@@ -360,6 +361,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 875ed253c..0ff65c2a6 100644 --- a/patches/server/0028-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0028-Rabbit-naturally-spawn-toast-and-killer.patch @@ -33,10 +33,10 @@ index db37932e56d88717a61eb8608b44c6911513aa35..2f373666e982a8c4e769168b565ca26e 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 1dd0552b3e6284138a2f5219a040946d0d7fd6b9..fc83713bfd41f0d2ec8853ef80a9c940a9899e26 100644 +index 0e234ab2309cd75631c75626a3984d7912acc007..4067b0f73828c39d467b8e15464c6a56ac83050d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -994,6 +994,8 @@ public class PurpurWorldConfig { +@@ -993,6 +993,8 @@ public class PurpurWorldConfig { public boolean rabbitRidableInWater = true; public boolean rabbitControllable = true; public double rabbitMaxHealth = 3.0D; @@ -45,7 +45,7 @@ index 1dd0552b3e6284138a2f5219a040946d0d7fd6b9..fc83713bfd41f0d2ec8853ef80a9c940 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1004,6 +1006,8 @@ public class PurpurWorldConfig { +@@ -1003,6 +1005,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 ac70d988f..b1e9bd3df 100644 --- a/patches/server/0030-Tulips-change-fox-type.patch +++ b/patches/server/0030-Tulips-change-fox-type.patch @@ -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 fc83713bfd41f0d2ec8853ef80a9c940a9899e26..f8fec968d0495ef10d25283b1c1177a094de3626 100644 +index 4067b0f73828c39d467b8e15464c6a56ac83050d..09e04c513c853a0b720ece509c817fceafdc5408 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -515,6 +515,7 @@ public class PurpurWorldConfig { +@@ -514,6 +514,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = true; public boolean foxControllable = true; public double foxMaxHealth = 10.0D; @@ -86,7 +86,7 @@ index fc83713bfd41f0d2ec8853ef80a9c940a9899e26..f8fec968d0495ef10d25283b1c1177a0 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -525,6 +526,7 @@ public class PurpurWorldConfig { +@@ -524,6 +525,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 94af4add9..bb04b2195 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 f8fec968d0495ef10d25283b1c1177a094de3626..72162cf45098aa3283a6e234efe6a5872506a508 100644 +index 09e04c513c853a0b720ece509c817fceafdc5408..3251a21e67c02a56644e45b7efb3cd2f45add958 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -966,6 +966,8 @@ public class PurpurWorldConfig { +@@ -965,6 +965,8 @@ public class PurpurWorldConfig { public boolean polarBearRidableInWater = true; public boolean polarBearControllable = true; public double polarBearMaxHealth = 30.0D; @@ -71,7 +71,7 @@ index f8fec968d0495ef10d25283b1c1177a094de3626..72162cf45098aa3283a6e234efe6a587 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -976,6 +978,9 @@ public class PurpurWorldConfig { +@@ -975,6 +977,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 bf94cb819..de2dac335 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 72162cf45098aa3283a6e234efe6a5872506a508..8d764e136fa4ea6f9d3efb555f4e299df8831a4e 100644 +index 3251a21e67c02a56644e45b7efb3cd2f45add958..250d562a63dcf48f110513e4028616d0ce918fb1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -305,6 +305,7 @@ public class PurpurWorldConfig { +@@ -304,6 +304,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; @@ -61,7 +61,7 @@ index 72162cf45098aa3283a6e234efe6a5872506a508..8d764e136fa4ea6f9d3efb555f4e299d private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -315,6 +316,7 @@ public class PurpurWorldConfig { +@@ -314,6 +315,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 347f72851..d2980f66f 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 @@ -30,10 +30,10 @@ index 8a8b9e8983be1acad66ad875c901be5bbdeabb1f..09912c11bad7dc639b8afe8b0041a5fb 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 8d764e136fa4ea6f9d3efb555f4e299df8831a4e..1ea0b241a819527e48ad3050bb0f6c57013a891b 100644 +index 250d562a63dcf48f110513e4028616d0ce918fb1..f97cc4e1afbf0ddd471cc8836be8e9bcaf45295c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -92,6 +92,11 @@ public class PurpurWorldConfig { +@@ -91,6 +91,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 204a52feb..7874f08ad 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 1ea0b241a819527e48ad3050bb0f6c57013a891b..0d43370eaa0dc4423f8a8498fe2c706c8f607dcf 100644 +index f97cc4e1afbf0ddd471cc8836be8e9bcaf45295c..371d69ab5b9b1c0265f06a65fac18725d684c15b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -278,6 +278,9 @@ public class PurpurWorldConfig { +@@ -277,6 +277,9 @@ public class PurpurWorldConfig { public boolean catRidableInWater = true; public boolean catControllable = true; public double catMaxHealth = 10.0D; @@ -64,7 +64,7 @@ index 1ea0b241a819527e48ad3050bb0f6c57013a891b..0d43370eaa0dc4423f8a8498fe2c706c private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -288,6 +291,9 @@ public class PurpurWorldConfig { +@@ -287,6 +290,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 731b0e937..7254633dd 100644 --- a/patches/server/0035-Cows-eat-mushrooms.patch +++ b/patches/server/0035-Cows-eat-mushrooms.patch @@ -114,10 +114,10 @@ index d26a44d634fe02e595654e573d02243b5eb66086..b94ec05ffa0a6f9e7368731d360319ff + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0d43370eaa0dc4423f8a8498fe2c706c8f607dcf..2b1959d32502ced7f56045af2835510ee0c20676 100644 +index 371d69ab5b9b1c0265f06a65fac18725d684c15b..a6133edfcffb94a6bbc1f4133fbadd404d64acd9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -348,6 +348,7 @@ public class PurpurWorldConfig { +@@ -347,6 +347,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = true; public boolean cowControllable = true; public double cowMaxHealth = 10.0D; @@ -125,7 +125,7 @@ index 0d43370eaa0dc4423f8a8498fe2c706c8f607dcf..2b1959d32502ced7f56045af2835510e private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -358,6 +359,7 @@ public class PurpurWorldConfig { +@@ -357,6 +358,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 1dff111e8..19efadd8d 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 2b1959d32502ced7f56045af2835510ee0c20676..d5377683a933c826995a3f382d8847fc929ce818 100644 +index a6133edfcffb94a6bbc1f4133fbadd404d64acd9..aaf0e4df3757dca3ec8ed5df2d972e842e4c2124 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -917,6 +917,7 @@ public class PurpurWorldConfig { +@@ -916,6 +916,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public boolean pigControllable = true; public double pigMaxHealth = 10.0D; @@ -38,7 +38,7 @@ index 2b1959d32502ced7f56045af2835510ee0c20676..d5377683a933c826995a3f382d8847fc private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -927,6 +928,7 @@ public class PurpurWorldConfig { +@@ -926,6 +927,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 f3c573feb..ff6e1c922 100644 --- a/patches/server/0038-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0038-Snowman-drop-and-put-back-pumpkin.patch @@ -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 d5377683a933c826995a3f382d8847fc929ce818..66a80e4592083680dd5d69a33ddf2e553e96abe3 100644 +index aaf0e4df3757dca3ec8ed5df2d972e842e4c2124..ba2100ea68c3dd784c39ceb6d9700baaaf08980e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1180,6 +1180,8 @@ public class PurpurWorldConfig { +@@ -1179,6 +1179,8 @@ public class PurpurWorldConfig { public boolean snowGolemControllable = true; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index d5377683a933c826995a3f382d8847fc929ce818..66a80e4592083680dd5d69a33ddf2e55 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1191,6 +1193,8 @@ public class PurpurWorldConfig { +@@ -1190,6 +1192,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 c759b5d08..0456ad903 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 66a80e4592083680dd5d69a33ddf2e553e96abe3..7f8908ad43cb255ee17c06c2b0e95bfbbee6d3db 100644 +index ba2100ea68c3dd784c39ceb6d9700baaaf08980e..155a0c8c438692d76cf91663638fb59000959d54 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -461,6 +461,7 @@ public class PurpurWorldConfig { +@@ -460,6 +460,7 @@ public class PurpurWorldConfig { public boolean enderDragonControllable = true; public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index 66a80e4592083680dd5d69a33ddf2e553e96abe3..7f8908ad43cb255ee17c06c2b0e95bfb private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -476,6 +477,7 @@ public class PurpurWorldConfig { +@@ -475,6 +476,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 4f475aea6..99d1f329f 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 @@ -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 7f8908ad43cb255ee17c06c2b0e95bfbbee6d3db..e0f6d38ed22629257264f58481106069dab04361 100644 +index 155a0c8c438692d76cf91663638fb59000959d54..706b4256c81adb06284d25433ac39d54625bb14c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -151,6 +151,11 @@ public class PurpurWorldConfig { +@@ -150,6 +150,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 9a3e8e945..db3a73c69 100644 --- a/patches/server/0041-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0041-Minecart-settings-and-WASD-controls.patch @@ -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 e0f6d38ed22629257264f58481106069dab04361..245d262949eef0b819a367f2cf345070d52e588f 100644 +index 706b4256c81adb06284d25433ac39d54625bb14c..1011506a3008b4d01c5141d434235e2e0643bdb9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,68 @@ public class PurpurWorldConfig { +@@ -96,6 +96,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 1c6802b03..043370d7f 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 @@ -5,7 +5,7 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index fe0eac825d011fc3b74987aa817965358f370f44..60930a907a18a27d056b906734f9026ed3d345ec 100644 +index 18b84dc559a942848bef7a7622f411ce0352c08b..2123b296b69f05601b0a6c51c8ad58ca263997f8 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1811,6 +1811,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -25,10 +25,10 @@ index fe0eac825d011fc3b74987aa817965358f370f44..60930a907a18a27d056b906734f9026e // 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 245d262949eef0b819a367f2cf345070d52e588f..3aa38514024db3a725e195045d851c6db34d221e 100644 +index 1011506a3008b4d01c5141d434235e2e0643bdb9..490ea3f3d8d3edc7b3ece8b3de47176294a42eb9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,11 @@ public class PurpurWorldConfig { +@@ -96,6 +96,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 cba1cb6d9..b3c29ef76 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 3aa38514024db3a725e195045d851c6db34d221e..513148666619eff2372b11bb9944f903c45deb14 100644 +index 490ea3f3d8d3edc7b3ece8b3de47176294a42eb9..eb6e78e66c954e30c44083f9d2528e0627e6a269 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 { +@@ -97,8 +97,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 420022713..fb0a413ad 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 513148666619eff2372b11bb9944f903c45deb14..2f1437fe38c0eded97d5e4a14a6b266f85261ecd 100644 +index eb6e78e66c954e30c44083f9d2528e0627e6a269..0dfccdd6482721fb71aec0e5d86590478b67183a 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 { +@@ -98,9 +98,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 3652318c1..6926dad8a 100644 --- a/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch @@ -38,10 +38,10 @@ index 585cd908cc6f83007dc9edcd332a99664080b6d6..da14c848694c7fa86ea3af082d39e112 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2f1437fe38c0eded97d5e4a14a6b266f85261ecd..987fb34ccdaab7c81fb381f9c77661010994638d 100644 +index 0dfccdd6482721fb71aec0e5d86590478b67183a..b7974530b1ffe0b1a471bb3b79caa31f645aa5ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -443,6 +443,7 @@ public class PurpurWorldConfig { +@@ -442,6 +442,7 @@ public class PurpurWorldConfig { public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index 2f1437fe38c0eded97d5e4a14a6b266f85261ecd..987fb34ccdaab7c81fb381f9c7766101 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -454,6 +455,7 @@ public class PurpurWorldConfig { +@@ -453,6 +454,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 2f1437fe38c0eded97d5e4a14a6b266f85261ecd..987fb34ccdaab7c81fb381f9c7766101 } public boolean dolphinRidable = false; -@@ -560,6 +562,7 @@ public class PurpurWorldConfig { +@@ -559,6 +561,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = true; public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; @@ -65,7 +65,7 @@ index 2f1437fe38c0eded97d5e4a14a6b266f85261ecd..987fb34ccdaab7c81fb381f9c7766101 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -570,6 +573,7 @@ public class PurpurWorldConfig { +@@ -569,6 +572,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 cdc3b5e6a..b837d2412 100644 --- a/patches/server/0050-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0050-Villagers-follow-emerald-blocks.patch @@ -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 987fb34ccdaab7c81fb381f9c77661010994638d..b1c656dd4653d47a6521eb91df50ffc2708f052d 100644 +index b7974530b1ffe0b1a471bb3b79caa31f645aa5ba..0d0001363c80ba962acf5927a831debcd77e9b1e 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 { +@@ -1440,6 +1440,7 @@ public class PurpurWorldConfig { public boolean villagerRidableInWater = true; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; @@ -65,7 +65,7 @@ index 987fb34ccdaab7c81fb381f9c77661010994638d..b1c656dd4653d47a6521eb91df50ffc2 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1451,6 +1452,7 @@ public class PurpurWorldConfig { +@@ -1450,6 +1451,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -73,7 +73,7 @@ index 987fb34ccdaab7c81fb381f9c77661010994638d..b1c656dd4653d47a6521eb91df50ffc2 } public boolean vindicatorRidable = false; -@@ -1473,6 +1475,7 @@ public class PurpurWorldConfig { +@@ -1472,6 +1474,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = true; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index 987fb34ccdaab7c81fb381f9c77661010994638d..b1c656dd4653d47a6521eb91df50ffc2 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1483,6 +1486,7 @@ public class PurpurWorldConfig { +@@ -1482,6 +1485,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 c607052cd..bd4ebfd89 100644 --- a/patches/server/0051-Allow-leashing-villagers.patch +++ b/patches/server/0051-Allow-leashing-villagers.patch @@ -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 b1c656dd4653d47a6521eb91df50ffc2708f052d..00b0bc709fac0b4d846b470b1b0923d34d0e95bf 100644 +index 0d0001363c80ba962acf5927a831debcd77e9b1e..c17b26f747d573d3de1a984faafbab5d41c72342 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1442,6 +1442,7 @@ public class PurpurWorldConfig { +@@ -1441,6 +1441,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index b1c656dd4653d47a6521eb91df50ffc2708f052d..00b0bc709fac0b4d846b470b1b0923d3 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1453,6 +1454,7 @@ public class PurpurWorldConfig { +@@ -1452,6 +1453,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 b1c656dd4653d47a6521eb91df50ffc2708f052d..00b0bc709fac0b4d846b470b1b0923d3 } public boolean vindicatorRidable = false; -@@ -1476,6 +1478,7 @@ public class PurpurWorldConfig { +@@ -1475,6 +1477,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index b1c656dd4653d47a6521eb91df50ffc2708f052d..00b0bc709fac0b4d846b470b1b0923d3 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1487,6 +1490,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1489,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 5d75be6d6..f86f886b5 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 00b0bc709fac0b4d846b470b1b0923d34d0e95bf..8a7325a501d930ad7b7af8c8fdffc801fd9e4d38 100644 +index c17b26f747d573d3de1a984faafbab5d41c72342..01c494bdbc408d4335c6f3d60c8000448f12fd22 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -227,6 +227,11 @@ public class PurpurWorldConfig { +@@ -226,6 +226,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } @@ -82,7 +82,7 @@ index 00b0bc709fac0b4d846b470b1b0923d34d0e95bf..8a7325a501d930ad7b7af8c8fdffc801 public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; -@@ -236,6 +241,11 @@ public class PurpurWorldConfig { +@@ -235,6 +240,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 e745d2afc..f9c32ee3e 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 8a7325a501d930ad7b7af8c8fdffc801fd9e4d38..c23efe33e4ab2175c940433e081e4709cdc5b47b 100644 +index 01c494bdbc408d4335c6f3d60c8000448f12fd22..80795ffe26722995b232f91df7876ffe2d2b870c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -228,8 +228,12 @@ public class PurpurWorldConfig { +@@ -227,8 +227,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 b1f2bb2bd..23e1d6ad4 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 c23efe33e4ab2175c940433e081e4709cdc5b47b..e1aace18bab71adbfd062685a525551f55d7439c 100644 +index 80795ffe26722995b232f91df7876ffe2d2b870c..b4eb7a279b8e70b7601c0101d3f7c47185fa2deb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -175,6 +175,8 @@ public class PurpurWorldConfig { +@@ -174,6 +174,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutTargetPlayer = true; public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; @@ -44,7 +44,7 @@ index c23efe33e4ab2175c940433e081e4709cdc5b47b..e1aace18bab71adbfd062685a525551f private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -188,6 +190,8 @@ public class PurpurWorldConfig { +@@ -187,6 +189,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 0081ba5b5..1928fcd58 100644 --- a/patches/server/0055-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0055-Configurable-void-damage-height-and-damage.patch @@ -31,10 +31,10 @@ index 2123b296b69f05601b0a6c51c8ad58ca263997f8..0d891511e9c34afbb970a2b2a560f6cd protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e1aace18bab71adbfd062685a525551f55d7439c..af4dce5c4708e0540819af2388e9a38b2710b041 100644 +index b4eb7a279b8e70b7601c0101d3f7c47185fa2deb..f1e1f46d2e2847641bbb812376ad3167366f4ba3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,10 +100,14 @@ public class PurpurWorldConfig { +@@ -99,10 +99,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 5af4d4f4c..e11f5fbd5 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 af4dce5c4708e0540819af2388e9a38b2710b041..3b58033a22343b671c7da9dd88453bf936d24e1c 100644 +index f1e1f46d2e2847641bbb812376ad3167366f4ba3..8fe849d1b8f8bcad0c2f714f8f5552bf772225ab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -230,6 +230,11 @@ public class PurpurWorldConfig { +@@ -229,6 +229,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 b31e194bf..558ce5a2a 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 3b58033a22343b671c7da9dd88453bf936d24e1c..b3c6739cc7a47ad965482cb488ba75e649856aeb 100644 +index 8fe849d1b8f8bcad0c2f714f8f5552bf772225ab..b60c9270b18b11d159a6432ed10617ddbf5d4c6b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,12 +97,14 @@ public class PurpurWorldConfig { +@@ -96,12 +96,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 377621c28..691860c74 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 b3c6739cc7a47ad965482cb488ba75e649856aeb..9e7b3a8be6ce2c3540c7b775ae9d85ed0cccad00 100644 +index b60c9270b18b11d159a6432ed10617ddbf5d4c6b..cc673b3daa8a5edd24cdf05d21c4dc2c6fbb7a42 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,7 @@ public class PurpurWorldConfig { +@@ -96,6 +96,7 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } @@ -84,7 +84,7 @@ index b3c6739cc7a47ad965482cb488ba75e649856aeb..9e7b3a8be6ce2c3540c7b775ae9d85ed public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; -@@ -104,6 +105,7 @@ public class PurpurWorldConfig { +@@ -103,6 +104,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 ba7fd0818..79d979dd2 100644 --- a/patches/server/0061-Implement-elytra-settings.patch +++ b/patches/server/0061-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0b262a228d4a825beaaaab7691881530fe271dae..9075fb0c8807157063d3f0435784a1382a75701a 100644 +index 0d891511e9c34afbb970a2b2a560f6cd18d04faa..ada73c400539f55f7fb6203eb32c58b772dc666f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3529,7 +3529,16 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -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 9e7b3a8be6ce2c3540c7b775ae9d85ed0cccad00..31629257826aa600fe6e5bf17e89002a71bbc1b3 100644 +index cc673b3daa8a5edd24cdf05d21c4dc2c6fbb7a42..11cb390065f9165d6a786cd9004f194e077a5e3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,6 +114,19 @@ public class PurpurWorldConfig { +@@ -113,6 +113,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 aa8901cca..53bb6cd5c 100644 --- a/patches/server/0062-Item-entity-immunities.patch +++ b/patches/server/0062-Item-entity-immunities.patch @@ -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 31629257826aa600fe6e5bf17e89002a71bbc1b3..31af922dd6cf4af8d555b74189ac83fe248479ac 100644 +index 11cb390065f9165d6a786cd9004f194e077a5e3b..cba6f63fa7f5e08a82e05f29092d015f5ad68366 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -127,6 +127,49 @@ public class PurpurWorldConfig { +@@ -126,6 +126,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 eff590d3d..37fd2309c 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 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d4d86ed44 100644 +index cba6f63fa7f5e08a82e05f29092d015f5ad68366..985bfa879e37d2543491aebc445eb61055821eac 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -594,6 +594,9 @@ public class PurpurWorldConfig { +@@ -593,6 +593,9 @@ public class PurpurWorldConfig { public boolean drownedControllable = true; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -605,6 +608,9 @@ public class PurpurWorldConfig { +@@ -604,6 +607,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 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d } public boolean elderGuardianRidable = false; -@@ -853,6 +859,9 @@ public class PurpurWorldConfig { +@@ -852,6 +858,9 @@ public class PurpurWorldConfig { public boolean huskControllable = true; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -864,6 +873,9 @@ public class PurpurWorldConfig { +@@ -863,6 +872,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 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d } public boolean illusionerRidable = false; -@@ -1680,6 +1692,9 @@ public class PurpurWorldConfig { +@@ -1679,6 +1691,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1691,6 +1706,9 @@ public class PurpurWorldConfig { +@@ -1690,6 +1705,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 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d } public boolean zombieHorseRidableInWater = false; -@@ -1725,6 +1743,9 @@ public class PurpurWorldConfig { +@@ -1724,6 +1742,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1736,6 +1757,9 @@ public class PurpurWorldConfig { +@@ -1735,6 +1756,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 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d } public boolean zombifiedPiglinRidable = false; -@@ -1743,6 +1767,9 @@ public class PurpurWorldConfig { +@@ -1742,6 +1766,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 31af922dd6cf4af8d555b74189ac83fe248479ac..44d74c98d1806806eadab679acf66f0d private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1754,5 +1781,8 @@ public class PurpurWorldConfig { +@@ -1753,5 +1780,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 ac5441bd1..6673dfae8 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 @@ -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 44d74c98d1806806eadab679acf66f0d4d86ed44..e2e228b386f91adedbb144754a048e5908bd2edb 100644 +index 985bfa879e37d2543491aebc445eb61055821eac..8cf85d9ca97dd8db6440f839b7f5ca91b4eb86da 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1071,6 +1071,9 @@ public class PurpurWorldConfig { +@@ -1070,6 +1070,9 @@ public class PurpurWorldConfig { public String phantomAttackDamage = "6 + size"; public Map phantomMaxHealthCache = new HashMap<>(); public Map phantomAttackDamageCache = new HashMap<>(); @@ -270,7 +270,7 @@ index 44d74c98d1806806eadab679acf66f0d4d86ed44..e2e228b386f91adedbb144754a048e59 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1092,6 +1095,9 @@ public class PurpurWorldConfig { +@@ -1091,6 +1094,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 7c5321577..9e1e3cbc5 100644 --- a/patches/server/0068-Add-phantom-spawning-options.patch +++ b/patches/server/0068-Add-phantom-spawning-options.patch @@ -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 e2e228b386f91adedbb144754a048e5908bd2edb..b1434e34e94b9cad2cc8f37ab4663cd6e3f30408 100644 +index 8cf85d9ca97dd8db6440f839b7f5ca91b4eb86da..31686627dc0aa6396e6f4c93ebfe11268eecb473 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1074,6 +1074,12 @@ public class PurpurWorldConfig { +@@ -1073,6 +1073,12 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -56,7 +56,7 @@ index e2e228b386f91adedbb144754a048e5908bd2edb..b1434e34e94b9cad2cc8f37ab4663cd6 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1098,6 +1104,12 @@ public class PurpurWorldConfig { +@@ -1097,6 +1103,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 3b001095d..ae53114ed 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 b1434e34e94b9cad2cc8f37ab4663cd6e3f30408..7b87d42167b54ade951befd855359a2a99d5a702 100644 +index 31686627dc0aa6396e6f4c93ebfe11268eecb473..54f9ff00e08d746eeb5b05b116f98c61010ec4e2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -290,6 +290,27 @@ public class PurpurWorldConfig { +@@ -289,6 +289,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 e9a71687d..169954786 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 7b87d42167b54ade951befd855359a2a99d5a702..c69147c1bc8e96c43a9496fd8c4fb4139682afd5 100644 +index 54f9ff00e08d746eeb5b05b116f98c61010ec4e2..f94238520f38c4c9d7c3d2685ed8bf2ea1975452 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -330,6 +330,27 @@ public class PurpurWorldConfig { +@@ -329,6 +329,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 ac48e381d..75105fc65 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 c69147c1bc8e96c43a9496fd8c4fb4139682afd5..96203a380bbb4dc9aaffb6867ca1395d96795f43 100644 +index f94238520f38c4c9d7c3d2685ed8bf2ea1975452..6ecd7f9a3dfb2ddb630b88d072a8bbb5874bcb0a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -127,6 +127,11 @@ public class PurpurWorldConfig { +@@ -126,6 +126,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 4a59e53fa..633c6df61 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 @@ -36,7 +36,7 @@ index fa7c220057be4d233752d9022a934d03e5f3df59..421aaf1fd85da9807bfe1b193bc13c5f + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9075fb0c8807157063d3f0435784a1382a75701a..6d636e45063a1fd6ab2f7560eacfca2655d55e93 100644 +index ada73c400539f55f7fb6203eb32c58b772dc666f..414156a66c41f6515b7fe27d16546691c14fd52a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -428,6 +428,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -48,10 +48,10 @@ index 9075fb0c8807157063d3f0435784a1382a75701a..6d636e45063a1fd6ab2f7560eacfca26 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 96203a380bbb4dc9aaffb6867ca1395d96795f43..b585b7dfed1036c2bb250df4a6e265bdad9d5ec1 100644 +index 6ecd7f9a3dfb2ddb630b88d072a8bbb5874bcb0a..f7edb363baab75979c7546bda8051cd8f81252cb 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 { +@@ -245,6 +245,7 @@ public class PurpurWorldConfig { public boolean playerInvulnerableWhileAcceptingResourcePack = false; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; @@ -59,7 +59,7 @@ index 96203a380bbb4dc9aaffb6867ca1395d96795f43..b585b7dfed1036c2bb250df4a6e265bd private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -261,6 +262,7 @@ public class PurpurWorldConfig { +@@ -260,6 +261,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 131599478..a98530fa5 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 b585b7dfed1036c2bb250df4a6e265bdad9d5ec1..72433b3f850ba3a5958ea77061d61bb71cb96a37 100644 +index f7edb363baab75979c7546bda8051cd8f81252cb..c7b6ed5e741f227a6da0f3e7c6977e822038f8e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1459,6 +1459,7 @@ public class PurpurWorldConfig { +@@ -1458,6 +1458,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index b585b7dfed1036c2bb250df4a6e265bdad9d5ec1..72433b3f850ba3a5958ea77061d61bb7 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1468,6 +1469,7 @@ public class PurpurWorldConfig { +@@ -1467,6 +1468,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 363c70b9f..e931764e5 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 72433b3f850ba3a5958ea77061d61bb71cb96a37..4283193f234f482a0548fd02853f3c5c55eda9ee 100644 +index c7b6ed5e741f227a6da0f3e7c6977e822038f8e8..2c38ec1d536db890c25331e7d2e13eef8542e2b8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1129,6 +1129,9 @@ public class PurpurWorldConfig { +@@ -1128,6 +1128,9 @@ public class PurpurWorldConfig { public double phantomSpawnLocalDifficultyChance = 3.0D; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -65,7 +65,7 @@ index 72433b3f850ba3a5958ea77061d61bb71cb96a37..4283193f234f482a0548fd02853f3c5c private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1159,6 +1162,9 @@ public class PurpurWorldConfig { +@@ -1158,6 +1161,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 2b47ac602..6886fd0f0 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 4283193f234f482a0548fd02853f3c5c55eda9ee..bca57328c6385017862d8b2efbd5bafa58bdf648 100644 +index 2c38ec1d536db890c25331e7d2e13eef8542e2b8..e004bba6963a5d5ff8471ead58994ae69a91bd81 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1617,6 +1617,7 @@ public class PurpurWorldConfig { +@@ -1616,6 +1616,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index 4283193f234f482a0548fd02853f3c5c55eda9ee..bca57328c6385017862d8b2efbd5bafa private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1629,6 +1630,7 @@ public class PurpurWorldConfig { +@@ -1628,6 +1629,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 f2e441616..0997a27c6 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 bca57328c6385017862d8b2efbd5bafa58bdf648..00d4878896e209b0077999aa5b0e2aec55380d3f 100644 +index e004bba6963a5d5ff8471ead58994ae69a91bd81..285eb0600e094d5957c05c0d348f472400284371 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -358,6 +358,11 @@ public class PurpurWorldConfig { +@@ -357,6 +357,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 60c989366..2f9027da5 100644 --- a/patches/server/0079-Totems-work-in-inventory.patch +++ b/patches/server/0079-Totems-work-in-inventory.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6d636e45063a1fd6ab2f7560eacfca2655d55e93..acd9c48a247b13be2d06e5fd6ada033f6084341d 100644 +index 414156a66c41f6515b7fe27d16546691c14fd52a..3b342b2349ba5f1228c8a597d6176060009a4d94 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1600,6 +1600,18 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -28,10 +28,10 @@ index 6d636e45063a1fd6ab2f7560eacfca2655d55e93..acd9c48a247b13be2d06e5fd6ada033f 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 00d4878896e209b0077999aa5b0e2aec55380d3f..fcb73074a54db31cf8b5c17e8806b80666ae22c6 100644 +index 285eb0600e094d5957c05c0d348f472400284371..5d20c09d34bcf4f0975e6946ba103f7644f3d297 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -247,6 +247,7 @@ public class PurpurWorldConfig { +@@ -246,6 +246,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -39,7 +39,7 @@ index 00d4878896e209b0077999aa5b0e2aec55380d3f..fcb73074a54db31cf8b5c17e8806b806 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -263,6 +264,7 @@ public class PurpurWorldConfig { +@@ -262,6 +263,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 5887b348d..8a8213dee 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 fcb73074a54db31cf8b5c17e8806b80666ae22c6..3d76106d20f1b03690957111d69c7dc5fa48c533 100644 +index 5d20c09d34bcf4f0975e6946ba103f7644f3d297..dd398eb6d50c43604c18068370db689d2897625a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1644,6 +1644,7 @@ public class PurpurWorldConfig { +@@ -1643,6 +1643,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = true; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index fcb73074a54db31cf8b5c17e8806b80666ae22c6..3d76106d20f1b03690957111d69c7dc5 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1654,6 +1655,7 @@ public class PurpurWorldConfig { +@@ -1653,6 +1654,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 f0175564f..930334b92 100644 --- a/patches/server/0082-Dispensers-place-anvils-option.patch +++ b/patches/server/0082-Dispensers-place-anvils-option.patch @@ -41,10 +41,10 @@ index b4f5dbe9022dd20437c15c4f6fbe2ac06dacbadb..b52a9f05ada86f2d3767dd0d5ba8705e 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 3d76106d20f1b03690957111d69c7dc5fa48c533..4c37ded57929b79936edd3446bd4c92acf21790c 100644 +index dd398eb6d50c43604c18068370db689d2897625a..28235ec24f5eacb35a09d8a7ab71d0ce60b5db59 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -321,8 +321,10 @@ public class PurpurWorldConfig { +@@ -320,8 +320,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 2c2c17e94..56634be17 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 4c37ded57929b79936edd3446bd4c92acf21790c..035a18d131fab9892a85b41663fc3dbe2f8bafe2 100644 +index 28235ec24f5eacb35a09d8a7ab71d0ce60b5db59..d4f6d96e13aa4f5e5e56bac6232b30ad7a4a417d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -299,6 +299,13 @@ public class PurpurWorldConfig { +@@ -298,6 +298,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 fa019d699..181bde154 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 08e9fd3581578195e5df079b086811c5964fd17a..7b2674233d0b8582243448c49d1c4727 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 035a18d131fab9892a85b41663fc3dbe2f8bafe2..f1ab0af8f00a931aedec7647223903a14432f84e 100644 +index d4f6d96e13aa4f5e5e56bac6232b30ad7a4a417d..b0df6a0aa6370364eb19555f3053de66935c3a0c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -616,6 +616,7 @@ public class PurpurWorldConfig { +@@ -615,6 +615,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 035a18d131fab9892a85b41663fc3dbe2f8bafe2..f1ab0af8f00a931aedec7647223903a1 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -628,6 +629,7 @@ public class PurpurWorldConfig { +@@ -627,6 +628,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 1a01acae2..aa739b975 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 f1ab0af8f00a931aedec7647223903a14432f84e..1797098e86a4c0abf1431e1d266be6a977c64b95 100644 +index b0df6a0aa6370364eb19555f3053de66935c3a0c..79b80587e5d0c8f844659b9dbe2d8610d94f888d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1484,6 +1484,7 @@ public class PurpurWorldConfig { +@@ -1483,6 +1483,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index f1ab0af8f00a931aedec7647223903a14432f84e..1797098e86a4c0abf1431e1d266be6a9 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1494,6 +1495,7 @@ public class PurpurWorldConfig { +@@ -1493,6 +1494,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 eedf87e02..bd8ceec68 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 59f0880a4ccdea2f0c95e0411bf149d76e866678..625cee30e80123d502851bbfb30c8990 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 1797098e86a4c0abf1431e1d266be6a977c64b95..d7c26045abf907cdc3c3906e78666c6d5e4bf5f9 100644 +index 79b80587e5d0c8f844659b9dbe2d8610d94f888d..30c44f52f8a864d156f225a682f1cc18df0a362c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,6 +100,7 @@ public class PurpurWorldConfig { +@@ -99,6 +99,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; @@ -38,7 +38,7 @@ index 1797098e86a4c0abf1431e1d266be6a977c64b95..d7c26045abf907cdc3c3906e78666c6d public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -108,6 +109,7 @@ public class PurpurWorldConfig { +@@ -107,6 +108,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 52344abbe..eb40b4f62 100644 --- a/patches/server/0090-Customizable-wither-health-and-healing.patch +++ b/patches/server/0090-Customizable-wither-health-and-healing.patch @@ -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 d7c26045abf907cdc3c3906e78666c6d5e4bf5f9..ea9eee84f879ccc7e21c15fef8dd75e8cad67d9c 100644 +index 30c44f52f8a864d156f225a682f1cc18df0a362c..b8c97253388447fb6091436bdd98356e8465d5e9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1723,6 +1723,8 @@ public class PurpurWorldConfig { +@@ -1722,6 +1722,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index d7c26045abf907cdc3c3906e78666c6d5e4bf5f9..ea9eee84f879ccc7e21c15fef8dd75e8 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1738,6 +1740,8 @@ public class PurpurWorldConfig { +@@ -1737,6 +1739,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 73384a118..964dbc2db 100644 --- a/patches/server/0091-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0091-Allow-toggling-special-MobSpawners-per-world.patch @@ -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 ea9eee84f879ccc7e21c15fef8dd75e8cad67d9c..41edeeb40010f9551f32d36b47c89eab8323f01d 100644 +index b8c97253388447fb6091436bdd98356e8465d5e9..3b2c3d0f4559008aec4150f992eba768f72a9ac2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -71,6 +71,12 @@ public class PurpurWorldConfig { +@@ -70,6 +70,12 @@ public class PurpurWorldConfig { return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path)); } @@ -75,7 +75,7 @@ index ea9eee84f879ccc7e21c15fef8dd75e8cad67d9c..41edeeb40010f9551f32d36b47c89eab 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)); -@@ -239,6 +245,21 @@ public class PurpurWorldConfig { +@@ -238,6 +244,21 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0092-Raid-cooldown-setting.patch b/patches/server/0092-Raid-cooldown-setting.patch index 78ec0342f..dcfd377a4 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 41edeeb40010f9551f32d36b47c89eab8323f01d..5ebab2b52a1b0c1fb7a2419b9495f9491d53abdc 100644 +index 3b2c3d0f4559008aec4150f992eba768f72a9ac2..dea0534040154186ecdcad70d4bed53ed067a6b9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -111,6 +111,7 @@ public class PurpurWorldConfig { +@@ -110,6 +110,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -60,7 +60,7 @@ index 41edeeb40010f9551f32d36b47c89eab8323f01d..5ebab2b52a1b0c1fb7a2419b9495f949 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -120,6 +121,7 @@ public class PurpurWorldConfig { +@@ -119,6 +120,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 3484ec4ca..9d7c4d05e 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 5ebab2b52a1b0c1fb7a2419b9495f9491d53abdc..3d9bb6ffdc9f1ad65017327e338670879d1adbf6 100644 +index dea0534040154186ecdcad70d4bed53ed067a6b9..8efe8d4a37745a280d1cacf3c10757e88ccf3c5a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -292,6 +292,39 @@ public class PurpurWorldConfig { +@@ -291,6 +291,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 defba13ce..647623965 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 3d9bb6ffdc9f1ad65017327e338670879d1adbf6..7d637e9139a3c2415c78bd238b0d105beb38daff 100644 +index 8efe8d4a37745a280d1cacf3c10757e88ccf3c5a..3dad224fe58084b7b37863d44f25aa206bc632c6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1856,6 +1856,7 @@ public class PurpurWorldConfig { +@@ -1855,6 +1855,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -81,7 +81,7 @@ index 3d9bb6ffdc9f1ad65017327e338670879d1adbf6..7d637e9139a3c2415c78bd238b0d105b private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1870,6 +1871,7 @@ public class PurpurWorldConfig { +@@ -1869,6 +1870,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 e990d0a21..fee89a4a2 100644 --- a/patches/server/0096-Flying-squids-Oh-my.patch +++ b/patches/server/0096-Flying-squids-Oh-my.patch @@ -58,10 +58,10 @@ index de0a015cc944c36358fc34a3142ecbf9d2a332b5..1431d7f295614641c1a5a5197f4bac3f float f1 = Mth.cos(f) * 0.2F; float f2 = -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 7d637e9139a3c2415c78bd238b0d105beb38daff..335189e415ed96c45d0d1b4e97098728da8512f3 100644 +index 3dad224fe58084b7b37863d44f25aa206bc632c6..1e218cf6b6675cb606c7832e90bcd952ce97db3a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -908,10 +908,12 @@ public class PurpurWorldConfig { +@@ -907,10 +907,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index 7d637e9139a3c2415c78bd238b0d105beb38daff..335189e415ed96c45d0d1b4e97098728 } public boolean goatRidable = false; -@@ -1543,6 +1545,7 @@ public class PurpurWorldConfig { +@@ -1542,6 +1544,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 7d637e9139a3c2415c78bd238b0d105beb38daff..335189e415ed96c45d0d1b4e97098728 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1554,6 +1557,7 @@ public class PurpurWorldConfig { +@@ -1553,6 +1556,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 4663068b1..03b3822e6 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 335189e415ed96c45d0d1b4e97098728da8512f3..415bd62b1631dd9a4f45ad03e1df4af0229ba034 100644 +index 1e218cf6b6675cb606c7832e90bcd952ce97db3a..f1fce08e086dffe074fe824fac5782e9e9d843b2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -142,6 +142,17 @@ public class PurpurWorldConfig { +@@ -141,6 +141,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 5e3099b85..dd27a0e2e 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 415bd62b1631dd9a4f45ad03e1df4af0229ba034..2d747b550bd6a640de94467759bb53a48062ca7e 100644 +index f1fce08e086dffe074fe824fac5782e9e9d843b2..26454971e2bb97edf86d79cb094f7ede2874fe87 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -124,6 +124,13 @@ public class PurpurWorldConfig { +@@ -123,6 +123,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 f14fb28d8..611fa1b39 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 2d747b550bd6a640de94467759bb53a48062ca7e..e7e698613ef8473bb13f18e127a4478822b73930 100644 +index 26454971e2bb97edf86d79cb094f7ede2874fe87..2ff758ab5e0a9cafad809d252446cbd7f258fc1c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -415,6 +415,17 @@ public class PurpurWorldConfig { +@@ -414,6 +414,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 cf83c3d42..72b76e541 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 e7e698613ef8473bb13f18e127a4478822b73930..9bf633953526b1d5e31baa86474c2bc41f520b99 100644 +index 2ff758ab5e0a9cafad809d252446cbd7f258fc1c..6693677e8b7091778e7e273357e4cc2165ebe1d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -103,6 +103,11 @@ public class PurpurWorldConfig { +@@ -102,6 +102,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 bbcea2db1..1307efd21 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 d446b440e2bc5b73362fc3d30a10d2e52fde68e1..d4e3a32a0f9b49bff64cb43d77727ce3 return; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9bf633953526b1d5e31baa86474c2bc41f520b99..5ed833c5642c5cbac6b6717d4d1a37a6936887eb 100644 +index 6693677e8b7091778e7e273357e4cc2165ebe1d0..893953e376ebd39b12cbb88f458abd8918932d70 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -416,8 +416,10 @@ public class PurpurWorldConfig { +@@ -415,8 +415,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 c6f1582a8..f33647287 100644 --- a/patches/server/0103-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0103-Add-adjustable-breeding-cooldown-to-config.patch @@ -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 5ed833c5642c5cbac6b6717d4d1a37a6936887eb..7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22 100644 +index 893953e376ebd39b12cbb88f458abd8918932d70..736bfa6403b54c2822606f54f5aa9795f47a7477 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -117,6 +117,7 @@ public class PurpurWorldConfig { +@@ -116,6 +116,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -115,7 +115,7 @@ index 5ed833c5642c5cbac6b6717d4d1a37a6936887eb..7a9ac5c8b6c2576e9a1728dc77f9a1e7 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -127,6 +128,7 @@ public class PurpurWorldConfig { +@@ -126,6 +127,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 fd675cd31..0bb5fd22a 100644 --- a/patches/server/0104-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0104-Make-entity-breeding-times-configurable.patch @@ -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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d74a3a5f9 100644 +index 736bfa6403b54c2822606f54f5aa9795f47a7477..ec00f1a76f5d9c26766348d445df64cff31963b1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -507,10 +507,12 @@ public class PurpurWorldConfig { +@@ -506,10 +506,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -538,7 +538,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean batRidable = false; -@@ -550,6 +552,7 @@ public class PurpurWorldConfig { +@@ -549,6 +551,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -546,7 +546,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -561,6 +564,7 @@ public class PurpurWorldConfig { +@@ -560,6 +563,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -554,7 +554,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean blazeRidable = false; -@@ -588,6 +592,7 @@ public class PurpurWorldConfig { +@@ -587,6 +591,7 @@ public class PurpurWorldConfig { public double camelJumpStrengthMax = 0.42D; public double camelMovementSpeedMin = 0.09D; public double camelMovementSpeedMax = 0.09D; @@ -562,7 +562,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void camelSettings() { camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater); camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin); -@@ -596,6 +601,7 @@ public class PurpurWorldConfig { +@@ -595,6 +600,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean catRidable = false; -@@ -605,6 +611,7 @@ public class PurpurWorldConfig { +@@ -604,6 +610,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -578,7 +578,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -618,6 +625,7 @@ public class PurpurWorldConfig { +@@ -617,6 +624,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean caveSpiderRidable = false; -@@ -641,6 +649,7 @@ public class PurpurWorldConfig { +@@ -640,6 +648,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -594,7 +594,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -652,6 +661,7 @@ public class PurpurWorldConfig { +@@ -651,6 +660,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -602,7 +602,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean codRidable = false; -@@ -673,6 +683,7 @@ public class PurpurWorldConfig { +@@ -672,6 +682,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -610,7 +610,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -684,6 +695,7 @@ public class PurpurWorldConfig { +@@ -683,6 +694,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean creeperRidable = false; -@@ -735,6 +747,7 @@ public class PurpurWorldConfig { +@@ -734,6 +746,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -626,7 +626,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -750,6 +763,7 @@ public class PurpurWorldConfig { +@@ -749,6 +762,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean drownedRidable = false; -@@ -869,6 +883,7 @@ public class PurpurWorldConfig { +@@ -868,6 +882,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -642,7 +642,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -880,17 +895,20 @@ public class PurpurWorldConfig { +@@ -879,17 +894,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean ghastRidable = false; -@@ -958,11 +976,13 @@ public class PurpurWorldConfig { +@@ -957,11 +975,13 @@ public class PurpurWorldConfig { public boolean goatRidableInWater = true; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; @@ -677,7 +677,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean guardianRidable = false; -@@ -983,6 +1003,7 @@ public class PurpurWorldConfig { +@@ -982,6 +1002,7 @@ public class PurpurWorldConfig { public boolean hoglinRidableInWater = true; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; @@ -685,7 +685,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -993,6 +1014,7 @@ public class PurpurWorldConfig { +@@ -992,6 +1013,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -693,7 +693,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean horseRidableInWater = false; -@@ -1002,6 +1024,7 @@ public class PurpurWorldConfig { +@@ -1001,6 +1023,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -701,7 +701,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1017,6 +1040,7 @@ public class PurpurWorldConfig { +@@ -1016,6 +1039,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean huskRidable = false; -@@ -1094,6 +1118,7 @@ public class PurpurWorldConfig { +@@ -1093,6 +1117,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -717,7 +717,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1111,6 +1136,7 @@ public class PurpurWorldConfig { +@@ -1110,6 +1135,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean magmaCubeRidable = false; -@@ -1139,6 +1165,7 @@ public class PurpurWorldConfig { +@@ -1138,6 +1164,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidableInWater = true; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; @@ -733,7 +733,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1149,6 +1176,7 @@ public class PurpurWorldConfig { +@@ -1148,6 +1175,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -741,7 +741,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean muleRidableInWater = false; -@@ -1158,6 +1186,7 @@ public class PurpurWorldConfig { +@@ -1157,6 +1185,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -749,7 +749,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1173,12 +1202,14 @@ public class PurpurWorldConfig { +@@ -1172,12 +1201,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1189,12 +1220,14 @@ public class PurpurWorldConfig { +@@ -1188,12 +1219,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -779,7 +779,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1205,6 +1238,7 @@ public class PurpurWorldConfig { +@@ -1204,6 +1237,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -787,7 +787,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean parrotRidable = false; -@@ -1288,6 +1322,7 @@ public class PurpurWorldConfig { +@@ -1287,6 +1321,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -795,7 +795,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1299,6 +1334,7 @@ public class PurpurWorldConfig { +@@ -1298,6 +1333,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean piglinRidable = false; -@@ -1355,6 +1391,7 @@ public class PurpurWorldConfig { +@@ -1354,6 +1390,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -811,7 +811,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1368,6 +1405,7 @@ public class PurpurWorldConfig { +@@ -1367,6 +1404,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean pufferfishRidable = false; -@@ -1390,6 +1428,7 @@ public class PurpurWorldConfig { +@@ -1389,6 +1427,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -827,7 +827,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1402,6 +1441,7 @@ public class PurpurWorldConfig { +@@ -1401,6 +1440,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean ravagerRidable = false; -@@ -1438,6 +1478,7 @@ public class PurpurWorldConfig { +@@ -1437,6 +1477,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = true; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; @@ -843,7 +843,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1448,6 +1489,7 @@ public class PurpurWorldConfig { +@@ -1447,6 +1488,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -851,7 +851,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean shulkerRidable = false; -@@ -1571,11 +1613,13 @@ public class PurpurWorldConfig { +@@ -1570,11 +1612,13 @@ public class PurpurWorldConfig { public boolean snifferRidableInWater = true; public boolean snifferControllable = true; public double snifferMaxHealth = 14.0D; @@ -865,7 +865,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean squidRidable = false; -@@ -1634,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1633,6 +1677,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -873,7 +873,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1644,6 +1689,7 @@ public class PurpurWorldConfig { +@@ -1643,6 +1688,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -881,7 +881,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean tadpoleRidable = false; -@@ -1664,6 +1710,7 @@ public class PurpurWorldConfig { +@@ -1663,6 +1709,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -889,7 +889,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1681,6 +1728,7 @@ public class PurpurWorldConfig { +@@ -1680,6 +1727,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean tropicalFishRidable = false; -@@ -1701,6 +1749,7 @@ public class PurpurWorldConfig { +@@ -1700,6 +1748,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = true; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -905,7 +905,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1711,6 +1760,7 @@ public class PurpurWorldConfig { +@@ -1710,6 +1759,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -913,7 +913,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean vexRidable = false; -@@ -1738,6 +1788,7 @@ public class PurpurWorldConfig { +@@ -1737,6 +1787,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -921,7 +921,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1751,6 +1802,7 @@ public class PurpurWorldConfig { +@@ -1750,6 +1801,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 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d } public boolean vindicatorRidable = false; -@@ -1862,6 +1914,7 @@ public class PurpurWorldConfig { +@@ -1861,6 +1913,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -937,7 +937,7 @@ index 7a9ac5c8b6c2576e9a1728dc77f9a1e71013db22..852b8f4eee52840eac1feb8d98843e7d private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1872,6 +1925,7 @@ public class PurpurWorldConfig { +@@ -1871,6 +1924,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 d8ab5cab7..f5b52c503 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 @@ -95,7 +95,7 @@ index 7cffc64573008502bdd14ae4906fe51166b12fb3..1feafdbb48cf760cb6ebf95d5be2c32b world.playSound((Player) null, entityarmorstand.getX(), entityarmorstand.getY(), entityarmorstand.getZ(), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F); entityarmorstand.gameEvent(GameEvent.ENTITY_PLACE, context.getPlayer()); diff --git a/src/main/java/net/minecraft/world/item/BoatItem.java b/src/main/java/net/minecraft/world/item/BoatItem.java -index 1a95ac11a2fbc811c89afa3adf38e0fc9eaab09b..91280f8c39ea191b90da2a9ff5c49f43c255bd9a 100644 +index aec7ac31a35b1cc81f40b3fbeb5cf95c0f2c8a6c..cbcd35e60a2c344c83978abf0b94c2120ff53dee 100644 --- a/src/main/java/net/minecraft/world/item/BoatItem.java +++ b/src/main/java/net/minecraft/world/item/BoatItem.java @@ -69,6 +69,11 @@ public class BoatItem extends Item { @@ -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 852b8f4eee52840eac1feb8d98843e7d74a3a5f9..bbba0bf68ad619f3cde913bcd5cf84260efb9df0 100644 +index ec00f1a76f5d9c26766348d445df64cff31963b1..5f7c0cda2e0ec0064f0fec80cfffd2ae6bad154c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,8 +99,10 @@ public class PurpurWorldConfig { +@@ -98,8 +98,10 @@ public class PurpurWorldConfig { } public float armorstandStepHeight = 0.0F; @@ -150,7 +150,7 @@ index 852b8f4eee52840eac1feb8d98843e7d74a3a5f9..bbba0bf68ad619f3cde913bcd5cf8426 } public boolean arrowMovementResetsDespawnCounter = true; -@@ -113,6 +115,7 @@ public class PurpurWorldConfig { +@@ -112,6 +114,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -158,7 +158,7 @@ index 852b8f4eee52840eac1feb8d98843e7d74a3a5f9..bbba0bf68ad619f3cde913bcd5cf8426 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -124,6 +127,7 @@ public class PurpurWorldConfig { +@@ -123,6 +126,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 16b233ea3..2f8852f10 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 bbba0bf68ad619f3cde913bcd5cf84260efb9df0..b0fac0182a8f20e41bf999cb99582c45b9569b44 100644 +index 5f7c0cda2e0ec0064f0fec80cfffd2ae6bad154c..703383e717b6d0873c74d482c72f2f2b8408d810 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,9 +100,11 @@ public class PurpurWorldConfig { +@@ -99,9 +99,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 8fe728a2b..1f135b0f9 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 @@ -21,10 +21,10 @@ index 92c28c7cdfc987afc5f5281a77f218fdfab441b0..1ff3c526ed34cbece3321de67aa90137 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 b0fac0182a8f20e41bf999cb99582c45b9569b44..b1ddc08a8a763854dd5f964a49fb88d3e1adcaac 100644 +index 703383e717b6d0873c74d482c72f2f2b8408d810..c9d0105e06fc155b6c0a4641d649d8b916524fe3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -839,6 +839,7 @@ public class PurpurWorldConfig { +@@ -838,6 +838,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index b0fac0182a8f20e41bf999cb99582c45b9569b44..b1ddc08a8a763854dd5f964a49fb88d3 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -850,6 +851,7 @@ public class PurpurWorldConfig { +@@ -849,6 +850,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 a77149d33..2fdc3cb2c 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 b1ddc08a8a763854dd5f964a49fb88d3e1adcaac..0a4acc723a3f08b8274ba4d5a193b050dd2b49e0 100644 +index c9d0105e06fc155b6c0a4641d649d8b916524fe3..85514215e4abaf73f389aef0ac0de980abb9be86 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -356,6 +356,11 @@ public class PurpurWorldConfig { +@@ -355,6 +355,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 748d9f0c9..a040e3a42 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 0a4acc723a3f08b8274ba4d5a193b050dd2b49e0..2760a1b338e0b0e737e71ad2cb515d6e1608093c 100644 +index 85514215e4abaf73f389aef0ac0de980abb9be86..c3681d3afbffbc145bbbda7d341ad70f2b3a5df2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -158,8 +158,10 @@ public class PurpurWorldConfig { +@@ -157,8 +157,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 21c2064af..e4958e514 100644 --- a/patches/server/0110-Add-boat-fall-damage-config.patch +++ b/patches/server/0110-Add-boat-fall-damage-config.patch @@ -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 2760a1b338e0b0e737e71ad2cb515d6e1608093c..8dab41636e046ae6cf8458d59a4bc2ecde5efcb4 100644 +index c3681d3afbffbc145bbbda7d341ad70f2b3a5df2..1ad31a516e0c072a62b7422c1fc7efc5a776f5d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,6 +114,7 @@ public class PurpurWorldConfig { +@@ -113,6 +113,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 2760a1b338e0b0e737e71ad2cb515d6e1608093c..8dab41636e046ae6cf8458d59a4bc2ec public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -126,6 +127,7 @@ public class PurpurWorldConfig { +@@ -125,6 +126,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 12fb74570..777dc0c25 100644 --- a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch @@ -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 8dab41636e046ae6cf8458d59a4bc2ecde5efcb4..eafb924959688d0180665731091d9b75398c6200 100644 +index 1ad31a516e0c072a62b7422c1fc7efc5a776f5d9..a721894795f32f3b7fa88bee19a7c4ac436c76e2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1611,6 +1611,10 @@ public class PurpurWorldConfig { +@@ -1610,6 +1610,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 8dab41636e046ae6cf8458d59a4bc2ecde5efcb4..eafb924959688d0180665731091d9b75 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1624,6 +1628,10 @@ public class PurpurWorldConfig { +@@ -1623,6 +1627,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 4f7341b97..02b4b5bdb 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 @@ -176,10 +176,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 eafb924959688d0180665731091d9b75398c6200..7c1dcef15b57777903d0920056e5330885c348e3 100644 +index a721894795f32f3b7fa88bee19a7c4ac436c76e2..0de1b1cf77eef8e0d40f53ad9e4ff550e4299875 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1814,6 +1814,8 @@ public class PurpurWorldConfig { +@@ -1813,6 +1813,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -188,7 +188,7 @@ index eafb924959688d0180665731091d9b75398c6200..7c1dcef15b57777903d0920056e53308 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1828,6 +1830,8 @@ public class PurpurWorldConfig { +@@ -1827,6 +1829,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 ba458a51a..fe2cfa490 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 7c1dcef15b57777903d0920056e5330885c348e3..2d9790c1579cb3d108f9f84cb5bd2696ef15467c 100644 +index 0de1b1cf77eef8e0d40f53ad9e4ff550e4299875..9fd1415a9f9e3340115ce9e9b990370ab3b8cad4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2058,6 +2058,7 @@ public class PurpurWorldConfig { +@@ -2057,6 +2057,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 7c1dcef15b57777903d0920056e5330885c348e3..2d9790c1579cb3d108f9f84cb5bd2696 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2072,5 +2073,6 @@ public class PurpurWorldConfig { +@@ -2071,5 +2072,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 d696e8285..9749ed631 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 2d9790c1579cb3d108f9f84cb5bd2696ef15467c..9be3933a32e7260b6be063de8f2687efdc28bf8f 100644 +index 9fd1415a9f9e3340115ce9e9b990370ab3b8cad4..825fb3e6fecf8ac3b9d05d7f794e9facc036507a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1943,6 +1943,8 @@ public class PurpurWorldConfig { +@@ -1942,6 +1942,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -233,7 +233,7 @@ index 2d9790c1579cb3d108f9f84cb5bd2696ef15467c..9be3933a32e7260b6be063de8f2687ef public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1954,6 +1956,8 @@ public class PurpurWorldConfig { +@@ -1953,6 +1955,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 50f7065f9..9ee843243 100644 --- a/patches/server/0116-Configurable-default-collar-color.patch +++ b/patches/server/0116-Configurable-default-collar-color.patch @@ -43,10 +43,10 @@ index aa484d03ed31f6c60c0b4456a4047bc38a40ea4a..89627025c0b5464900a5ea818c7aaf5d 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 9be3933a32e7260b6be063de8f2687efdc28bf8f..f05c9282671bb5b17da0ddfe2ffe1d8876f6ce17 100644 +index 825fb3e6fecf8ac3b9d05d7f794e9facc036507a..1260e700ebfcf9e74200a36675794c1c9d14d298 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -627,6 +627,7 @@ public class PurpurWorldConfig { +@@ -626,6 +626,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index 9be3933a32e7260b6be063de8f2687efdc28bf8f..f05c9282671bb5b17da0ddfe2ffe1d88 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -641,6 +642,11 @@ public class PurpurWorldConfig { +@@ -640,6 +641,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 9be3933a32e7260b6be063de8f2687efdc28bf8f..f05c9282671bb5b17da0ddfe2ffe1d88 } public boolean caveSpiderRidable = false; -@@ -1943,6 +1949,7 @@ public class PurpurWorldConfig { +@@ -1942,6 +1948,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index 9be3933a32e7260b6be063de8f2687efdc28bf8f..f05c9282671bb5b17da0ddfe2ffe1d88 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1956,6 +1963,11 @@ public class PurpurWorldConfig { +@@ -1955,6 +1962,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 1e2f67d9a..4a648ff8d 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 f05c9282671bb5b17da0ddfe2ffe1d8876f6ce17..a1912de4f504597b80d3ccde91ddc1c30a9af081 100644 +index 1260e700ebfcf9e74200a36675794c1c9d14d298..4fe6a35d1d37001ef367dee00a0e447916b878b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1305,6 +1305,7 @@ public class PurpurWorldConfig { +@@ -1304,6 +1304,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index f05c9282671bb5b17da0ddfe2ffe1d8876f6ce17..a1912de4f504597b80d3ccde91ddc1c3 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1338,6 +1339,7 @@ public class PurpurWorldConfig { +@@ -1337,6 +1338,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 a9d31a015..7c40e493b 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 a1912de4f504597b80d3ccde91ddc1c30a9af081..30b0f2da508f6f4ccb7493646a6f3a32f354f84c 100644 +index 4fe6a35d1d37001ef367dee00a0e447916b878b5..fc94719827a3d8dde4aa18de3a72a35ab5dff52f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -425,6 +425,11 @@ public class PurpurWorldConfig { +@@ -424,6 +424,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 42d6556a2..525ab1b4e 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 30b0f2da508f6f4ccb7493646a6f3a32f354f84c..bb1f9729fd2c2043290c23c90fdbf33618576985 100644 +index fc94719827a3d8dde4aa18de3a72a35ab5dff52f..3cf6841b12864797972ab3be9faf3d59b4cdf3ae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1717,6 +1717,7 @@ public class PurpurWorldConfig { +@@ -1716,6 +1716,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 30b0f2da508f6f4ccb7493646a6f3a32f354f84c..bb1f9729fd2c2043290c23c90fdbf336 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1728,6 +1729,7 @@ public class PurpurWorldConfig { +@@ -1727,6 +1728,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 dc52b1570..f3b3b67cb 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 bb1f9729fd2c2043290c23c90fdbf33618576985..76a7444b120d377c4329a900bf6e692ecf20dfe0 100644 +index 3cf6841b12864797972ab3be9faf3d59b4cdf3ae..3252fe3a76879939256a41a816b95f5c3ec3d65e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -297,6 +297,19 @@ public class PurpurWorldConfig { +@@ -296,6 +296,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 4865b9ff5..6cfe49c00 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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f501331245 100644 +index 3252fe3a76879939256a41a816b95f5c3ec3d65e..63c24ce12c9b564404aaaff7e185885b69695aa7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -117,8 +117,11 @@ public class PurpurWorldConfig { +@@ -116,8 +116,11 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = false; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -389,7 +389,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -130,8 +133,11 @@ public class PurpurWorldConfig { +@@ -129,8 +132,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 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); -@@ -450,9 +456,11 @@ public class PurpurWorldConfig { +@@ -449,9 +455,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -413,7 +413,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -477,6 +485,11 @@ public class PurpurWorldConfig { +@@ -476,6 +484,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -425,7 +425,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -506,10 +519,12 @@ public class PurpurWorldConfig { +@@ -505,10 +518,12 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -438,7 +438,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public int waterInfiniteRequiredSources = 2; -@@ -743,6 +758,7 @@ public class PurpurWorldConfig { +@@ -742,6 +757,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -446,7 +446,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -755,6 +771,7 @@ public class PurpurWorldConfig { +@@ -754,6 +770,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean dolphinRidable = false; -@@ -849,6 +866,7 @@ public class PurpurWorldConfig { +@@ -848,6 +865,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -462,7 +462,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -865,6 +883,7 @@ public class PurpurWorldConfig { +@@ -864,6 +882,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean endermanRidable = false; -@@ -873,6 +892,7 @@ public class PurpurWorldConfig { +@@ -872,6 +891,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -478,7 +478,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -885,6 +905,7 @@ public class PurpurWorldConfig { +@@ -884,6 +904,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean endermiteRidable = false; -@@ -907,6 +928,7 @@ public class PurpurWorldConfig { +@@ -906,6 +927,7 @@ public class PurpurWorldConfig { public boolean evokerRidableInWater = true; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; @@ -494,7 +494,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -917,6 +939,7 @@ public class PurpurWorldConfig { +@@ -916,6 +938,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -502,7 +502,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean foxRidable = false; -@@ -925,6 +948,7 @@ public class PurpurWorldConfig { +@@ -924,6 +947,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -510,7 +510,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -937,6 +961,7 @@ public class PurpurWorldConfig { +@@ -936,6 +960,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean frogRidable = false; -@@ -1384,6 +1409,7 @@ public class PurpurWorldConfig { +@@ -1383,6 +1408,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = true; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; @@ -526,7 +526,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1394,6 +1420,7 @@ public class PurpurWorldConfig { +@@ -1393,6 +1419,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -534,7 +534,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean piglinBruteRidable = false; -@@ -1416,6 +1443,7 @@ public class PurpurWorldConfig { +@@ -1415,6 +1442,7 @@ public class PurpurWorldConfig { public boolean pillagerRidableInWater = true; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; @@ -542,7 +542,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1426,6 +1454,7 @@ public class PurpurWorldConfig { +@@ -1425,6 +1453,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -550,7 +550,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean polarBearRidable = false; -@@ -1472,6 +1501,7 @@ public class PurpurWorldConfig { +@@ -1471,6 +1500,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -558,7 +558,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1485,12 +1515,14 @@ public class PurpurWorldConfig { +@@ -1484,12 +1514,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1501,6 +1533,7 @@ public class PurpurWorldConfig { +@@ -1500,6 +1532,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -581,7 +581,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean salmonRidable = false; -@@ -1522,6 +1555,7 @@ public class PurpurWorldConfig { +@@ -1521,6 +1554,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -589,7 +589,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1533,6 +1567,7 @@ public class PurpurWorldConfig { +@@ -1532,6 +1566,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean shulkerRidable = false; -@@ -1555,6 +1590,7 @@ public class PurpurWorldConfig { +@@ -1554,6 +1589,7 @@ public class PurpurWorldConfig { public boolean silverfishRidableInWater = true; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; @@ -605,7 +605,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1565,6 +1601,7 @@ public class PurpurWorldConfig { +@@ -1564,6 +1600,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -613,7 +613,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean skeletonRidable = false; -@@ -1641,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1640,6 +1677,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -621,7 +621,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1658,6 +1696,7 @@ public class PurpurWorldConfig { +@@ -1657,6 +1695,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean snifferRidable = false; -@@ -1844,6 +1883,7 @@ public class PurpurWorldConfig { +@@ -1843,6 +1882,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1860,6 +1900,7 @@ public class PurpurWorldConfig { +@@ -1859,6 +1899,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean vindicatorRidable = false; -@@ -1932,6 +1973,7 @@ public class PurpurWorldConfig { +@@ -1931,6 +1972,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1949,6 +1991,7 @@ public class PurpurWorldConfig { +@@ -1948,6 +1990,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 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 } public boolean witherSkeletonRidable = false; -@@ -2020,6 +2063,7 @@ public class PurpurWorldConfig { +@@ -2019,6 +2062,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index 76a7444b120d377c4329a900bf6e692ecf20dfe0..8ce247a83c417b42670a045be00f68f5 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2035,6 +2079,7 @@ public class PurpurWorldConfig { +@@ -2034,6 +2078,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 bbd865868..7cfad67b4 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 @@ -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 8ce247a83c417b42670a045be00f68f501331245..d742c26c4e7b0f4c7868220d524165a3589d18b3 100644 +index 63c24ce12c9b564404aaaff7e185885b69695aa7..db63b9f52f98bc893d187335e4b53368709fb495 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 { +@@ -119,6 +119,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index 8ce247a83c417b42670a045be00f68f501331245..d742c26c4e7b0f4c7868220d524165a3 public boolean persistentDroppableEntityDisplayNames = true; public boolean projectilesBypassMobGriefing = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -136,6 +137,7 @@ public class PurpurWorldConfig { +@@ -135,6 +136,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 c8905ed81..a20ae1ece 100644 --- a/patches/server/0126-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0126-Add-EntityTeleportHinderedEvent.patch @@ -104,10 +104,10 @@ index 5e5797761735ce24a8dd2cb934b385756dbcb32d..9596e95da0866d7372da53f069cf561f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d742c26c4e7b0f4c7868220d524165a3589d18b3..2eb890cc5de4be9da69940ecd9974c157a6c8cd3 100644 +index db63b9f52f98bc893d187335e4b53368709fb495..b32d2e03de557521af596cc8e7ea05c3d00c1ee6 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 { +@@ -118,6 +118,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -115,7 +115,7 @@ index d742c26c4e7b0f4c7868220d524165a3589d18b3..2eb890cc5de4be9da69940ecd9974c15 public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; -@@ -136,6 +137,7 @@ public class PurpurWorldConfig { +@@ -135,6 +136,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 258885d74..3937cef5c 100644 --- a/patches/server/0127-Farmland-trampling-changes.patch +++ b/patches/server/0127-Farmland-trampling-changes.patch @@ -37,10 +37,10 @@ index 090d232af0183c9c9ffeb4e75125514d827648f2..1064a13f37b991e60213b052e252a183 if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2eb890cc5de4be9da69940ecd9974c157a6c8cd3..c4faf116a0a99f817998ad3b305c95dd618a895a 100644 +index b32d2e03de557521af596cc8e7ea05c3d00c1ee6..71d7ce7154d10f4fba78114583f560492492f2ae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -463,10 +463,16 @@ public class PurpurWorldConfig { +@@ -462,10 +462,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 17b12c643..815dac2ad 100644 --- a/patches/server/0128-Movement-options-for-armor-stands.patch +++ b/patches/server/0128-Movement-options-for-armor-stands.patch @@ -66,10 +66,10 @@ index 9eb196ee4061bb4c5713f33e8b16d91ec52711cd..ffb3ae1d36dda5f521cf3b292d819cb3 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c4faf116a0a99f817998ad3b305c95dd618a895a..b88ae6e8f6d2c8d647bce63183a7645a220906e8 100644 +index 71d7ce7154d10f4fba78114583f560492492f2ae..ab65b591d900e5e0681c37647f2c1c8fb56b6429 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -101,10 +101,16 @@ public class PurpurWorldConfig { +@@ -100,10 +100,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 0e3a3686b..c7a172886 100644 --- a/patches/server/0129-Fix-stuck-in-portals.patch +++ b/patches/server/0129-Fix-stuck-in-portals.patch @@ -37,10 +37,10 @@ index 5aaf8ffac3695f090b739d3f05847a37b58140b5..3f4b14ebbab07864b3fe00ecaf3094ee this.isInsidePortal = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b88ae6e8f6d2c8d647bce63183a7645a220906e8..35e12751aec9006da16ca69a60c2b82cc40aced6 100644 +index ab65b591d900e5e0681c37647f2c1c8fb56b6429..e3d32488340fe82a5f005ce7818bb610fa7ad66e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -337,6 +337,7 @@ public class PurpurWorldConfig { +@@ -336,6 +336,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index b88ae6e8f6d2c8d647bce63183a7645a220906e8..35e12751aec9006da16ca69a60c2b82c private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -354,6 +355,7 @@ public class PurpurWorldConfig { +@@ -353,6 +354,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 8bc113796..1923d7126 100644 --- a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch @@ -411,7 +411,7 @@ index 89627025c0b5464900a5ea818c7aaf5d676f7a5f..0ab3e4a854fd1c5369fc734981d16fa6 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 5362778888890e43bcd4f6f8d68fcfbce22db966..755d8907c1bb86f495588e0bef9e4aeade3af826 100644 +index acf44bf3d22d7b2ac7a02b3167cf577403942908..6aaf20501558f1710be0adca9c14441448698541 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -125,6 +125,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1243,6 +1304,7 @@ public class PurpurWorldConfig { +@@ -1242,6 +1303,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean mooshroomRidable = false; -@@ -1250,6 +1312,7 @@ public class PurpurWorldConfig { +@@ -1249,6 +1311,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1261,6 +1324,7 @@ public class PurpurWorldConfig { +@@ -1260,6 +1323,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean muleRidableInWater = false; -@@ -1271,6 +1335,7 @@ public class PurpurWorldConfig { +@@ -1270,6 +1334,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1287,6 +1352,7 @@ public class PurpurWorldConfig { +@@ -1286,6 +1351,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean ocelotRidable = false; -@@ -1294,6 +1360,7 @@ public class PurpurWorldConfig { +@@ -1293,6 +1359,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1305,6 +1372,7 @@ public class PurpurWorldConfig { +@@ -1304,6 +1371,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean pandaRidable = false; -@@ -1312,6 +1380,7 @@ public class PurpurWorldConfig { +@@ -1311,6 +1379,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1323,6 +1392,7 @@ public class PurpurWorldConfig { +@@ -1322,6 +1391,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean parrotRidable = false; -@@ -1330,6 +1400,7 @@ public class PurpurWorldConfig { +@@ -1329,6 +1399,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1341,6 +1412,7 @@ public class PurpurWorldConfig { +@@ -1340,6 +1411,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean phantomRidable = false; -@@ -1367,6 +1439,7 @@ public class PurpurWorldConfig { +@@ -1366,6 +1438,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1401,6 +1474,7 @@ public class PurpurWorldConfig { +@@ -1400,6 +1473,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean pigRidable = false; -@@ -1409,6 +1483,7 @@ public class PurpurWorldConfig { +@@ -1408,6 +1482,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1421,6 +1496,7 @@ public class PurpurWorldConfig { +@@ -1420,6 +1495,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean piglinRidable = false; -@@ -1428,6 +1504,7 @@ public class PurpurWorldConfig { +@@ -1427,6 +1503,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1439,12 +1516,14 @@ public class PurpurWorldConfig { +@@ -1438,12 +1515,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1455,6 +1534,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1533,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean pillagerRidable = false; -@@ -1462,6 +1542,7 @@ public class PurpurWorldConfig { +@@ -1461,6 +1541,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1473,6 +1554,7 @@ public class PurpurWorldConfig { +@@ -1472,6 +1553,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean polarBearRidable = false; -@@ -1482,6 +1564,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1563,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1496,11 +1579,13 @@ public class PurpurWorldConfig { +@@ -1495,11 +1578,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1510,6 +1595,7 @@ public class PurpurWorldConfig { +@@ -1509,6 +1594,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean rabbitRidable = false; -@@ -1520,6 +1606,7 @@ public class PurpurWorldConfig { +@@ -1519,6 +1605,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1534,6 +1621,7 @@ public class PurpurWorldConfig { +@@ -1533,6 +1620,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean ravagerRidable = false; -@@ -1541,6 +1629,7 @@ public class PurpurWorldConfig { +@@ -1540,6 +1628,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1552,11 +1641,13 @@ public class PurpurWorldConfig { +@@ -1551,11 +1640,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1566,6 +1657,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1656,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean sheepRidable = false; -@@ -1574,6 +1666,7 @@ public class PurpurWorldConfig { +@@ -1573,6 +1665,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1586,12 +1679,14 @@ public class PurpurWorldConfig { +@@ -1585,12 +1678,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1602,6 +1697,7 @@ public class PurpurWorldConfig { +@@ -1601,6 +1696,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean silverfishRidable = false; -@@ -1609,6 +1705,7 @@ public class PurpurWorldConfig { +@@ -1608,6 +1704,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1620,12 +1717,14 @@ public class PurpurWorldConfig { +@@ -1619,12 +1716,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1636,6 +1735,7 @@ public class PurpurWorldConfig { +@@ -1635,6 +1734,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean skeletonHorseRidableInWater = true; -@@ -1646,6 +1746,7 @@ public class PurpurWorldConfig { +@@ -1645,6 +1745,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1661,6 +1762,7 @@ public class PurpurWorldConfig { +@@ -1660,6 +1761,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean slimeRidable = false; -@@ -1670,6 +1772,7 @@ public class PurpurWorldConfig { +@@ -1669,6 +1771,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1683,6 +1786,7 @@ public class PurpurWorldConfig { +@@ -1682,6 +1785,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean snowGolemRidable = false; -@@ -1697,6 +1801,7 @@ public class PurpurWorldConfig { +@@ -1696,6 +1800,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1715,6 +1820,7 @@ public class PurpurWorldConfig { +@@ -1714,6 +1819,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean snifferRidable = false; -@@ -1736,6 +1842,7 @@ public class PurpurWorldConfig { +@@ -1735,6 +1841,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1748,12 +1855,14 @@ public class PurpurWorldConfig { +@@ -1747,12 +1854,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1764,12 +1873,14 @@ public class PurpurWorldConfig { +@@ -1763,12 +1872,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1780,6 +1891,7 @@ public class PurpurWorldConfig { +@@ -1779,6 +1890,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean striderRidable = false; -@@ -1788,6 +1900,7 @@ public class PurpurWorldConfig { +@@ -1787,6 +1899,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1800,6 +1913,7 @@ public class PurpurWorldConfig { +@@ -1799,6 +1912,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean tadpoleRidable = false; -@@ -1821,6 +1935,7 @@ public class PurpurWorldConfig { +@@ -1820,6 +1934,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1839,11 +1954,13 @@ public class PurpurWorldConfig { +@@ -1838,11 +1953,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1853,6 +1970,7 @@ public class PurpurWorldConfig { +@@ -1852,6 +1969,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean turtleRidable = false; -@@ -1860,6 +1978,7 @@ public class PurpurWorldConfig { +@@ -1859,6 +1977,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1871,6 +1990,7 @@ public class PurpurWorldConfig { +@@ -1870,6 +1989,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean vexRidable = false; -@@ -1878,6 +1998,7 @@ public class PurpurWorldConfig { +@@ -1877,6 +1997,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1889,6 +2010,7 @@ public class PurpurWorldConfig { +@@ -1888,6 +2009,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean villagerRidable = false; -@@ -1902,6 +2024,7 @@ public class PurpurWorldConfig { +@@ -1901,6 +2023,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1919,6 +2042,7 @@ public class PurpurWorldConfig { +@@ -1918,6 +2041,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean vindicatorRidable = false; -@@ -1926,6 +2050,7 @@ public class PurpurWorldConfig { +@@ -1925,6 +2049,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1937,6 +2062,7 @@ public class PurpurWorldConfig { +@@ -1936,6 +2061,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean wanderingTraderRidable = false; -@@ -1945,6 +2071,7 @@ public class PurpurWorldConfig { +@@ -1944,6 +2070,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1957,6 +2084,7 @@ public class PurpurWorldConfig { +@@ -1956,6 +2083,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean wardenRidable = false; -@@ -1972,6 +2100,7 @@ public class PurpurWorldConfig { +@@ -1971,6 +2099,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = true; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1982,6 +2111,7 @@ public class PurpurWorldConfig { +@@ -1981,6 +2110,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean witherRidable = false; -@@ -1992,6 +2122,7 @@ public class PurpurWorldConfig { +@@ -1991,6 +2121,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2010,12 +2141,14 @@ public class PurpurWorldConfig { +@@ -2009,12 +2140,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2026,6 +2159,7 @@ public class PurpurWorldConfig { +@@ -2025,6 +2158,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean wolfRidable = false; -@@ -2036,6 +2170,7 @@ public class PurpurWorldConfig { +@@ -2035,6 +2169,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2054,12 +2189,14 @@ public class PurpurWorldConfig { +@@ -2053,12 +2188,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2070,6 +2207,7 @@ public class PurpurWorldConfig { +@@ -2069,6 +2206,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean zombieRidable = false; -@@ -2082,6 +2220,7 @@ public class PurpurWorldConfig { +@@ -2081,6 +2219,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2098,6 +2237,7 @@ public class PurpurWorldConfig { +@@ -2097,6 +2236,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean zombieHorseRidableInWater = false; -@@ -2109,6 +2249,7 @@ public class PurpurWorldConfig { +@@ -2108,6 +2248,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2125,6 +2266,7 @@ public class PurpurWorldConfig { +@@ -2124,6 +2265,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean zombieVillagerRidable = false; -@@ -2135,6 +2277,7 @@ public class PurpurWorldConfig { +@@ -2134,6 +2276,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2149,6 +2292,7 @@ public class PurpurWorldConfig { +@@ -2148,6 +2291,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 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 } public boolean zombifiedPiglinRidable = false; -@@ -2160,6 +2304,7 @@ public class PurpurWorldConfig { +@@ -2159,6 +2303,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index 35e12751aec9006da16ca69a60c2b82cc40aced6..2ae3a4c36466374855c77ef1255f5761 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2175,5 +2320,6 @@ public class PurpurWorldConfig { +@@ -2174,5 +2319,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 152c7d84e..3dca14b59 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 0ab3e4a854fd1c5369fc734981d16fa6b844807f..b2902e01ff2e9add8258bfd0b32d0002 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 2ae3a4c36466374855c77ef1255f5761b4736197..310e902718f7130637774fe6059e57302e7a4adc 100644 +index cc2a4e764e49106c1d7d9bfe9536140422f75df3..7922c9f96c327dec2394d2432362c26600531a52 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 { +@@ -118,6 +118,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index 2ae3a4c36466374855c77ef1255f5761b4736197..310e902718f7130637774fe6059e5730 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = false; public boolean disableDropsOnCrammingDeath = false; -@@ -137,6 +138,7 @@ public class PurpurWorldConfig { +@@ -136,6 +137,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 fa9b61346..de1cc782c 100644 --- a/patches/server/0132-End-crystal-explosion-options.patch +++ b/patches/server/0132-End-crystal-explosion-options.patch @@ -54,10 +54,10 @@ index e73446de9a58643609fedcbd0a503d95e5ce8271..ad0bf89f7aa3c71b683f8ade930a7b91 this.onDestroyedBy(source); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 310e902718f7130637774fe6059e57302e7a4adc..5a3a24dc9fa017a27b7cc1adb23b457b3b26e0fd 100644 +index 7922c9f96c327dec2394d2432362c26600531a52..d8db1521d72ef75eec527a3948a2c0c47bb054fb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -470,6 +470,43 @@ public class PurpurWorldConfig { +@@ -469,6 +469,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 2b9f067a8..a98a2e59d 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 @@ -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 5a3a24dc9fa017a27b7cc1adb23b457b3b26e0fd..9aab03a9fcdb4c97b623b2dd0cf960ffb4225e46 100644 +index d8db1521d72ef75eec527a3948a2c0c47bb054fb..16597dab08d121cabd68e4b5cca94d1cbde5d438 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -953,6 +953,7 @@ public class PurpurWorldConfig { +@@ -952,6 +952,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index 5a3a24dc9fa017a27b7cc1adb23b457b3b26e0fd..9aab03a9fcdb4c97b623b2dd0cf960ff private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -971,6 +972,7 @@ public class PurpurWorldConfig { +@@ -970,6 +971,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 5a3a24dc9fa017a27b7cc1adb23b457b3b26e0fd..9aab03a9fcdb4c97b623b2dd0cf960ff } public boolean endermanRidable = false; -@@ -2162,6 +2164,7 @@ public class PurpurWorldConfig { +@@ -2161,6 +2163,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 5a3a24dc9fa017a27b7cc1adb23b457b3b26e0fd..9aab03a9fcdb4c97b623b2dd0cf960ff private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2181,6 +2184,7 @@ public class PurpurWorldConfig { +@@ -2180,6 +2183,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 fb3a11bf1..f4de34d75 100644 --- a/patches/server/0134-Dont-run-with-scissors.patch +++ b/patches/server/0134-Dont-run-with-scissors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6d192a45f73c8a4dc2cd5f76bb081ae700dc188e..872f1ccc1b1253127ee37a8637de8ed3a95d43f1 100644 +index a7b8440797fa36ab35a3d49ea2c99128d2f139a0..190d87f499d530036448f9bce3cf10d5d32e4955 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1698,6 +1698,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -62,10 +62,10 @@ index 70db296b80b98b378917f68037420ae150e14adb..3fc967279daaf6eb2b2d80fcad57b5b6 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 9aab03a9fcdb4c97b623b2dd0cf960ffb4225e46..a74a923f8b446d7e6c201650c4831216dc3f0b8b 100644 +index 16597dab08d121cabd68e4b5cca94d1cbde5d438..8ec0a1f82d2dff4860e79b5ff9ecd082e3115677 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -199,6 +199,10 @@ public class PurpurWorldConfig { +@@ -198,6 +198,10 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -76,7 +76,7 @@ index 9aab03a9fcdb4c97b623b2dd0cf960ffb4225e46..a74a923f8b446d7e6c201650c4831216 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -236,6 +240,10 @@ public class PurpurWorldConfig { +@@ -235,6 +239,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 17d3dbf59..e045f54da 100644 --- a/patches/server/0135-One-Punch-Man.patch +++ b/patches/server/0135-One-Punch-Man.patch @@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5e97951e2645bd3225b64cf8f21ba8d6ba7e68d7..ad73979034b726979f0c032924e248bfb2ff09ef 100644 +index 1b4b1bd79fa4aa9f1dcd4e2833c3897952e7d0de..fb751c53bd818868cc050bfc18053d8a2d850c83 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2303,6 +2303,20 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -30,10 +30,10 @@ index 5e97951e2645bd3225b64cf8f21ba8d6ba7e68d7..ad73979034b726979f0c032924e248bf 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 a74a923f8b446d7e6c201650c4831216dc3f0b8b..446f19dcf8d2acac442051f024b9727cc85531cc 100644 +index 8ec0a1f82d2dff4860e79b5ff9ecd082e3115677..10c903c09221348be3682fb6472a7b6365d3753c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -348,6 +348,7 @@ public class PurpurWorldConfig { +@@ -347,6 +347,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index a74a923f8b446d7e6c201650c4831216dc3f0b8b..446f19dcf8d2acac442051f024b9727c private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -366,6 +367,7 @@ public class PurpurWorldConfig { +@@ -365,6 +366,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 4cf915e2c..c3aa5691e 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 446f19dcf8d2acac442051f024b9727cc85531cc..1c81cd77081fb5b055ef64d78760f3325da79b7c 100644 +index 10c903c09221348be3682fb6472a7b6365d3753c..6a3343d5592b6bfabcff07de8f39f03a6ee3c651 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -203,6 +203,10 @@ public class PurpurWorldConfig { +@@ -202,6 +202,10 @@ public class PurpurWorldConfig { public boolean ignoreScissorsInWater = false; public boolean ignoreScissorsInLava = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index 446f19dcf8d2acac442051f024b9727cc85531cc..1c81cd77081fb5b055ef64d78760f332 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -244,6 +248,10 @@ public class PurpurWorldConfig { +@@ -243,6 +247,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 1ca2beda2..8fb322b12 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 @@ -18,10 +18,10 @@ index 81bfdafb84c543938375a1a90dab49a8452f78d8..2bff2de19769a20a68373abe14ed4524 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1c81cd77081fb5b055ef64d78760f3325da79b7c..890ee7eae3b2de48c285c1683ddd9d2dcd8805aa 100644 +index 6a3343d5592b6bfabcff07de8f39f03a6ee3c651..18ded931a18138ae8429adc81d897dc01b4c20a5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -357,6 +357,7 @@ public class PurpurWorldConfig { +@@ -356,6 +356,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index 1c81cd77081fb5b055ef64d78760f3325da79b7c..890ee7eae3b2de48c285c1683ddd9d2d private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -376,6 +377,7 @@ public class PurpurWorldConfig { +@@ -375,6 +376,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 af4d36f48..957fae36f 100644 --- a/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -18,10 +18,10 @@ index 1f95363385c5ae9ce06495db5bebfec8346a534c..38708753709de108a6ea841ab8545f2d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 890ee7eae3b2de48c285c1683ddd9d2dcd8805aa..13e119a1288396ee967f3fcbadc43ae8f76f2226 100644 +index 18ded931a18138ae8429adc81d897dc01b4c20a5..17ef574eaa670dd5d1729d6535e4a74b8d3c7fdd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1003,6 +1003,8 @@ public class PurpurWorldConfig { +@@ -1002,6 +1002,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 890ee7eae3b2de48c285c1683ddd9d2dcd8805aa..13e119a1288396ee967f3fcbadc43ae8 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1012,11 +1014,17 @@ public class PurpurWorldConfig { +@@ -1011,11 +1013,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 9ad6a6a2f..d422b5a2b 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 @@ -20,10 +20,10 @@ index 38708753709de108a6ea841ab8545f2d61d2b621..2d09b2c15833d1a724df15894bee1882 } 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 13e119a1288396ee967f3fcbadc43ae8f76f2226..5c4c30d8ccf491fe394cb374bdebeeeaad04fdc4 100644 +index 17ef574eaa670dd5d1729d6535e4a74b8d3c7fdd..6c285c261456e5a7dffa54be905ae13401945b9f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1005,6 +1005,8 @@ public class PurpurWorldConfig { +@@ -1004,6 +1004,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 13e119a1288396ee967f3fcbadc43ae8f76f2226..5c4c30d8ccf491fe394cb374bdebeeea private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1025,6 +1027,8 @@ public class PurpurWorldConfig { +@@ -1024,6 +1026,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 4747a9800..cdddee8cf 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 5c4c30d8ccf491fe394cb374bdebeeeaad04fdc4..00a34d17e187b025d4c6276e00a205a717b09e29 100644 +index 6c285c261456e5a7dffa54be905ae13401945b9f..e1e9eb17525c02ed0171cb03477248b613e4ec68 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 { +@@ -130,6 +130,7 @@ public class PurpurWorldConfig { public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index 5c4c30d8ccf491fe394cb374bdebeeeaad04fdc4..00a34d17e187b025d4c6276e00a205a7 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -150,6 +151,7 @@ public class PurpurWorldConfig { +@@ -149,6 +150,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 2c82409c9..1ed90ce64 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 2c5f4ead1141269a029176140c4df848c75b9620..26ed1eef3b38e643dfc6738e4b7880c9 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 00a34d17e187b025d4c6276e00a205a717b09e29..3172141c323f3f15de724cd85babc07d33397eef 100644 +index e1e9eb17525c02ed0171cb03477248b613e4ec68..2bc71ce8a6a6525934f1885917e8561d94d752c5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1337,6 +1337,7 @@ public class PurpurWorldConfig { +@@ -1336,6 +1336,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 00a34d17e187b025d4c6276e00a205a717b09e29..3172141c323f3f15de724cd85babc07d private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1356,6 +1357,7 @@ public class PurpurWorldConfig { +@@ -1355,6 +1356,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 36aabfc55..4d98c039c 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 @@ -50,10 +50,10 @@ index 6e80ea775596c5804b674234b7d59f4c941a49dc..ed5b0ec4c9616691c383067f8d949e63 private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3172141c323f3f15de724cd85babc07d33397eef..89c2003d7b420369d554fe48c6d3296bb108b4dc 100644 +index 2bc71ce8a6a6525934f1885917e8561d94d752c5..b240edfb3c059d4e93a4d6c58dc124c8523aac6d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -857,6 +857,7 @@ public class PurpurWorldConfig { +@@ -856,6 +856,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 3172141c323f3f15de724cd85babc07d33397eef..89c2003d7b420369d554fe48c6d3296b private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -871,6 +872,7 @@ public class PurpurWorldConfig { +@@ -870,6 +871,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 5a08a83af..999875ae5 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 cf7007cabe4ba7505f2728e79e4c56e2d1bc878b..c431ec19212821ba7722c073e5ee6ad7 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 89c2003d7b420369d554fe48c6d3296bb108b4dc..f5a26ea78419e14ea4a6af08a14e677181763784 100644 +index b240edfb3c059d4e93a4d6c58dc124c8523aac6d..be3d92b8b5ad6e8b6dc54cf4cdfbae0da4c6cfdb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1709,6 +1709,7 @@ public class PurpurWorldConfig { +@@ -1708,6 +1708,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 89c2003d7b420369d554fe48c6d3296bb108b4dc..f5a26ea78419e14ea4a6af08a14e6771 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1721,6 +1722,23 @@ public class PurpurWorldConfig { +@@ -1720,6 +1721,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 8eb670b43..4222b9847 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 87153b5576fed05103183a9860d804c2c8cfbe1c..e8ee608aa5e352d741694f50cdf77f06 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 f5a26ea78419e14ea4a6af08a14e677181763784..62035c2b1b4a41296405a5b252469dbac0bf2d17 100644 +index be3d92b8b5ad6e8b6dc54cf4cdfbae0da4c6cfdb..640db08109dcd0acd1713c360ac0bf4de27cdce8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -485,6 +485,11 @@ public class PurpurWorldConfig { +@@ -484,6 +484,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 3a180543a..33026ff2a 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 62035c2b1b4a41296405a5b252469dbac0bf2d17..3fb96a14928d24920999336a40920f0a4db65e9b 100644 +index 640db08109dcd0acd1713c360ac0bf4de27cdce8..2991d62374c1db54a4fa4d97b993073254c53074 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -360,6 +360,7 @@ public class PurpurWorldConfig { +@@ -359,6 +359,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 62035c2b1b4a41296405a5b252469dbac0bf2d17..3fb96a14928d24920999336a40920f0a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -380,6 +381,7 @@ public class PurpurWorldConfig { +@@ -379,6 +380,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 6f1e65b1e..ad6013699 100644 --- a/patches/server/0147-Add-config-for-villager-trading.patch +++ b/patches/server/0147-Add-config-for-villager-trading.patch @@ -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 3fb96a14928d24920999336a40920f0a4db65e9b..315144150854861df1d9d0f8dce877dad7d73812 100644 +index 2991d62374c1db54a4fa4d97b993073254c53074..a066066c81811d1eb813ec13173cd58efb2ad9df 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2129,6 +2129,7 @@ public class PurpurWorldConfig { +@@ -2128,6 +2128,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 3fb96a14928d24920999336a40920f0a4db65e9b..315144150854861df1d9d0f8dce877da private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2147,6 +2148,7 @@ public class PurpurWorldConfig { +@@ -2146,6 +2147,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 3fb96a14928d24920999336a40920f0a4db65e9b..315144150854861df1d9d0f8dce877da } public boolean vindicatorRidable = false; -@@ -2176,6 +2178,7 @@ public class PurpurWorldConfig { +@@ -2175,6 +2177,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 3fb96a14928d24920999336a40920f0a4db65e9b..315144150854861df1d9d0f8dce877da private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2189,6 +2192,7 @@ public class PurpurWorldConfig { +@@ -2188,6 +2191,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 7e4c9e17c..57c1386a3 100644 --- a/patches/server/0149-Drowning-Settings.patch +++ b/patches/server/0149-Drowning-Settings.patch @@ -40,10 +40,10 @@ index fb751c53bd818868cc050bfc18053d8a2d850c83..2c9fb811d17cbfdcef26721938e8e79e } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 315144150854861df1d9d0f8dce877dad7d73812..168805cdeb57398c906ac1c135e21d70198431ec 100644 +index a066066c81811d1eb813ec13173cd58efb2ad9df..05ed02186a442cd64419507c35073a7ccc380a6c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -166,6 +166,15 @@ public class PurpurWorldConfig { +@@ -165,6 +165,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 ba0523035..097423813 100644 --- a/patches/server/0150-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0150-Break-individual-slabs-when-sneaking.patch @@ -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 168805cdeb57398c906ac1c135e21d70198431ec..b24dbf8c891a048e570966a5743fdf5b9475c074 100644 +index 05ed02186a442cd64419507c35073a7ccc380a6c..6289d9bbf455c22c2260c97974fcda01a3e268b0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -606,6 +606,11 @@ public class PurpurWorldConfig { +@@ -605,6 +605,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 cd1dbb501..f85e89fc8 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 b24dbf8c891a048e570966a5743fdf5b9475c074..cc8d49bbc8167922b0a6e8b776dbb52f52296e2a 100644 +index 6289d9bbf455c22c2260c97974fcda01a3e268b0..6e671aea7364de1406ba039398715465ed9ca9e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -571,6 +571,13 @@ public class PurpurWorldConfig { +@@ -570,6 +570,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 9dc8271af..1f2d4cc72 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 @@ -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 cc8d49bbc8167922b0a6e8b776dbb52f52296e2a..b9afe3409fe69fa16365b02b5856d4bf328192af 100644 +index 6e671aea7364de1406ba039398715465ed9ca9e8..b82cffe7e61cf9b38d62d44e3bd9a173f08de3ff 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -104,6 +104,7 @@ public class PurpurWorldConfig { +@@ -103,6 +103,7 @@ public class PurpurWorldConfig { public boolean armorstandMovement = true; public boolean armorstandWaterMovement = true; public boolean armorstandWaterFence = true; @@ -28,7 +28,7 @@ index cc8d49bbc8167922b0a6e8b776dbb52f52296e2a..b9afe3409fe69fa16365b02b5856d4bf 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); -@@ -111,6 +112,7 @@ public class PurpurWorldConfig { +@@ -110,6 +111,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 355988dfe..a0bfccb6e 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 b9afe3409fe69fa16365b02b5856d4bf328192af..ac05f4a9e1b98c5770fb76c6ad86e5e42676fac7 100644 +index b82cffe7e61cf9b38d62d44e3bd9a173f08de3ff..a89b8de2c5aad1d9b7cade9aa4e15ea1a80444a9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -510,6 +510,16 @@ public class PurpurWorldConfig { +@@ -509,6 +509,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 3ee119cff..6944e6ede 100644 --- a/patches/server/0155-Configurable-sponge-absorption.patch +++ b/patches/server/0155-Configurable-sponge-absorption.patch @@ -21,10 +21,10 @@ index 4bce895268542531598a01a1bccd8ac1ed703b7d..e4e926dc89f843886d0df5da31e00053 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 ac05f4a9e1b98c5770fb76c6ad86e5e42676fac7..fa5d2e7139259331674b63d6587b28728e1c738e 100644 +index a89b8de2c5aad1d9b7cade9aa4e15ea1a80444a9..1bcedb8d45c745e8261b59340decf70976de0d4b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -635,6 +635,13 @@ public class PurpurWorldConfig { +@@ -634,6 +634,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 c439e203b..513260c67 100644 --- a/patches/server/0156-Projectile-offset-config.patch +++ b/patches/server/0156-Projectile-offset-config.patch @@ -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 fa5d2e7139259331674b63d6587b28728e1c738e..37233d0416327cc9ae5ed190de008d2ccbd5a657 100644 +index 1bcedb8d45c745e8261b59340decf70976de0d4b..597c647c637df821c89a32cdb46a12869c4469d6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -428,6 +428,23 @@ public class PurpurWorldConfig { +@@ -427,6 +427,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 c259590a5..d0be226b6 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 37233d0416327cc9ae5ed190de008d2ccbd5a657..8aa812f7dc8853cf9299f6273a1b57d6047a849f 100644 +index 597c647c637df821c89a32cdb46a12869c4469d6..dac4a7c69b322bd1b4e45811cd4f16bbb20877fe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -621,6 +621,11 @@ public class PurpurWorldConfig { +@@ -620,6 +620,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 6ffe0041f..7dfee1afa 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 8aa812f7dc8853cf9299f6273a1b57d6047a849f..2e1fbe704a470b65776979998943f08c54b17d55 100644 +index dac4a7c69b322bd1b4e45811cd4f16bbb20877fe..0e5b40d5880e80d59c9c66f6a3a84bcfd9803b2f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1653,6 +1653,7 @@ public class PurpurWorldConfig { +@@ -1652,6 +1652,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 8aa812f7dc8853cf9299f6273a1b57d6047a849f..2e1fbe704a470b65776979998943f08c private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1665,6 +1666,7 @@ public class PurpurWorldConfig { +@@ -1664,6 +1665,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 bf4015df7..a8482d498 100644 --- a/patches/server/0160-Config-for-wither-explosion-radius.patch +++ b/patches/server/0160-Config-for-wither-explosion-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for wither explosion radius diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java -index 80b86d5dd68c3d288a1a61ea8aa1cba9d899aa1c..7847915fb90e45e44ba514957193fa7b747e0c76 100644 +index cead7873795c5277634db3c5ee29a125e48bbb90..e031a2268a862c5d84b2c59305d9d39881bdb92e 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java @@ -95,7 +95,7 @@ public class WitherSkull extends AbstractHurtingProjectile { @@ -18,10 +18,10 @@ index 80b86d5dd68c3d288a1a61ea8aa1cba9d899aa1c..7847915fb90e45e44ba514957193fa7b if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2e1fbe704a470b65776979998943f08c54b17d55..7f23e61bc86b64a312b8c47e21a91371a565ceda 100644 +index 0e5b40d5880e80d59c9c66f6a3a84bcfd9803b2f..c8596997a2d0ef53ca028373da8ddad321fb44c5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2296,6 +2296,7 @@ public class PurpurWorldConfig { +@@ -2295,6 +2295,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 2e1fbe704a470b65776979998943f08c54b17d55..7f23e61bc86b64a312b8c47e21a91371 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2316,6 +2317,7 @@ public class PurpurWorldConfig { +@@ -2315,6 +2316,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 index b1c629cef..c68752f6d 100644 --- 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 @@ -18,10 +18,10 @@ index c7195f2e12bbd6545f7bffcc2b4ba5cc3d48df20..5e730bc9c8ff94b16ac2bf8567dda8ae Runnable afterAction = null; // Paper if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7f23e61bc86b64a312b8c47e21a91371a565ceda..0c81a2bad4041f8d26a45dfef8a855d7ba467f49 100644 +index c8596997a2d0ef53ca028373da8ddad321fb44c5..6c6de8b218bc0ebb183d6a63fc3dee6b777af03a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -450,6 +450,21 @@ public class PurpurWorldConfig { +@@ -449,6 +449,21 @@ public class PurpurWorldConfig { snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); } diff --git a/patches/server/0163-Configurable-piston-push-limit.patch b/patches/server/0163-Configurable-piston-push-limit.patch index 30ec72c58..67c15fd83 100644 --- a/patches/server/0163-Configurable-piston-push-limit.patch +++ b/patches/server/0163-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 0c81a2bad4041f8d26a45dfef8a855d7ba467f49..8bd2f3ea54754906aaeb73503ecf9f313445a13e 100644 +index 6c6de8b218bc0ebb183d6a63fc3dee6b777af03a..3ce13a3bfd5409291102f4f425ae76a24a3a177b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -631,6 +631,11 @@ public class PurpurWorldConfig { +@@ -630,6 +630,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0165-Configurable-mob-blindness.patch b/patches/server/0165-Configurable-mob-blindness.patch index de6a53e29..3f186cf7f 100644 --- a/patches/server/0165-Configurable-mob-blindness.patch +++ b/patches/server/0165-Configurable-mob-blindness.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable mob blindness Ported from https://github.com/raltsmc/mobblindness diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 06f05449cc1fc30c3023c09e2995bf8116ea329b..513f58b00293134fade28a289afde71a69e9f447 100644 +index 2c9fb811d17cbfdcef26721938e8e79ee08fe861..3cfa9cad7d59a6542ef64dcc0f3fbec346ab5b90 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1037,6 +1037,17 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -28,10 +28,10 @@ index 06f05449cc1fc30c3023c09e2995bf8116ea329b..513f58b00293134fade28a289afde71a return d0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8bd2f3ea54754906aaeb73503ecf9f313445a13e..4149d8f762aad98f43600400b6a896c13a80417b 100644 +index 3ce13a3bfd5409291102f4f425ae76a24a3a177b..80bd3c0c83923b16569a057a62b3184a39812a4e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -134,6 +134,7 @@ public class PurpurWorldConfig { +@@ -133,6 +133,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = true; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 8bd2f3ea54754906aaeb73503ecf9f313445a13e..4149d8f762aad98f43600400b6a896c1 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -154,6 +155,7 @@ public class PurpurWorldConfig { +@@ -153,6 +154,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/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch index 0b9c92f5e..ca862678a 100644 --- a/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index ed5b0ec4c9616691c383067f8d949e63cb7c4497..45a9496d9d6109b5ad844113dfd43177 if (!event.isCancelled()) { this.dead = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4149d8f762aad98f43600400b6a896c13a80417b..56b5405f88a4454f93a58940721886711af0a990 100644 +index 80bd3c0c83923b16569a057a62b3184a39812a4e..ec1f76879ec8cee7d3b968a716ebb467a189e1a4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -949,6 +949,7 @@ public class PurpurWorldConfig { +@@ -948,6 +948,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 4149d8f762aad98f43600400b6a896c13a80417b..56b5405f88a4454f93a5894072188671 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -964,6 +965,7 @@ public class PurpurWorldConfig { +@@ -963,6 +964,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/0168-Iron-golem-calm-anger-options.patch index e294125ed..85b50e143 100644 --- a/patches/server/0168-Iron-golem-calm-anger-options.patch +++ b/patches/server/0168-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 56b5405f88a4454f93a58940721886711af0a990..f852d5082467472202775687005826a5a5cb0b6e 100644 +index ec1f76879ec8cee7d3b968a716ebb467a189e1a4..7c32b7ed0bf57a2bc140cc40333627b3c670284e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1407,6 +1407,8 @@ public class PurpurWorldConfig { +@@ -1406,6 +1406,8 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -37,7 +37,7 @@ index 56b5405f88a4454f93a58940721886711af0a990..f852d5082467472202775687005826a5 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1419,6 +1421,8 @@ public class PurpurWorldConfig { +@@ -1418,6 +1420,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/0169-Breedable-parrots.patch index 84e6aabfe..ab9d0328c 100644 --- a/patches/server/0169-Breedable-parrots.patch +++ b/patches/server/0169-Breedable-parrots.patch @@ -50,10 +50,10 @@ index 08935a1f2c4a3f43483719686e5baab5063cdfce..bfae3b94ab035e1c27c988cfcc3b449c @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f852d5082467472202775687005826a5a5cb0b6e..7aeec14af9993e123d35a53ffa41750519c20027 100644 +index 7c32b7ed0bf57a2bc140cc40333627b3c670284e..febd60aea31bbdf10b4e3e66a066f47b22da8a09 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1577,6 +1577,7 @@ public class PurpurWorldConfig { +@@ -1576,6 +1576,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index f852d5082467472202775687005826a5a5cb0b6e..7aeec14af9993e123d35a53ffa417505 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1589,6 +1590,7 @@ public class PurpurWorldConfig { +@@ -1588,6 +1589,7 @@ public class PurpurWorldConfig { } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); diff --git a/patches/server/0170-Configurable-powered-rail-boost-modifier.patch b/patches/server/0170-Configurable-powered-rail-boost-modifier.patch index 70e1fece6..0283c1ee4 100644 --- a/patches/server/0170-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0170-Configurable-powered-rail-boost-modifier.patch @@ -18,10 +18,10 @@ index 5cdcc5792f19766d2d55d16859f8e0f68bd6479b..b99b94c6ec4767aba16d82eaca8b2761 Vec3 vec3d5 = this.getDeltaMovement(); double d21 = vec3d5.x; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7aeec14af9993e123d35a53ffa41750519c20027..692942076f5b9c90515a6b98d94cf6bba5d41458 100644 +index febd60aea31bbdf10b4e3e66a066f47b22da8a09..73a53c86b23fe12eeb3c66523970ea7b5ab296e0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -277,6 +277,7 @@ public class PurpurWorldConfig { +@@ -276,6 +276,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index 7aeec14af9993e123d35a53ffa41750519c20027..692942076f5b9c90515a6b98d94cf6bb private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -329,6 +330,7 @@ public class PurpurWorldConfig { +@@ -328,6 +329,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/0171-Add-config-change-multiplier-critical-damage-value.patch index 628cedba5..8397e9cbc 100644 --- a/patches/server/0171-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0171-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 692942076f5b9c90515a6b98d94cf6bba5d41458..c5221022d8652d56a1e42a8ccb2ec2f7daedd459 100644 +index 73a53c86b23fe12eeb3c66523970ea7b5ab296e0..49b50086b17b273045e7e7d34badaf01bb26fd94 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -376,6 +376,7 @@ public class PurpurWorldConfig { +@@ -375,6 +375,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index 692942076f5b9c90515a6b98d94cf6bba5d41458..c5221022d8652d56a1e42a8ccb2ec2f7 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -397,6 +398,7 @@ public class PurpurWorldConfig { +@@ -396,6 +397,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/0172-Option-to-disable-dragon-egg-teleporting.patch index 461a2976e..70808a6e5 100644 --- a/patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0172-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 c5221022d8652d56a1e42a8ccb2ec2f7daedd459..527a0163e2415c3f4bf2f61e1b49343b811d4fcb 100644 +index 49b50086b17b273045e7e7d34badaf01bb26fd94..9aac31eae4710df48495860e1e0ed78f13431cfe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -558,6 +558,11 @@ public class PurpurWorldConfig { +@@ -557,6 +557,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch index 7d545d883..9bdc444ac 100644 --- a/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch @@ -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 527a0163e2415c3f4bf2f61e1b49343b811d4fcb..d82f4c439795d8a4683dd5ee3b6ef16bb8783332 100644 +index 9aac31eae4710df48495860e1e0ed78f13431cfe..a1de38e78586dcbefcac40cff362af385643e031 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -678,6 +678,11 @@ public class PurpurWorldConfig { +@@ -677,6 +677,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch index 23a6d15ac..6cca9aa8d 100644 --- a/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0176-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 d82f4c439795d8a4683dd5ee3b6ef16bb8783332..431fb7829722ba447558afe7ab9994b65eca1f50 100644 +index a1de38e78586dcbefcac40cff362af385643e031..3f4631c2107145248a1fff538b1bf8fa9d4483d7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -790,6 +790,8 @@ public class PurpurWorldConfig { +@@ -789,6 +789,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index d82f4c439795d8a4683dd5ee3b6ef16bb8783332..431fb7829722ba447558afe7ab9994b6 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -803,6 +805,8 @@ public class PurpurWorldConfig { +@@ -802,6 +804,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/0178-Config-MobEffect-by-world.patch b/patches/server/0178-Config-MobEffect-by-world.patch index 106ecb8cd..1e1fe03d8 100644 --- a/patches/server/0178-Config-MobEffect-by-world.patch +++ b/patches/server/0178-Config-MobEffect-by-world.patch @@ -40,10 +40,10 @@ index bcce17f884b57e619749351b7b2047f0a5f9be71..878f3da0067f89f47141f41c733bef67 ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 431fb7829722ba447558afe7ab9994b65eca1f50..cc90dc900c469469badd1c5b5f1db7bb32598dbb 100644 +index 3f4631c2107145248a1fff538b1bf8fa9d4483d7..782279ff7a53d185d5de58f35e3328e487808ba2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -333,6 +333,21 @@ public class PurpurWorldConfig { +@@ -332,6 +332,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/0179-Beacon-Activation-Range-Configurable.patch index 33ab8cb18..4bafae74f 100644 --- a/patches/server/0179-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0179-Beacon-Activation-Range-Configurable.patch @@ -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 cc90dc900c469469badd1c5b5f1db7bb32598dbb..00c111bddb01db5cbc8c5e026728d646dca9ad47 100644 +index 782279ff7a53d185d5de58f35e3328e487808ba2..dce7c0132147d80d6ced429895cb671ab91dddfc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -525,6 +525,17 @@ public class PurpurWorldConfig { +@@ -524,6 +524,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/0180-Add-toggle-for-sand-duping-fix.patch index 4366cf60c..48396d93b 100644 --- a/patches/server/0180-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0180-Add-toggle-for-sand-duping-fix.patch @@ -27,10 +27,10 @@ index eff81e846f696349b3bd3d26c02442f157b169f0..bdadc6bb8c0ddcbf4ec1a9d2b4267c9e } // 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 00c111bddb01db5cbc8c5e026728d646dca9ad47..03d86a351b1d2f02b8b7b0a27941ac90937df604 100644 +index dce7c0132147d80d6ced429895cb671ab91dddfc..3a67947071d2c7c88d3d951fea86267e49720185 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -704,6 +704,11 @@ public class PurpurWorldConfig { +@@ -703,6 +703,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch index c68c73157..154df2cb4 100644 --- a/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch @@ -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 03d86a351b1d2f02b8b7b0a27941ac90937df604..2bfbf53677b5d241492b0d969a22d241036867ac 100644 +index 3a67947071d2c7c88d3d951fea86267e49720185..376ea62f65e78b5e69865ce2cf8cb46a6df0a900 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -652,6 +652,11 @@ public class PurpurWorldConfig { +@@ -651,6 +651,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch b/patches/server/0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch index ec71d9c58..806490bb3 100644 --- a/patches/server/0183-Burp-delay-burp-after-eating-food-fills-hunger-bar-c.patch +++ b/patches/server/0183-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 2bfbf53677b5d241492b0d969a22d241036867ac..fd9e016cc185ebcfb4465533b7a721409de7aacc 100644 +index 376ea62f65e78b5e69865ce2cf8cb46a6df0a900..59ed794d07a0be21a53601d7af59bac809142231 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -392,6 +392,8 @@ public class PurpurWorldConfig { +@@ -391,6 +391,8 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -67,7 +67,7 @@ index 2bfbf53677b5d241492b0d969a22d241036867ac..fd9e016cc185ebcfb4465533b7a72140 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -414,6 +416,8 @@ public class PurpurWorldConfig { +@@ -413,6 +415,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/0185-Add-portal-waiting-option-permission-bypass.patch b/patches/server/0185-Add-portal-waiting-option-permission-bypass.patch index d32c8a1f7..d859d2223 100644 --- a/patches/server/0185-Add-portal-waiting-option-permission-bypass.patch +++ b/patches/server/0185-Add-portal-waiting-option-permission-bypass.patch @@ -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 fd9e016cc185ebcfb4465533b7a721409de7aacc..d2e97de0e011715d7326ace3e5f083b180c63dcf 100644 +index 59ed794d07a0be21a53601d7af59bac809142231..e06ac775e1f1cb4d7ff8ae401f9dbe649d7e8aad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -394,6 +394,8 @@ public class PurpurWorldConfig { +@@ -393,6 +393,8 @@ public class PurpurWorldConfig { public double playerCriticalDamageMultiplier = 1.5D; public int playerBurpDelay = 10; public boolean playerBurpWhenFull = false; @@ -50,7 +50,7 @@ index fd9e016cc185ebcfb4465533b7a721409de7aacc..d2e97de0e011715d7326ace3e5f083b1 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -418,6 +420,8 @@ public class PurpurWorldConfig { +@@ -417,6 +419,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/0186-Shulker-spawn-from-bullet-options.patch index 32a26c7d9..3120d9b22 100644 --- a/patches/server/0186-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0186-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 d2e97de0e011715d7326ace3e5f083b180c63dcf..1f89f05884afa650feb948755aaaa3d071769412 100644 +index e06ac775e1f1cb4d7ff8ae401f9dbe649d7e8aad..5b00ed1c706304639a509c19650d08688c7bfb22 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1947,6 +1947,11 @@ public class PurpurWorldConfig { +@@ -1946,6 +1946,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -83,7 +83,7 @@ index d2e97de0e011715d7326ace3e5f083b180c63dcf..1f89f05884afa650feb948755aaaa3d0 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1958,6 +1963,11 @@ public class PurpurWorldConfig { +@@ -1957,6 +1962,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/0187-Eating-glow-berries-adds-glow-effect.patch index 2b0482e4b..2688162c5 100644 --- a/patches/server/0187-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0187-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 1f89f05884afa650feb948755aaaa3d071769412..726fa3439443994525ffd29a398b8ea39b778d75 100644 +index 5b00ed1c706304639a509c19650d08688c7bfb22..67c17238317ee8e83e412ef826c658cd6831ba0e 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 { +@@ -221,6 +221,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index 1f89f05884afa650feb948755aaaa3d071769412..726fa3439443994525ffd29a398b8ea3 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -267,6 +268,7 @@ public class PurpurWorldConfig { +@@ -266,6 +267,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/0188-Option-to-make-drowned-break-doors.patch index ec1f5ec05..b1ea7ad0d 100644 --- a/patches/server/0188-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0188-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 726fa3439443994525ffd29a398b8ea39b778d75..480ca89bab8c858b7a50991e3aed277413b4218b 100644 +index 67c17238317ee8e83e412ef826c658cd6831ba0e..75aeac5b5dc18c91e21b36f0f05a3b9a45d95e7a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1093,6 +1093,7 @@ public class PurpurWorldConfig { +@@ -1092,6 +1092,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index 726fa3439443994525ffd29a398b8ea39b778d75..480ca89bab8c858b7a50991e3aed2774 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1108,6 +1109,7 @@ public class PurpurWorldConfig { +@@ -1107,6 +1108,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/0189-Configurable-hunger-starvation-damage.patch index 3c1d8395b..fa216efec 100644 --- a/patches/server/0189-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0189-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 480ca89bab8c858b7a50991e3aed277413b4218b..0201060229e8576c0b9d37288d6bff626edb34c7 100644 +index 75aeac5b5dc18c91e21b36f0f05a3b9a45d95e7a..bca6e16058f19215b55f8c0668eedd0630dae916 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2604,4 +2604,9 @@ public class PurpurWorldConfig { +@@ -2603,4 +2603,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/0192-Tool-actionable-options.patch b/patches/server/0192-Tool-actionable-options.patch index 37c29311a..f773d8086 100644 --- a/patches/server/0192-Tool-actionable-options.patch +++ b/patches/server/0192-Tool-actionable-options.patch @@ -122,10 +122,10 @@ index 180aec596110309aade13d2080f8824d152b07cb..c4aec1e5135a79837918b692e75a7b55 return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0201060229e8576c0b9d37288d6bff626edb34c7..eea949768342de682fb5fdf5039de098c42ffab1 100644 +index bca6e16058f19215b55f8c0668eedd0630dae916..9e7aa8fedad808823b5718610412d89554be6d24 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -528,6 +528,167 @@ public class PurpurWorldConfig { +@@ -527,6 +527,167 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0196-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0196-option-to-disable-shulker-box-items-from-dropping-co.patch index c739b6e08..9a6e90bb8 100644 --- a/patches/server/0196-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0196-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 eea949768342de682fb5fdf5039de098c42ffab1..b5b9cbfacffd9c7068390196fc5faee7ccdb0da7 100644 +index 9e7aa8fedad808823b5718610412d89554be6d24..8986bbd31b57ce1957344964de838abfecc47f19 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 { +@@ -222,6 +222,7 @@ public class PurpurWorldConfig { public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; @@ -30,7 +30,7 @@ index eea949768342de682fb5fdf5039de098c42ffab1..b5b9cbfacffd9c7068390196fc5faee7 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -269,6 +270,7 @@ public class PurpurWorldConfig { +@@ -268,6 +269,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/0197-Big-dripleaf-tilt-delay.patch index adadbdbe7..503ed5280 100644 --- a/patches/server/0197-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0197-Big-dripleaf-tilt-delay.patch @@ -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 b5b9cbfacffd9c7068390196fc5faee7ccdb0da7..42ffb010eec6d5946f7da99296ac44b5d785aedc 100644 +index 8986bbd31b57ce1957344964de838abfecc47f19..b14c40201d188d062eda0c1e944529ab755ec23c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -730,6 +730,22 @@ public class PurpurWorldConfig { +@@ -729,6 +729,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0198-Player-ridable-in-water-option.patch b/patches/server/0198-Player-ridable-in-water-option.patch index 8509f96b9..2a0c35593 100644 --- a/patches/server/0198-Player-ridable-in-water-option.patch +++ b/patches/server/0198-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 42ffb010eec6d5946f7da99296ac44b5d785aedc..d7ea79fd4b42a1713ded107e8a2bc4d2a2bd96b7 100644 +index b14c40201d188d062eda0c1e944529ab755ec23c..c711bf4777252bfdc1dbdf5bc53e8194855ef841 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -400,6 +400,7 @@ public class PurpurWorldConfig { +@@ -399,6 +399,7 @@ public class PurpurWorldConfig { public boolean playerBurpWhenFull = false; public int playerPortalWaitTime = 80; public int playerCreativePortalWaitTime = 1; @@ -32,7 +32,7 @@ index 42ffb010eec6d5946f7da99296ac44b5d785aedc..d7ea79fd4b42a1713ded107e8a2bc4d2 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -426,6 +427,7 @@ public class PurpurWorldConfig { +@@ -425,6 +426,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/0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index dd3b96521..b4d96d71c 100644 --- a/patches/server/0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0199-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -17,10 +17,10 @@ index 2d09b2c15833d1a724df15894bee18825ecafcee..bf9b9f3de67ff918e0a2288b3582af5e 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 d7ea79fd4b42a1713ded107e8a2bc4d2a2bd96b7..1e0eb1758fbb98cd82f1a9dabbfa9281d83d4396 100644 +index c711bf4777252bfdc1dbdf5bc53e8194855ef841..a72a5b23c201ddabca0b5c3c2bcec226a1b2763d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1351,6 +1351,7 @@ public class PurpurWorldConfig { +@@ -1350,6 +1350,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -28,7 +28,7 @@ index d7ea79fd4b42a1713ded107e8a2bc4d2a2bd96b7..1e0eb1758fbb98cd82f1a9dabbfa9281 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1373,6 +1374,7 @@ public class PurpurWorldConfig { +@@ -1372,6 +1373,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/0200-Add-compass-command.patch index ae2c68040..d7ef2fa9c 100644 --- a/patches/server/0200-Add-compass-command.patch +++ b/patches/server/0200-Add-compass-command.patch @@ -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 1e0eb1758fbb98cd82f1a9dabbfa9281d83d4396..2edb74f618b1b9d5a299ba87bd663fb17495ff03 100644 +index a72a5b23c201ddabca0b5c3c2bcec226a1b2763d..09381007ea956e1351df462f87c7454d0559c25d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -224,6 +224,7 @@ public class PurpurWorldConfig { +@@ -223,6 +223,7 @@ public class PurpurWorldConfig { public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; @@ -100,7 +100,7 @@ index 1e0eb1758fbb98cd82f1a9dabbfa9281d83d4396..2edb74f618b1b9d5a299ba87bd663fb1 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -271,6 +272,7 @@ public class PurpurWorldConfig { +@@ -270,6 +271,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/0201-Toggle-for-kinetic-damage.patch index 7d1584c6b..d731fed75 100644 --- a/patches/server/0201-Toggle-for-kinetic-damage.patch +++ b/patches/server/0201-Toggle-for-kinetic-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for kinetic damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6d7cb3e8f82cc6424db12fa9efbda6f2c7978228..777853b5afc7b170fe6caffa21f55468b4321a1d 100644 +index 65e543bb44d94bcaa4abaa3272fb7f3e9b35fea8..558f56e7e559b5fcb712bdf3515704ad77dfe665 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2900,6 +2900,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -17,10 +17,10 @@ index 6d7cb3e8f82cc6424db12fa9efbda6f2c7978228..777853b5afc7b170fe6caffa21f55468 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2edb74f618b1b9d5a299ba87bd663fb17495ff03..e6a26392252d70d842dfe1c9fb2d72132a1edef5 100644 +index 09381007ea956e1351df462f87c7454d0559c25d..2f7da583a3de7064a766edb452cc2db4dd327c70 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -184,12 +184,14 @@ public class PurpurWorldConfig { +@@ -183,12 +183,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/0202-Add-Option-for-disable-observer-clocks.patch index 6eefc1a6d..d11e6c202 100644 --- a/patches/server/0202-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0202-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 e6a26392252d70d842dfe1c9fb2d72132a1edef5..315fe5a2d00eb89563bea320a7cf5cb9964bce96 100644 +index 2f7da583a3de7064a766edb452cc2db4dd327c70..465aa4c25938c0d921a7a4935f1194246d8fddc0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -371,6 +371,11 @@ public class PurpurWorldConfig { +@@ -370,6 +370,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/0203-Customizeable-Zombie-Villager-curing-times.patch index bccb5f077..178e13dcb 100644 --- a/patches/server/0203-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0203-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 315fe5a2d00eb89563bea320a7cf5cb9964bce96..fdbb8bb236f2180d0a278bb614b24647111bb6c5 100644 +index 465aa4c25938c0d921a7a4935f1194246d8fddc0..b2451d579db682dbb83dbdfb7854ed6181a1b649 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2752,6 +2752,8 @@ public class PurpurWorldConfig { +@@ -2751,6 +2751,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index 315fe5a2d00eb89563bea320a7cf5cb9964bce96..fdbb8bb236f2180d0a278bb614b24647 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2767,6 +2769,8 @@ public class PurpurWorldConfig { +@@ -2766,6 +2768,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.patch b/patches/server/0204-Option-for-sponges-to-work-on-lava.patch index d16e4ec1f..3e970ce3f 100644 --- a/patches/server/0204-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0204-Option-for-sponges-to-work-on-lava.patch @@ -18,10 +18,10 @@ index e4e926dc89f843886d0df5da31e00053284f5dae..5964949a6048194476e6dd501503caf0 // NOP } else if (iblockdata.getBlock() instanceof LiquidBlock) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fdbb8bb236f2180d0a278bb614b24647111bb6c5..f74fd68281bc1895839b592a3b1bd49017e3f96f 100644 +index b2451d579db682dbb83dbdfb7854ed6181a1b649..9c88029ebfcc1fd487265ed0b3265f6a5fdab4ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -931,9 +931,11 @@ public class PurpurWorldConfig { +@@ -930,9 +930,11 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 64; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch index dbc6af3bf..05dd7d2d5 100644 --- a/patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0205-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index d2213e9a03713a7909a6e1b2aef408ab01c97f01..15229503e40f1a3f5cd768c6f55e250f // 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 f74fd68281bc1895839b592a3b1bd49017e3f96f..471020063a8e1f5fb23c3f66823ff7fc19b3ddff 100644 +index 9c88029ebfcc1fd487265ed0b3265f6a5fdab4ba..9e59fe0bab75fe4556849ad18a98f504dc292306 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2597,6 +2597,7 @@ public class PurpurWorldConfig { +@@ -2596,6 +2596,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index f74fd68281bc1895839b592a3b1bd49017e3f96f..471020063a8e1f5fb23c3f66823ff7fc private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2618,6 +2619,7 @@ public class PurpurWorldConfig { +@@ -2617,6 +2618,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/0206-Cactus-breaks-from-solid-neighbors-config.patch index c053ca427..e85147bb9 100644 --- a/patches/server/0206-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0206-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 471020063a8e1f5fb23c3f66823ff7fc19b3ddff..ac0152a420285d9ae772671408d788cbca59dff3 100644 +index 9e59fe0bab75fe4556849ad18a98f504dc292306..91e254c6694cab5b720c5873d992db9f8812fcfc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -757,6 +757,11 @@ public class PurpurWorldConfig { +@@ -756,6 +756,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0207-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0207-Config-to-remove-curse-of-binding-with-weakness.patch index 87c97964b..da1439740 100644 --- a/patches/server/0207-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0207-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 ac0152a420285d9ae772671408d788cbca59dff3..825a3acacbc04805a9616bbe6a4f0f1acd48cc74 100644 +index 91e254c6694cab5b720c5873d992db9f8812fcfc..3d51c69c652f398839e0dbb7b804205b56f1c3ea 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -410,6 +410,7 @@ public class PurpurWorldConfig { +@@ -409,6 +409,7 @@ public class PurpurWorldConfig { public int playerPortalWaitTime = 80; public int playerCreativePortalWaitTime = 1; public boolean playerRidableInWater = false; @@ -37,7 +37,7 @@ index ac0152a420285d9ae772671408d788cbca59dff3..825a3acacbc04805a9616bbe6a4f0f1a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -437,6 +438,7 @@ public class PurpurWorldConfig { +@@ -436,6 +437,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/0208-Conduit-behavior-configuration.patch index 69e1b613a..7420b5c7e 100644 --- a/patches/server/0208-Conduit-behavior-configuration.patch +++ b/patches/server/0208-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 825a3acacbc04805a9616bbe6a4f0f1acd48cc74..5166bc22d22199ecfce98a9b2693a83618abb9fa 100644 +index 3d51c69c652f398839e0dbb7b804205b56f1c3ea..6b56e497f57b8bfc267d8df8cf64eb0ef5723ad2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2816,4 +2816,27 @@ public class PurpurWorldConfig { +@@ -2815,4 +2815,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/0209-Cauldron-fill-chances.patch index 868a04be3..ef42864d7 100644 --- a/patches/server/0209-Cauldron-fill-chances.patch +++ b/patches/server/0209-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index e978132e51cde52f7ff1ba31ad521fc2cb4f0dce..60a95c42a333d68d9fd14539e0051c08 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5166bc22d22199ecfce98a9b2693a83618abb9fa..194e6417d980a29c3c910f1a47f26387f0825e02 100644 +index 6b56e497f57b8bfc267d8df8cf64eb0ef5723ad2..ac3a0a402c0934ad3b949c57d38b72aaa18c985a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2839,4 +2839,15 @@ public class PurpurWorldConfig { +@@ -2838,4 +2838,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/0210-Config-to-allow-mobs-to-pathfind-over-rails.patch index 61bcb36d4..0e1f1fe42 100644 --- a/patches/server/0210-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0210-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 194e6417d980a29c3c910f1a47f26387f0825e02..80f1be7379bd03eb604daf7c8a30f06c3da1c661 100644 +index ac3a0a402c0934ad3b949c57d38b72aaa18c985a..93182fc15721e35e1c431ae056f3d41ca3efd182 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -140,6 +140,7 @@ public class PurpurWorldConfig { +@@ -139,6 +139,7 @@ public class PurpurWorldConfig { public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -29,7 +29,7 @@ index 194e6417d980a29c3c910f1a47f26387f0825e02..80f1be7379bd03eb604daf7c8a30f06c private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -161,6 +162,7 @@ public class PurpurWorldConfig { +@@ -160,6 +161,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/0211-Shulker-change-color-with-dye.patch index ff3f041be..3f28a4063 100644 --- a/patches/server/0211-Shulker-change-color-with-dye.patch +++ b/patches/server/0211-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index 48fcfef45ab149328573f4e80c8f0289f9eebbe8..fbafb9e2ea9dfd237560d34f9cd6f295 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 80f1be7379bd03eb604daf7c8a30f06c3da1c661..900ef275e68bcdea7eb8c1ca096a953f9e8658d4 100644 +index 93182fc15721e35e1c431ae056f3d41ca3efd182..2232b74cccf473996e16d48c02bf83feddbd399e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2159,6 +2159,7 @@ public class PurpurWorldConfig { +@@ -2158,6 +2158,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 80f1be7379bd03eb604daf7c8a30f06c3da1c661..900ef275e68bcdea7eb8c1ca096a953f private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2175,6 +2176,7 @@ public class PurpurWorldConfig { +@@ -2174,6 +2175,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/0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index cf0f976c3..c17ea08d0 100644 --- a/patches/server/0214-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0214-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 900ef275e68bcdea7eb8c1ca096a953f9e8658d4..03cfb9a60fd812dd741684567c1bed72942aa53f 100644 +index 2232b74cccf473996e16d48c02bf83feddbd399e..5db7ea022b50a253c7cf987f8740e6be4cfc40ce 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -141,6 +141,8 @@ public class PurpurWorldConfig { +@@ -140,6 +140,8 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean mobsIgnoreRails = false; @@ -37,7 +37,7 @@ index 900ef275e68bcdea7eb8c1ca096a953f9e8658d4..03cfb9a60fd812dd741684567c1bed72 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -163,6 +165,8 @@ public class PurpurWorldConfig { +@@ -162,6 +164,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/0215-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 88aa66445..66aca9034 100644 --- a/patches/server/0215-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0215-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 03cfb9a60fd812dd741684567c1bed72942aa53f..dd0e9af64399c07b19d2f2afa4e67d082eadd365 100644 +index 5db7ea022b50a253c7cf987f8740e6be4cfc40ce..d2a883baa138f7182b25bb147d9b4a6d4bde354b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -717,6 +717,11 @@ public class PurpurWorldConfig { +@@ -716,6 +716,11 @@ public class PurpurWorldConfig { anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); } @@ -60,7 +60,7 @@ index 03cfb9a60fd812dd741684567c1bed72942aa53f..dd0e9af64399c07b19d2f2afa4e67d08 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -854,6 +859,11 @@ public class PurpurWorldConfig { +@@ -853,6 +858,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/0216-Shift-right-click-to-use-exp-for-mending.patch index a3ed586a2..794f7cd69 100644 --- a/patches/server/0216-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0216-Shift-right-click-to-use-exp-for-mending.patch @@ -36,7 +36,7 @@ index 7ddc9a7ff7b1d6de234ea5b1c8f4246d6ba7976d..02f615e797ac22b8a6226233d815346c + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 872f1ccc1b1253127ee37a8637de8ed3a95d43f1..14462c45d07e07ee8329ab2f9448b776e3e0a73a 100644 +index 190d87f499d530036448f9bce3cf10d5d32e4955..8fd95b7986a63e4b784c0c361687d05a9f648a13 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2089,6 +2089,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -48,10 +48,10 @@ index 872f1ccc1b1253127ee37a8637de8ed3a95d43f1..14462c45d07e07ee8329ab2f9448b776 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 dd0e9af64399c07b19d2f2afa4e67d082eadd365..dc7529035cb9624675aa50b4333a0c8f893204b4 100644 +index d2a883baa138f7182b25bb147d9b4a6d4bde354b..f9dc88be630c67b2321dd67e7bdfe4a1563a160e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -417,6 +417,7 @@ public class PurpurWorldConfig { +@@ -416,6 +416,7 @@ public class PurpurWorldConfig { public int playerCreativePortalWaitTime = 1; public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; @@ -59,7 +59,7 @@ index dd0e9af64399c07b19d2f2afa4e67d082eadd365..dc7529035cb9624675aa50b4333a0c8f private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -445,6 +446,7 @@ public class PurpurWorldConfig { +@@ -444,6 +445,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/0217-Dolphins-naturally-aggressive-to-players-chance.patch index 3cf942d82..25d2bc55b 100644 --- a/patches/server/0217-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0217-Dolphins-naturally-aggressive-to-players-chance.patch @@ -48,10 +48,10 @@ index 6006b9c996a8070336c4471f2a915d70c6371c76..3755ffc395ec4644a2263c59cdacfdba 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 dc7529035cb9624675aa50b4333a0c8f893204b4..dcd0402dbfab1d83e4b1843ac36720054a08e9f7 100644 +index f9dc88be630c67b2321dd67e7bdfe4a1563a160e..a3e55e7fe99ee253467ab0eb311a970a003fb3a4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1257,6 +1257,7 @@ public class PurpurWorldConfig { +@@ -1256,6 +1256,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -59,7 +59,7 @@ index dc7529035cb9624675aa50b4333a0c8f893204b4..dcd0402dbfab1d83e4b1843ac3672005 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1271,6 +1272,7 @@ public class PurpurWorldConfig { +@@ -1270,6 +1271,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/0218-Cows-naturally-aggressive-to-players-chance.patch index c8c75b268..d192e23fb 100644 --- a/patches/server/0218-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0218-Cows-naturally-aggressive-to-players-chance.patch @@ -57,10 +57,10 @@ index c6e5278641fb4a246a8df988fdf5068a044e2c4e..30e87b71ad237d76ec5adb4976edeca9 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dcd0402dbfab1d83e4b1843ac36720054a08e9f7..0118bdeb8857e1562e2392cb7eac26232d07980c 100644 +index a3e55e7fe99ee253467ab0eb311a970a003fb3a4..db200f08e37b3ba4901ef1415f41a55eacd07ef0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1206,7 +1206,14 @@ public class PurpurWorldConfig { +@@ -1205,7 +1205,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -75,7 +75,7 @@ index dcd0402dbfab1d83e4b1843ac36720054a08e9f7..0118bdeb8857e1562e2392cb7eac2623 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1219,6 +1226,8 @@ public class PurpurWorldConfig { +@@ -1218,6 +1225,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/0219-Option-for-beds-to-explode-on-villager-sleep.patch index ff9b8cbba..613d605b9 100644 --- a/patches/server/0219-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0219-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 0118bdeb8857e1562e2392cb7eac26232d07980c..7b4303dedc0950b6fc3132d890ab5480dc76d370 100644 +index db200f08e37b3ba4901ef1415f41a55eacd07ef0..acdca65ab02a2532dc6e84ddc4b29f3524d8cf28 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -736,6 +736,7 @@ public class PurpurWorldConfig { +@@ -735,6 +735,7 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; @@ -33,7 +33,7 @@ index 0118bdeb8857e1562e2392cb7eac26232d07980c..7b4303dedc0950b6fc3132d890ab5480 public double bedExplosionPower = 5.0D; public boolean bedExplosionFire = true; public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; -@@ -746,6 +747,7 @@ public class PurpurWorldConfig { +@@ -745,6 +746,7 @@ public class PurpurWorldConfig { } } bedExplode = getBoolean("blocks.bed.explode", bedExplode); diff --git a/patches/server/0220-Halloween-options-and-optimizations.patch b/patches/server/0220-Halloween-options-and-optimizations.patch index 89acaa4ed..695bfe3cf 100644 --- a/patches/server/0220-Halloween-options-and-optimizations.patch +++ b/patches/server/0220-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 7b4303dedc0950b6fc3132d890ab5480dc76d370..207e36eba637024127b3ee0da422a85adb856a62 100644 +index acdca65ab02a2532dc6e84ddc4b29f3524d8cf28..4e92652a378096e6abf2e20e8fb692a608ea4db1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1599,6 +1599,13 @@ public class PurpurWorldConfig { +@@ -1598,6 +1598,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0223-Campfire-option-for-lit-when-placed.patch b/patches/server/0223-Campfire-option-for-lit-when-placed.patch index 1eb99a250..7e6425bb6 100644 --- a/patches/server/0223-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0223-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 207e36eba637024127b3ee0da422a85adb856a62..f729deedf31b7bfa5c58b3a2f162d5d2b724d781 100644 +index 4e92652a378096e6abf2e20e8fb692a608ea4db1..93b5e1c5cdcd47f9fb8f217e895bb53d8e0cdcc1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -779,6 +779,11 @@ public class PurpurWorldConfig { +@@ -778,6 +778,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/0224-options-to-extinguish-fire-blocks-with-snowballs.patch index 24345bd24..ecbdcd0c7 100644 --- a/patches/server/0224-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0224-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,10 +46,10 @@ index b90cedad282e95a067aca176fafa9f72a726f520..9a8a1e773f247f4c4af4e9789deb70cd 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 f729deedf31b7bfa5c58b3a2f162d5d2b724d781..8a93c72864c36a1c7001d43565f0b41c7e87985e 100644 +index 93b5e1c5cdcd47f9fb8f217e895bb53d8e0cdcc1..cc07869b6cdb86937a79573d92a4b018a5a14dd7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -233,6 +233,9 @@ public class PurpurWorldConfig { +@@ -232,6 +232,9 @@ public class PurpurWorldConfig { public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; public boolean compassItemShowsBossBar = false; @@ -59,7 +59,7 @@ index f729deedf31b7bfa5c58b3a2f162d5d2b724d781..8a93c72864c36a1c7001d43565f0b41c private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -281,6 +284,9 @@ public class PurpurWorldConfig { +@@ -280,6 +283,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/0225-Add-option-to-disable-zombie-villagers-cure.patch index c3b0c27f3..1da719eb3 100644 --- a/patches/server/0225-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0225-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 8a93c72864c36a1c7001d43565f0b41c7e87985e..9f28f1dfdef6ccdace82b8026e039e2f473b3681 100644 +index cc07869b6cdb86937a79573d92a4b018a5a14dd7..18ed7f10c2643d913f31c0119956e08d55c9f919 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2816,6 +2816,7 @@ public class PurpurWorldConfig { +@@ -2815,6 +2815,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 8a93c72864c36a1c7001d43565f0b41c7e87985e..9f28f1dfdef6ccdace82b8026e039e2f private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2833,6 +2834,7 @@ public class PurpurWorldConfig { +@@ -2832,6 +2833,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/0226-Persistent-BlockEntity-Lore-and-DisplayName.patch index e6c2223cc..467f55dbd 100644 --- a/patches/server/0226-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0226-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 9f28f1dfdef6ccdace82b8026e039e2f473b3681..a467208789d77d46376de18f7111daf8a589e393 100644 +index 18ed7f10c2643d913f31c0119956e08d55c9f919..465f76f7e1474696c7f953e21efc08d3d0a936cc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -132,6 +132,7 @@ public class PurpurWorldConfig { +@@ -131,6 +131,7 @@ public class PurpurWorldConfig { public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; @@ -206,7 +206,7 @@ index 9f28f1dfdef6ccdace82b8026e039e2f473b3681..a467208789d77d46376de18f7111daf8 public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; public double mobsBlindnessMultiplier = 1; -@@ -155,6 +156,7 @@ public class PurpurWorldConfig { +@@ -154,6 +155,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/0227-Signs-allow-color-codes.patch index 29c4af826..7dc560a79 100644 --- a/patches/server/0227-Signs-allow-color-codes.patch +++ b/patches/server/0227-Signs-allow-color-codes.patch @@ -67,10 +67,10 @@ index 0521240dddde12d78cc05deda7fac11690f5d155..e326c289fd33b5a9fe49eebaedb29abb 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 a467208789d77d46376de18f7111daf8a589e393..ce69519fbbc75174421a326e8054452df410bea2 100644 +index 465f76f7e1474696c7f953e21efc08d3d0a936cc..bdee0132b087dd6f87e0bdbeddd04e0754135ba0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -959,6 +959,11 @@ public class PurpurWorldConfig { +@@ -958,6 +958,11 @@ public class PurpurWorldConfig { shulkerBoxAllowOversizedStacks = getBoolean("blocks.shulker_box.allow-oversized-stacks", shulkerBoxAllowOversizedStacks); } diff --git a/patches/server/0229-Mobs-always-drop-experience.patch b/patches/server/0229-Mobs-always-drop-experience.patch index df75e1141..a966042c1 100644 --- a/patches/server/0229-Mobs-always-drop-experience.patch +++ b/patches/server/0229-Mobs-always-drop-experience.patch @@ -405,7 +405,7 @@ index b2902e01ff2e9add8258bfd0b32d000209208f52..e7558511e0690d80ff444e71b7524d56 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 755d8907c1bb86f495588e0bef9e4aeade3af826..7ae53657d9c5be90fa2f92d0fb3dbcb78ed35abf 100644 +index 6aaf20501558f1710be0adca9c14441448698541..51b475191113cf3cae5e776b0dfbcd0236a92808 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -130,6 +130,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1804,6 +1863,7 @@ public class PurpurWorldConfig { +@@ -1803,6 +1862,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean mooshroomRidable = false; -@@ -1812,6 +1872,7 @@ public class PurpurWorldConfig { +@@ -1811,6 +1871,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1824,6 +1885,7 @@ public class PurpurWorldConfig { +@@ -1823,6 +1884,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean muleRidableInWater = false; -@@ -1835,6 +1897,7 @@ public class PurpurWorldConfig { +@@ -1834,6 +1896,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1852,6 +1915,7 @@ public class PurpurWorldConfig { +@@ -1851,6 +1914,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean ocelotRidable = false; -@@ -1860,6 +1924,7 @@ public class PurpurWorldConfig { +@@ -1859,6 +1923,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1872,6 +1937,7 @@ public class PurpurWorldConfig { +@@ -1871,6 +1936,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean pandaRidable = false; -@@ -1880,6 +1946,7 @@ public class PurpurWorldConfig { +@@ -1879,6 +1945,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1892,6 +1959,7 @@ public class PurpurWorldConfig { +@@ -1891,6 +1958,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean parrotRidable = false; -@@ -1901,6 +1969,7 @@ public class PurpurWorldConfig { +@@ -1900,6 +1968,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1914,6 +1983,7 @@ public class PurpurWorldConfig { +@@ -1913,6 +1982,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean phantomRidable = false; -@@ -1941,6 +2011,7 @@ public class PurpurWorldConfig { +@@ -1940,6 +2010,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1976,6 +2047,7 @@ public class PurpurWorldConfig { +@@ -1975,6 +2046,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean pigRidable = false; -@@ -1985,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +2056,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1998,6 +2071,7 @@ public class PurpurWorldConfig { +@@ -1997,6 +2070,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean piglinRidable = false; -@@ -2007,6 +2081,7 @@ public class PurpurWorldConfig { +@@ -2006,6 +2080,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2020,6 +2095,7 @@ public class PurpurWorldConfig { +@@ -2019,6 +2094,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean piglinBruteRidable = false; -@@ -2027,6 +2103,7 @@ public class PurpurWorldConfig { +@@ -2026,6 +2102,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2038,6 +2115,7 @@ public class PurpurWorldConfig { +@@ -2037,6 +2114,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean pillagerRidable = false; -@@ -2046,6 +2124,7 @@ public class PurpurWorldConfig { +@@ -2045,6 +2123,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2058,6 +2137,7 @@ public class PurpurWorldConfig { +@@ -2057,6 +2136,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean polarBearRidable = false; -@@ -2068,6 +2148,7 @@ public class PurpurWorldConfig { +@@ -2067,6 +2147,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2083,12 +2164,14 @@ public class PurpurWorldConfig { +@@ -2082,12 +2163,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2099,6 +2182,7 @@ public class PurpurWorldConfig { +@@ -2098,6 +2181,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean rabbitRidable = false; -@@ -2110,6 +2194,7 @@ public class PurpurWorldConfig { +@@ -2109,6 +2193,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2125,6 +2210,7 @@ public class PurpurWorldConfig { +@@ -2124,6 +2209,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean ravagerRidable = false; -@@ -2134,6 +2220,7 @@ public class PurpurWorldConfig { +@@ -2133,6 +2219,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2163,12 +2250,14 @@ public class PurpurWorldConfig { +@@ -2162,12 +2249,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2179,6 +2268,7 @@ public class PurpurWorldConfig { +@@ -2178,6 +2267,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean sheepRidable = false; -@@ -2188,6 +2278,7 @@ public class PurpurWorldConfig { +@@ -2187,6 +2277,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2201,6 +2292,7 @@ public class PurpurWorldConfig { +@@ -2200,6 +2291,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean shulkerRidable = false; -@@ -2214,6 +2306,7 @@ public class PurpurWorldConfig { +@@ -2213,6 +2305,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2231,6 +2324,7 @@ public class PurpurWorldConfig { +@@ -2230,6 +2323,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean silverfishRidable = false; -@@ -2239,6 +2333,7 @@ public class PurpurWorldConfig { +@@ -2238,6 +2332,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2251,6 +2346,7 @@ public class PurpurWorldConfig { +@@ -2250,6 +2345,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean skeletonRidable = false; -@@ -2258,6 +2354,7 @@ public class PurpurWorldConfig { +@@ -2257,6 +2353,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2269,6 +2366,7 @@ public class PurpurWorldConfig { +@@ -2268,6 +2365,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean skeletonHorseRidableInWater = true; -@@ -2280,6 +2378,7 @@ public class PurpurWorldConfig { +@@ -2279,6 +2377,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2296,6 +2395,7 @@ public class PurpurWorldConfig { +@@ -2295,6 +2394,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean slimeRidable = false; -@@ -2306,6 +2406,7 @@ public class PurpurWorldConfig { +@@ -2305,6 +2405,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2320,6 +2421,7 @@ public class PurpurWorldConfig { +@@ -2319,6 +2420,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean snowGolemRidable = false; -@@ -2335,6 +2437,7 @@ public class PurpurWorldConfig { +@@ -2334,6 +2436,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2354,6 +2457,7 @@ public class PurpurWorldConfig { +@@ -2353,6 +2456,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean snifferRidable = false; -@@ -2376,6 +2480,7 @@ public class PurpurWorldConfig { +@@ -2375,6 +2479,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2389,6 +2494,7 @@ public class PurpurWorldConfig { +@@ -2388,6 +2493,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean spiderRidable = false; -@@ -2396,6 +2502,7 @@ public class PurpurWorldConfig { +@@ -2395,6 +2501,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2407,6 +2514,7 @@ public class PurpurWorldConfig { +@@ -2406,6 +2513,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean strayRidable = false; -@@ -2414,6 +2522,7 @@ public class PurpurWorldConfig { +@@ -2413,6 +2521,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2425,6 +2534,7 @@ public class PurpurWorldConfig { +@@ -2424,6 +2533,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean striderRidable = false; -@@ -2434,6 +2544,7 @@ public class PurpurWorldConfig { +@@ -2433,6 +2543,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2447,6 +2558,7 @@ public class PurpurWorldConfig { +@@ -2446,6 +2557,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean tadpoleRidable = false; -@@ -2469,6 +2581,7 @@ public class PurpurWorldConfig { +@@ -2468,6 +2580,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2488,12 +2601,14 @@ public class PurpurWorldConfig { +@@ -2487,12 +2600,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2504,6 +2619,7 @@ public class PurpurWorldConfig { +@@ -2503,6 +2618,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean turtleRidable = false; -@@ -2512,6 +2628,7 @@ public class PurpurWorldConfig { +@@ -2511,6 +2627,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2524,6 +2641,7 @@ public class PurpurWorldConfig { +@@ -2523,6 +2640,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean vexRidable = false; -@@ -2532,6 +2650,7 @@ public class PurpurWorldConfig { +@@ -2531,6 +2649,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2544,6 +2663,7 @@ public class PurpurWorldConfig { +@@ -2543,6 +2662,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean villagerRidable = false; -@@ -2559,6 +2679,7 @@ public class PurpurWorldConfig { +@@ -2558,6 +2678,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2578,6 +2699,7 @@ public class PurpurWorldConfig { +@@ -2577,6 +2698,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean vindicatorRidable = false; -@@ -2586,6 +2708,7 @@ public class PurpurWorldConfig { +@@ -2585,6 +2707,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2598,6 +2721,7 @@ public class PurpurWorldConfig { +@@ -2597,6 +2720,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean wanderingTraderRidable = false; -@@ -2608,6 +2732,7 @@ public class PurpurWorldConfig { +@@ -2607,6 +2731,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2622,6 +2747,7 @@ public class PurpurWorldConfig { +@@ -2621,6 +2746,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean wardenRidable = false; -@@ -2638,6 +2764,7 @@ public class PurpurWorldConfig { +@@ -2637,6 +2763,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2649,6 +2776,7 @@ public class PurpurWorldConfig { +@@ -2648,6 +2775,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean witherRidable = false; -@@ -2663,6 +2791,7 @@ public class PurpurWorldConfig { +@@ -2662,6 +2790,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2685,6 +2814,7 @@ public class PurpurWorldConfig { +@@ -2684,6 +2813,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean witherSkeletonRidable = false; -@@ -2692,6 +2822,7 @@ public class PurpurWorldConfig { +@@ -2691,6 +2821,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2703,6 +2834,7 @@ public class PurpurWorldConfig { +@@ -2702,6 +2833,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean wolfRidable = false; -@@ -2714,6 +2846,7 @@ public class PurpurWorldConfig { +@@ -2713,6 +2845,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2733,6 +2866,7 @@ public class PurpurWorldConfig { +@@ -2732,6 +2865,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean zoglinRidable = false; -@@ -2740,6 +2874,7 @@ public class PurpurWorldConfig { +@@ -2739,6 +2873,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2751,6 +2886,7 @@ public class PurpurWorldConfig { +@@ -2750,6 +2885,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean zombieRidable = false; -@@ -2764,6 +2900,7 @@ public class PurpurWorldConfig { +@@ -2763,6 +2899,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2781,6 +2918,7 @@ public class PurpurWorldConfig { +@@ -2780,6 +2917,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean zombieHorseRidableInWater = false; -@@ -2793,6 +2931,7 @@ public class PurpurWorldConfig { +@@ -2792,6 +2930,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2810,6 +2949,7 @@ public class PurpurWorldConfig { +@@ -2809,6 +2948,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean zombieVillagerRidable = false; -@@ -2824,6 +2964,7 @@ public class PurpurWorldConfig { +@@ -2823,6 +2963,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2842,6 +2983,7 @@ public class PurpurWorldConfig { +@@ -2841,6 +2982,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 ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e } public boolean zombifiedPiglinRidable = false; -@@ -2854,6 +2996,7 @@ public class PurpurWorldConfig { +@@ -2853,6 +2995,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index ce69519fbbc75174421a326e8054452df410bea2..c15de0704b93f32dee41917c3e7ed48e private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2870,6 +3013,7 @@ public class PurpurWorldConfig { +@@ -2869,6 +3012,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/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index eca29dc7f..2ac15e368 100644 --- a/patches/server/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0232-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,10 +74,10 @@ 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 c15de0704b93f32dee41917c3e7ed48ec41aaffb..c9e7dc60f96cf9e69e5fd132234f4f099bda157b 100644 +index a91ae4c32a543dfda79bfe631743970e5206b4cb..6a62fc481da01b4e372b65000abad41440decb58 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -563,6 +563,8 @@ public class PurpurWorldConfig { +@@ -562,6 +562,8 @@ public class PurpurWorldConfig { public Map axeWaxables = new HashMap<>(); public Map axeWeatherables = new HashMap<>(); public Map hoeTillables = new HashMap<>(); @@ -86,7 +86,7 @@ index c15de0704b93f32dee41917c3e7ed48ec41aaffb..c9e7dc60f96cf9e69e5fd132234f4f09 private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -718,6 +720,8 @@ public class PurpurWorldConfig { +@@ -717,6 +719,8 @@ public class PurpurWorldConfig { }); hoeTillables.put(block, new Tillable(condition, into, drops)); }); diff --git a/patches/server/0233-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0233-Shearing-jeb-produces-random-color-wool.patch index f2fa49459..33b2a5d36 100644 --- a/patches/server/0233-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0233-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 c9e7dc60f96cf9e69e5fd132234f4f099bda157b..d724d7366ff54ce770b9510a511c37e6db6e13ad 100644 +index 6a62fc481da01b4e372b65000abad41440decb58..0188bf50e5f46d55a82e2c03c784ce5018f8ea60 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2283,6 +2283,7 @@ public class PurpurWorldConfig { +@@ -2282,6 +2282,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index c9e7dc60f96cf9e69e5fd132234f4f099bda157b..d724d7366ff54ce770b9510a511c37e6 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2297,6 +2298,7 @@ public class PurpurWorldConfig { +@@ -2296,6 +2297,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/0234-Turtle-eggs-random-tick-crack-chance.patch index 588216d06..5c8ff29bc 100644 --- a/patches/server/0234-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0234-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 d724d7366ff54ce770b9510a511c37e6db6e13ad..f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca 100644 +index 0188bf50e5f46d55a82e2c03c784ce5018f8ea60..a7f66b8328f41a4c73aa4f9a68d92b1588983e1d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -991,11 +991,13 @@ public class PurpurWorldConfig { +@@ -990,11 +990,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/0235-Mob-head-visibility-percent.patch index 26b61f65b..83c3fa8fe 100644 --- a/patches/server/0235-Mob-head-visibility-percent.patch +++ b/patches/server/0235-Mob-head-visibility-percent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 777853b5afc7b170fe6caffa21f55468b4321a1d..e2e470892ced1e350a841707f0c3266550e015f2 100644 +index 558f56e7e559b5fcb712bdf3515704ad77dfe665..03ddc48436567fd3449bc8f489f8b7751eaa42c6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1041,9 +1041,20 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -32,10 +32,10 @@ index 777853b5afc7b170fe6caffa21f55468b4321a1d..e2e470892ced1e350a841707f0c32665 // 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 f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49adbf62e748 100644 +index a7f66b8328f41a4c73aa4f9a68d92b1588983e1d..9c843a9e1448595f01a1240e58289c757fd28122 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1285,6 +1285,7 @@ public class PurpurWorldConfig { +@@ -1284,6 +1284,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1302,6 +1303,7 @@ public class PurpurWorldConfig { +@@ -1301,6 +1302,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 f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad } public boolean dolphinRidable = false; -@@ -2088,6 +2090,7 @@ public class PurpurWorldConfig { +@@ -2087,6 +2089,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2102,6 +2105,7 @@ public class PurpurWorldConfig { +@@ -2101,6 +2104,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 f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad } public boolean piglinBruteRidable = false; -@@ -2363,6 +2367,7 @@ public class PurpurWorldConfig { +@@ -2362,6 +2366,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2375,6 +2380,7 @@ public class PurpurWorldConfig { +@@ -2374,6 +2379,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 f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad } public boolean skeletonHorseRidableInWater = true; -@@ -2909,6 +2915,7 @@ public class PurpurWorldConfig { +@@ -2908,6 +2914,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index f465c6ab76a5a0b7afca7801d98cdda7ebcd3dca..d65dbd63062d637554a16bd648bf49ad private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2927,6 +2934,7 @@ public class PurpurWorldConfig { +@@ -2926,6 +2933,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/0238-Stop-bees-from-dying-after-stinging.patch b/patches/server/0238-Stop-bees-from-dying-after-stinging.patch index 4c7cbf013..535a43fa8 100644 --- a/patches/server/0238-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0238-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index fad2da0ba194d349de73777a7ab43bb6447298e7..2afe5a4f3abaa3f9883b13fa3895e1e1 ++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 d65dbd63062d637554a16bd648bf49adbf62e748..09588ad21b2464f7f36702a7bfdaa5e2c7086502 100644 +index 9c843a9e1448595f01a1240e58289c757fd28122..afccca6f626758f3c2e80081b4c7282c253ee039 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1086,6 +1086,7 @@ public class PurpurWorldConfig { +@@ -1085,6 +1085,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index d65dbd63062d637554a16bd648bf49adbf62e748..09588ad21b2464f7f36702a7bfdaa5e2 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1102,6 +1103,7 @@ public class PurpurWorldConfig { +@@ -1101,6 +1102,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/0240-Configurable-farmland-trample-height.patch b/patches/server/0240-Configurable-farmland-trample-height.patch index 4a22078dc..6df52ad88 100644 --- a/patches/server/0240-Configurable-farmland-trample-height.patch +++ b/patches/server/0240-Configurable-farmland-trample-height.patch @@ -35,10 +35,10 @@ index 1064a13f37b991e60213b052e252a183b8340449..2b1bd583d9c7f049bfb798aa38ef021a org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 09588ad21b2464f7f36702a7bfdaa5e2c7086502..718e33bf4008b4c4987b421002fa701ef1b2e5dc 100644 +index afccca6f626758f3c2e80081b4c7282c253ee039..86ab34892e8592417f5aef5aa728a57be19c01a0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -871,6 +871,7 @@ public class PurpurWorldConfig { +@@ -870,6 +870,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index 09588ad21b2464f7f36702a7bfdaa5e2c7086502..718e33bf4008b4c4987b421002fa701e private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -878,6 +879,7 @@ public class PurpurWorldConfig { +@@ -877,6 +878,7 @@ public class PurpurWorldConfig { farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled); farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers); farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); diff --git a/patches/server/0241-Configurable-player-pickup-exp-delay.patch b/patches/server/0241-Configurable-player-pickup-exp-delay.patch index 57030f0c0..9f56a5819 100644 --- a/patches/server/0241-Configurable-player-pickup-exp-delay.patch +++ b/patches/server/0241-Configurable-player-pickup-exp-delay.patch @@ -35,10 +35,10 @@ index 0a9d8b22c7127b87826d9d256a5f36c34f2bfc0f..d00035e31cf4773a418d1cc6a6018d08 } else if (!entity.isRemoved()) { this.touch(entity); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 718e33bf4008b4c4987b421002fa701ef1b2e5dc..efe3e91a5870cbef87ada14c746a4a3aa6e08112 100644 +index 86ab34892e8592417f5aef5aa728a57be19c01a0..36662254c93969bacbd377b7d2452f2d73663dc1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -426,6 +426,7 @@ public class PurpurWorldConfig { +@@ -425,6 +425,7 @@ public class PurpurWorldConfig { public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; @@ -46,7 +46,7 @@ index 718e33bf4008b4c4987b421002fa701ef1b2e5dc..efe3e91a5870cbef87ada14c746a4a3a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -455,6 +456,7 @@ public class PurpurWorldConfig { +@@ -454,6 +455,7 @@ public class PurpurWorldConfig { playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); diff --git a/patches/server/0242-Allow-void-trading.patch b/patches/server/0242-Allow-void-trading.patch index 09face984..004712ba6 100644 --- a/patches/server/0242-Allow-void-trading.patch +++ b/patches/server/0242-Allow-void-trading.patch @@ -18,10 +18,10 @@ index 8cbb36b2dbcb9a1470c95746d7d481a142419164..122defeec159165c5fef295ec1dd2da4 } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index efe3e91a5870cbef87ada14c746a4a3aa6e08112..ab25c1d40a9735cd679f082cf6140c993dbb148a 100644 +index 36662254c93969bacbd377b7d2452f2d73663dc1..39b9581b3e80acb2eead5b9ba31358ce8bd83560 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -427,6 +427,7 @@ public class PurpurWorldConfig { +@@ -426,6 +426,7 @@ public class PurpurWorldConfig { public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; public int playerExpPickupDelay = 2; @@ -29,7 +29,7 @@ index efe3e91a5870cbef87ada14c746a4a3aa6e08112..ab25c1d40a9735cd679f082cf6140c99 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -457,6 +458,7 @@ public class PurpurWorldConfig { +@@ -456,6 +457,7 @@ public class PurpurWorldConfig { playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay); diff --git a/patches/server/0244-Configurable-phantom-size.patch b/patches/server/0244-Configurable-phantom-size.patch index 22133fd7a..831db3dbd 100644 --- a/patches/server/0244-Configurable-phantom-size.patch +++ b/patches/server/0244-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index f71cbaabfff370f019f124203fb947ea7a817d95..17638b9d3340c86528a8ae597712c759 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ab25c1d40a9735cd679f082cf6140c993dbb148a..1c6f9d6ac5ad109bfa47d9dd7e9cdfe226294b15 100644 +index 39b9581b3e80acb2eead5b9ba31358ce8bd83560..296e16a0a004592f45ca3e30179b3fcced045895 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2028,6 +2028,8 @@ public class PurpurWorldConfig { +@@ -2027,6 +2027,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index ab25c1d40a9735cd679f082cf6140c993dbb148a..1c6f9d6ac5ad109bfa47d9dd7e9cdfe2 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2064,6 +2066,13 @@ public class PurpurWorldConfig { +@@ -2063,6 +2065,13 @@ public class PurpurWorldConfig { phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp); diff --git a/patches/server/0247-Configurable-minimum-demand-for-trades.patch b/patches/server/0247-Configurable-minimum-demand-for-trades.patch index 6e3a5c6a5..ffc5311fc 100644 --- a/patches/server/0247-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0247-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 28bdcb14cb5b458d3c990fcf343ef97f08e4f3c6..48167334162443365bb8a6d082a51b2c public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1c6f9d6ac5ad109bfa47d9dd7e9cdfe226294b15..2a17c1500123ff7a895378f718cf0a1d222f12d3 100644 +index 296e16a0a004592f45ca3e30179b3fcced045895..9d9bb2a758df0363e898bced7f5edad8afe3c55c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2711,6 +2711,7 @@ public class PurpurWorldConfig { +@@ -2710,6 +2710,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 1c6f9d6ac5ad109bfa47d9dd7e9cdfe226294b15..2a17c1500123ff7a895378f718cf0a1d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2731,6 +2732,7 @@ public class PurpurWorldConfig { +@@ -2730,6 +2731,7 @@ public class PurpurWorldConfig { villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); diff --git a/patches/server/0248-Lobotomize-stuck-villagers.patch b/patches/server/0248-Lobotomize-stuck-villagers.patch index 0b69f8319..a2b6fe501 100644 --- a/patches/server/0248-Lobotomize-stuck-villagers.patch +++ b/patches/server/0248-Lobotomize-stuck-villagers.patch @@ -109,10 +109,10 @@ index f21c715ea109164efa755cddb35ef656a9859759..0c9154d1d3c1534a25c08c75fab102b6 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2a17c1500123ff7a895378f718cf0a1d222f12d3..63d7b443f96031cd0984bdc90b8fdd3e1d520c52 100644 +index 9d9bb2a758df0363e898bced7f5edad8afe3c55c..ef335cde8f7fb9f3b85a8eb67d35b71535d9321a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2712,6 +2712,8 @@ public class PurpurWorldConfig { +@@ -2711,6 +2711,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -121,7 +121,7 @@ index 2a17c1500123ff7a895378f718cf0a1d222f12d3..63d7b443f96031cd0984bdc90b8fdd3e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2733,6 +2735,17 @@ public class PurpurWorldConfig { +@@ -2732,6 +2734,17 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0249-Option-for-villager-display-trade-item.patch b/patches/server/0249-Option-for-villager-display-trade-item.patch index a8dccb79d..b2835e8fe 100644 --- a/patches/server/0249-Option-for-villager-display-trade-item.patch +++ b/patches/server/0249-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 050be72c815010bf3f4b72427e2052b00420e8ee..8a213205f57c8dcd2226d7194d74b1b1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 63d7b443f96031cd0984bdc90b8fdd3e1d520c52..f7a8af3efed3254459f8a42f997368fccaf5f741 100644 +index ef335cde8f7fb9f3b85a8eb67d35b71535d9321a..a57bb89d44f0587a0c62ec39342a155f7db58a43 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2714,6 +2714,7 @@ public class PurpurWorldConfig { +@@ -2713,6 +2713,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 63d7b443f96031cd0984bdc90b8fdd3e1d520c52..f7a8af3efed3254459f8a42f997368fc private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2746,6 +2747,7 @@ public class PurpurWorldConfig { +@@ -2745,6 +2746,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0250-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0250-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index b86bcdd2e..f82e79628 100644 --- a/patches/server/0250-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0250-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index cd2ce5bcb8c30e4657cd0e340d80544c7e805905..c8c6fed3f93903bb5c6145930538d415 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f7a8af3efed3254459f8a42f997368fccaf5f741..a14382cbf663839f1eaa162be231c95bab4041f8 100644 +index a57bb89d44f0587a0c62ec39342a155f7db58a43..75bc33a9803eb0b192b287aa72f50a9db83a89f0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -980,8 +980,10 @@ public class PurpurWorldConfig { +@@ -979,8 +979,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0251-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0251-Config-for-mob-last-hurt-by-player-time.patch index 4e119afe3..a0729246b 100644 --- a/patches/server/0251-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0251-Config-for-mob-last-hurt-by-player-time.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for mob last hurt by player time diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e2e470892ced1e350a841707f0c3266550e015f2..5ad5bc75af60a16b02c9604dd027403b5b6a67e6 100644 +index 03ddc48436567fd3449bc8f489f8b7751eaa42c6..428c99b98b8161eac82c651a477ba478b4ee0ce7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1512,13 +1512,13 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -25,7 +25,7 @@ index e2e470892ced1e350a841707f0c3266550e015f2..5ad5bc75af60a16b02c9604dd027403b if (entityliving2 instanceof net.minecraft.world.entity.player.Player) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index b4c50e181ca7485d73750333bbaaa1b1799ba7b0..0ea1f2a8f6cb019cebf9f9849f8ba00aa385b18e 100644 +index 54b428e98c54f7e130b91840fa4736078992d8e9..73bad77ae58ce6f817c60b28d5f40d637717531b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -440,7 +440,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -38,10 +38,10 @@ index b4c50e181ca7485d73750333bbaaa1b1799ba7b0..0ea1f2a8f6cb019cebf9f9849f8ba00a // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a14382cbf663839f1eaa162be231c95bab4041f8..b89da9fabbda3a5b02262b08aba180818f6b7ec7 100644 +index 75bc33a9803eb0b192b287aa72f50a9db83a89f0..0225e61e71d058e024406bdef0f763c8af3c0cdf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -144,6 +144,7 @@ public class PurpurWorldConfig { +@@ -143,6 +143,7 @@ public class PurpurWorldConfig { public boolean mobsIgnoreRails = false; public boolean rainStopsAfterSleep = true; public boolean thunderStopsAfterSleep = true; @@ -49,7 +49,7 @@ index a14382cbf663839f1eaa162be231c95bab4041f8..b89da9fabbda3a5b02262b08aba18081 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -169,6 +170,7 @@ public class PurpurWorldConfig { +@@ -168,6 +169,7 @@ public class PurpurWorldConfig { mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep); thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep); diff --git a/patches/server/0252-Anvil-repair-damage-options.patch b/patches/server/0252-Anvil-repair-damage-options.patch index 945b06ed7..8ff0ee8e6 100644 --- a/patches/server/0252-Anvil-repair-damage-options.patch +++ b/patches/server/0252-Anvil-repair-damage-options.patch @@ -64,10 +64,10 @@ index 5c5a3b169795bf8a527b316c666cbc2105c66622..020afeca950d2c7fb6c7b179d424548f return InteractionResult.SUCCESS; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b89da9fabbda3a5b02262b08aba180818f6b7ec7..e7da44aae8a1f4c5c58e3b5b0086294adff7152d 100644 +index 0225e61e71d058e024406bdef0f763c8af3c0cdf..e412de34b47d59adf1c40b85ccc5c22af4ed1ada 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -732,9 +732,13 @@ public class PurpurWorldConfig { +@@ -731,9 +731,13 @@ public class PurpurWorldConfig { public boolean anvilAllowColors = false; public boolean anvilColorsUseMiniMessage; diff --git a/patches/server/0253-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0253-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 0ab69d9c9..83687d535 100644 --- a/patches/server/0253-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0253-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -24,10 +24,10 @@ index 70997b83fd7631ebf3c5bda67ef77bef605eb464..a8c227e2cb62cfa8225798329cde9078 return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e7da44aae8a1f4c5c58e3b5b0086294adff7152d..7167d0d6c1f2ef666669dc4258bb54386692ec61 100644 +index e412de34b47d59adf1c40b85ccc5c22af4ed1ada..c952dfc852d05895a5c790e62ba3561e64b8c8f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1006,12 +1006,14 @@ public class PurpurWorldConfig { +@@ -1005,12 +1005,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0256-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0256-Implement-configurable-search-radius-for-villagers-t.patch index 1263153e0..0e779fc4d 100644 --- a/patches/server/0256-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0256-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index 3eb7ac97ea11d0c47ecbc047e2e64c17baaa70f4..85c8854691070d8867a5eaf410fe7a2f AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); List list = world.getEntitiesOfClass(Villager.class, axisalignedbb); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7167d0d6c1f2ef666669dc4258bb54386692ec61..4740ae8bdd63566f484976264a1e5d93a585c928 100644 +index c952dfc852d05895a5c790e62ba3561e64b8c8f5..13374f7b62049597e28448fcde15eff6c318f623 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2725,6 +2725,8 @@ public class PurpurWorldConfig { +@@ -2724,6 +2724,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 7167d0d6c1f2ef666669dc4258bb54386692ec61..4740ae8bdd63566f484976264a1e5d93 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2758,6 +2760,8 @@ public class PurpurWorldConfig { +@@ -2757,6 +2759,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/0257-Stonecutter-damage.patch b/patches/server/0257-Stonecutter-damage.patch index 4504f0710..2562ee1d8 100644 --- a/patches/server/0257-Stonecutter-damage.patch +++ b/patches/server/0257-Stonecutter-damage.patch @@ -63,10 +63,10 @@ index 3de2e7a17e1234367e4ec6d944b1145781aefeba..15ed564a579237dd1f5d6ce56ccb473f 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 4740ae8bdd63566f484976264a1e5d93a585c928..2967a613750a56fe1a7d6f67a3b650c34bde0aaa 100644 +index 13374f7b62049597e28448fcde15eff6c318f623..1d646adfa88a5354d6b9c6f7d571edd454f6cb16 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1001,6 +1001,11 @@ public class PurpurWorldConfig { +@@ -1000,6 +1000,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0258-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0258-Configurable-damage-settings-for-magma-blocks.patch index f59f5e8c8..40432d217 100644 --- a/patches/server/0258-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0258-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 2967a613750a56fe1a7d6f67a3b650c34bde0aaa..c1234ab9a9420f62ae682b8ef82618c13add1421 100644 +index 1d646adfa88a5354d6b9c6f7d571edd454f6cb16..eafbbdbac367f621ceaa02e915b8e5ddc22e4371 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -934,6 +934,13 @@ public class PurpurWorldConfig { +@@ -933,6 +933,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0259-Add-config-for-snow-on-blue-ice.patch b/patches/server/0259-Add-config-for-snow-on-blue-ice.patch index 7c65aa21c..b054ce89e 100644 --- a/patches/server/0259-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0259-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 c1234ab9a9420f62ae682b8ef82618c13add1421..856c2ada861d87e53d49dc7f82d1707b946f7ba8 100644 +index eafbbdbac367f621ceaa02e915b8e5ddc22e4371..365f3586f40374d5e6f7ce17533a47077d86cffb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -915,9 +915,11 @@ public class PurpurWorldConfig { +@@ -914,9 +914,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0260-Skeletons-eat-wither-roses.patch b/patches/server/0260-Skeletons-eat-wither-roses.patch index 00a929a9c..9ad487348 100644 --- a/patches/server/0260-Skeletons-eat-wither-roses.patch +++ b/patches/server/0260-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 856c2ada861d87e53d49dc7f82d1707b946f7ba8..4818b532a6d5f1525a0d09f94f99a99734b334c7 100644 +index 365f3586f40374d5e6f7ce17533a47077d86cffb..b91bdc15a145b22c27bf26bc6198248bdca1e550 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2409,6 +2409,7 @@ public class PurpurWorldConfig { +@@ -2408,6 +2408,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 856c2ada861d87e53d49dc7f82d1707b946f7ba8..4818b532a6d5f1525a0d09f94f99a997 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2422,6 +2423,7 @@ public class PurpurWorldConfig { +@@ -2421,6 +2422,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/0261-Enchantment-Table-Persists-Lapis.patch b/patches/server/0261-Enchantment-Table-Persists-Lapis.patch index 985002a55..215127658 100644 --- a/patches/server/0261-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0261-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 4818b532a6d5f1525a0d09f94f99a99734b334c7..549726970f64bbb3f6c9935698c3f290a8fb2fec 100644 +index b91bdc15a145b22c27bf26bc6198248bdca1e550..171ffb94c97be029926444d822c5e7f440b0b537 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1444,6 +1444,11 @@ public class PurpurWorldConfig { +@@ -1443,6 +1443,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0264-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0264-Config-for-sculk-shrieker-can_summon-state.patch index 48304bf3b..5b44cd36b 100644 --- a/patches/server/0264-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0264-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 549726970f64bbb3f6c9935698c3f290a8fb2fec..811e82c935e032db7a82c21fcf186c384be19ffb 100644 +index 171ffb94c97be029926444d822c5e7f440b0b537..3464ebbc8ac9c523329492342d9f8409b5fd746f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -979,6 +979,11 @@ public class PurpurWorldConfig { +@@ -978,6 +978,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0265-Config-to-not-let-coral-die.patch b/patches/server/0265-Config-to-not-let-coral-die.patch index 367ace5a5..73be5e689 100644 --- a/patches/server/0265-Config-to-not-let-coral-die.patch +++ b/patches/server/0265-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 811e82c935e032db7a82c21fcf186c384be19ffb..c4a061e88ed7cdfb85e0b97e3d9ae6b1fe2a8bf5 100644 +index 3464ebbc8ac9c523329492342d9f8409b5fd746f..0a83e8b1bcd7e8b7bd805c9e04de1f529f837c19 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -816,6 +816,11 @@ public class PurpurWorldConfig { +@@ -815,6 +815,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0267-Add-toggle-for-RNG-manipulation.patch b/patches/server/0267-Add-toggle-for-RNG-manipulation.patch index f16483840..75254199b 100644 --- a/patches/server/0267-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0267-Add-toggle-for-RNG-manipulation.patch @@ -33,10 +33,10 @@ index beef2f6a42eebeaf5761bac841300f780bfdf4f2..41797940d89fec55cb7de4c63eb3ea5c } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c4a061e88ed7cdfb85e0b97e3d9ae6b1fe2a8bf5..03b9f85261761cb03ebd902ba27e29b9b644d700 100644 +index 0a83e8b1bcd7e8b7bd805c9e04de1f529f837c19..f2ebd3f4c66a9b61379aaab703df381afafd2459 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -206,9 +206,11 @@ public class PurpurWorldConfig { +@@ -205,9 +205,11 @@ public class PurpurWorldConfig { public int entityLifeSpan = 0; public float entityLeftHandedChance = 0.05f; diff --git a/patches/server/0276-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0276-mob-spawning-option-to-ignore-creative-players.patch index f39b1c49e..d974a58b9 100644 --- a/patches/server/0276-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0276-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 03b9f85261761cb03ebd902ba27e29b9b644d700..2a8595c3defc542d043bb556acc08bf1eafbb17f 100644 +index f2ebd3f4c66a9b61379aaab703df381afafd2459..2925603af9e54fa3c3a2ec2f42b7cac577c36d4b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -379,6 +379,7 @@ public class PurpurWorldConfig { +@@ -378,6 +378,7 @@ public class PurpurWorldConfig { public boolean phantomSpawning; public boolean villagerTraderSpawning; public boolean villageSiegeSpawning; @@ -29,7 +29,7 @@ index 03b9f85261761cb03ebd902ba27e29b9b644d700..2a8595c3defc542d043bb556acc08bf1 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); -@@ -387,6 +388,7 @@ public class PurpurWorldConfig { +@@ -386,6 +387,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/0277-Add-skeleton-bow-accuracy-option.patch b/patches/server/0277-Add-skeleton-bow-accuracy-option.patch index 7efe63434..b14045b15 100644 --- a/patches/server/0277-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0277-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 2a8595c3defc542d043bb556acc08bf1eafbb17f..ab4e08fb6613bf0a33ec1ce32847c1e59da274a7 100644 +index 2925603af9e54fa3c3a2ec2f42b7cac577c36d4b..c9772378ca9ac24893b9ba6607c5ad9dffc591bd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2429,6 +2429,8 @@ public class PurpurWorldConfig { +@@ -2428,6 +2428,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 2a8595c3defc542d043bb556acc08bf1eafbb17f..ab4e08fb6613bf0a33ec1ce32847c1e5 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2443,6 +2445,18 @@ public class PurpurWorldConfig { +@@ -2442,6 +2444,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/0278-Allay-respect-item-NBT.patch b/patches/server/0278-Allay-respect-item-NBT.patch index 9e0da4a78..58c93acb0 100644 --- a/patches/server/0278-Allay-respect-item-NBT.patch +++ b/patches/server/0278-Allay-respect-item-NBT.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allay respect item NBT diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index cff8d4a00d560ffac1a3b4b3d7dfaa9ff5fcd1d0..b9ca6f9522c004cdc337903a1e3d11d6c05cc1c6 100644 +index d50bf1b980231a1045c1c9df622a9a50fc2ed893..7166f4a39fd615e10d7b1f53c57363832a41f365 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java @@ -407,9 +407,31 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @@ -44,10 +44,10 @@ index cff8d4a00d560ffac1a3b4b3d7dfaa9ff5fcd1d0..b9ca6f9522c004cdc337903a1e3d11d6 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 ab4e08fb6613bf0a33ec1ce32847c1e59da274a7..c25cd12a5a6de130a85f6da43cd8f7e75b827e45 100644 +index c9772378ca9ac24893b9ba6607c5ad9dffc591bd..dc38b8d07eed1ed8801997786e21328959810988 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1063,10 +1063,13 @@ public class PurpurWorldConfig { +@@ -1062,10 +1062,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = true; public boolean allayControllable = true; diff --git a/patches/server/0285-Add-an-option-to-fix-MC-3304-projectile-looting.patch b/patches/server/0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch similarity index 100% rename from patches/server/0285-Add-an-option-to-fix-MC-3304-projectile-looting.patch rename to patches/server/0284-Add-an-option-to-fix-MC-3304-projectile-looting.patch diff --git a/patches/server/0284-Implement-squid-colors-for-rainglow-fabric-mod.patch b/patches/server/0284-Implement-squid-colors-for-rainglow-fabric-mod.patch deleted file mode 100644 index d8dca154a..000000000 --- a/patches/server/0284-Implement-squid-colors-for-rainglow-fabric-mod.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: BillyGalbreath -Date: Sat, 1 Oct 2022 16:01:07 -0500 -Subject: [PATCH] Implement squid colors for rainglow fabric mod - - -diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java -index 43cdda0cb26c5d5cc9025199eb71673d71c2abea..83660fad1e4c0ce5800f6e62f915ccd87b9d04ac 100644 ---- a/src/main/java/net/minecraft/world/entity/GlowSquid.java -+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java -@@ -18,6 +18,7 @@ import net.minecraft.world.level.block.Blocks; - - public class GlowSquid extends Squid { - private static final EntityDataAccessor DATA_DARK_TICKS_REMAINING = SynchedEntityData.defineId(GlowSquid.class, EntityDataSerializers.INT); -+ private static final net.minecraft.network.syncher.EntityDataAccessor SQUID_COLOR = net.minecraft.network.syncher.SynchedEntityData.defineId(GlowSquid.class, net.minecraft.network.syncher.EntityDataSerializers.STRING); // Purpur - - public GlowSquid(EntityType type, Level world) { - super(type, world); -@@ -65,6 +66,7 @@ public class GlowSquid extends Squid { - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(DATA_DARK_TICKS_REMAINING, 0); -+ this.entityData.define(SQUID_COLOR, this.level().purpurConfig.glowSquidColorMode.getRandom(this.random).toString()); // Purpur - } - - @Override -@@ -91,12 +93,14 @@ public class GlowSquid extends Squid { - public void addAdditionalSaveData(CompoundTag nbt) { - super.addAdditionalSaveData(nbt); - nbt.putInt("DarkTicksRemaining", this.getDarkTicksRemaining()); -+ nbt.putString("Colour", this.entityData.get(SQUID_COLOR)); // Purpur - key must match rainglow - } - - @Override - public void readAdditionalSaveData(CompoundTag nbt) { - super.readAdditionalSaveData(nbt); - this.setDarkTicks(nbt.getInt("DarkTicksRemaining")); -+ if (nbt.contains("Colour")) this.entityData.set(SQUID_COLOR, nbt.getString("Colour")); // Purpur - key must match rainglow - } - - @Override -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c25cd12a5a6de130a85f6da43cd8f7e75b827e45..1b60a83873d999af6c8eecd4cc130a9c1a7290c2 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1681,6 +1681,7 @@ public class PurpurWorldConfig { - public boolean glowSquidsCanFly = false; - public boolean glowSquidTakeDamageFromWater = false; - public boolean glowSquidAlwaysDropExp = false; -+ public GlowSquidColor.Mode glowSquidColorMode = GlowSquidColor.Mode.RAINBOW; - private void glowSquidSettings() { - glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); - glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); -@@ -1688,6 +1689,7 @@ public class PurpurWorldConfig { - glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly); - glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater); - glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp); -+ glowSquidColorMode = GlowSquidColor.Mode.get(getString("mobs.glow_squid.rainglow-mode", glowSquidColorMode.toString())); - } - - public boolean goatRidable = false; -diff --git a/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java b/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java -new file mode 100644 -index 0000000000000000000000000000000000000000..c90256f4c16ffdb2d8e767e837ea36ac7a6613be ---- /dev/null -+++ b/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java -@@ -0,0 +1,61 @@ -+package org.purpurmc.purpur.entity; -+ -+import net.minecraft.util.RandomSource; -+ -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; -+import java.util.List; -+import java.util.Locale; -+import java.util.Map; -+ -+public enum GlowSquidColor { -+ BLUE, RED, GREEN, PINK, YELLOW, ORANGE, INDIGO, PURPLE, WHITE, GRAY, BLACK; -+ -+ @Override -+ public String toString() { -+ return this.name().toLowerCase(Locale.ROOT); -+ } -+ -+ public enum Mode { -+ RAINBOW(RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, PURPLE), -+ ALL_COLORS(BLUE, RED, GREEN, PINK, YELLOW, ORANGE, INDIGO, PURPLE, WHITE, GRAY, BLACK), -+ TRANS_PRIDE(BLUE, WHITE, PINK), -+ LESBIAN_PRIDE(RED, ORANGE, WHITE, PINK, PURPLE), -+ BI_PRIDE(BLUE, PINK, PURPLE), -+ GAY_PRIDE(BLUE, GREEN, WHITE), -+ PAN_PRIDE(PINK, YELLOW, BLUE), -+ ACE_PRIDE(BLACK, GRAY, WHITE, PURPLE), -+ ARO_PRIDE(BLACK, GRAY, WHITE, GREEN), -+ ENBY_PRIDE(YELLOW, WHITE, BLACK, PURPLE), -+ GENDERFLUID(PURPLE, WHITE, BLACK, PINK, BLUE), -+ MONOCHROME(BLACK, GRAY, WHITE), -+ VANILLA(BLUE); -+ -+ private static final Map BY_NAME = new HashMap<>(); -+ -+ static { -+ Arrays.stream(values()).forEach(mode -> BY_NAME.put(mode.name(), mode)); -+ } -+ -+ private final List colors = new ArrayList<>(); -+ -+ Mode(GlowSquidColor... colors) { -+ this.colors.addAll(Arrays.stream(colors).toList()); -+ } -+ -+ public static Mode get(String string) { -+ Mode mode = BY_NAME.get(string.toUpperCase(Locale.ROOT)); -+ return mode == null ? RAINBOW : mode; -+ } -+ -+ public GlowSquidColor getRandom(RandomSource random) { -+ return this.colors.get(random.nextInt(this.colors.size())); -+ } -+ -+ @Override -+ public String toString() { -+ return this.name().toLowerCase(Locale.ROOT); -+ } -+ } -+} diff --git a/patches/server/0286-Configurable-block-blast-resistance.patch b/patches/server/0285-Configurable-block-blast-resistance.patch similarity index 100% rename from patches/server/0286-Configurable-block-blast-resistance.patch rename to patches/server/0285-Configurable-block-blast-resistance.patch diff --git a/patches/server/0287-Configurable-block-fall-damage-modifiers.patch b/patches/server/0286-Configurable-block-fall-damage-modifiers.patch similarity index 100% rename from patches/server/0287-Configurable-block-fall-damage-modifiers.patch rename to patches/server/0286-Configurable-block-fall-damage-modifiers.patch diff --git a/patches/server/0288-Language-API.patch b/patches/server/0287-Language-API.patch similarity index 100% rename from patches/server/0288-Language-API.patch rename to patches/server/0287-Language-API.patch diff --git a/patches/server/0289-Milk-Keeps-Beneficial-Effects.patch b/patches/server/0288-Milk-Keeps-Beneficial-Effects.patch similarity index 93% rename from patches/server/0289-Milk-Keeps-Beneficial-Effects.patch rename to patches/server/0288-Milk-Keeps-Beneficial-Effects.patch index 7ed553a83..2b6b72913 100644 --- a/patches/server/0289-Milk-Keeps-Beneficial-Effects.patch +++ b/patches/server/0288-Milk-Keeps-Beneficial-Effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Milk Keeps Beneficial Effects diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5427fb8c2f5a53a8d293fb4c36f6620ca0205e38..ba975b2fae383863ec731211f99d66731fa922c5 100644 +index f8b920d7b7afff39a62c8a8a08512a7c59a23687..0bd2d45e336a26b3831f16590b419ddb22f7fa57 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1125,6 +1125,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -30,10 +30,10 @@ index 7fa248b2d1b73e20085f0d3cdfead38547e4e924..ecfb5d8b47c461ae661149f1c7b9bace 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 1b60a83873d999af6c8eecd4cc130a9c1a7290c2..c7470db94eb338466c7a822cfcc332e608435015 100644 +index dc38b8d07eed1ed8801997786e21328959810988..c3f57a671614cd209c2b8193fbf4215baef67f70 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 { +@@ -129,6 +129,7 @@ public class PurpurWorldConfig { public boolean fireballsBypassMobGriefing = false; public boolean imposeTeleportRestrictionsOnGateways = false; public boolean milkCuresBadOmen = true; @@ -41,7 +41,7 @@ index 1b60a83873d999af6c8eecd4cc130a9c1a7290c2..c7470db94eb338466c7a822cfcc332e6 public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = true; public boolean persistentTileEntityDisplayNames = false; -@@ -156,6 +157,7 @@ public class PurpurWorldConfig { +@@ -155,6 +156,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/0290-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch b/patches/server/0289-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch similarity index 100% rename from patches/server/0290-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch rename to patches/server/0289-MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch diff --git a/patches/server/0291-Add-log-suppression-for-LibraryLoader.patch b/patches/server/0290-Add-log-suppression-for-LibraryLoader.patch similarity index 100% rename from patches/server/0291-Add-log-suppression-for-LibraryLoader.patch rename to patches/server/0290-Add-log-suppression-for-LibraryLoader.patch diff --git a/patches/server/0292-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0291-Add-option-to-allow-creeper-to-encircle-target-when-.patch similarity index 92% rename from patches/server/0292-Add-option-to-allow-creeper-to-encircle-target-when-.patch rename to patches/server/0291-Add-option-to-allow-creeper-to-encircle-target-when-.patch index 74fa07942..5f4d2da69 100644 --- a/patches/server/0292-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0291-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 c7470db94eb338466c7a822cfcc332e608435015..b9b405c05c74d59ae4e1a537ff51a66be8a5462a 100644 +index c3f57a671614cd209c2b8193fbf4215baef67f70..f9036d744df44a0737967c2f14f3bc73c4aedf01 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1337,6 +1337,7 @@ public class PurpurWorldConfig { +@@ -1336,6 +1336,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index c7470db94eb338466c7a822cfcc332e608435015..b9b405c05c74d59ae4e1a537ff51a66b private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1355,6 +1356,7 @@ public class PurpurWorldConfig { +@@ -1354,6 +1355,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/0293-Fire-Immunity-API.patch b/patches/server/0292-Fire-Immunity-API.patch similarity index 100% rename from patches/server/0293-Fire-Immunity-API.patch rename to patches/server/0292-Fire-Immunity-API.patch diff --git a/patches/server/0294-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch b/patches/server/0293-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch similarity index 93% rename from patches/server/0294-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch rename to patches/server/0293-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch index 362267f78..2ac1b3282 100644 --- a/patches/server/0294-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch +++ b/patches/server/0293-Add-option-to-teleport-to-spawn-on-nether-ceiling-da.patch @@ -17,10 +17,10 @@ index f7561986a7cd2f8b66834b9bb57db12d111b6556..32ec30d916380d2f9cfde35a2406cc3b } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b9b405c05c74d59ae4e1a537ff51a66be8a5462a..35c6802aa0bc025fa3ef2002b32a70c7eef3c384 100644 +index f9036d744df44a0737967c2f14f3bc73c4aedf01..7e72e7550764b46a4ecd1690912036d2de7b8170 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -421,6 +421,7 @@ public class PurpurWorldConfig { +@@ -420,6 +420,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -28,7 +28,7 @@ index b9b405c05c74d59ae4e1a537ff51a66be8a5462a..35c6802aa0bc025fa3ef2002b32a70c7 public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; -@@ -452,6 +453,7 @@ public class PurpurWorldConfig { +@@ -451,6 +452,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/0295-Added-got-ram-event.patch b/patches/server/0294-Added-got-ram-event.patch similarity index 100% rename from patches/server/0295-Added-got-ram-event.patch rename to patches/server/0294-Added-got-ram-event.patch diff --git a/patches/server/0296-Log-skipped-entity-s-position.patch b/patches/server/0295-Log-skipped-entity-s-position.patch similarity index 100% rename from patches/server/0296-Log-skipped-entity-s-position.patch rename to patches/server/0295-Log-skipped-entity-s-position.patch diff --git a/patches/server/0297-End-Crystal-Cramming.patch b/patches/server/0296-End-Crystal-Cramming.patch similarity index 91% rename from patches/server/0297-End-Crystal-Cramming.patch rename to patches/server/0296-End-Crystal-Cramming.patch index bf38e3ea5..6e96aff19 100644 --- a/patches/server/0297-End-Crystal-Cramming.patch +++ b/patches/server/0296-End-Crystal-Cramming.patch @@ -17,10 +17,10 @@ index ad0bf89f7aa3c71b683f8ade930a7b91df69b058..77ffceba328bb1d87ef755dd82b50d02 // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 35c6802aa0bc025fa3ef2002b32a70c7eef3c384..b9726f571eefcf18215187881a5370926b98afc4 100644 +index 7e72e7550764b46a4ecd1690912036d2de7b8170..d0067ae397b4d5af56a4fa25508281f76d5633c5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -859,6 +859,7 @@ public class PurpurWorldConfig { +@@ -858,6 +858,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 35c6802aa0bc025fa3ef2002b32a70c7eef3c384..b9726f571eefcf18215187881a537092 private void endCrystalSettings() { if (PurpurConfig.version < 31) { if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) { -@@ -886,6 +887,7 @@ public class PurpurWorldConfig { +@@ -885,6 +886,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/0298-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0297-Option-to-allow-beacon-effects-when-covered-by-tinte.patch similarity index 95% rename from patches/server/0298-Option-to-allow-beacon-effects-when-covered-by-tinte.patch rename to patches/server/0297-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index e3283a4e3..6d38cf63d 100644 --- a/patches/server/0298-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0297-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -36,10 +36,10 @@ index cc03c02f290ee8d58a2fea54b1f977f49a2cec6e..49a2308832b24dc1eb839af786dbec9f 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 b9726f571eefcf18215187881a5370926b98afc4..60803fe07d0ccd8b563e1bef72af4e0b87121fd5 100644 +index d0067ae397b4d5af56a4fa25508281f76d5633c5..09a3fdf469921fb218dbb1f7e213522a8d1235dc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -758,11 +758,13 @@ public class PurpurWorldConfig { +@@ -757,11 +757,13 @@ public class PurpurWorldConfig { public int beaconLevelTwo = 30; public int beaconLevelThree = 40; public int beaconLevelFour = 50; diff --git a/patches/server/0299-Add-attribute-clamping-and-armor-limit-config.patch b/patches/server/0298-Add-attribute-clamping-and-armor-limit-config.patch similarity index 100% rename from patches/server/0299-Add-attribute-clamping-and-armor-limit-config.patch rename to patches/server/0298-Add-attribute-clamping-and-armor-limit-config.patch diff --git a/patches/server/0300-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0299-Config-to-remove-explosion-radius-clamp.patch similarity index 95% rename from patches/server/0300-Config-to-remove-explosion-radius-clamp.patch rename to patches/server/0299-Config-to-remove-explosion-radius-clamp.patch index 0deecd18b..eddfceea3 100644 --- a/patches/server/0300-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0299-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 60803fe07d0ccd8b563e1bef72af4e0b87121fd5..ec8e54e3d1e98ba02733ece7d856d3fff39bdec3 100644 +index 09a3fdf469921fb218dbb1f7e213522a8d1235dc..1421d33d63d5e1071fa1d93384d12a113e0c8435 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -215,6 +215,11 @@ public class PurpurWorldConfig { +@@ -214,6 +214,11 @@ public class PurpurWorldConfig { entitySharedRandom = getBoolean("settings.entity.shared-random", entitySharedRandom); } diff --git a/patches/server/0301-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0300-bonemealable-sugarcane-cactus-and-netherwart.patch similarity index 98% rename from patches/server/0301-bonemealable-sugarcane-cactus-and-netherwart.patch rename to patches/server/0300-bonemealable-sugarcane-cactus-and-netherwart.patch index 62f777480..9a19b212f 100644 --- a/patches/server/0301-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0300-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 ec8e54e3d1e98ba02733ece7d856d3fff39bdec3..f8492b62492025a73622c930aced76ee515df366 100644 +index 1421d33d63d5e1071fa1d93384d12a113e0c8435..7bc07e3f0a353309bdbf1598a41fca97bd6342f4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -812,8 +812,20 @@ public class PurpurWorldConfig { +@@ -811,8 +811,20 @@ public class PurpurWorldConfig { } public boolean cactusBreaksFromSolidNeighbors = true; diff --git a/patches/server/0302-Add-PreExplodeEvents.patch b/patches/server/0301-Add-PreExplodeEvents.patch similarity index 100% rename from patches/server/0302-Add-PreExplodeEvents.patch rename to patches/server/0301-Add-PreExplodeEvents.patch diff --git a/patches/server/0303-Improve-output-of-plugins-command.patch b/patches/server/0302-Improve-output-of-plugins-command.patch similarity index 100% rename from patches/server/0303-Improve-output-of-plugins-command.patch rename to patches/server/0302-Improve-output-of-plugins-command.patch diff --git a/patches/server/0304-Add-mending-multiplier.patch b/patches/server/0303-Add-mending-multiplier.patch similarity index 91% rename from patches/server/0304-Add-mending-multiplier.patch rename to patches/server/0303-Add-mending-multiplier.patch index b34fdc9c9..af82a4b03 100644 --- a/patches/server/0304-Add-mending-multiplier.patch +++ b/patches/server/0303-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 f8492b62492025a73622c930aced76ee515df366..a0f42ab3ce426ceffa1b60233d6418ff53349682 100644 +index 7bc07e3f0a353309bdbf1598a41fca97bd6342f4..64527770986fb44cb2b569924b2f98c9570b25b2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -121,6 +121,7 @@ public class PurpurWorldConfig { +@@ -120,6 +120,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -38,7 +38,7 @@ index f8492b62492025a73622c930aced76ee515df366..a0f42ab3ce426ceffa1b60233d6418ff public boolean alwaysTameInCreative = false; public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = false; -@@ -148,6 +149,7 @@ public class PurpurWorldConfig { +@@ -147,6 +148,7 @@ public class PurpurWorldConfig { public int mobLastHurtByPlayerTime = 100; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0305-Make-GUI-Great-Again.patch b/patches/server/0304-Make-GUI-Great-Again.patch similarity index 100% rename from patches/server/0305-Make-GUI-Great-Again.patch rename to patches/server/0304-Make-GUI-Great-Again.patch