From 3316c894deb3a9e3cb5e21c16cf914654c7b15f6 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Tue, 19 Jul 2022 23:42:56 -0400 Subject: [PATCH] Add config toggle to arrow despawn reset patch --- ...ows-should-not-reset-despawn-counter.patch | 20 +- ...re-add-farmland-mechanics-from-Alpha.patch | 4 +- ...justable-breeding-cooldown-to-config.patch | 6 +- ...e-entity-breeding-times-configurable.patch | 98 +++--- ...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 +- ...115-Add-configurable-snowball-damage.patch | 4 +- ...16-Changeable-Mob-Left-Handed-Chance.patch | 4 +- .../0117-Add-boat-fall-damage-config.patch | 8 +- .../0118-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 +- ...24-Configurable-default-collar-color.patch | 10 +- .../server/0125-Phantom-flames-on-swoop.patch | 6 +- ...s-to-open-even-with-a-solid-block-on.patch | 4 +- .../0128-Striders-give-saddle-back.patch | 6 +- ...therite-armor-grants-fire-resistance.patch | 4 +- ...iefing-bypass-to-everything-affected.patch | 76 ++--- ...allow-Note-Block-sounds-when-blocked.patch | 6 +- ...0134-Add-EntityTeleportHinderedEvent.patch | 6 +- .../0135-Farmland-trampling-changes.patch | 4 +- ...36-Movement-options-for-armor-stands.patch | 6 +- .../server/0137-Fix-stuck-in-portals.patch | 10 +- ...oggle-for-water-sensitive-mob-damage.patch | 268 ++++++++--------- ...39-Config-to-always-tame-in-Creative.patch | 6 +- .../0140-End-crystal-explosion-options.patch | 4 +- ...ither-Ender-Dragon-can-ride-vehicles.patch | 10 +- .../server/0142-Dont-run-with-scissors.patch | 10 +- patches/server/0143-One-Punch-Man.patch | 8 +- ...er-Pearl-cooldown-damage-and-Endermi.patch | 6 +- ...-to-ignore-nearby-mobs-when-sleeping.patch | 8 +- ...an-aggressiveness-towards-Endermites.patch | 6 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +- patches/server/0149-Tick-fluids-config.patch | 6 +- ...150-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 6 +- ...urable-ravager-griefable-blocks-list.patch | 6 +- ...0153-Sneak-to-bulk-process-composter.patch | 6 +- .../0154-Config-for-skipping-night.patch | 8 +- ...0155-Add-config-for-villager-trading.patch | 10 +- patches/server/0157-Drowning-Settings.patch | 6 +- ...Break-individual-slabs-when-sneaking.patch | 6 +- ...-to-disable-hostile-mob-spawn-on-ice.patch | 4 +- ...ig-to-show-Armor-Stand-arms-on-spawn.patch | 4 +- ...ption-to-make-doors-require-redstone.patch | 4 +- .../0163-Configurable-sponge-absorption.patch | 4 +- .../0164-Projectile-offset-config.patch | 4 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0166-Piglin-portal-spawn-modifier.patch | 6 +- ...8-Config-for-wither-explosion-radius.patch | 6 +- ...ing-the-blocks-that-turn-into-dirt-p.patch | 4 +- .../0171-Configurable-piston-push-limit.patch | 4 +- .../0173-Configurable-mob-blindness.patch | 8 +- ...h-to-impact-Creeper-explosion-radius.patch | 6 +- .../0176-Iron-golem-calm-anger-options.patch | 6 +- patches/server/0177-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 +- ...83-ShulkerBox-allow-oversized-stacks.patch | 6 +- ...ee-can-work-when-raining-or-at-night.patch | 8 +- .../0186-Config-MobEffect-by-world.patch | 4 +- ...Beacon-Activation-Range-Configurable.patch | 4 +- .../0188-Add-toggle-for-sand-duping-fix.patch | 4 +- ...ggle-for-end-portal-safe-teleporting.patch | 6 +- ...ing-food-fills-hunger-bar-completely.patch | 6 +- ...95-Shulker-spawn-from-bullet-options.patch | 6 +- ...Eating-glow-berries-adds-glow-effect.patch | 6 +- ...7-Option-to-make-drowned-break-doors.patch | 6 +- ...onfigurable-hunger-starvation-damage.patch | 4 +- .../0200-Armor-click-equip-options.patch | 8 +- .../server/0203-Tool-actionable-options.patch | 4 +- ...e-shulker-box-items-from-dropping-co.patch | 6 +- ...0208-Silk-touchable-budding-amethyst.patch | 6 +- .../server/0209-Big-dripleaf-tilt-delay.patch | 4 +- .../0210-Player-ridable-in-water-option.patch | 6 +- ...e-Enderman-teleport-on-projectile-hi.patch | 6 +- patches/server/0212-Add-compass-command.patch | 10 +- ...ent-horses-from-standing-with-riders.patch | 6 +- .../0214-Toggle-for-kinetic-damage.patch | 6 +- ...d-Option-for-disable-observer-clocks.patch | 6 +- ...izeable-Zombie-Villager-curing-times.patch | 8 +- ...7-Option-for-sponges-to-work-on-lava.patch | 4 +- ...0218-Toggle-for-Wither-s-spawn-sound.patch | 6 +- ...s-breaks-from-solid-neighbors-config.patch | 4 +- ...emove-curse-of-binding-with-weakness.patch | 6 +- .../0221-Conduit-behavior-configuration.patch | 4 +- .../server/0222-Cauldron-fill-chances.patch | 4 +- ...to-allow-mobs-to-pathfind-over-rails.patch | 6 +- .../0224-Shulker-change-color-with-dye.patch | 6 +- ...ain-and-thunder-should-stop-on-sleep.patch | 8 +- ...a-blocks-to-grow-into-trees-naturall.patch | 6 +- ...t-right-click-to-use-exp-for-mending.patch | 10 +- ...turally-aggressive-to-players-chance.patch | 8 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...or-beds-to-explode-on-villager-sleep.patch | 4 +- ...-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 | 8 +- ...ent-BlockEntity-Lore-and-DisplayName.patch | 6 +- .../server/0240-Signs-allow-color-codes.patch | 8 +- ...-twisting-vines-configurable-max-gro.patch | 12 +- .../0242-Mobs-always-drop-experience.patch | 284 +++++++++--------- ...t-spiders-from-climbing-world-border.patch | 8 +- ...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 +- .../0249-Mob-head-visibility-percent.patch | 16 +- ...-Stop-bees-from-dying-after-stinging.patch | 8 +- ...Configurable-farmland-trample-height.patch | 6 +- ...Configurable-player-pickup-exp-delay.patch | 6 +- patches/server/0256-Allow-void-trading.patch | 6 +- .../0258-Configurable-phantom-size.patch | 6 +- ...nfigurable-minimum-demand-for-trades.patch | 6 +- .../0262-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 | 8 +- .../0267-Anvil-repair-damage-options.patch | 4 +- ...e-turtle-egg-trampling-with-feather-.patch | 4 +- ...event-horses-from-standing-when-hurt.patch | 6 +- ...urable-search-radius-for-villagers-t.patch | 6 +- patches/server/0274-Stonecutter-damage.patch | 6 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...0276-Add-config-for-snow-on-blue-ice.patch | 4 +- .../0278-Skeletons-eat-wither-roses.patch | 6 +- ...279-Enchantment-Table-Persists-Lapis.patch | 4 +- ...-for-sculk-shrieker-can_summon-state.patch | 4 +- .../0283-Config-to-not-let-coral-die.patch | 4 +- ...0285-Add-toggle-for-RNG-manipulation.patch | 6 +- 133 files changed, 765 insertions(+), 749 deletions(-) diff --git a/patches/server/0108-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0108-Arrows-should-not-reset-despawn-counter.patch index 2a99556f3..6b02b4b9b 100644 --- a/patches/server/0108-Arrows-should-not-reset-despawn-counter.patch +++ b/patches/server/0108-Arrows-should-not-reset-despawn-counter.patch @@ -7,7 +7,7 @@ This prevents keeping arrows alive indefinitely (such as when the block the arrow is stuck in gets removed, like a piston head going up/down) diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 63662eb3b3e4a79aea506df671721a83528340b9..8d0b4bf233b228f424cc8493c691b1dfe5c37ce9 100644 +index bc01e5014e1355a225bdf5c47f2965290b45e2d2..e292589e015c6691be65285b041f5b4f0d0afeb1 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -322,7 +322,7 @@ public abstract class AbstractArrow extends Projectile { @@ -15,7 +15,23 @@ index 63662eb3b3e4a79aea506df671721a83528340b9..8d0b4bf233b228f424cc8493c691b1df this.setDeltaMovement(vec3d.multiply((double) (this.random.nextFloat() * 0.2F), (double) (this.random.nextFloat() * 0.2F), (double) (this.random.nextFloat() * 0.2F))); - this.life = 0; -+ // this.life = 0; // Purpur - do not reset despawn counter ++ if (this.level.purpurConfig.arrowMovementResetsDespawnCounter) this.life = 0; // Purpur - do not reset despawn counter } @Override +diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +index fb7a51aa77a90b2a2dc57c4795d0ccfb160837e4..9eb4ddafed9629193417afaf867686fb0c738399 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 { + armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); + } + ++ public boolean arrowMovementResetsDespawnCounter = true; ++ private void arrowSettings() { ++ arrowMovementResetsDespawnCounter = getBoolean("gameplay-mechanics.arrow.movement-resets-despawn-counter", arrowMovementResetsDespawnCounter); ++ } ++ + public boolean useBetterMending = false; + public boolean boatEjectPlayersOnLand = false; + public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index 2a4029465..9e16ba184 100644 --- a/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 4208833252a5b5c74d294dc3435869d71d774e37..a3ff99c461dd862733816d9d1204cf8b return; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4f466edede5d344baeda141fa0dc5f68669c67a5..383a6f1e7b54ea8c7e4ecf9098434df33ccd2e3e 100644 +index 9eb4ddafed9629193417afaf867686fb0c738399..c7d009d628e541e2ff9b35d339c14bc997f99c76 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -404,8 +404,10 @@ public class PurpurWorldConfig { +@@ -409,8 +409,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch index ba517de08..37cacb72a 100644 --- a/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch @@ -95,10 +95,10 @@ index 765653976492ff63b325f0538b2fdd579a9e0019..0dab4ef279f7e9af64290395b4af205b 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 49ef8cad1050ed7fd82997ec67f94a4c7f34fb39..d45805285e2e24744cb8c44e38968e0c08d3aa13 100644 +index c7d009d628e541e2ff9b35d339c14bc997f99c76..c938383d719b641c537279c790a3096091a7d601 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -112,6 +112,7 @@ public class PurpurWorldConfig { +@@ -117,6 +117,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -106,7 +106,7 @@ index 49ef8cad1050ed7fd82997ec67f94a4c7f34fb39..d45805285e2e24744cb8c44e38968e0c private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -122,6 +123,7 @@ public class PurpurWorldConfig { +@@ -127,6 +128,7 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); diff --git a/patches/server/0111-Make-entity-breeding-times-configurable.patch b/patches/server/0111-Make-entity-breeding-times-configurable.patch index cef1f1d15..22f84cbb6 100644 --- a/patches/server/0111-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0111-Make-entity-breeding-times-configurable.patch @@ -47,7 +47,7 @@ index 34e82b97c5b294f0a6423581220403a10264da8b..a0c3a27a90e0788b573f0776c25cfc6e other.resetLove(); world.addFreshEntityWithPassengers(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 0fb1aa7bfbadc5e2df34391a4c9f0d045d576740..f9ae9bf91026adcb205302e0f902dda44febb744 100644 +index fe3426dba86537bc7ce5434ea26c570b56e63670..eaff4f966b4d82749df9e96246c078301fd4801b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -219,6 +219,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -111,7 +111,7 @@ index 732c560383da3b8a270139758f29734d73b775be..b063a74327e51b3cd27427426b92ef68 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index f03bd9a9129f0d45d36ef56a726d513a8cc088e5..aa18947d3822a1093985799e87ad6c2b28f51eb1 100644 +index a708a9d855fd32c0eb659b44d91a5a1a33312cc7..b2c901ed90fbf0ab79848d11f50d6f7a0b24bd6f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -183,6 +183,11 @@ public class Fox extends Animal { @@ -316,7 +316,7 @@ index a80a7d460051a39fe805ae669b4586fb42e46943..6d444248b9e283e31d5777d450a52643 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index c88222d120c71649b2e43a20f119590106734596..0a559e061b332508cba2d97c55d9f309c118f473 100644 +index 976bdba9da2a744dc887a70c396b4042ec1548fa..8210aa958b8bc7d36f2959d261a750c444017fec 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -140,6 +140,10 @@ public class Frog extends Animal { @@ -331,7 +331,7 @@ index c88222d120c71649b2e43a20f119590106734596..0a559e061b332508cba2d97c55d9f309 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index aa2abe00478b002fc90166441d8b89c7046ed022..47c08d7f3e30aa335fb7c43179679b6ae9f23952 100644 +index 77be0c6f6e6061ceee1daa467c20c8d7ece7590e..59caabbe84a24ea47796ae71130961dff146a76f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -109,6 +109,11 @@ public class Goat extends Animal { @@ -491,10 +491,10 @@ index e99ffbf30652e188e88f8e17ed41d39ff25c9f73..c335a32832c6eef95658fbf632b943bb @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe1574907d 100644 +index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b315c5b929 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -497,10 +497,12 @@ public class PurpurWorldConfig { +@@ -502,10 +502,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -507,7 +507,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean batRidable = false; -@@ -533,6 +535,7 @@ public class PurpurWorldConfig { +@@ -538,6 +540,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -515,7 +515,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -544,6 +547,7 @@ public class PurpurWorldConfig { +@@ -549,6 +552,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -523,7 +523,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean blazeRidable = false; -@@ -571,6 +575,7 @@ public class PurpurWorldConfig { +@@ -576,6 +580,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -531,7 +531,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -584,6 +589,7 @@ public class PurpurWorldConfig { +@@ -589,6 +594,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); @@ -539,7 +539,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean caveSpiderRidable = false; -@@ -607,6 +613,7 @@ public class PurpurWorldConfig { +@@ -612,6 +618,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -547,7 +547,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -618,6 +625,7 @@ public class PurpurWorldConfig { +@@ -623,6 +630,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -555,7 +555,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean codRidable = false; -@@ -639,6 +647,7 @@ public class PurpurWorldConfig { +@@ -644,6 +652,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -563,7 +563,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -650,6 +659,7 @@ public class PurpurWorldConfig { +@@ -655,6 +664,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -571,7 +571,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean creeperRidable = false; -@@ -701,6 +711,7 @@ public class PurpurWorldConfig { +@@ -706,6 +716,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -579,7 +579,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -716,6 +727,7 @@ public class PurpurWorldConfig { +@@ -721,6 +732,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); @@ -587,7 +587,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean drownedRidable = false; -@@ -835,6 +847,7 @@ public class PurpurWorldConfig { +@@ -840,6 +852,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -595,7 +595,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -846,17 +859,20 @@ public class PurpurWorldConfig { +@@ -851,17 +864,20 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -616,7 +616,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean ghastRidable = false; -@@ -924,11 +940,13 @@ public class PurpurWorldConfig { +@@ -929,11 +945,13 @@ public class PurpurWorldConfig { public boolean goatRidableInWater = false; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; @@ -630,7 +630,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean guardianRidable = false; -@@ -949,6 +967,7 @@ public class PurpurWorldConfig { +@@ -954,6 +972,7 @@ public class PurpurWorldConfig { public boolean hoglinRidableInWater = false; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; @@ -638,7 +638,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -959,6 +978,7 @@ public class PurpurWorldConfig { +@@ -964,6 +983,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -646,7 +646,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean horseRidableInWater = false; -@@ -968,6 +988,7 @@ public class PurpurWorldConfig { +@@ -973,6 +993,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -654,7 +654,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -983,6 +1004,7 @@ public class PurpurWorldConfig { +@@ -988,6 +1009,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); @@ -662,7 +662,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean huskRidable = false; -@@ -1060,6 +1082,7 @@ public class PurpurWorldConfig { +@@ -1065,6 +1087,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -670,7 +670,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1077,6 +1100,7 @@ public class PurpurWorldConfig { +@@ -1082,6 +1105,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); @@ -678,7 +678,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean magmaCubeRidable = false; -@@ -1105,6 +1129,7 @@ public class PurpurWorldConfig { +@@ -1110,6 +1134,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidableInWater = false; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; @@ -686,7 +686,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1115,6 +1140,7 @@ public class PurpurWorldConfig { +@@ -1120,6 +1145,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -694,7 +694,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean muleRidableInWater = false; -@@ -1124,6 +1150,7 @@ public class PurpurWorldConfig { +@@ -1129,6 +1155,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -702,7 +702,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1139,12 +1166,14 @@ public class PurpurWorldConfig { +@@ -1144,12 +1171,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); @@ -717,7 +717,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1155,12 +1184,14 @@ public class PurpurWorldConfig { +@@ -1160,12 +1189,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -732,7 +732,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1171,6 +1202,7 @@ public class PurpurWorldConfig { +@@ -1176,6 +1207,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -740,7 +740,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean parrotRidable = false; -@@ -1266,6 +1298,7 @@ public class PurpurWorldConfig { +@@ -1271,6 +1303,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -748,7 +748,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1277,6 +1310,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1315,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -756,7 +756,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean piglinRidable = false; -@@ -1333,6 +1367,7 @@ public class PurpurWorldConfig { +@@ -1338,6 +1372,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -764,7 +764,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1346,6 +1381,7 @@ public class PurpurWorldConfig { +@@ -1351,6 +1386,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -772,7 +772,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean pufferfishRidable = false; -@@ -1368,6 +1404,7 @@ public class PurpurWorldConfig { +@@ -1373,6 +1409,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -780,7 +780,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1380,6 +1417,7 @@ public class PurpurWorldConfig { +@@ -1385,6 +1422,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); @@ -788,7 +788,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean ravagerRidable = false; -@@ -1416,6 +1454,7 @@ public class PurpurWorldConfig { +@@ -1421,6 +1459,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; @@ -796,7 +796,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1426,6 +1465,7 @@ public class PurpurWorldConfig { +@@ -1431,6 +1470,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -804,7 +804,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean shulkerRidable = false; -@@ -1601,6 +1641,7 @@ public class PurpurWorldConfig { +@@ -1606,6 +1646,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -812,7 +812,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1611,6 +1652,7 @@ public class PurpurWorldConfig { +@@ -1616,6 +1657,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -820,7 +820,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean tadpoleRidable = false; -@@ -1631,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1678,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -828,7 +828,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1648,6 +1691,7 @@ public class PurpurWorldConfig { +@@ -1653,6 +1696,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); @@ -836,7 +836,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean tropicalFishRidable = false; -@@ -1668,6 +1712,7 @@ public class PurpurWorldConfig { +@@ -1673,6 +1717,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = false; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -844,7 +844,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1678,6 +1723,7 @@ public class PurpurWorldConfig { +@@ -1683,6 +1728,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -852,7 +852,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean vexRidable = false; -@@ -1707,6 +1753,7 @@ public class PurpurWorldConfig { +@@ -1712,6 +1758,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -860,7 +860,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1722,6 +1769,7 @@ public class PurpurWorldConfig { +@@ -1727,6 +1774,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); @@ -868,7 +868,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe } public boolean vindicatorRidable = false; -@@ -1833,6 +1881,7 @@ public class PurpurWorldConfig { +@@ -1838,6 +1886,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -876,7 +876,7 @@ index 101c8ea510343c9f5c4742721a5622190d17358b..2d5c235b27417b02a1bf3da6a95277fe private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1843,6 +1892,7 @@ public class PurpurWorldConfig { +@@ -1848,6 +1897,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch index dd0e38d2e..1dbe2f056 100644 --- a/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -63,7 +63,7 @@ index 18697701ca6406b2a74f190b22d5b276359547d0..ee72748a8c07587c95bdce8f982fcdd7 } diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index c9ce0f1f798ee73e985798e7e7271aa51e405d05..a933a135e40097f88c22342159a13a4f500f0a8f 100644 +index 539c9d60cecb63fb2b0858951ff58cc0ea26c446..ed260c5f8cdf9027ad95c81cb84bb91879647836 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java @@ -220,7 +220,13 @@ public class Boat extends Entity { @@ -142,7 +142,7 @@ index 4c5671cd4c26c23e61b2196577c554f504a03c55..678e0cb7e5b704ce01eda96b2d74694d 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 2d5c235b27417b02a1bf3da6a95277fe1574907d..b5aa728d4e10cd37a268234c9fd7acdcb0e57956 100644 +index 834dd3b5244c1f0f0ab0b6b85fd692b315c5b929..1966cdca08f38f440b033a20c4ecb4c3e79d7482 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 { @@ -155,8 +155,8 @@ index 2d5c235b27417b02a1bf3da6a95277fe1574907d..b5aa728d4e10cd37a268234c9fd7acdc + armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); } - public boolean useBetterMending = false; -@@ -108,6 +110,7 @@ public class PurpurWorldConfig { + public boolean arrowMovementResetsDespawnCounter = true; +@@ -113,6 +115,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -164,7 +164,7 @@ index 2d5c235b27417b02a1bf3da6a95277fe1574907d..b5aa728d4e10cd37a268234c9fd7acdc public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -119,6 +122,7 @@ public class PurpurWorldConfig { +@@ -124,6 +127,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 7da571083..5483792a1 100644 --- a/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -17,7 +17,7 @@ index 623f78c078fb3aa2665d7e8a37672438227bce6b..500c69e555c7247e20ef8cc59d834155 ((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 b5aa728d4e10cd37a268234c9fd7acdcb0e57956..3feffa81d9336c0c625934953522618007143d62 100644 +index 1966cdca08f38f440b033a20c4ecb4c3e79d7482..9c9c526dad5eb2552e458b3f3ad390bed55ff34b 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 { @@ -31,4 +31,4 @@ index b5aa728d4e10cd37a268234c9fd7acdcb0e57956..3feffa81d9336c0c6259349535226180 + armorstandFixNametags = getBoolean("gameplay-mechanics.armorstand.fix-nametags", armorstandFixNametags); } - public boolean useBetterMending = false; + public boolean arrowMovementResetsDespawnCounter = true; diff --git a/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 7f3c67078..f186225d8 100644 --- a/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 9458cab33d4ff468d3d009cc1c3b3736f21f649b..4443a4a300d17e8568a81bcb9af89251 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 3feffa81d9336c0c625934953522618007143d62..61e6085089b1e7d181303663a2dfd0477f1972b9 100644 +index 9c9c526dad5eb2552e458b3f3ad390bed55ff34b..7db751ad178e01f692452e0201c03891ce6eb299 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -803,6 +803,7 @@ public class PurpurWorldConfig { +@@ -808,6 +808,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 3feffa81d9336c0c625934953522618007143d62..61e6085089b1e7d181303663a2dfd047 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -814,6 +815,7 @@ public class PurpurWorldConfig { +@@ -819,6 +820,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0115-Add-configurable-snowball-damage.patch b/patches/server/0115-Add-configurable-snowball-damage.patch index 4d8d8bd2b..791fbe562 100644 --- a/patches/server/0115-Add-configurable-snowball-damage.patch +++ b/patches/server/0115-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index a725851060f13e734dbd2fbf8c83c9e1af57a8b7..74f798baafc53cd7dd1d4f58bc9a3581 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 61e6085089b1e7d181303663a2dfd0477f1972b9..dfccdbbaa1bb6f3716c18e90f5464b42623e4fe4 100644 +index 7db751ad178e01f692452e0201c03891ce6eb299..0670df9d9ad1b62af6f2e14732cbe8da03fc78b9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -351,6 +351,11 @@ public class PurpurWorldConfig { +@@ -356,6 +356,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch index 10d904bd4..25dfe8f08 100644 --- a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch @@ -18,10 +18,10 @@ index fe97b5b327af1189b166243c42be99892226cd9e..5a907375d1497229d3b566b30c34248e } 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 dfccdbbaa1bb6f3716c18e90f5464b42623e4fe4..2375db9b994ffbd7371e92731bdb31095d40f9f5 100644 +index 0670df9d9ad1b62af6f2e14732cbe8da03fc78b9..878c970e22cc983f21cd6c245993cac1aac09d18 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -153,8 +153,10 @@ public class PurpurWorldConfig { +@@ -158,8 +158,10 @@ public class PurpurWorldConfig { } public int entityLifeSpan = 0; diff --git a/patches/server/0117-Add-boat-fall-damage-config.patch b/patches/server/0117-Add-boat-fall-damage-config.patch index 5bf43088d..e1aa095de 100644 --- a/patches/server/0117-Add-boat-fall-damage-config.patch +++ b/patches/server/0117-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8e5aa1666ca929780670ce513d969973a513e21e..fe2d7acece87d5b825f3f3668c11c0efc877439b 100644 +index 63b04bf9fc97554c309b8caac5cb942b9483208d..e9177d815c99450007ddfc9de59cebaa3ae74688 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1032,7 +1032,16 @@ public class ServerPlayer extends Player { @@ -27,10 +27,10 @@ index 8e5aa1666ca929780670ce513d969973a513e21e..fe2d7acece87d5b825f3f3668c11c0ef if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2375db9b994ffbd7371e92731bdb31095d40f9f5..e23ff0ebd09937fcf7c32c2157717c8dff7727d7 100644 +index 878c970e22cc983f21cd6c245993cac1aac09d18..aab918a7d16977d11c7bc2b4befea5d306d2eeb1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -109,6 +109,7 @@ public class PurpurWorldConfig { +@@ -114,6 +114,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 2375db9b994ffbd7371e92731bdb31095d40f9f5..e23ff0ebd09937fcf7c32c2157717c8d public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -121,6 +122,7 @@ public class PurpurWorldConfig { +@@ -126,6 +127,7 @@ public class PurpurWorldConfig { private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); diff --git a/patches/server/0118-Snow-Golem-rate-of-fire-config.patch b/patches/server/0118-Snow-Golem-rate-of-fire-config.patch index 1c61ae4dd..12855ff23 100644 --- a/patches/server/0118-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0118-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index b4459d68397cc5bac4f7ef79a2dfb18f3eb24f77..b9025929fcc89e72aa820953b91a6542 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 e23ff0ebd09937fcf7c32c2157717c8dff7727d7..8b3e3f49b69591c06657b99fc8f83c5d2f851989 100644 +index aab918a7d16977d11c7bc2b4befea5d306d2eeb1..55410b4879ce9463d17bbe832058c3526591d1d5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1587,6 +1587,10 @@ public class PurpurWorldConfig { +@@ -1592,6 +1592,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index e23ff0ebd09937fcf7c32c2157717c8dff7727d7..8b3e3f49b69591c06657b99fc8f83c5d private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1600,6 +1604,10 @@ public class PurpurWorldConfig { +@@ -1605,6 +1609,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/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index bb097674b..4bf1f3874 100644 --- a/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -181,10 +181,10 @@ index b1f20cb356e6b4e89fdddf4e48f2fd932bdb5170..352a7df156c638684a12a864eb5a9d06 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 8b3e3f49b69591c06657b99fc8f83c5d2f851989..9046711e7b68567792962dc80f577253e0c8a9c4 100644 +index 55410b4879ce9463d17bbe832058c3526591d1d5..f49fed8ea48fd12c9958f327d080320d4bc63c7d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1779,6 +1779,8 @@ public class PurpurWorldConfig { +@@ -1784,6 +1784,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index 8b3e3f49b69591c06657b99fc8f83c5d2f851989..9046711e7b68567792962dc80f577253 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1795,6 +1797,8 @@ public class PurpurWorldConfig { +@@ -1800,6 +1802,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/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index a778a461e..98428739f 100644 --- a/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 6c1dd723373f9b1b920548de85aeb6cef0120fa7..1f0003fb08a45af02e6d38e28fa548ab } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9046711e7b68567792962dc80f577253e0c8a9c4..77d5e5481db4a427bde6eca89fc9324f8692ea70 100644 +index f49fed8ea48fd12c9958f327d080320d4bc63c7d..e57795ebcc4128118108b3d4fa75f5f1c58fef1f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2025,6 +2025,7 @@ public class PurpurWorldConfig { +@@ -2030,6 +2030,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 9046711e7b68567792962dc80f577253e0c8a9c4..77d5e5481db4a427bde6eca89fc9324f private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2039,5 +2040,6 @@ public class PurpurWorldConfig { +@@ -2044,5 +2045,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/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch index 577a0b6b2..4ad15ac21 100644 --- a/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -222,10 +222,10 @@ index a3bec00368aef0f8cc6aa21cce1389938d15f91b..704667760ab1593647e3f03bdd17ad32 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 77d5e5481db4a427bde6eca89fc9324f8692ea70..e2a62c904424e80f955cff2706bef3688b10788e 100644 +index e57795ebcc4128118108b3d4fa75f5f1c58fef1f..500da626b279673fe1bdc4f485def10972d2f04b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1910,6 +1910,8 @@ public class PurpurWorldConfig { +@@ -1915,6 +1915,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index 77d5e5481db4a427bde6eca89fc9324f8692ea70..e2a62c904424e80f955cff2706bef368 public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1921,6 +1923,8 @@ public class PurpurWorldConfig { +@@ -1926,6 +1928,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0124-Configurable-default-collar-color.patch b/patches/server/0124-Configurable-default-collar-color.patch index 9b5fe4cf0..0d451ba9a 100644 --- a/patches/server/0124-Configurable-default-collar-color.patch +++ b/patches/server/0124-Configurable-default-collar-color.patch @@ -43,10 +43,10 @@ index f862d83db6127804b9254a33a73e6f186a1d1327..ffe8f80cfe3bec8fe79415015f529074 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e2a62c904424e80f955cff2706bef3688b10788e..5ebdba256037477332016336499074662f2badf0 100644 +index 500da626b279673fe1bdc4f485def10972d2f04b..8ac9551fb2c62f1ddbc3715ba1f1df3691981d78 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -591,6 +591,7 @@ public class PurpurWorldConfig { +@@ -596,6 +596,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index e2a62c904424e80f955cff2706bef3688b10788e..5ebdba25603747733201633649907466 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -605,6 +606,11 @@ public class PurpurWorldConfig { +@@ -610,6 +611,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 e2a62c904424e80f955cff2706bef3688b10788e..5ebdba25603747733201633649907466 } public boolean caveSpiderRidable = false; -@@ -1910,6 +1916,7 @@ public class PurpurWorldConfig { +@@ -1915,6 +1921,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index e2a62c904424e80f955cff2706bef3688b10788e..5ebdba25603747733201633649907466 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1923,6 +1930,11 @@ public class PurpurWorldConfig { +@@ -1928,6 +1935,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0125-Phantom-flames-on-swoop.patch b/patches/server/0125-Phantom-flames-on-swoop.patch index 5659ae5d2..1537f341a 100644 --- a/patches/server/0125-Phantom-flames-on-swoop.patch +++ b/patches/server/0125-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 82d56a6968f3bbea5a2d32c2a7a84a8ba36d3d15..f23ca987666fd23621d3d731fd1a4ab2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5ebdba256037477332016336499074662f2badf0..79b0331ae3da328ed051daf8efc6e298b9a57a7e 100644 +index 8ac9551fb2c62f1ddbc3715ba1f1df3691981d78..d0e2861c9aa34734fce44a50b62b105236afecdd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1275,6 +1275,7 @@ public class PurpurWorldConfig { +@@ -1280,6 +1280,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index 5ebdba256037477332016336499074662f2badf0..79b0331ae3da328ed051daf8efc6e298 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1314,6 +1315,7 @@ public class PurpurWorldConfig { +@@ -1319,6 +1320,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/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch index ce890d151..e8e8e508f 100644 --- a/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index c6b57d45383441aa35510e759ce3cb82bc98f305..330ff3bc5fd8625e37b79e1204eddbe8 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 79b0331ae3da328ed051daf8efc6e298b9a57a7e..e6da09c147c00e50176c41ce26b06ae34dedea9c 100644 +index d0e2861c9aa34734fce44a50b62b105236afecdd..b927cbf702ebd92c6d7b49ef62429aa94b7f6c37 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -413,6 +413,11 @@ public class PurpurWorldConfig { +@@ -418,6 +418,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0128-Striders-give-saddle-back.patch b/patches/server/0128-Striders-give-saddle-back.patch index 3b63f7f3d..fb3587982 100644 --- a/patches/server/0128-Striders-give-saddle-back.patch +++ b/patches/server/0128-Striders-give-saddle-back.patch @@ -29,10 +29,10 @@ index eb2083d67f9486a24d2f0aa4bf1f5ba8a00e23a3..df9d16a6493a57b6034cd56bf8dbe38f 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 e6da09c147c00e50176c41ce26b06ae34dedea9c..87f6a4c76e169c9f85d02eba46e6ca31a059b414 100644 +index b927cbf702ebd92c6d7b49ef62429aa94b7f6c37..ac310f473357c1332ecce47a6e1dd01f8267292e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1680,6 +1680,7 @@ public class PurpurWorldConfig { +@@ -1685,6 +1685,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index e6da09c147c00e50176c41ce26b06ae34dedea9c..87f6a4c76e169c9f85d02eba46e6ca31 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1691,6 +1692,7 @@ public class PurpurWorldConfig { +@@ -1696,6 +1697,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/0130-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch index 513189f6e..92b97bab0 100644 --- a/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index e0ea8b1b3ccde9616a721d677a8217b25aadfefe..b416c8606ef53aa49458bb6f36689068 protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 87f6a4c76e169c9f85d02eba46e6ca31a059b414..aeb2d15277803a03eabcfb816664d6f9d168714f 100644 +index ac310f473357c1332ecce47a6e1dd01f8267292e..baf446b1dc8b4d6fe7180d27d94749052ce582d2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -292,6 +292,19 @@ public class PurpurWorldConfig { +@@ -297,6 +297,19 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch index 6e27f5204..122d99743 100644 --- a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2b7d14e3de4520188c1701ac00044a64d8228aed..6a7a83a3fc58cbb7e97c0ba13715a8e6ea5f6de6 100644 +index d143f13465c5b81e2517953def8e17783bc9f013..d0be274950668f0ca66cda876fdb3af78ea40f52 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1716,7 +1716,7 @@ public abstract class LivingEntity extends Entity { @@ -92,7 +92,7 @@ index bd0cbf4390fc7d00b4bd5008cdf8f6f49df4f69b..27e96c4c1377c49f03df032683aac32d } else if (this.nextStartTick > 0) { --this.nextStartTick; diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index aa18947d3822a1093985799e87ad6c2b28f51eb1..364863d14e7c0ac6dffa1ac5df5f1af5d820c700 100644 +index b2c901ed90fbf0ab79848d11f50d6f7a0b24bd6f..d64deacacb64dc0572fc0b5d559ddd833397ed47 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -1365,7 +1365,7 @@ public class Fox extends Animal { @@ -131,7 +131,7 @@ index b9025929fcc89e72aa820953b91a65423878ba0f..edf4537f08a54e1a5b043927678bbddf } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 9ce2527054f5163eae3d1216427378dcdf92a2fe..d655bd2ecce01a54695d135b12b2f930fa368ffe 100644 +index 6ccacd37f7602a759e47433a97ff54ff761c50fc..a639ebe2ea3f7fdc5367e0d2cec7a257c7cb4933 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -578,7 +578,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -393,10 +393,10 @@ index 1a12fee99a8b69fc6c01e1e217575c7c19e13155..4907e0acb7d01b7f57b75579e58ce743 return true; // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd5e10f991 100644 +index baf446b1dc8b4d6fe7180d27d94749052ce582d2..a8a55aeb4a3579efc2fd4b5c8da254d8fea1de43 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -112,8 +112,11 @@ public class PurpurWorldConfig { +@@ -117,8 +117,11 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -408,7 +408,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -125,8 +128,11 @@ public class PurpurWorldConfig { +@@ -130,8 +133,11 @@ public class PurpurWorldConfig { boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -420,7 +420,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd 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); -@@ -438,9 +444,11 @@ public class PurpurWorldConfig { +@@ -443,9 +449,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -432,7 +432,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -467,6 +475,11 @@ public class PurpurWorldConfig { +@@ -472,6 +480,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -444,7 +444,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -496,10 +509,12 @@ public class PurpurWorldConfig { +@@ -501,10 +514,12 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -457,7 +457,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean waterInfinite = true; -@@ -707,6 +722,7 @@ public class PurpurWorldConfig { +@@ -712,6 +727,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -465,7 +465,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -719,6 +735,7 @@ public class PurpurWorldConfig { +@@ -724,6 +740,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); @@ -473,7 +473,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean dolphinRidable = false; -@@ -813,6 +830,7 @@ public class PurpurWorldConfig { +@@ -818,6 +835,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -481,7 +481,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -829,6 +847,7 @@ public class PurpurWorldConfig { +@@ -834,6 +852,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -489,7 +489,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean endermanRidable = false; -@@ -837,6 +856,7 @@ public class PurpurWorldConfig { +@@ -842,6 +861,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -497,7 +497,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -849,6 +869,7 @@ public class PurpurWorldConfig { +@@ -854,6 +874,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); @@ -505,7 +505,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean endermiteRidable = false; -@@ -871,6 +892,7 @@ public class PurpurWorldConfig { +@@ -876,6 +897,7 @@ public class PurpurWorldConfig { public boolean evokerRidableInWater = false; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; @@ -513,7 +513,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -881,6 +903,7 @@ public class PurpurWorldConfig { +@@ -886,6 +908,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -521,7 +521,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean foxRidable = false; -@@ -889,6 +912,7 @@ public class PurpurWorldConfig { +@@ -894,6 +917,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -529,7 +529,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -901,6 +925,7 @@ public class PurpurWorldConfig { +@@ -906,6 +930,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); @@ -537,7 +537,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean frogRidable = false; -@@ -1360,6 +1385,7 @@ public class PurpurWorldConfig { +@@ -1365,6 +1390,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = false; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; @@ -545,7 +545,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1370,6 +1396,7 @@ public class PurpurWorldConfig { +@@ -1375,6 +1401,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -553,7 +553,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean piglinBruteRidable = false; -@@ -1392,6 +1419,7 @@ public class PurpurWorldConfig { +@@ -1397,6 +1424,7 @@ public class PurpurWorldConfig { public boolean pillagerRidableInWater = false; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; @@ -561,7 +561,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1402,6 +1430,7 @@ public class PurpurWorldConfig { +@@ -1407,6 +1435,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -569,7 +569,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean polarBearRidable = false; -@@ -1448,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1453,6 +1482,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -577,7 +577,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1461,12 +1491,14 @@ public class PurpurWorldConfig { +@@ -1466,12 +1496,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); @@ -592,7 +592,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1477,6 +1509,7 @@ public class PurpurWorldConfig { +@@ -1482,6 +1514,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -600,7 +600,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean salmonRidable = false; -@@ -1498,6 +1531,7 @@ public class PurpurWorldConfig { +@@ -1503,6 +1536,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -608,7 +608,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1509,6 +1543,7 @@ public class PurpurWorldConfig { +@@ -1514,6 +1548,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -616,7 +616,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean shulkerRidable = false; -@@ -1531,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1536,6 +1571,7 @@ public class PurpurWorldConfig { public boolean silverfishRidableInWater = false; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; @@ -624,7 +624,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1541,6 +1577,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1582,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -632,7 +632,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean skeletonRidable = false; -@@ -1617,6 +1654,7 @@ public class PurpurWorldConfig { +@@ -1622,6 +1659,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -640,7 +640,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1634,6 +1672,7 @@ public class PurpurWorldConfig { +@@ -1639,6 +1677,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); @@ -648,7 +648,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean squidRidable = false; -@@ -1809,6 +1848,7 @@ public class PurpurWorldConfig { +@@ -1814,6 +1853,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -656,7 +656,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1827,6 +1867,7 @@ public class PurpurWorldConfig { +@@ -1832,6 +1872,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); @@ -664,7 +664,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean vindicatorRidable = false; -@@ -1899,6 +1940,7 @@ public class PurpurWorldConfig { +@@ -1904,6 +1945,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -672,7 +672,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1916,6 +1958,7 @@ public class PurpurWorldConfig { +@@ -1921,6 +1963,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); @@ -680,7 +680,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd } public boolean witherSkeletonRidable = false; -@@ -1987,6 +2030,7 @@ public class PurpurWorldConfig { +@@ -1992,6 +2035,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -688,7 +688,7 @@ index aeb2d15277803a03eabcfb816664d6f9d168714f..8371e153e55020ffd855f5cb876e3edd private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2002,6 +2046,7 @@ public class PurpurWorldConfig { +@@ -2007,6 +2051,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/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch index 53cf80620..62c0199d3 100644 --- a/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index 58e8905a4b98e2e1ee372b99bdc3de9815063ac9..443bf39734ba2b0a7cdf0362d415ff17 // org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); // Paper - move event into block event handler // if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8371e153e55020ffd855f5cb876e3edd5e10f991..f856cdf0d762426cdd316dcaf935f6ca0b502f62 100644 +index a8a55aeb4a3579efc2fd4b5c8da254d8fea1de43..58d0da89c65187ca48f7444d7c5099778e64603f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -115,6 +115,7 @@ public class PurpurWorldConfig { +@@ -120,6 +120,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index 8371e153e55020ffd855f5cb876e3edd5e10f991..f856cdf0d762426cdd316dcaf935f6ca public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -131,6 +132,7 @@ public class PurpurWorldConfig { +@@ -136,6 +137,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0134-Add-EntityTeleportHinderedEvent.patch b/patches/server/0134-Add-EntityTeleportHinderedEvent.patch index 8712a9c7d..47da6966f 100644 --- a/patches/server/0134-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0134-Add-EntityTeleportHinderedEvent.patch @@ -108,10 +108,10 @@ index e8ec6547c11248a2bcc92bbd6226a264f3a51234..4487aef74152b0630a766293516135b3 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3162db5d2917cee090cc9fe1490ee740130d0e0e..1d573d843279d857788a77261007087586a3d293 100644 +index 58d0da89c65187ca48f7444d7c5099778e64603f..5826bcc362aec1a867b18fe9b79aae645639e592 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 { +@@ -119,6 +119,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -119,7 +119,7 @@ index 3162db5d2917cee090cc9fe1490ee740130d0e0e..1d573d843279d857788a772610070875 public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; -@@ -131,6 +132,7 @@ public class PurpurWorldConfig { +@@ -136,6 +137,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); diff --git a/patches/server/0135-Farmland-trampling-changes.patch b/patches/server/0135-Farmland-trampling-changes.patch index 2dca796d4..0b07b64b2 100644 --- a/patches/server/0135-Farmland-trampling-changes.patch +++ b/patches/server/0135-Farmland-trampling-changes.patch @@ -37,10 +37,10 @@ index d92ea9f29b9d919871662977d3e3eb41ddf2eb35..e5a3e3a4367dfb924624a913b816b3fd 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 53a2926f0437b84c7da7fa5beee5d20d97a20966..8821ac74c9999235bbfc9e5d480f78f6c3edba35 100644 +index 5826bcc362aec1a867b18fe9b79aae645639e592..e50b23491b8936da4d0742045d0bb4345ed295ab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -451,10 +451,16 @@ public class PurpurWorldConfig { +@@ -456,10 +456,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0136-Movement-options-for-armor-stands.patch b/patches/server/0136-Movement-options-for-armor-stands.patch index c2c2f1781..36627629b 100644 --- a/patches/server/0136-Movement-options-for-armor-stands.patch +++ b/patches/server/0136-Movement-options-for-armor-stands.patch @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 63887de35be7b1b9076bc509b92af0b860886310..46a01989cd2d10ac4f41c7c0a86b0e915e6dbe90 100644 +index 5d39aea49eec745f5596154bc69b01a87b1813dc..f5d9fe446de93e3b2c99198c6959280a1cf8443e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1723,7 +1723,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -66,7 +66,7 @@ index 9dcb46959c723723a369cde50427cbee0349f5a1..6bd31ed84049bc36a060b5e01b0599bf + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b4da08402c7b7152cae2d1e1df9a5f35cf1c490f..804a90cfb82d194de5b0f985e04a1fa7f89c29b0 100644 +index e50b23491b8936da4d0742045d0bb4345ed295ab..01950a7b0b6a6f0959a72f8dcebae71e8e837195 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 { @@ -85,4 +85,4 @@ index b4da08402c7b7152cae2d1e1df9a5f35cf1c490f..804a90cfb82d194de5b0f985e04a1fa7 + armorstandWaterFence = getBoolean("gameplay-mechanics.armorstand.can-move-in-water-over-fence", armorstandWaterFence); } - public boolean useBetterMending = false; + public boolean arrowMovementResetsDespawnCounter = true; diff --git a/patches/server/0137-Fix-stuck-in-portals.patch b/patches/server/0137-Fix-stuck-in-portals.patch index 18ad75c55..9b0feeda4 100644 --- a/patches/server/0137-Fix-stuck-in-portals.patch +++ b/patches/server/0137-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 1de4f239dfb63250b7143e89e97487d048b99776..bc5d5a2a48cfc6b4257d1cc3ac73d8ec5300721d 100644 +index 7d7fc0bc857d39cd447f9669d1bd780e64846645..5d10e3f3990de7b3667de02cb515039bfbb6d815 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1185,6 +1185,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 1de4f239dfb63250b7143e89e97487d048b99776..bc5d5a2a48cfc6b4257d1cc3ac73d8ec // CraftBukkit end this.setLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 46a01989cd2d10ac4f41c7c0a86b0e915e6dbe90..3753502af217ed6d06f03d250a069b1e0be7ebe5 100644 +index f5d9fe446de93e3b2c99198c6959280a1cf8443e..aa477068e28a4070a26aa08e09d614bbf6fd01ab 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2879,12 +2879,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -37,10 +37,10 @@ index 46a01989cd2d10ac4f41c7c0a86b0e915e6dbe90..3753502af217ed6d06f03d250a069b1e this.isInsidePortal = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 804a90cfb82d194de5b0f985e04a1fa7f89c29b0..a9654a4935c625852070255e443c669bd80d332a 100644 +index 01950a7b0b6a6f0959a72f8dcebae71e8e837195..bb1127f369de525430687ec1dc46cc56b5df7fc7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -332,6 +332,7 @@ public class PurpurWorldConfig { +@@ -337,6 +337,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index 804a90cfb82d194de5b0f985e04a1fa7f89c29b0..a9654a4935c625852070255e443c669b private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -349,6 +350,7 @@ public class PurpurWorldConfig { +@@ -354,6 +355,7 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); diff --git a/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch index a8cca19d2..e90e0cb03 100644 --- a/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch @@ -37,7 +37,7 @@ index 007c945725721ddb8a3dc4b8085e8c68da741b93..53ef2004d1b6acaf27fef9a658fff99b @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index f9ae9bf91026adcb205302e0f902dda44febb744..6bcdc433ab80be133cfb56beda8b01d995ace7af 100644 +index eaff4f966b4d82749df9e96246c078301fd4801b..2cea3d633209665d0cab2b211b817e3bbd61d3a2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -176,7 +176,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -126,7 +126,7 @@ index b063a74327e51b3cd27427426b92ef687c59c94b..00eec3f51e62858e7b85b3340e76bf66 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index b52245d881186f91174819326abb0cf98acb0997..1e95fa49a5dc8b756756924cbaf12d49ad33a274 100644 +index a8ca2d120a545d423fc00aef5299b66b1636b6d3..b0c933644c1f4b5aa142c7c4d26a9b81cb4051f7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -162,6 +162,11 @@ public class Dolphin extends WaterAnimal { @@ -142,7 +142,7 @@ index b52245d881186f91174819326abb0cf98acb0997..1e95fa49a5dc8b756756924cbaf12d49 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 364863d14e7c0ac6dffa1ac5df5f1af5d820c700..8e04d20c0f1038dbe1c8e7f05242f66e95ec5a38 100644 +index d64deacacb64dc0572fc0b5d559ddd833397ed47..41690949a990a753a24e6c27595cb0b50a52e0a8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -188,6 +188,11 @@ public class Fox extends Animal { @@ -427,7 +427,7 @@ index 6d444248b9e283e31d5777d450a52643cc84f59b..83eef99d7f24634e301a51d2825370c9 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 47c08d7f3e30aa335fb7c43179679b6ae9f23952..60b40bf64de5562d124857614f3ebe7b505a59f1 100644 +index 59caabbe84a24ea47796ae71130961dff146a76f..ae50bb7e86cddd95a0b49a89682083994ddf14ef 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -114,6 +114,11 @@ public class Goat extends Animal { @@ -555,7 +555,7 @@ index a2636f6e4767d408ef9d2cda4c346abdaa88da37..6d1938f1cbad394f218b36ec8958d5e7 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index d655bd2ecce01a54695d135b12b2f930fa368ffe..a9e07815fdde8509267c48d41d0e5fd5a38a93da 100644 +index a639ebe2ea3f7fdc5367e0d2cec7a257c7cb4933..23e5ab0e3b99659d30d8139dc005a714741a97c7 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -165,6 +165,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -1085,7 +1085,7 @@ index efe74738b5a90f822901488aa99f981029416fb5..f2900d76e9577c83be377500f7d7e7f4 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index d666b552023ebd5c3155a094a96a362e239100d1..c90cf19a4c29aa33c96a67bfab24cbbb56d783da 100644 +index 6e25ec59c6b15f8a6ed313bbf8c5472744c81e15..aed21936435edcc83c8da714910132157fa57aa6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -118,6 +118,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -1197,10 +1197,10 @@ index 8756e0d8d0077308f5fb74bf45fe093d0f043c99..6dd8856816bebb2766203589048cc68b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4afc370f73a 100644 +index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944ecba0df8a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -564,11 +564,13 @@ public class PurpurWorldConfig { +@@ -569,11 +569,13 @@ public class PurpurWorldConfig { public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1214,7 +1214,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean batRidable = false; -@@ -583,6 +585,7 @@ public class PurpurWorldConfig { +@@ -588,6 +590,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1222,7 +1222,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -594,6 +597,7 @@ public class PurpurWorldConfig { +@@ -599,6 +602,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1230,7 +1230,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean beeRidable = false; -@@ -602,6 +606,7 @@ public class PurpurWorldConfig { +@@ -607,6 +611,7 @@ public class PurpurWorldConfig { public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1238,7 +1238,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -614,6 +619,7 @@ public class PurpurWorldConfig { +@@ -619,6 +624,7 @@ public class PurpurWorldConfig { } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); @@ -1246,7 +1246,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean blazeRidable = false; -@@ -621,6 +627,7 @@ public class PurpurWorldConfig { +@@ -626,6 +632,7 @@ public class PurpurWorldConfig { public boolean blazeControllable = true; public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; @@ -1254,7 +1254,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -632,6 +639,7 @@ public class PurpurWorldConfig { +@@ -637,6 +644,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1262,7 +1262,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean catRidable = false; -@@ -643,6 +651,7 @@ public class PurpurWorldConfig { +@@ -648,6 +656,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; @@ -1270,7 +1270,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -662,12 +671,14 @@ public class PurpurWorldConfig { +@@ -667,12 +676,14 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { catDefaultCollarColor = DyeColor.RED; } @@ -1285,7 +1285,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -678,6 +689,7 @@ public class PurpurWorldConfig { +@@ -683,6 +694,7 @@ public class PurpurWorldConfig { set("mobs.cave_spider.attributes.max_health", oldValue); } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); @@ -1293,7 +1293,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean chickenRidable = false; -@@ -686,6 +698,7 @@ public class PurpurWorldConfig { +@@ -691,6 +703,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1301,7 +1301,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -698,11 +711,13 @@ public class PurpurWorldConfig { +@@ -703,11 +716,13 @@ public class PurpurWorldConfig { chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); @@ -1315,7 +1315,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -712,6 +727,7 @@ public class PurpurWorldConfig { +@@ -717,6 +732,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1323,7 +1323,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean cowRidable = false; -@@ -720,6 +736,7 @@ public class PurpurWorldConfig { +@@ -725,6 +741,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1331,7 +1331,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -732,6 +749,7 @@ public class PurpurWorldConfig { +@@ -737,6 +754,7 @@ public class PurpurWorldConfig { cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); @@ -1339,7 +1339,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean creeperRidable = false; -@@ -741,6 +759,7 @@ public class PurpurWorldConfig { +@@ -746,6 +764,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1347,7 +1347,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -754,6 +773,7 @@ public class PurpurWorldConfig { +@@ -759,6 +778,7 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); @@ -1355,7 +1355,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean dolphinRidable = false; -@@ -763,6 +783,7 @@ public class PurpurWorldConfig { +@@ -768,6 +788,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1363,7 +1363,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -776,6 +797,7 @@ public class PurpurWorldConfig { +@@ -781,6 +802,7 @@ public class PurpurWorldConfig { } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); @@ -1371,7 +1371,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean donkeyRidableInWater = false; -@@ -786,6 +808,7 @@ public class PurpurWorldConfig { +@@ -791,6 +813,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1379,7 +1379,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -802,6 +825,7 @@ public class PurpurWorldConfig { +@@ -807,6 +830,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); @@ -1387,7 +1387,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean drownedRidable = false; -@@ -812,6 +836,7 @@ public class PurpurWorldConfig { +@@ -817,6 +841,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1395,7 +1395,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -826,11 +851,13 @@ public class PurpurWorldConfig { +@@ -831,11 +856,13 @@ public class PurpurWorldConfig { drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby); drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); @@ -1409,7 +1409,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -840,6 +867,7 @@ public class PurpurWorldConfig { +@@ -845,6 +872,7 @@ public class PurpurWorldConfig { set("mobs.elder_guardian.attributes.max_health", oldValue); } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); @@ -1417,7 +1417,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean enderDragonRidable = false; -@@ -849,6 +877,7 @@ public class PurpurWorldConfig { +@@ -854,6 +882,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1425,7 +1425,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -866,6 +895,7 @@ public class PurpurWorldConfig { +@@ -871,6 +900,7 @@ public class PurpurWorldConfig { enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); @@ -1433,7 +1433,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean endermanRidable = false; -@@ -875,6 +905,7 @@ public class PurpurWorldConfig { +@@ -880,6 +910,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1441,7 +1441,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -888,12 +919,14 @@ public class PurpurWorldConfig { +@@ -893,12 +924,14 @@ public class PurpurWorldConfig { endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing); @@ -1456,7 +1456,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -904,6 +937,7 @@ public class PurpurWorldConfig { +@@ -909,6 +942,7 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1464,7 +1464,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean evokerRidable = false; -@@ -911,6 +945,7 @@ public class PurpurWorldConfig { +@@ -916,6 +950,7 @@ public class PurpurWorldConfig { public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; @@ -1472,7 +1472,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -922,6 +957,7 @@ public class PurpurWorldConfig { +@@ -927,6 +962,7 @@ public class PurpurWorldConfig { } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); @@ -1480,7 +1480,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean foxRidable = false; -@@ -931,6 +967,7 @@ public class PurpurWorldConfig { +@@ -936,6 +972,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1488,7 +1488,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -944,6 +981,7 @@ public class PurpurWorldConfig { +@@ -949,6 +986,7 @@ public class PurpurWorldConfig { foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); @@ -1496,7 +1496,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean frogRidable = false; -@@ -964,6 +1002,7 @@ public class PurpurWorldConfig { +@@ -969,6 +1007,7 @@ public class PurpurWorldConfig { public boolean ghastControllable = true; public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; @@ -1504,7 +1504,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -975,6 +1014,7 @@ public class PurpurWorldConfig { +@@ -980,6 +1019,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1512,7 +1512,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean giantRidable = false; -@@ -987,6 +1027,7 @@ public class PurpurWorldConfig { +@@ -992,6 +1032,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1520,7 +1520,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1007,17 +1048,20 @@ public class PurpurWorldConfig { +@@ -1012,17 +1053,20 @@ public class PurpurWorldConfig { giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); @@ -1541,7 +1541,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean goatRidable = false; -@@ -1025,17 +1069,20 @@ public class PurpurWorldConfig { +@@ -1030,17 +1074,20 @@ public class PurpurWorldConfig { public boolean goatControllable = true; public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; @@ -1562,7 +1562,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1045,6 +1092,7 @@ public class PurpurWorldConfig { +@@ -1050,6 +1097,7 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1570,7 +1570,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean hoglinRidable = false; -@@ -1052,6 +1100,7 @@ public class PurpurWorldConfig { +@@ -1057,6 +1105,7 @@ public class PurpurWorldConfig { public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; @@ -1578,7 +1578,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1063,6 +1112,7 @@ public class PurpurWorldConfig { +@@ -1068,6 +1117,7 @@ public class PurpurWorldConfig { } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); @@ -1586,7 +1586,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean horseRidableInWater = false; -@@ -1073,6 +1123,7 @@ public class PurpurWorldConfig { +@@ -1078,6 +1128,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1594,7 +1594,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1089,6 +1140,7 @@ public class PurpurWorldConfig { +@@ -1094,6 +1145,7 @@ public class PurpurWorldConfig { horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); @@ -1602,7 +1602,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean huskRidable = false; -@@ -1099,6 +1151,7 @@ public class PurpurWorldConfig { +@@ -1104,6 +1156,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1610,7 +1610,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1113,6 +1166,7 @@ public class PurpurWorldConfig { +@@ -1118,6 +1171,7 @@ public class PurpurWorldConfig { huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby); huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); @@ -1618,7 +1618,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean illusionerRidable = false; -@@ -1121,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1126,6 +1180,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1626,7 +1626,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1137,6 +1192,7 @@ public class PurpurWorldConfig { +@@ -1142,6 +1197,7 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1634,7 +1634,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean ironGolemRidable = false; -@@ -1144,6 +1200,7 @@ public class PurpurWorldConfig { +@@ -1149,6 +1205,7 @@ public class PurpurWorldConfig { public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -1642,7 +1642,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1155,6 +1212,7 @@ public class PurpurWorldConfig { +@@ -1160,6 +1217,7 @@ public class PurpurWorldConfig { set("mobs.iron_golem.attributes.max_health", oldValue); } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); @@ -1650,7 +1650,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean llamaRidable = false; -@@ -1167,6 +1225,7 @@ public class PurpurWorldConfig { +@@ -1172,6 +1230,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1658,7 +1658,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1185,6 +1244,7 @@ public class PurpurWorldConfig { +@@ -1190,6 +1249,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); @@ -1666,7 +1666,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean magmaCubeRidable = false; -@@ -1194,6 +1254,7 @@ public class PurpurWorldConfig { +@@ -1199,6 +1259,7 @@ public class PurpurWorldConfig { public String magmaCubeAttackDamage = "size"; public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1207,6 +1268,7 @@ public class PurpurWorldConfig { +@@ -1212,6 +1273,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean mooshroomRidable = false; -@@ -1214,6 +1276,7 @@ public class PurpurWorldConfig { +@@ -1219,6 +1281,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1225,6 +1288,7 @@ public class PurpurWorldConfig { +@@ -1230,6 +1293,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean muleRidableInWater = false; -@@ -1235,6 +1299,7 @@ public class PurpurWorldConfig { +@@ -1240,6 +1304,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1251,6 +1316,7 @@ public class PurpurWorldConfig { +@@ -1256,6 +1321,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean ocelotRidable = false; -@@ -1258,6 +1324,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1329,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1269,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1274,6 +1341,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean pandaRidable = false; -@@ -1276,6 +1344,7 @@ public class PurpurWorldConfig { +@@ -1281,6 +1349,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1287,6 +1356,7 @@ public class PurpurWorldConfig { +@@ -1292,6 +1361,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean parrotRidable = false; -@@ -1294,6 +1364,7 @@ public class PurpurWorldConfig { +@@ -1299,6 +1369,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1305,6 +1376,7 @@ public class PurpurWorldConfig { +@@ -1310,6 +1381,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean phantomRidable = false; -@@ -1337,6 +1409,7 @@ public class PurpurWorldConfig { +@@ -1342,6 +1414,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1377,6 +1450,7 @@ public class PurpurWorldConfig { +@@ -1382,6 +1455,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean pigRidable = false; -@@ -1385,6 +1459,7 @@ public class PurpurWorldConfig { +@@ -1390,6 +1464,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1397,6 +1472,7 @@ public class PurpurWorldConfig { +@@ -1402,6 +1477,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean piglinRidable = false; -@@ -1404,6 +1480,7 @@ public class PurpurWorldConfig { +@@ -1409,6 +1485,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1415,12 +1492,14 @@ public class PurpurWorldConfig { +@@ -1420,12 +1497,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1431,6 +1510,7 @@ public class PurpurWorldConfig { +@@ -1436,6 +1515,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean pillagerRidable = false; -@@ -1438,6 +1518,7 @@ public class PurpurWorldConfig { +@@ -1443,6 +1523,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1449,6 +1530,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1535,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean polarBearRidable = false; -@@ -1458,6 +1540,7 @@ public class PurpurWorldConfig { +@@ -1463,6 +1545,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1472,11 +1555,13 @@ public class PurpurWorldConfig { +@@ -1477,11 +1560,13 @@ public class PurpurWorldConfig { Item item = Registry.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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1486,6 +1571,7 @@ public class PurpurWorldConfig { +@@ -1491,6 +1576,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean rabbitRidable = false; -@@ -1496,6 +1582,7 @@ public class PurpurWorldConfig { +@@ -1501,6 +1587,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1510,6 +1597,7 @@ public class PurpurWorldConfig { +@@ -1515,6 +1602,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean ravagerRidable = false; -@@ -1517,6 +1605,7 @@ public class PurpurWorldConfig { +@@ -1522,6 +1610,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1528,11 +1617,13 @@ public class PurpurWorldConfig { +@@ -1533,11 +1622,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1542,6 +1633,7 @@ public class PurpurWorldConfig { +@@ -1547,6 +1638,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean sheepRidable = false; -@@ -1550,6 +1642,7 @@ public class PurpurWorldConfig { +@@ -1555,6 +1647,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1562,12 +1655,14 @@ public class PurpurWorldConfig { +@@ -1567,12 +1660,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1578,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1583,6 +1678,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean silverfishRidable = false; -@@ -1585,6 +1681,7 @@ public class PurpurWorldConfig { +@@ -1590,6 +1686,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1596,12 +1693,14 @@ public class PurpurWorldConfig { +@@ -1601,12 +1698,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1612,6 +1711,7 @@ public class PurpurWorldConfig { +@@ -1617,6 +1716,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean skeletonHorseRidableInWater = true; -@@ -1622,6 +1722,7 @@ public class PurpurWorldConfig { +@@ -1627,6 +1727,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1637,6 +1738,7 @@ public class PurpurWorldConfig { +@@ -1642,6 +1743,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean slimeRidable = false; -@@ -1646,6 +1748,7 @@ public class PurpurWorldConfig { +@@ -1651,6 +1753,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1659,6 +1762,7 @@ public class PurpurWorldConfig { +@@ -1664,6 +1767,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean snowGolemRidable = false; -@@ -1673,6 +1777,7 @@ public class PurpurWorldConfig { +@@ -1678,6 +1782,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1691,6 +1796,7 @@ public class PurpurWorldConfig { +@@ -1696,6 +1801,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean squidRidable = false; -@@ -1699,6 +1805,7 @@ public class PurpurWorldConfig { +@@ -1704,6 +1810,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1711,12 +1818,14 @@ public class PurpurWorldConfig { +@@ -1716,12 +1823,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1727,12 +1836,14 @@ public class PurpurWorldConfig { +@@ -1732,12 +1841,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1743,6 +1854,7 @@ public class PurpurWorldConfig { +@@ -1748,6 +1859,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean striderRidable = false; -@@ -1751,6 +1863,7 @@ public class PurpurWorldConfig { +@@ -1756,6 +1868,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1763,6 +1876,7 @@ public class PurpurWorldConfig { +@@ -1768,6 +1881,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean tadpoleRidable = false; -@@ -1784,6 +1898,7 @@ public class PurpurWorldConfig { +@@ -1789,6 +1903,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1802,11 +1917,13 @@ public class PurpurWorldConfig { +@@ -1807,11 +1922,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1816,6 +1933,7 @@ public class PurpurWorldConfig { +@@ -1821,6 +1938,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean turtleRidable = false; -@@ -1823,6 +1941,7 @@ public class PurpurWorldConfig { +@@ -1828,6 +1946,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1834,6 +1953,7 @@ public class PurpurWorldConfig { +@@ -1839,6 +1958,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean vexRidable = false; -@@ -1841,6 +1961,7 @@ public class PurpurWorldConfig { +@@ -1846,6 +1966,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1852,6 +1973,7 @@ public class PurpurWorldConfig { +@@ -1857,6 +1978,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean villagerRidable = false; -@@ -1867,6 +1989,7 @@ public class PurpurWorldConfig { +@@ -1872,6 +1994,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1886,6 +2009,7 @@ public class PurpurWorldConfig { +@@ -1891,6 +2014,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean vindicatorRidable = false; -@@ -1893,6 +2017,7 @@ public class PurpurWorldConfig { +@@ -1898,6 +2022,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1904,6 +2029,7 @@ public class PurpurWorldConfig { +@@ -1909,6 +2034,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean wanderingTraderRidable = false; -@@ -1912,6 +2038,7 @@ public class PurpurWorldConfig { +@@ -1917,6 +2043,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1924,6 +2051,7 @@ public class PurpurWorldConfig { +@@ -1929,6 +2056,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean wardenRidable = false; -@@ -1939,6 +2067,7 @@ public class PurpurWorldConfig { +@@ -1944,6 +2072,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = false; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1949,6 +2078,7 @@ public class PurpurWorldConfig { +@@ -1954,6 +2083,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean witherRidable = false; -@@ -1959,6 +2089,7 @@ public class PurpurWorldConfig { +@@ -1964,6 +2094,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1977,12 +2108,14 @@ public class PurpurWorldConfig { +@@ -1982,12 +2113,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -1993,6 +2126,7 @@ public class PurpurWorldConfig { +@@ -1998,6 +2131,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean wolfRidable = false; -@@ -2003,6 +2137,7 @@ public class PurpurWorldConfig { +@@ -2008,6 +2142,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2021,12 +2156,14 @@ public class PurpurWorldConfig { +@@ -2026,12 +2161,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2037,6 +2174,7 @@ public class PurpurWorldConfig { +@@ -2042,6 +2179,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean zombieRidable = false; -@@ -2049,6 +2187,7 @@ public class PurpurWorldConfig { +@@ -2054,6 +2192,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2065,6 +2204,7 @@ public class PurpurWorldConfig { +@@ -2070,6 +2209,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean zombieHorseRidableInWater = false; -@@ -2076,6 +2216,7 @@ public class PurpurWorldConfig { +@@ -2081,6 +2221,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2092,6 +2233,7 @@ public class PurpurWorldConfig { +@@ -2097,6 +2238,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean zombieVillagerRidable = false; -@@ -2102,6 +2244,7 @@ public class PurpurWorldConfig { +@@ -2107,6 +2249,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2116,6 +2259,7 @@ public class PurpurWorldConfig { +@@ -2121,6 +2264,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 da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af } public boolean zombifiedPiglinRidable = false; -@@ -2127,6 +2271,7 @@ public class PurpurWorldConfig { +@@ -2132,6 +2276,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index da34e98f9c62336a07d9ee16b36819ef840738d6..6d54dd2fa746e4daf5c43ecc33f5f4af private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2142,5 +2287,6 @@ public class PurpurWorldConfig { +@@ -2147,5 +2292,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/0139-Config-to-always-tame-in-Creative.patch b/patches/server/0139-Config-to-always-tame-in-Creative.patch index 708373cb4..de683401c 100644 --- a/patches/server/0139-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0139-Config-to-always-tame-in-Creative.patch @@ -59,10 +59,10 @@ index dd514cbf2f03b688eb4d8cd49052f1775d3adebb..ed33573a96e96d557156fbe2f725e3d6 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 6d54dd2fa746e4daf5c43ecc33f5f4afc370f73a..6e07ea5ea28e20faf79ddfc9225fe462a5f97e29 100644 +index 4e4a625fe34913d89bd933eeae15944ecba0df8a..f2293d1a6f4aaaad7fbf1aea2da716f0566083cf 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 { +@@ -119,6 +119,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index 6d54dd2fa746e4daf5c43ecc33f5f4afc370f73a..6e07ea5ea28e20faf79ddfc9225fe462 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -132,6 +133,7 @@ public class PurpurWorldConfig { +@@ -137,6 +138,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0140-End-crystal-explosion-options.patch b/patches/server/0140-End-crystal-explosion-options.patch index 0ee144a6d..ec060e4ea 100644 --- a/patches/server/0140-End-crystal-explosion-options.patch +++ b/patches/server/0140-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index e1493079d06a91f3e14e333e2a0408725a8f5bea..59d7f4ef118b2a87d1fe9cc1dd2fea89 this.onDestroyedBy(source); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6e07ea5ea28e20faf79ddfc9225fe462a5f97e29..72327a0a22768828bbc04ecccf300bd7160d3305 100644 +index f2293d1a6f4aaaad7fbf1aea2da716f0566083cf..570e90dd3cd3bbd3078893fb972f7018b516f3e0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -458,6 +458,35 @@ public class PurpurWorldConfig { +@@ -463,6 +463,35 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 94745ddbd..8f0ee4b2b 100644 --- a/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -29,10 +29,10 @@ index 1329de5d3e6294d2eb7b6852b8cad19f0f4dba77..6818618cd2f702e894ac4098b4eb5afc } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ff1415929079b54185ffb11ddcbca91024d3b9c9..1cd729673126802d7778f251185077158833954d 100644 +index 570e90dd3cd3bbd3078893fb972f7018b516f3e0..3624304329d0a6728c0e4981bd9dcfb350edaab5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -909,6 +909,7 @@ public class PurpurWorldConfig { +@@ -914,6 +914,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index ff1415929079b54185ffb11ddcbca91024d3b9c9..1cd729673126802d7778f25118507715 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -927,6 +928,7 @@ public class PurpurWorldConfig { +@@ -932,6 +933,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 ff1415929079b54185ffb11ddcbca91024d3b9c9..1cd729673126802d7778f25118507715 } public boolean endermanRidable = false; -@@ -2121,6 +2123,7 @@ public class PurpurWorldConfig { +@@ -2126,6 +2128,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index ff1415929079b54185ffb11ddcbca91024d3b9c9..1cd729673126802d7778f25118507715 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2140,6 +2143,7 @@ public class PurpurWorldConfig { +@@ -2145,6 +2148,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/0142-Dont-run-with-scissors.patch b/patches/server/0142-Dont-run-with-scissors.patch index 616e3877e..8bf010f1c 100644 --- a/patches/server/0142-Dont-run-with-scissors.patch +++ b/patches/server/0142-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 617ecdf362da4e3f5a30645ac3e1e21e76184179..aa41e4aed283297b923985f7ceee914cb62666a9 100644 +index 85c456f43cf228e02ee43f29e0f3b0227080699c..9aa0c7eddccb7a81834582f4f50e7f6b93a688e8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1627,6 +1627,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -70,7 +70,7 @@ index cc0f6a51e10c77928fccf372a45a56aa6f2b298a..f4ca0a9481533befc78cb18c1f981082 if (cause != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 68ae78e98df34849e0a3c97d27b26d0f45cf4bb7..6f7744083bcbf40b5c92f1cbfa973f6118a7ed7c 100644 +index 27794670b54f1a96e4e82ed23ab0769a0506b52a..c2bfd97e11e887d7a112ba024be6048ac3d46bee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -177,6 +177,7 @@ public class PurpurConfig { @@ -95,10 +95,10 @@ index 68ae78e98df34849e0a3c97d27b26d0f45cf4bb7..6f7744083bcbf40b5c92f1cbfa973f61 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 1cd729673126802d7778f251185077158833954d..af3fc93759abf435119e4bf4149be2cc1545ec5a 100644 +index 3624304329d0a6728c0e4981bd9dcfb350edaab5..2e15e592bbc13f4aca99745dd068b12d5f8a253c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -194,6 +194,8 @@ public class PurpurWorldConfig { +@@ -199,6 +199,8 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -107,7 +107,7 @@ index 1cd729673126802d7778f251185077158833954d..af3fc93759abf435119e4bf4149be2cc private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -231,6 +233,8 @@ public class PurpurWorldConfig { +@@ -236,6 +238,8 @@ public class PurpurWorldConfig { Item item = Registry.ITEM.get(new ResourceLocation(key.toString())); if (item != Items.AIR) itemImmuneToLightning.add(item); }); diff --git a/patches/server/0143-One-Punch-Man.patch b/patches/server/0143-One-Punch-Man.patch index d38244022..3f44189c7 100644 --- a/patches/server/0143-One-Punch-Man.patch +++ b/patches/server/0143-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 6a7a83a3fc58cbb7e97c0ba13715a8e6ea5f6de6..e9ee22f12f542f0c2d1a4ecedc891d708491a8eb 100644 +index d0be274950668f0ca66cda876fdb3af78ea40f52..920fddcc5971915c542891e0f2a4a48e5626765f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2201,6 +2201,20 @@ public abstract class LivingEntity extends Entity { @@ -30,10 +30,10 @@ index 6a7a83a3fc58cbb7e97c0ba13715a8e6ea5f6de6..e9ee22f12f542f0c2d1a4ecedc891d70 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 c5d4aeb82f41d28ec36e484faf5b453667e63723..4ec3c8caa157d4f50028122c03a80c92a6785d8c 100644 +index 2e15e592bbc13f4aca99745dd068b12d5f8a253c..7c216897dc47e2b553ec936615e7e0ab44be906a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -339,6 +339,7 @@ public class PurpurWorldConfig { +@@ -344,6 +344,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index c5d4aeb82f41d28ec36e484faf5b453667e63723..4ec3c8caa157d4f50028122c03a80c92 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -357,6 +358,7 @@ public class PurpurWorldConfig { +@@ -362,6 +363,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/0144-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0144-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index e4b40ce12..07eeecbe1 100644 --- a/patches/server/0144-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0144-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 4ec3c8caa157d4f50028122c03a80c92a6785d8c..57450c6f3da1289b15ecc821614018506c60601f 100644 +index 7c216897dc47e2b553ec936615e7e0ab44be906a..58ef5df9b6a494905434699f73fa848a85f4a52c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -196,6 +196,10 @@ public class PurpurWorldConfig { +@@ -201,6 +201,10 @@ public class PurpurWorldConfig { public List itemImmuneToLightning = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index 4ec3c8caa157d4f50028122c03a80c92a6785d8c..57450c6f3da1289b15ecc82161401850 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -235,6 +239,10 @@ public class PurpurWorldConfig { +@@ -240,6 +244,10 @@ public class PurpurWorldConfig { }); dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors); scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/server/0145-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0145-Config-to-ignore-nearby-mobs-when-sleeping.patch index b4a4db48a..db1d993fd 100644 --- a/patches/server/0145-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0145-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index bc5d5a2a48cfc6b4257d1cc3ac73d8ec5300721d..c217c773d014e1bda00ac14e90824d5bb636ecc4 100644 +index 5d10e3f3990de7b3667de02cb515039bfbb6d815..d732880ebed379bf6417bc59735093de010119a6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1341,7 +1341,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index bc5d5a2a48cfc6b4257d1cc3ac73d8ec5300721d..c217c773d014e1bda00ac14e90824d5b } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d10ec237ccebcfb72502c5f3b84f2a4ecac07ee8..f244f917b35b80f0801fecf08753da63a99443f0 100644 +index 58ef5df9b6a494905434699f73fa848a85f4a52c..8e6e5da5c089644136b365fb65df54c6f64ae44c 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 { +@@ -353,6 +353,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index d10ec237ccebcfb72502c5f3b84f2a4ecac07ee8..f244f917b35b80f0801fecf08753da63 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -367,6 +368,7 @@ public class PurpurWorldConfig { +@@ -372,6 +373,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/0147-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0147-Config-Enderman-aggressiveness-towards-Endermites.patch index 998d9002a..4294fbfec 100644 --- a/patches/server/0147-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0147-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -18,10 +18,10 @@ index 6c9b3bb54b163cb2a6c05993e792558e983feecc..99e4c23140b85d37c7b266c2fcf57c94 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bfe0bf2572a48fee700bbbb2aa756ab61827b960..da1ce49cf9c590aa9e838315981ee74d20679675 100644 +index 8e6e5da5c089644136b365fb65df54c6f64ae44c..9a21672c00972f2333b588df60f6fdff9f5a6518 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -955,6 +955,8 @@ public class PurpurWorldConfig { +@@ -960,6 +960,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index bfe0bf2572a48fee700bbbb2aa756ab61827b960..da1ce49cf9c590aa9e838315981ee74d private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -964,11 +966,17 @@ public class PurpurWorldConfig { +@@ -969,11 +971,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0148-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0148-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index f577b9887..166ca8259 100644 --- a/patches/server/0148-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0148-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -20,10 +20,10 @@ index 99e4c23140b85d37c7b266c2fcf57c94fd19ec7c..b0c4c90ab2d532a60911d53ac4764dcf } 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 da1ce49cf9c590aa9e838315981ee74d20679675..bd3328d3b41f7514fe02aba4cba7a74745565c67 100644 +index 9a21672c00972f2333b588df60f6fdff9f5a6518..cfca4a5f08456bb06283fb7e1fb96711591aee13 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -957,6 +957,8 @@ public class PurpurWorldConfig { +@@ -962,6 +962,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index da1ce49cf9c590aa9e838315981ee74d20679675..bd3328d3b41f7514fe02aba4cba7a747 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -977,6 +979,8 @@ public class PurpurWorldConfig { +@@ -982,6 +984,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/0149-Tick-fluids-config.patch b/patches/server/0149-Tick-fluids-config.patch index 7f6b3f755..a5cf8cc3c 100644 --- a/patches/server/0149-Tick-fluids-config.patch +++ b/patches/server/0149-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index 43e8ef1d6a65d4fd3fe53a587639ffb814368217..9c22a730772f71b34c63d1e43d48943f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bd3328d3b41f7514fe02aba4cba7a74745565c67..07a3e3522539b0f42d7f8c5c7ff15dc8c0849553 100644 +index cfca4a5f08456bb06283fb7e1fb96711591aee13..29e3f3dea9d9c4131e23d8b730bb0cbda8184d94 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -126,6 +126,7 @@ public class PurpurWorldConfig { +@@ -131,6 +131,7 @@ public class PurpurWorldConfig { public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index bd3328d3b41f7514fe02aba4cba7a74745565c67..07a3e3522539b0f42d7f8c5c7ff15dc8 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -145,6 +146,7 @@ public class PurpurWorldConfig { +@@ -150,6 +151,7 @@ public class PurpurWorldConfig { noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); diff --git a/patches/server/0150-Config-to-disable-Llama-caravans.patch b/patches/server/0150-Config-to-disable-Llama-caravans.patch index 4b1296aa6..e1c23130f 100644 --- a/patches/server/0150-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0150-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index 708f0bccffc05fac0d711df13dd1b5e173ff6109..b7b8d7587018759fc418043694abd38f 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 07a3e3522539b0f42d7f8c5c7ff15dc8c0849553..e72e6e54b35cbd06abd1394432cddfa7a97067b4 100644 +index 29e3f3dea9d9c4131e23d8b730bb0cbda8184d94..6d9f3aed3dfd141e191cde35598bc307cc4ffa89 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1289,6 +1289,7 @@ public class PurpurWorldConfig { +@@ -1294,6 +1294,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 07a3e3522539b0f42d7f8c5c7ff15dc8c0849553..e72e6e54b35cbd06abd1394432cddfa7 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1308,6 +1309,7 @@ public class PurpurWorldConfig { +@@ -1313,6 +1314,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/0151-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0151-Config-to-make-Creepers-explode-on-death.patch index e3ffa530c..d62203679 100644 --- a/patches/server/0151-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0151-Config-to-make-Creepers-explode-on-death.patch @@ -50,10 +50,10 @@ index fa4d5579dcdaad04fa2e6cd9ae47af1154739121..bd58b7d364b5e0361e7b8c67d1b26b7f private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e72e6e54b35cbd06abd1394432cddfa7a97067b4..c8863a6f054efa1405c80fe3294d4f88c40b935a 100644 +index 6d9f3aed3dfd141e191cde35598bc307cc4ffa89..85264922bbd784e6601066253df2b2ab7fb50b55 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -809,6 +809,7 @@ public class PurpurWorldConfig { +@@ -814,6 +814,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index e72e6e54b35cbd06abd1394432cddfa7a97067b4..c8863a6f054efa1405c80fe3294d4f88 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -823,6 +824,7 @@ public class PurpurWorldConfig { +@@ -828,6 +829,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/0152-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0152-Configurable-ravager-griefable-blocks-list.patch index 1282ee69f..e4df3edb7 100644 --- a/patches/server/0152-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0152-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index a68bf10353e5c19adfa86c2dd6290f2386af9a9d..38bc19edc2dcfa33b3191cfa3b69f00d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c8863a6f054efa1405c80fe3294d4f88c40b935a..7a7d65a6789ac298391f9d716d022534e87da654 100644 +index 85264922bbd784e6601066253df2b2ab7fb50b55..600abf6a419c99fde04ec7aeadfd3d0e02c883d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1673,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1678,6 +1678,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index c8863a6f054efa1405c80fe3294d4f88c40b935a..7a7d65a6789ac298391f9d716d022534 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1685,6 +1686,23 @@ public class PurpurWorldConfig { +@@ -1690,6 +1691,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/0153-Sneak-to-bulk-process-composter.patch b/patches/server/0153-Sneak-to-bulk-process-composter.patch index d05e69c71..51d35daa0 100644 --- a/patches/server/0153-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0153-Sneak-to-bulk-process-composter.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Sneak to bulk process composter diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 7572f6d03d315ab4639be211c5ffc7682b326362..87e3c63ac67f2cbabcae55d76ecb5d5067479704 100644 +index 9378e83a67a70dbb1fb4f05b33f1e553d008e62b..dc0f06f2c0ece0881cbe4f47dcbcb0070ca90464 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -567,7 +567,7 @@ public class ServerPlayerGameMode { @@ -75,10 +75,10 @@ index 2b1983d61fd3ed856770146de5cdfd33b4f63a46..9315c819a0c113313a8e6f97e02b4d13 int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7a7d65a6789ac298391f9d716d022534e87da654..365863c0c97508bcff36df19999b9a8357ff2425 100644 +index 600abf6a419c99fde04ec7aeadfd3d0e02c883d9..c659ff37eeae38ab21ad808f35c3452d27a377b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -469,6 +469,11 @@ public class PurpurWorldConfig { +@@ -474,6 +474,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0154-Config-for-skipping-night.patch b/patches/server/0154-Config-for-skipping-night.patch index 92dc1ca3b..ce570e5e0 100644 --- a/patches/server/0154-Config-for-skipping-night.patch +++ b/patches/server/0154-Config-for-skipping-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 5dff48719ff166990a3d5668a50d8531e59f092b..7f6488296b064f09d8b5f01e5950012158833183 100644 +index b29452da6a55f0ccb83e734a9a77ef028a87fbe5..bd30ebea4f9bd7d63fd847b216b1ce09730d266f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -625,7 +625,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -18,10 +18,10 @@ index 5dff48719ff166990a3d5668a50d8531e59f092b..7f6488296b064f09d8b5f01e59500121 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 365863c0c97508bcff36df19999b9a8357ff2425..8bb0fb83ac3e8d75f469dbb9b617ef654eb3e946 100644 +index c659ff37eeae38ab21ad808f35c3452d27a377b3..6a82355509fdb04acc920b21c0c76328999e48e8 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 { +@@ -356,6 +356,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 365863c0c97508bcff36df19999b9a8357ff2425..8bb0fb83ac3e8d75f469dbb9b617ef65 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -371,6 +372,7 @@ public class PurpurWorldConfig { +@@ -376,6 +377,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/0155-Add-config-for-villager-trading.patch b/patches/server/0155-Add-config-for-villager-trading.patch index dd8a65e59..6a5a3a62c 100644 --- a/patches/server/0155-Add-config-for-villager-trading.patch +++ b/patches/server/0155-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index 6dd8856816bebb2766203589048cc68b3f5c8f5c..8d6930868a42b9fc98d7672bff433ec5 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 8bb0fb83ac3e8d75f469dbb9b617ef654eb3e946..a78e8939f9b2edcfdd3122a7d6b94df852903ff4 100644 +index 6a82355509fdb04acc920b21c0c76328999e48e8..717c7edb6629935eaa9193ddd4af9186e4451f9d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2082,6 +2082,7 @@ public class PurpurWorldConfig { +@@ -2087,6 +2087,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 8bb0fb83ac3e8d75f469dbb9b617ef654eb3e946..a78e8939f9b2edcfdd3122a7d6b94df8 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2102,6 +2103,7 @@ public class PurpurWorldConfig { +@@ -2107,6 +2108,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 8bb0fb83ac3e8d75f469dbb9b617ef654eb3e946..a78e8939f9b2edcfdd3122a7d6b94df8 } public boolean vindicatorRidable = false; -@@ -2131,6 +2133,7 @@ public class PurpurWorldConfig { +@@ -2136,6 +2138,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 8bb0fb83ac3e8d75f469dbb9b617ef654eb3e946..a78e8939f9b2edcfdd3122a7d6b94df8 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2144,6 +2147,7 @@ public class PurpurWorldConfig { +@@ -2149,6 +2152,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/0157-Drowning-Settings.patch b/patches/server/0157-Drowning-Settings.patch index 47b6cfee5..043659955 100644 --- a/patches/server/0157-Drowning-Settings.patch +++ b/patches/server/0157-Drowning-Settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3753502af217ed6d06f03d250a069b1e0be7ebe5..ddf1fc47c3d01ec589548081ca9f01f8d6ccd642 100644 +index aa477068e28a4070a26aa08e09d614bbf6fd01ab..acff59500c7ea17598b79e2702d7dea9e5f7fc76 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3110,7 +3110,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -40,10 +40,10 @@ index 920fddcc5971915c542891e0f2a4a48e5626765f..253ee4d72d1b40a49049692bc02f6be9 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a2878203e88d5ffeab7e209c1d2914047c779df9..0322b818bbb5f79b3f4eb25c729de0df91fa41d2 100644 +index 717c7edb6629935eaa9193ddd4af9186e4451f9d..ba95b9ecebca5974389b50d39ab39aecc73da031 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -161,6 +161,15 @@ public class PurpurWorldConfig { +@@ -166,6 +166,15 @@ public class PurpurWorldConfig { nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks); } diff --git a/patches/server/0158-Break-individual-slabs-when-sneaking.patch b/patches/server/0158-Break-individual-slabs-when-sneaking.patch index de45023c2..c207fa2c7 100644 --- a/patches/server/0158-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0158-Break-individual-slabs-when-sneaking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 87e3c63ac67f2cbabcae55d76ecb5d5067479704..12d11659134410b2720a00297b796bba3357c89a 100644 +index dc0f06f2c0ece0881cbe4f47dcbcb0070ca90464..d24938fd4cf5645da6443cc7c908b1eb717675a5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -391,6 +391,7 @@ public class ServerPlayerGameMode { @@ -47,10 +47,10 @@ index 18b603d646081926343dea108b55d641df1c2c34..fdbbd2e5d4fd970a4593b55f16bd0f82 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 93a89a2adc151437324ecfed1fddce5206bd6446..357045ed63587346d584c880aa942d14118b3ed8 100644 +index ba95b9ecebca5974389b50d39ab39aecc73da031..654d7273fbac20f6d76dcdf5d9904f14b1241bd2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -584,6 +584,11 @@ public class PurpurWorldConfig { +@@ -589,6 +589,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0159-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0159-Config-to-disable-hostile-mob-spawn-on-ice.patch index d8233523b..ab784f43b 100644 --- a/patches/server/0159-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0159-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 357045ed63587346d584c880aa942d14118b3ed8..96ad2c1f372ee51ce234605ad728c2922d403674 100644 +index 654d7273fbac20f6d76dcdf5d9904f14b1241bd2..923024e035f2b3c5fc767acc2d4c6533a44a5d6d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -547,6 +547,13 @@ public class PurpurWorldConfig { +@@ -552,6 +552,13 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0160-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0160-Config-to-show-Armor-Stand-arms-on-spawn.patch index 8be9f8353..d643b949a 100644 --- a/patches/server/0160-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0160-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,7 +17,7 @@ index 6bd31ed84049bc36a060b5e01b0599bf5f47765c..bdb0efdcac171a92a0e05557db7d099f 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 96ad2c1f372ee51ce234605ad728c2922d403674..354a41fb5a2426ce7835da1f0874445806fbb059 100644 +index 923024e035f2b3c5fc767acc2d4c6533a44a5d6d..ee8238ff6e74f72b04b011e89dd1b50c18e91c93 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 { @@ -35,4 +35,4 @@ index 96ad2c1f372ee51ce234605ad728c2922d403674..354a41fb5a2426ce7835da1f08744458 + armorstandPlaceWithArms = getBoolean("gameplay-mechanics.armorstand.place-with-arms-visible", armorstandPlaceWithArms); } - public boolean useBetterMending = false; + public boolean arrowMovementResetsDespawnCounter = true; diff --git a/patches/server/0161-Option-to-make-doors-require-redstone.patch b/patches/server/0161-Option-to-make-doors-require-redstone.patch index d3f1a5419..a297f9c59 100644 --- a/patches/server/0161-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0161-Option-to-make-doors-require-redstone.patch @@ -67,10 +67,10 @@ index aa5289f652392515952cc10f70627ed2cdc6c398..d1d3323559f12f60ef0564e2218ca153 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 354a41fb5a2426ce7835da1f0874445806fbb059..503a1b325d2e9854108b7578a113807aa2599689 100644 +index ee8238ff6e74f72b04b011e89dd1b50c18e91c93..15d8b8b31c757226ae975b3b2c2407bab2a26d71 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -494,6 +494,16 @@ public class PurpurWorldConfig { +@@ -499,6 +499,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0163-Configurable-sponge-absorption.patch b/patches/server/0163-Configurable-sponge-absorption.patch index 49acc7b38..5cb7f7c8f 100644 --- a/patches/server/0163-Configurable-sponge-absorption.patch +++ b/patches/server/0163-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index 7304b2659eb45bc4bc9fa7c43e6ca07221d0fc73..d96e3fbc0fd4275c29e7e6154ef66e9e } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 503a1b325d2e9854108b7578a113807aa2599689..4cdec578d257ba37bc361b38e7b682e936a87296 100644 +index 15d8b8b31c757226ae975b3b2c2407bab2a26d71..6901e211e4e2888e13f0e850af7089d9782031ca 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -613,6 +613,13 @@ public class PurpurWorldConfig { +@@ -618,6 +618,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0164-Projectile-offset-config.patch b/patches/server/0164-Projectile-offset-config.patch index c2e46dcc2..52e04878b 100644 --- a/patches/server/0164-Projectile-offset-config.patch +++ b/patches/server/0164-Projectile-offset-config.patch @@ -96,10 +96,10 @@ index 5beaafec0759543d3bddf99028c97d0d005be209..086f746cc632a90c67a6c30ea9197c5b 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 4cdec578d257ba37bc361b38e7b682e936a87296..2795d23a5d9ffc36b37c22feda33a1b966088d39 100644 +index 6901e211e4e2888e13f0e850af7089d9782031ca..8c7f9965144f5116e6e7035624eda19e6e6fe31b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -419,6 +419,23 @@ public class PurpurWorldConfig { +@@ -424,6 +424,23 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0165-Config-for-powered-rail-activation-distance.patch b/patches/server/0165-Config-for-powered-rail-activation-distance.patch index 9bd7d2e1a..6428b005a 100644 --- a/patches/server/0165-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0165-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 2795d23a5d9ffc36b37c22feda33a1b966088d39..f6a3c452cc75668ede7c5ddde338088e214c1476 100644 +index 8c7f9965144f5116e6e7035624eda19e6e6fe31b..1378457d826d11e45fd1deef4666a6e25614c06a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -599,6 +599,11 @@ public class PurpurWorldConfig { +@@ -604,6 +604,11 @@ public class PurpurWorldConfig { powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing); } diff --git a/patches/server/0166-Piglin-portal-spawn-modifier.patch b/patches/server/0166-Piglin-portal-spawn-modifier.patch index a459acfb5..745abc4ba 100644 --- a/patches/server/0166-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0166-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index 65fa00b3d4d35a4125f8de444e77ac54e9e28551..dd9badfb2879def258bf725a5d802f7d pos = pos.below(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f6a3c452cc75668ede7c5ddde338088e214c1476..dfaf6027f7d457004dbe2c883a7c19a8dca2a35f 100644 +index 1378457d826d11e45fd1deef4666a6e25614c06a..b1d95ec111e83bfac2f6a1283eb19dc7e89a42d0 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 { +@@ -1622,6 +1622,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index f6a3c452cc75668ede7c5ddde338088e214c1476..dfaf6027f7d457004dbe2c883a7c19a8 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1629,6 +1630,7 @@ public class PurpurWorldConfig { +@@ -1634,6 +1635,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/0168-Config-for-wither-explosion-radius.patch b/patches/server/0168-Config-for-wither-explosion-radius.patch index 8bb4da776..e4ee88d80 100644 --- a/patches/server/0168-Config-for-wither-explosion-radius.patch +++ b/patches/server/0168-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 1654b08f76e02e20a8ce5de618f8def82f1feeeb..7938a81fea35ef79fb1054e7b1117573 if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dfaf6027f7d457004dbe2c883a7c19a8dca2a35f..6ba44b14b94bc9657ff960cce6cce9809d651cbd 100644 +index b1d95ec111e83bfac2f6a1283eb19dc7e89a42d0..54745fe3974277adf245152df67ba9a991cfb2d6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2251,6 +2251,7 @@ public class PurpurWorldConfig { +@@ -2256,6 +2256,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index dfaf6027f7d457004dbe2c883a7c19a8dca2a35f..6ba44b14b94bc9657ff960cce6cce980 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2271,6 +2272,7 @@ public class PurpurWorldConfig { +@@ -2276,6 +2277,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/0170-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0170-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch index 10eab0776..90a58bd76 100644 --- a/patches/server/0170-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch +++ b/patches/server/0170-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch @@ -18,10 +18,10 @@ index 32995cb5efdad0bc34ecacacb78cccd21220ba8d..ee1ed9262e4f2a8f1889feb7b2d4f64a if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6ba44b14b94bc9657ff960cce6cce9809d651cbd..df63de388fa4c7ea61617ac44d30892847ace264 100644 +index 54745fe3974277adf245152df67ba9a991cfb2d6..b69022b6fa96e048bbf3aa704bcbde445378d80f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -441,6 +441,21 @@ public class PurpurWorldConfig { +@@ -446,6 +446,21 @@ public class PurpurWorldConfig { snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); } diff --git a/patches/server/0171-Configurable-piston-push-limit.patch b/patches/server/0171-Configurable-piston-push-limit.patch index d8475987d..e91fe3d0f 100644 --- a/patches/server/0171-Configurable-piston-push-limit.patch +++ b/patches/server/0171-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 df63de388fa4c7ea61617ac44d30892847ace264..261b8f1dcae70370cfe91d54bb4012827facfbcc 100644 +index b69022b6fa96e048bbf3aa704bcbde445378d80f..2c8aea7e0d9c2ce577e16056725be22993d8174c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -609,6 +609,11 @@ public class PurpurWorldConfig { +@@ -614,6 +614,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0173-Configurable-mob-blindness.patch b/patches/server/0173-Configurable-mob-blindness.patch index 059ce7f84..3c40cb752 100644 --- a/patches/server/0173-Configurable-mob-blindness.patch +++ b/patches/server/0173-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 4f9b44c1a1421969f454cb2984d0b7ce21357225..5fd7fc273f7b33e24d9b1a320c0bdd76c9ee0ac2 100644 +index 253ee4d72d1b40a49049692bc02f6be997a2e079..c3dfb85ecdd4c8bd888b8511f430b70cb2e41807 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1011,6 +1011,17 @@ public abstract class LivingEntity extends Entity { @@ -28,10 +28,10 @@ index 4f9b44c1a1421969f454cb2984d0b7ce21357225..5fd7fc273f7b33e24d9b1a320c0bdd76 return d0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 261b8f1dcae70370cfe91d54bb4012827facfbcc..055ccefb43a42635fde5fb8dd787506d8b6382c5 100644 +index 2c8aea7e0d9c2ce577e16056725be22993d8174c..33842c96354a06fccec2c1dfbbb38204485ad3ac 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -129,6 +129,7 @@ public class PurpurWorldConfig { +@@ -134,6 +134,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 261b8f1dcae70370cfe91d54bb4012827facfbcc..055ccefb43a42635fde5fb8dd787506d public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -149,6 +150,7 @@ public class PurpurWorldConfig { +@@ -154,6 +155,7 @@ public class PurpurWorldConfig { persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/server/0175-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0175-Config-for-health-to-impact-Creeper-explosion-radius.patch index a08f27081..463b73be7 100644 --- a/patches/server/0175-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0175-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index bd58b7d364b5e0361e7b8c67d1b26b7f8d3906d3..b19e130b56839c261dd71bbf62b052ed 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 055ccefb43a42635fde5fb8dd787506d8b6382c5..26f98a2ea5dd4ba9207c6991c419dedab65775f2 100644 +index 33842c96354a06fccec2c1dfbbb38204485ad3ac..50bb6f8136354061bacb0d2d7523a83402cf3e5e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -901,6 +901,7 @@ public class PurpurWorldConfig { +@@ -906,6 +906,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 055ccefb43a42635fde5fb8dd787506d8b6382c5..26f98a2ea5dd4ba9207c6991c419deda private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -916,6 +917,7 @@ public class PurpurWorldConfig { +@@ -921,6 +922,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/0176-Iron-golem-calm-anger-options.patch b/patches/server/0176-Iron-golem-calm-anger-options.patch index c9df7fe48..35d017aa9 100644 --- a/patches/server/0176-Iron-golem-calm-anger-options.patch +++ b/patches/server/0176-Iron-golem-calm-anger-options.patch @@ -26,10 +26,10 @@ index e3d725e656bc5ffc5fc92133794a80799fb21c48..fdad66c329ff8945a76a944deca7751a } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 26f98a2ea5dd4ba9207c6991c419dedab65775f2..ff0d9544276d3d71a0a5fd58d0ad683f60cebd48 100644 +index 50bb6f8136354061bacb0d2d7523a83402cf3e5e..8b3914b8892a5a6f2e18962b7daa0bb3f0a40565 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1359,6 +1359,8 @@ public class PurpurWorldConfig { +@@ -1364,6 +1364,8 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -38,7 +38,7 @@ index 26f98a2ea5dd4ba9207c6991c419dedab65775f2..ff0d9544276d3d71a0a5fd58d0ad683f private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1371,6 +1373,8 @@ public class PurpurWorldConfig { +@@ -1376,6 +1378,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/0177-Breedable-parrots.patch b/patches/server/0177-Breedable-parrots.patch index 3ffd6042d..35a6fc6cb 100644 --- a/patches/server/0177-Breedable-parrots.patch +++ b/patches/server/0177-Breedable-parrots.patch @@ -50,10 +50,10 @@ index 11291851f11127f6781b3c77c0d59534606eb9dd..4f4df0f5459e3f62db4b15c57a536dc2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ff0d9544276d3d71a0a5fd58d0ad683f60cebd48..f024c2671738cc80069e616b615a6842110f0ce7 100644 +index 8b3914b8892a5a6f2e18962b7daa0bb3f0a40565..8d40f13c8dbaf67d67fdd4cb7b4b05b3535c9243 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1529,6 +1529,7 @@ public class PurpurWorldConfig { +@@ -1534,6 +1534,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index ff0d9544276d3d71a0a5fd58d0ad683f60cebd48..f024c2671738cc80069e616b615a6842 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1541,6 +1542,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1547,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/0178-Configurable-powered-rail-boost-modifier.patch b/patches/server/0178-Configurable-powered-rail-boost-modifier.patch index aed8d5807..2c9a49a12 100644 --- a/patches/server/0178-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0178-Configurable-powered-rail-boost-modifier.patch @@ -18,10 +18,10 @@ index 05031a1a8b9c42ea5cdf9d8ad9b6aeebe1fc823c..8c6e5e98dd5f425bd9322c01bba06c90 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 f024c2671738cc80069e616b615a6842110f0ce7..f4e4298c6a9b1e7de684f9c2aa7934420ad8cd27 100644 +index 8d40f13c8dbaf67d67fdd4cb7b4b05b3535c9243..062cdb68d943a11f842fc34deed06a435a37a524 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -268,6 +268,7 @@ public class PurpurWorldConfig { +@@ -273,6 +273,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index f024c2671738cc80069e616b615a6842110f0ce7..f4e4298c6a9b1e7de684f9c2aa793442 private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -320,6 +321,7 @@ public class PurpurWorldConfig { +@@ -325,6 +326,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/0179-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0179-Add-config-change-multiplier-critical-damage-value.patch index 3be2503f2..9851bbd6c 100644 --- a/patches/server/0179-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0179-Add-config-change-multiplier-critical-damage-value.patch @@ -18,10 +18,10 @@ index b416c8606ef53aa49458bb6f36689068bc9b54cc..d9fe4f09e48f67fd4b79528a38fcaef9 f += f1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f4e4298c6a9b1e7de684f9c2aa7934420ad8cd27..ab248e6442862d136c853d8053f15709e0f05dc3 100644 +index 062cdb68d943a11f842fc34deed06a435a37a524..4b9a7e7e97e3c4c18a1d6eb0158c17167f9ab2b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -367,6 +367,7 @@ public class PurpurWorldConfig { +@@ -372,6 +372,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index f4e4298c6a9b1e7de684f9c2aa7934420ad8cd27..ab248e6442862d136c853d8053f15709 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -388,6 +389,7 @@ public class PurpurWorldConfig { +@@ -393,6 +394,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/0180-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0180-Option-to-disable-dragon-egg-teleporting.patch index 9200046f7..929c1a023 100644 --- a/patches/server/0180-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0180-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 ab248e6442862d136c853d8053f15709e0f05dc3..d945a8adf68cc7a8a84ce5d0461fc861eb75d305 100644 +index 4b9a7e7e97e3c4c18a1d6eb0158c17167f9ab2b3..95d6d459a1e4ddc52db8ed8af7efc5520f7b6968 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -542,6 +542,11 @@ public class PurpurWorldConfig { +@@ -547,6 +547,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0183-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0183-ShulkerBox-allow-oversized-stacks.patch index 6b1ceee8b..2f7e53a89 100644 --- a/patches/server/0183-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0183-ShulkerBox-allow-oversized-stacks.patch @@ -9,7 +9,7 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for creative players) instead of routing it through the LootableBuilder. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 12d11659134410b2720a00297b796bba3357c89a..95f047e6eb523d07e2b29c8f48e4b0d59d140144 100644 +index d24938fd4cf5645da6443cc7c908b1eb717675a5..7385f94e034232e92dce775ffb26d1a450f02509 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -422,7 +422,7 @@ public class ServerPlayerGameMode { @@ -35,10 +35,10 @@ index 0ca6d495005bded447c3f940dfd571a003301cb0..f4c47f7a7f2572dedbaee4890c98e1f3 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 d945a8adf68cc7a8a84ce5d0461fc861eb75d305..d3c324e1192871540cc9568b70d519ae439c2a4b 100644 +index 95d6d459a1e4ddc52db8ed8af7efc5520f7b6968..4600ce2b30d9bffe412c9980db191572d723cc81 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -651,6 +651,11 @@ public class PurpurWorldConfig { +@@ -656,6 +656,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0184-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0184-Bee-can-work-when-raining-or-at-night.patch index bf68db32c..0822e47cf 100644 --- a/patches/server/0184-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0184-Bee-can-work-when-raining-or-at-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bee can work when raining or at night diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 6bcdc433ab80be133cfb56beda8b01d995ace7af..a51fd1e4e6fb816f544112249e7f7192b334b255 100644 +index 2cea3d633209665d0cab2b211b817e3bbd61d3a2..a7189aff3d36efaee2c41336361960d3c9fa6f72 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -410,7 +410,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -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 d3c324e1192871540cc9568b70d519ae439c2a4b..974914ca4c7e172570a996f695e949d4b714d7b7 100644 +index 4600ce2b30d9bffe412c9980db191572d723cc81..ac63657e39584210cba638af15b81275ae75e7be 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -761,6 +761,8 @@ public class PurpurWorldConfig { +@@ -766,6 +766,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index d3c324e1192871540cc9568b70d519ae439c2a4b..974914ca4c7e172570a996f695e949d4 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -774,6 +776,8 @@ public class PurpurWorldConfig { +@@ -779,6 +781,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/0186-Config-MobEffect-by-world.patch b/patches/server/0186-Config-MobEffect-by-world.patch index 91364b485..49551cec3 100644 --- a/patches/server/0186-Config-MobEffect-by-world.patch +++ b/patches/server/0186-Config-MobEffect-by-world.patch @@ -40,10 +40,10 @@ index 17ffab92f4ae2c06fa9f9249a474d4b6c9c55090..bb15cf2aa35ce8754bba56f5b312d92b ((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 974914ca4c7e172570a996f695e949d4b714d7b7..a0c47d3afcf643a4288e0bf166cc921a8d3d3c42 100644 +index ac63657e39584210cba638af15b81275ae75e7be..1b332e38389b9e39c1546d7cd4a071453674b1b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -324,6 +324,21 @@ public class PurpurWorldConfig { +@@ -329,6 +329,21 @@ public class PurpurWorldConfig { poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier); } diff --git a/patches/server/0187-Beacon-Activation-Range-Configurable.patch b/patches/server/0187-Beacon-Activation-Range-Configurable.patch index 9d5adf316..d833bd7f2 100644 --- a/patches/server/0187-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0187-Beacon-Activation-Range-Configurable.patch @@ -26,10 +26,10 @@ index 5f6eeb36f57bd342b18590c8f0ffb668d2bf273c..59259dd3d8d8fd02c02d7435a4443779 } else { return effectRange; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a0c47d3afcf643a4288e0bf166cc921a8d3d3c42..9d146065ca37c4af4fcf8ed32eb997ebb7d4cb64 100644 +index 1b332e38389b9e39c1546d7cd4a071453674b1b5..15ec722356c9fc34e04760da65882213263eb938 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -514,6 +514,17 @@ public class PurpurWorldConfig { +@@ -519,6 +519,17 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } diff --git a/patches/server/0188-Add-toggle-for-sand-duping-fix.patch b/patches/server/0188-Add-toggle-for-sand-duping-fix.patch index ef5115b32..bd938c698 100644 --- a/patches/server/0188-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0188-Add-toggle-for-sand-duping-fix.patch @@ -27,10 +27,10 @@ index ef07967b64180c54338b8fb2ba1780adec87f333..71e4178bf7d553141719c8a6cb7488d3 } // 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 9d146065ca37c4af4fcf8ed32eb997ebb7d4cb64..ec6e01ef3b3d20dba9b2c55cc6370c780b1105a6 100644 +index 15ec722356c9fc34e04760da65882213263eb938..6d6b3105e8fe2f69ef8d8b94ee22b7f3bce4416f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -677,6 +677,11 @@ public class PurpurWorldConfig { +@@ -682,6 +682,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0189-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0189-Add-toggle-for-end-portal-safe-teleporting.patch index f7394c450..eef4965f9 100644 --- a/patches/server/0189-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0189-Add-toggle-for-end-portal-safe-teleporting.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add toggle for end portal safe teleporting diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2464e334de7e7f2d09e41b6b457a731239505db8..151e573ece15fe19e5b09662a9bb7459aef7e9ae 100644 +index d896493356fdb59607ed193d87c55cfa2ee51b2c..db6a37a87823a3f305249c0fb7c9d90f669c5124 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2930,7 +2930,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -45,10 +45,10 @@ index 04bae5085756842ce88710646a17e9dc1aad5994..e7658fa9806701505e15cbf1d28ea3bd 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 7804c2850e8765af7c7715fb33509d448b52cfab..a66e47e5db1a1e1037a96d469a46ef998a300690 100644 +index 6d6b3105e8fe2f69ef8d8b94ee22b7f3bce4416f..dd632b6282eeded3941a9f55d543017d573d1b99 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -628,6 +628,11 @@ public class PurpurWorldConfig { +@@ -633,6 +633,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0192-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0192-Burp-after-eating-food-fills-hunger-bar-completely.patch index e4fbfdd6e..37e8cb6ff 100644 --- a/patches/server/0192-Burp-after-eating-food-fills-hunger-bar-completely.patch +++ b/patches/server/0192-Burp-after-eating-food-fills-hunger-bar-completely.patch @@ -55,10 +55,10 @@ index 2934b6de1f1fb914a532ee20184df99d1acd8e65..65421cfff05c0493f5fef1bdff03172c 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 8485e62dabd88df10635b9e1b58aae1c5d0b5bb7..148876c6abc1104074e99e9d9080689ab93437b7 100644 +index dd632b6282eeded3941a9f55d543017d573d1b99..4ae0d4bbe83fcdb92b5f628626e1a55062f88cf7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -383,6 +383,7 @@ public class PurpurWorldConfig { +@@ -388,6 +388,7 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -66,7 +66,7 @@ index 8485e62dabd88df10635b9e1b58aae1c5d0b5bb7..148876c6abc1104074e99e9d9080689a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -405,6 +406,7 @@ public class PurpurWorldConfig { +@@ -410,6 +411,7 @@ 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/0195-Shulker-spawn-from-bullet-options.patch b/patches/server/0195-Shulker-spawn-from-bullet-options.patch index e143a0853..33e2c98cd 100644 --- a/patches/server/0195-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0195-Shulker-spawn-from-bullet-options.patch @@ -61,10 +61,10 @@ index 2d3dbc228a6a7b88167a36ba739d9eb2f03472ba..7621978ab3d90d58e8b7c6807e0e0519 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 148876c6abc1104074e99e9d9080689ab93437b7..3010197f8f1c8666afbe3da6221ea115f090cf15 100644 +index 4ae0d4bbe83fcdb92b5f628626e1a55062f88cf7..164755c917c23eaed21273f297c9f157ae02822e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1905,6 +1905,11 @@ public class PurpurWorldConfig { +@@ -1910,6 +1910,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -76,7 +76,7 @@ index 148876c6abc1104074e99e9d9080689ab93437b7..3010197f8f1c8666afbe3da6221ea115 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1916,6 +1921,11 @@ public class PurpurWorldConfig { +@@ -1921,6 +1926,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/0196-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0196-Eating-glow-berries-adds-glow-effect.patch index 00f415f9d..fc4478da6 100644 --- a/patches/server/0196-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0196-Eating-glow-berries-adds-glow-effect.patch @@ -18,10 +18,10 @@ index 21c9733065f6ecb265e4df8a7080697356c796ac..1ce51253b755c2ea4dca94c567935b07 public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE, CreativeModeTab.TAB_DECORATIONS); public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT, CreativeModeTab.TAB_DECORATIONS); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3010197f8f1c8666afbe3da6221ea115f090cf15..c66c9bb795b00f50137376e34b080e4656ab6322 100644 +index 164755c917c23eaed21273f297c9f157ae02822e..2021192f20005e09e9d39132743648ebad90046b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -215,6 +215,7 @@ public class PurpurWorldConfig { +@@ -220,6 +220,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index 3010197f8f1c8666afbe3da6221ea115f090cf15..c66c9bb795b00f50137376e34b080e46 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -258,6 +259,7 @@ public class PurpurWorldConfig { +@@ -263,6 +264,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/0197-Option-to-make-drowned-break-doors.patch b/patches/server/0197-Option-to-make-drowned-break-doors.patch index 854a1147f..189c37751 100644 --- a/patches/server/0197-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0197-Option-to-make-drowned-break-doors.patch @@ -34,10 +34,10 @@ index 037d77b47d0be69dfeda01f4a0d52ad72aea2c8d..6e0a575a95ac0bcbc9e3909178ea566a @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c66c9bb795b00f50137376e34b080e4656ab6322..bd34d3fef3ad9631caaf5b04c6c46c5f1becea8a 100644 +index 2021192f20005e09e9d39132743648ebad90046b..61ea20ecf453cecf437317cd3cdbd9cef8d00540 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1039,6 +1039,7 @@ public class PurpurWorldConfig { +@@ -1044,6 +1044,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index c66c9bb795b00f50137376e34b080e4656ab6322..bd34d3fef3ad9631caaf5b04c6c46c5f private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1054,6 +1055,7 @@ public class PurpurWorldConfig { +@@ -1059,6 +1060,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/0198-Configurable-hunger-starvation-damage.patch b/patches/server/0198-Configurable-hunger-starvation-damage.patch index 88db10817..597cabf72 100644 --- a/patches/server/0198-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0198-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 65421cfff05c0493f5fef1bdff03172c9e33f33e..63584faeec4e5013be7a377e3203ec16 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bd34d3fef3ad9631caaf5b04c6c46c5f1becea8a..481f59adbd5c93629a681988cf288e267e8982cb 100644 +index 61ea20ecf453cecf437317cd3cdbd9cef8d00540..e4ba016c2f89d9e95477d06a4c875e417bbd49ed 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2553,4 +2553,9 @@ public class PurpurWorldConfig { +@@ -2558,4 +2558,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/0200-Armor-click-equip-options.patch b/patches/server/0200-Armor-click-equip-options.patch index 4b66f14ff..8e5dcbe1e 100644 --- a/patches/server/0200-Armor-click-equip-options.patch +++ b/patches/server/0200-Armor-click-equip-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Armor click equip options diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 95f047e6eb523d07e2b29c8f48e4b0d59d140144..5204b8157a45468a314bbcd2703896b9316128ac 100644 +index 7385f94e034232e92dce775ffb26d1a450f02509..28105d2d6d7e97c57246f7142c3bc2d593cf4ed0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -484,7 +484,7 @@ public class ServerPlayerGameMode { @@ -58,10 +58,10 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 481f59adbd5c93629a681988cf288e267e8982cb..bcb891f2530bcbfd7860e9f2bdf0a4b8e4a145f4 100644 +index e4ba016c2f89d9e95477d06a4c875e417bbd49ed..820ff330bd75b4ec67e64a8af32a22fc5e5af667 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -386,6 +386,8 @@ public class PurpurWorldConfig { +@@ -391,6 +391,8 @@ public class PurpurWorldConfig { public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; public boolean playerBurpWhenFull = false; @@ -70,7 +70,7 @@ index 481f59adbd5c93629a681988cf288e267e8982cb..bcb891f2530bcbfd7860e9f2bdf0a4b8 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -409,6 +411,8 @@ public class PurpurWorldConfig { +@@ -414,6 +416,8 @@ public class PurpurWorldConfig { playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); diff --git a/patches/server/0203-Tool-actionable-options.patch b/patches/server/0203-Tool-actionable-options.patch index 7fa6fb16f..9eea8641d 100644 --- a/patches/server/0203-Tool-actionable-options.patch +++ b/patches/server/0203-Tool-actionable-options.patch @@ -111,10 +111,10 @@ index 180aec596110309aade13d2080f8824d152b07cb..bf0e1f481b4c81f0663366bbe597b066 return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bcb891f2530bcbfd7860e9f2bdf0a4b8e4a145f4..280e85f781f6f92943f5797ea4e9d2dc1c138497 100644 +index 820ff330bd75b4ec67e64a8af32a22fc5e5af667..b60a0cb6230bbe238679814eb1ff0b8218fc285a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -517,6 +517,159 @@ public class PurpurWorldConfig { +@@ -522,6 +522,159 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0207-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0207-option-to-disable-shulker-box-items-from-dropping-co.patch index 7d3a0debb..789936746 100644 --- a/patches/server/0207-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0207-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,10 +19,10 @@ index 62d6c5b7590ff4faef5d8c7a8be03155b7338480..72d94c79db5a6d0d41220b34ba6a1787 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 67344a5ae42d670ff8e86f62714b637d5252c160..f228e69e8614039406297522199dd2733f65014a 100644 +index b60a0cb6230bbe238679814eb1ff0b8218fc285a..4b76301a2dd2e55c7293d064c032f626cf843160 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -216,6 +216,7 @@ public class PurpurWorldConfig { +@@ -221,6 +221,7 @@ public class PurpurWorldConfig { public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; @@ -30,7 +30,7 @@ index 67344a5ae42d670ff8e86f62714b637d5252c160..f228e69e8614039406297522199dd273 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -260,6 +261,7 @@ public class PurpurWorldConfig { +@@ -265,6 +266,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/0208-Silk-touchable-budding-amethyst.patch b/patches/server/0208-Silk-touchable-budding-amethyst.patch index 2dadb7132..c1857a6f4 100644 --- a/patches/server/0208-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0208-Silk-touchable-budding-amethyst.patch @@ -24,10 +24,10 @@ index bedccb8717d08d5a60058445b04ddff149e7d36c..5293ffca3da94c9c485a87d1232b6a90 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f133ee81a0a1d65b4f1aaea82a7b4146f9ed6ff6..2b87c946b29460e0b6bad4f46b3fce6bd7ed8886 100644 +index 4b76301a2dd2e55c7293d064c032f626cf843160..0aac989d5580f2a85dd4624fd1a3b2203af341fb 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 { +@@ -709,6 +709,11 @@ public class PurpurWorldConfig { } } @@ -39,7 +39,7 @@ index f133ee81a0a1d65b4f1aaea82a7b4146f9ed6ff6..2b87c946b29460e0b6bad4f46b3fce6b public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2718,3 +2723,4 @@ public class PurpurWorldConfig { +@@ -2723,3 +2728,4 @@ public class PurpurWorldConfig { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } } diff --git a/patches/server/0209-Big-dripleaf-tilt-delay.patch b/patches/server/0209-Big-dripleaf-tilt-delay.patch index 3c2d8fd55..a694095ef 100644 --- a/patches/server/0209-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0209-Big-dripleaf-tilt-delay.patch @@ -24,10 +24,10 @@ index 63aa6b82ba21ec8e8f362b390063e4e275a979a5..81ed6e69494337f402a6d9f854fb26fa 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 2b87c946b29460e0b6bad4f46b3fce6bd7ed8886..c3e531123b83de34fafefc8c406da090ff6df089 100644 +index 0aac989d5580f2a85dd4624fd1a3b2203af341fb..dc4996d7ee6ffc2c3c7567472b9cf622e39bb5b9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -704,6 +704,22 @@ public class PurpurWorldConfig { +@@ -709,6 +709,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0210-Player-ridable-in-water-option.patch b/patches/server/0210-Player-ridable-in-water-option.patch index 636232ba4..317105f5e 100644 --- a/patches/server/0210-Player-ridable-in-water-option.patch +++ b/patches/server/0210-Player-ridable-in-water-option.patch @@ -21,10 +21,10 @@ index 1eb57eeaec24570cade410f40de9e8c244734217..870e794392b94d140db6d5650c3e7ae3 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 897bbfd91828124074a996dc63d17a2a7a196d2c..c475c40279368e61683a338a8e9d8cacf14ed2ef 100644 +index dc4996d7ee6ffc2c3c7567472b9cf622e39bb5b9..d97c25cbb32e2da125e881b180f3b32a5a6ac98f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -390,6 +390,7 @@ public class PurpurWorldConfig { +@@ -395,6 +395,7 @@ public class PurpurWorldConfig { public boolean playerBurpWhenFull = false; public boolean playerArmorSwapping = false; public boolean playerArmorSwappingCreativeMakesCopy = true; @@ -32,7 +32,7 @@ index 897bbfd91828124074a996dc63d17a2a7a196d2c..c475c40279368e61683a338a8e9d8cac private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -415,6 +416,7 @@ public class PurpurWorldConfig { +@@ -420,6 +421,7 @@ public class PurpurWorldConfig { playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); diff --git a/patches/server/0211-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0211-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 7ea7a6cd0..643e98304 100644 --- a/patches/server/0211-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0211-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -18,10 +18,10 @@ index b0c4c90ab2d532a60911d53ac4764dcf49fff6c8..372400d5ce38407b577e5ee403ce39fc boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0fcd4d4a81519262a2c3c961bcb46548ea7a0955..c69967d0ecfdaf6e20117710bc44f4f02bb81c69 100644 +index d97c25cbb32e2da125e881b180f3b32a5a6ac98f..90c70d233327615004fc22cde6b9d71660bb0a5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1298,6 +1298,7 @@ public class PurpurWorldConfig { +@@ -1303,6 +1303,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -29,7 +29,7 @@ index 0fcd4d4a81519262a2c3c961bcb46548ea7a0955..c69967d0ecfdaf6e20117710bc44f4f0 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1320,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1325,6 +1326,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/0212-Add-compass-command.patch b/patches/server/0212-Add-compass-command.patch index 65e604df6..16294dd99 100644 --- a/patches/server/0212-Add-compass-command.patch +++ b/patches/server/0212-Add-compass-command.patch @@ -17,7 +17,7 @@ index 2fbb65c685ac88c77d54f27a5981a132fb44e370..d0ca327337206a64609c1b6ee652cf99 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8960cd89201758e325fb23bd15583af5bec39d7b..aace490037331f3ab59f2d13f6eecb3cf5ddfe80 100644 +index cc2b8be3eb4f51075784816a7696d2dca9ae6bea..b95685e13130a214165acccbe287c249ca73f1bf 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -263,6 +263,7 @@ public class ServerPlayer extends Player { @@ -59,7 +59,7 @@ index 8960cd89201758e325fb23bd15583af5bec39d7b..aace490037331f3ab59f2d13f6eecb3c // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ead823c2efe352d7c62daa491dd8c148c5dc9ab2..5c1da692d6ba145e5c9d08c17f69dbd4661a9ddb 100644 +index c1b7b01c7588cffed238143617dcf2f48a0b241a..c36321f395c7845c73541fa1eb320da7b12ad071 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -263,6 +263,11 @@ public class PurpurConfig { @@ -89,10 +89,10 @@ index ead823c2efe352d7c62daa491dd8c148c5dc9ab2..5c1da692d6ba145e5c9d08c17f69dbd4 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 0b1c5a91568c2e7667dc04665ee89436d0fb92ad..837ea79e092ad00749ce6a5bead3a2a3bd42618f 100644 +index 90c70d233327615004fc22cde6b9d71660bb0a5b..64340213b2122ddc2e39eeac628b69d6f87c7a8f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -217,6 +217,7 @@ public class PurpurWorldConfig { +@@ -222,6 +222,7 @@ public class PurpurWorldConfig { public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; @@ -100,7 +100,7 @@ index 0b1c5a91568c2e7667dc04665ee89436d0fb92ad..837ea79e092ad00749ce6a5bead3a2a3 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -262,6 +263,7 @@ public class PurpurWorldConfig { +@@ -267,6 +268,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/0213-Config-to-prevent-horses-from-standing-with-riders.patch b/patches/server/0213-Config-to-prevent-horses-from-standing-with-riders.patch index d928382bb..795d5a8c6 100644 --- a/patches/server/0213-Config-to-prevent-horses-from-standing-with-riders.patch +++ b/patches/server/0213-Config-to-prevent-horses-from-standing-with-riders.patch @@ -20,10 +20,10 @@ index a1ffa88c3796df2973a2fc0aeafda5f78208bf85..7466c437b2e996f16a08aaefc5c2b7cb } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5ba395226887fd3afec971b5ee6e7d6cf6ce0673..129a017066c464ed6342db9782e2c7545b57a3cd 100644 +index 64340213b2122ddc2e39eeac628b69d6f87c7a8f..fd79206a0db36bb398fc30bc1dc218aee8c68391 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1528,6 +1528,7 @@ public class PurpurWorldConfig { +@@ -1533,6 +1533,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -31,7 +31,7 @@ index 5ba395226887fd3afec971b5ee6e7d6cf6ce0673..129a017066c464ed6342db9782e2c754 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1545,6 +1546,7 @@ public class PurpurWorldConfig { +@@ -1550,6 +1551,7 @@ public class PurpurWorldConfig { horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); diff --git a/patches/server/0214-Toggle-for-kinetic-damage.patch b/patches/server/0214-Toggle-for-kinetic-damage.patch index 6a77b4278..0a8d22589 100644 --- a/patches/server/0214-Toggle-for-kinetic-damage.patch +++ b/patches/server/0214-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 6959ea94bc2efc4417345365be4c506ee11c60bf..6e7af1939df4ff99d6d4645f7ed270110d9d0373 100644 +index 5341f90a45473529095fec6f9b621949d66fa156..634363eb1c23e088b05d895565fb8ce9d3bdfb08 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2860,6 +2860,7 @@ public abstract class LivingEntity extends Entity { @@ -17,10 +17,10 @@ index 6959ea94bc2efc4417345365be4c506ee11c60bf..6e7af1939df4ff99d6d4645f7ed27011 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f090de52394d0958cf73458db374f68fb75f5c58..00df79d18755aa199f6dab25402aa30d8781a0bc 100644 +index fd79206a0db36bb398fc30bc1dc218aee8c68391..1bf60fd08b6b3cae8989fd0e29c68f09fea1304b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -179,12 +179,14 @@ public class PurpurWorldConfig { +@@ -184,12 +184,14 @@ public class PurpurWorldConfig { public boolean elytraIgnoreUnbreaking = false; public int elytraDamagePerFireworkBoost = 0; public int elytraDamagePerTridentBoost = 0; diff --git a/patches/server/0215-Add-Option-for-disable-observer-clocks.patch b/patches/server/0215-Add-Option-for-disable-observer-clocks.patch index b95a171fc..de172a597 100644 --- a/patches/server/0215-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0215-Add-Option-for-disable-observer-clocks.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add Option for disable observer clocks Allow to disable observer clocks: https://www.spigotmc.org/attachments/observerclock-gif.365936/ diff --git a/src/main/java/net/minecraft/world/level/block/ObserverBlock.java b/src/main/java/net/minecraft/world/level/block/ObserverBlock.java -index 25c2c44bde443ab08734253ed7c98c81a345e573..e6a8c78a1a76241bcc6f0dee07838cb46e0f70bf 100644 +index 7b45d6b9a005036ca5051d089a7be792eb87012f..8806c97ecc6bdd8a64c2d82bb2f58f46ac37c468 100644 --- a/src/main/java/net/minecraft/world/level/block/ObserverBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ObserverBlock.java @@ -64,6 +64,7 @@ public class ObserverBlock extends DirectionalBlock { @@ -18,10 +18,10 @@ index 25c2c44bde443ab08734253ed7c98c81a345e573..e6a8c78a1a76241bcc6f0dee07838cb4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 00df79d18755aa199f6dab25402aa30d8781a0bc..63a5e3cf2f185b07e053b162a890389732865f98 100644 +index 1bf60fd08b6b3cae8989fd0e29c68f09fea1304b..fb813690e2e8e0cd98a01fdaff2ce755d94d60d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -362,6 +362,11 @@ public class PurpurWorldConfig { +@@ -367,6 +367,11 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0216-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0216-Customizeable-Zombie-Villager-curing-times.patch index 44fb1e086..27da53955 100644 --- a/patches/server/0216-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0216-Customizeable-Zombie-Villager-curing-times.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Customizeable Zombie Villager curing times diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index c90cf19a4c29aa33c96a67bfab24cbbb56d783da..54b5749a5e40ed9042af1c4904afcdc4af157d82 100644 +index aed21936435edcc83c8da714910132157fa57aa6..2bf8c32afe73668eedc15b2ae5bd4982a781ad2d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -217,7 +217,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -18,10 +18,10 @@ index c90cf19a4c29aa33c96a67bfab24cbbb56d783da..54b5749a5e40ed9042af1c4904afcdc4 return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 943e36e1e10240789836452d214505fd5f49bbd6..1aaa871a1d39022b25e514f68f436bad52e45b10 100644 +index fb813690e2e8e0cd98a01fdaff2ce755d94d60d0..676fd7d6163c793e468af998f87eee5d86b419a5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2704,6 +2704,8 @@ public class PurpurWorldConfig { +@@ -2709,6 +2709,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index 943e36e1e10240789836452d214505fd5f49bbd6..1aaa871a1d39022b25e514f68f436bad private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2719,6 +2721,8 @@ public class PurpurWorldConfig { +@@ -2724,6 +2726,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/0217-Option-for-sponges-to-work-on-lava.patch b/patches/server/0217-Option-for-sponges-to-work-on-lava.patch index 03590460c..224950dc0 100644 --- a/patches/server/0217-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0217-Option-for-sponges-to-work-on-lava.patch @@ -18,10 +18,10 @@ index d96e3fbc0fd4275c29e7e6154ef66e9ed1a5d829..df04a571ebd3c04bc7b58c1ee5661a1f ++i; if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1aaa871a1d39022b25e514f68f436bad52e45b10..dadd4ae7e3f5f88e66499ce11baccf04d9b098c2 100644 +index 676fd7d6163c793e468af998f87eee5d86b419a5..c2d73249ec7cb74a318d2c33159ad6aeb713bfed 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -904,9 +904,11 @@ public class PurpurWorldConfig { +@@ -909,9 +909,11 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 64; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0218-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0218-Toggle-for-Wither-s-spawn-sound.patch index d010cc8ca..aec2a8419 100644 --- a/patches/server/0218-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0218-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index 01397e9daf03a308707cc7e2bb85db68137d3021..0dd31e45252d54b8bfa3645b25c984de // this.world.globalLevelEvent(1023, new BlockPosition(this), 0); //int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dadd4ae7e3f5f88e66499ce11baccf04d9b098c2..aa4331974afdd07c11353358fad4dec5309809e6 100644 +index c2d73249ec7cb74a318d2c33159ad6aeb713bfed..504487696324b53cebdb10e635c9f7aae733c028 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2549,6 +2549,7 @@ public class PurpurWorldConfig { +@@ -2554,6 +2554,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index dadd4ae7e3f5f88e66499ce11baccf04d9b098c2..aa4331974afdd07c11353358fad4dec5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2570,6 +2571,7 @@ public class PurpurWorldConfig { +@@ -2575,6 +2576,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/0219-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0219-Cactus-breaks-from-solid-neighbors-config.patch index 4e272a8eb..931e4b32b 100644 --- a/patches/server/0219-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0219-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index 0fbabb84ef13e68b12212d9bfeb885c78893c116..56fa0e377b20ed063e47358be9e6bba8 return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aa4331974afdd07c11353358fad4dec5309809e6..2ce8414941f4ef4fa5d1b45c9515a1bd0be7c5f1 100644 +index 504487696324b53cebdb10e635c9f7aae733c028..5326ffafa9ef7568f01840cb14c7c13d7965175c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -736,6 +736,11 @@ public class PurpurWorldConfig { +@@ -741,6 +741,11 @@ public class PurpurWorldConfig { buddingAmethystSilkTouch = getBoolean("blocks.budding_amethyst.silk-touch", buddingAmethystSilkTouch); } diff --git a/patches/server/0220-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0220-Config-to-remove-curse-of-binding-with-weakness.patch index 662c2494f..94fb9c377 100644 --- a/patches/server/0220-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0220-Config-to-remove-curse-of-binding-with-weakness.patch @@ -26,10 +26,10 @@ index 12643d60f4bfa8e07901aa0a556a1a245b0a7fb4..96a4a9f9b673a07630493290f5d5315e @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 29d09394eb6ee9fc7f412ffd9b0423b58a8b11fc..497696a008d6508aee4f0facb36258af48c3fec2 100644 +index 5326ffafa9ef7568f01840cb14c7c13d7965175c..25ac97095cf7099f78426c56d48864299d33e96c 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 { +@@ -405,6 +405,7 @@ public class PurpurWorldConfig { public boolean playerArmorSwapping = false; public boolean playerArmorSwappingCreativeMakesCopy = true; public boolean playerRidableInWater = false; @@ -37,7 +37,7 @@ index 29d09394eb6ee9fc7f412ffd9b0423b58a8b11fc..497696a008d6508aee4f0facb36258af 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 { +@@ -431,6 +432,7 @@ public class PurpurWorldConfig { playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); diff --git a/patches/server/0221-Conduit-behavior-configuration.patch b/patches/server/0221-Conduit-behavior-configuration.patch index 615fc2572..86004aa5a 100644 --- a/patches/server/0221-Conduit-behavior-configuration.patch +++ b/patches/server/0221-Conduit-behavior-configuration.patch @@ -44,10 +44,10 @@ index 05eab04e4aec4151018f25b59f92ddbbb4c09f87..8db906e021ca57c7f2a1e7002647e5c5 } CraftEventFactory.blockDamage = null; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index de0a8973d426544602b2f3ee95b9cdede86d7265..f8074566f211075cdfcbba1a5b54ff30dd329c14 100644 +index 25ac97095cf7099f78426c56d48864299d33e96c..48ad9e06f7f035dce6c294647bfeb9a579b37a5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2768,5 +2768,28 @@ public class PurpurWorldConfig { +@@ -2773,5 +2773,28 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0222-Cauldron-fill-chances.patch b/patches/server/0222-Cauldron-fill-chances.patch index 00f1d3ace..f2f0456d8 100644 --- a/patches/server/0222-Cauldron-fill-chances.patch +++ b/patches/server/0222-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index ef15adf66ea994d15a7d2718dd3d22cd07c31f98..dd87e3efdeafb211c1e44f8dc3348830 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f8074566f211075cdfcbba1a5b54ff30dd329c14..3782f9e3979003039fa42abd830639a31fcc03f0 100644 +index 48ad9e06f7f035dce6c294647bfeb9a579b37a5b..c63cca8e91bbfc8633a886df2d6f198f947bb3e1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2791,5 +2791,16 @@ public class PurpurWorldConfig { +@@ -2796,5 +2796,16 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0223-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0223-Config-to-allow-mobs-to-pathfind-over-rails.patch index 372e9356a..a5056a736 100644 --- a/patches/server/0223-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0223-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -18,10 +18,10 @@ index ede91a2fbe67480d2b6bcdeb776f87da0b69bdae..444bec169c0cd5fe1a23f1d14fae1a10 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 f94960a51c983cf66efcfed7622c7c515ccada29..fc3847897170994bbd4e8908a6740a7030048dc8 100644 +index c63cca8e91bbfc8633a886df2d6f198f947bb3e1..1312bcb035794c7143e24c9e1a06081af85cd91d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -135,6 +135,7 @@ public class PurpurWorldConfig { +@@ -140,6 +140,7 @@ public class PurpurWorldConfig { public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -29,7 +29,7 @@ index f94960a51c983cf66efcfed7622c7c515ccada29..fc3847897170994bbd4e8908a6740a70 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -156,6 +157,7 @@ public class PurpurWorldConfig { +@@ -161,6 +162,7 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); diff --git a/patches/server/0224-Shulker-change-color-with-dye.patch b/patches/server/0224-Shulker-change-color-with-dye.patch index 5ac261929..134ee248b 100644 --- a/patches/server/0224-Shulker-change-color-with-dye.patch +++ b/patches/server/0224-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index ada070d8e1a2d328c02455eb9e5ad056046bcd0a..691b59f784e34b061ea156a3236c09f2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index beec1bb2c0c606c53f18bb9c831ec8d098270483..20d396b63492712dacbb791040189301ab2df453 100644 +index 1312bcb035794c7143e24c9e1a06081af85cd91d..55733b718b077d90802e2bdace3dbcab76a166f2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2120,6 +2120,7 @@ public class PurpurWorldConfig { +@@ -2125,6 +2125,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 beec1bb2c0c606c53f18bb9c831ec8d098270483..20d396b63492712dacbb791040189301 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2136,6 +2137,7 @@ public class PurpurWorldConfig { +@@ -2141,6 +2142,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/0227-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0227-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index cd3e7feda..e74e5764c 100644 --- a/patches/server/0227-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0227-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9a3ec0c8f1eacb06d383b666c567853acf8204e4..692fa17277cf89aebb3d98269e6b0e8271feb0ba 100644 +index 70e7ab610babafb0b3af5e22100876acae3a5919..81a0047e04f9be9dd8030fb68f2ce59c166700c1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1143,6 +1143,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -25,10 +25,10 @@ index 9a3ec0c8f1eacb06d383b666c567853acf8204e4..692fa17277cf89aebb3d98269e6b0e82 // 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 3b2bfa5a72e4b0b5e6bb9e9f88645eda50877879..12038651b988ec3b67feff352a494dc2a99b843a 100644 +index 55733b718b077d90802e2bdace3dbcab76a166f2..0ec0db28bf3fa246a5f57c8b36fd8a43e8a72cba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -136,6 +136,8 @@ public class PurpurWorldConfig { +@@ -141,6 +141,8 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean mobsIgnoreRails = false; @@ -37,7 +37,7 @@ index 3b2bfa5a72e4b0b5e6bb9e9f88645eda50877879..12038651b988ec3b67feff352a494dc2 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -158,6 +160,8 @@ public class PurpurWorldConfig { +@@ -163,6 +165,8 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); diff --git a/patches/server/0228-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0228-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index d79d0a3b2..d4dbb360e 100644 --- a/patches/server/0228-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0228-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,10 +45,10 @@ index bcc1ce196c1dbf60cf6ae73d95766dc41ed22012..ad0ee0d333ffd862fe74ac3a097c51d5 public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of(Material.MOSS, MaterialColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS))); public static final Block BIG_DRIPLEAF = register("big_dripleaf", new BigDripleafBlock(BlockBehaviour.Properties.of(Material.PLANT).strength(0.1F).sound(SoundType.BIG_DRIPLEAF))); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ae7c6a18cca40b779c1beefc44b8a96accb53d9a..ac8f98c7a7f580e7371884994a512820d18bfa74 100644 +index 0ec0db28bf3fa246a5f57c8b36fd8a43e8a72cba..edb1390ae7f23d88ee8606dc93349488c694aa25 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -696,6 +696,11 @@ public class PurpurWorldConfig { +@@ -701,6 +701,11 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } @@ -60,7 +60,7 @@ index ae7c6a18cca40b779c1beefc44b8a96accb53d9a..ac8f98c7a7f580e7371884994a512820 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -825,6 +830,11 @@ public class PurpurWorldConfig { +@@ -830,6 +835,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } diff --git a/patches/server/0229-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0229-Shift-right-click-to-use-exp-for-mending.patch index 1a07b5b44..863460e4a 100644 --- a/patches/server/0229-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0229-Shift-right-click-to-use-exp-for-mending.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Shift right click to use exp for mending diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 5204b8157a45468a314bbcd2703896b9316128ac..4fb8ced22cb9f106fbe39ca233a844a7effb824a 100644 +index 28105d2d6d7e97c57246f7142c3bc2d593cf4ed0..af8cde5c413ee1ee410c728f56b4a24e9ee72985 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -511,6 +511,7 @@ public class ServerPlayerGameMode { @@ -36,7 +36,7 @@ index 5204b8157a45468a314bbcd2703896b9316128ac..4fb8ced22cb9f106fbe39ca233a844a7 + // 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 aa41e4aed283297b923985f7ceee914cb62666a9..4d61504698a54af354fdf047426f87771397cc02 100644 +index 9aa0c7eddccb7a81834582f4f50e7f6b93a688e8..65fe07e77745ec0c950117e8057368159833736c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1999,6 +1999,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -48,10 +48,10 @@ index aa41e4aed283297b923985f7ceee914cb62666a9..4d61504698a54af354fdf047426f8777 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 db2a2a2845cf9155875d0ae1a11fce0dc2b6b4e7..95a643519ce3e4ef376acc2e8e2456595583db38 100644 +index edb1390ae7f23d88ee8606dc93349488c694aa25..e78b282022a72ff52ea941d661e1978b6eedc887 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -407,6 +407,7 @@ public class PurpurWorldConfig { +@@ -412,6 +412,7 @@ public class PurpurWorldConfig { public boolean playerArmorSwappingCreativeMakesCopy = true; public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; @@ -59,7 +59,7 @@ index db2a2a2845cf9155875d0ae1a11fce0dc2b6b4e7..95a643519ce3e4ef376acc2e8e245659 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -434,6 +435,7 @@ public class PurpurWorldConfig { +@@ -439,6 +440,7 @@ public class PurpurWorldConfig { playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); 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/0230-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0230-Dolphins-naturally-aggressive-to-players-chance.patch index 6050032c5..b47d6cfce 100644 --- a/patches/server/0230-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0230-Dolphins-naturally-aggressive-to-players-chance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dolphins naturally aggressive to players chance diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index 1e95fa49a5dc8b756756924cbaf12d49ad33a274..89e3eec134868f727d776ee8144b291518a3931a 100644 +index b0c933644c1f4b5aa142c7c4d26a9b81cb4051f7..f8be4c96e7e7b8e6d8c538b1f425f01d866ce8f9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -79,6 +79,7 @@ public class Dolphin extends WaterAnimal { @@ -47,10 +47,10 @@ index 1e95fa49a5dc8b756756924cbaf12d49ad33a274..89e3eec134868f727d776ee8144b2915 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 484db044eff9196d294b8afc272798b892585fa6..75cf05bef0cadd50ec86cd501d5e3afeb6128915 100644 +index e78b282022a72ff52ea941d661e1978b6eedc887..3bef36c72bd69b2751ca317223fbf8a50e7bc92a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1204,6 +1204,7 @@ public class PurpurWorldConfig { +@@ -1209,6 +1209,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 484db044eff9196d294b8afc272798b892585fa6..75cf05bef0cadd50ec86cd501d5e3afe private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1218,6 +1219,7 @@ public class PurpurWorldConfig { +@@ -1223,6 +1224,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/0231-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0231-Cows-naturally-aggressive-to-players-chance.patch index 08ccd2abc..bf9b5baee 100644 --- a/patches/server/0231-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0231-Cows-naturally-aggressive-to-players-chance.patch @@ -59,10 +59,10 @@ index 00eec3f51e62858e7b85b3340e76bf66bfd4370f..b5002526f20fb8ae52783a6ba95ccd2d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 75cf05bef0cadd50ec86cd501d5e3afeb6128915..ad6ef83004344c4b7b23261a1757224ef25d9312 100644 +index 3bef36c72bd69b2751ca317223fbf8a50e7bc92a..b56bbca2961887ff993ac03d37cc0ec13f91f62d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1153,7 +1153,14 @@ public class PurpurWorldConfig { +@@ -1158,7 +1158,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -77,7 +77,7 @@ index 75cf05bef0cadd50ec86cd501d5e3afeb6128915..ad6ef83004344c4b7b23261a1757224e cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1166,6 +1173,8 @@ public class PurpurWorldConfig { +@@ -1171,6 +1178,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/0232-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0232-Option-for-beds-to-explode-on-villager-sleep.patch index 6f6d1e292..539c422a9 100644 --- a/patches/server/0232-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0232-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index 89435b0742064d77c7cc8bb871949acc9852f2c0..f04778287545e9619ee0359f1e51151d 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 ad6ef83004344c4b7b23261a1757224ef25d9312..abe7518b86340dd3a04044b445bb0a7286773188 100644 +index b56bbca2961887ff993ac03d37cc0ec13f91f62d..60b98696a8ea2fceb539a6dd0f8c16c811bb8ffa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -715,11 +715,13 @@ public class PurpurWorldConfig { +@@ -720,11 +720,13 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; diff --git a/patches/server/0233-Halloween-options-and-optimizations.patch b/patches/server/0233-Halloween-options-and-optimizations.patch index 996a9e368..ea74b251a 100644 --- a/patches/server/0233-Halloween-options-and-optimizations.patch +++ b/patches/server/0233-Halloween-options-and-optimizations.patch @@ -60,10 +60,10 @@ index 0748babe61be5e5082132af6c4a3bc82612b70b3..5b7a6fa9692933ceb40c36e2c684a98d 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 abe7518b86340dd3a04044b445bb0a7286773188..71d90818d95cdeae57869058e7c12cf551f0cc85 100644 +index 60b98696a8ea2fceb539a6dd0f8c16c811bb8ffa..ac4a397db476ef49d3be0131eaa2a1e9c2012224 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1546,6 +1546,13 @@ public class PurpurWorldConfig { +@@ -1551,6 +1551,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0236-Campfire-option-for-lit-when-placed.patch b/patches/server/0236-Campfire-option-for-lit-when-placed.patch index 27531cdc6..89ccae5ad 100644 --- a/patches/server/0236-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0236-Campfire-option-for-lit-when-placed.patch @@ -18,10 +18,10 @@ index a4c44cb59dee29cf227dbb51bfc1576d89dfb2e3..551bacade8642e6aad17120d8a901bcc @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71d90818d95cdeae57869058e7c12cf551f0cc85..570bb9fa09881c07e51784015904bad5168390f5 100644 +index ac4a397db476ef49d3be0131eaa2a1e9c2012224..907962842a93c771fbc2d5f712839da068940632 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -758,6 +758,11 @@ public class PurpurWorldConfig { +@@ -763,6 +763,11 @@ public class PurpurWorldConfig { cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); } diff --git a/patches/server/0237-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0237-options-to-extinguish-fire-blocks-with-snowballs.patch index 46db9e321..f07dcd51a 100644 --- a/patches/server/0237-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0237-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,10 +46,10 @@ index 74f798baafc53cd7dd1d4f58bc9a3581ba4f21da..c7c10c89871a3ee6d21da4bb19407a68 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 77d5ad2985eb0f3d4a75f6129b4d44a81b637861..f21fcef89306008af99b4ef086c87d5226689e5c 100644 +index 907962842a93c771fbc2d5f712839da068940632..9066c71e5cfb228b3e4491880c58b8860538e231 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -226,6 +226,9 @@ public class PurpurWorldConfig { +@@ -231,6 +231,9 @@ public class PurpurWorldConfig { public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; public boolean compassItemShowsBossBar = false; @@ -59,7 +59,7 @@ index 77d5ad2985eb0f3d4a75f6129b4d44a81b637861..f21fcef89306008af99b4ef086c87d52 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -272,6 +275,9 @@ public class PurpurWorldConfig { +@@ -277,6 +280,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/0238-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0238-Add-option-to-disable-zombie-villagers-cure.patch index d4b40f1a6..45fb09aa1 100644 --- a/patches/server/0238-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0238-Add-option-to-disable-zombie-villagers-cure.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to disable zombie villagers cure diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 54b5749a5e40ed9042af1c4904afcdc4af157d82..07c2ea2d16c9df6107247507fcd09025923a7798 100644 +index 2bf8c32afe73668eedc15b2ae5bd4982a781ad2d..0759d11e8d62b5794ef12dff792e0361600a8cb1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -211,7 +211,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -18,10 +18,10 @@ index 54b5749a5e40ed9042af1c4904afcdc4af157d82..07c2ea2d16c9df6107247507fcd09025 itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6678f464bab069435196cfbf38ea166d7ad39a0d..c43e8954f8ab8e54082e9a1f33090a21f62ec060 100644 +index 9066c71e5cfb228b3e4491880c58b8860538e231..ec1b9bfa21f0c4b8abd7ba6a8d91776117f02ff4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2768,6 +2768,7 @@ public class PurpurWorldConfig { +@@ -2773,6 +2773,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 6678f464bab069435196cfbf38ea166d7ad39a0d..c43e8954f8ab8e54082e9a1f33090a21 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2785,6 +2786,7 @@ public class PurpurWorldConfig { +@@ -2790,6 +2791,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/0239-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0239-Persistent-BlockEntity-Lore-and-DisplayName.patch index 0558d27c2..6e4f132af 100644 --- a/patches/server/0239-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0239-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -195,10 +195,10 @@ index b96d57b0bcf21508f8e03e96b7553eb486fdf212..d3de829a4ab5f5a127fb026a8cb4ef4e + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 990918f2f48c5f035c1dc8d79cab2b8e6145cdbd..dd4a639596e14e6293262839121e60dce42ffda9 100644 +index ec1b9bfa21f0c4b8abd7ba6a8d91776117f02ff4..a20317cddd421c29fa3c713024466e4b07fa9e23 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -127,6 +127,7 @@ public class PurpurWorldConfig { +@@ -132,6 +132,7 @@ public class PurpurWorldConfig { public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; @@ -206,7 +206,7 @@ index 990918f2f48c5f035c1dc8d79cab2b8e6145cdbd..dd4a639596e14e6293262839121e60dc public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; public double mobsBlindnessMultiplier = 1; -@@ -150,6 +151,7 @@ public class PurpurWorldConfig { +@@ -155,6 +156,7 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); diff --git a/patches/server/0240-Signs-allow-color-codes.patch b/patches/server/0240-Signs-allow-color-codes.patch index d63251672..e2811428d 100644 --- a/patches/server/0240-Signs-allow-color-codes.patch +++ b/patches/server/0240-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index aace490037331f3ab59f2d13f6eecb3cf5ddfe80..9c09e46aeea0527880e935c1e3cf1046036d5764 100644 +index b95685e13130a214165acccbe287c249ca73f1bf..60873c874abbeff8f30b3536f5c4cc03e663530a 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1516,6 +1516,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index aace490037331f3ab59f2d13f6eecb3cf5ddfe80..9c09e46aeea0527880e935c1e3cf1046 this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4d61504698a54af354fdf047426f87771397cc02..05bda808496f38d10416c3702b1f97fe18247769 100644 +index 65fe07e77745ec0c950117e8057368159833736c..526d4d796fbcabcdc574dada718f904809a6dbf4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3384,11 +3384,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -70,10 +70,10 @@ index def4fdd2c7e4f925fa128692a744e5d10ae0203a..73382580cc23cbc868a6003e74826a55 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 70504e9190a34fb76862fd1d7a75a7340d6bf4f8..7c7434a13a17a28ee08a0f4f1f4959f77849170c 100644 +index a20317cddd421c29fa3c713024466e4b07fa9e23..566fe203c4b788c316b8c893621579c4dae65f5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -928,8 +928,10 @@ public class PurpurWorldConfig { +@@ -933,8 +933,10 @@ public class PurpurWorldConfig { } public boolean signRightClickEdit = false; diff --git a/patches/server/0241-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0241-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index cbeb2fc7b..5c51c4abc 100644 --- a/patches/server/0241-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0241-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Kelp weeping and twisting vines configurable max growth age diff --git a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java -index 6659a96b3638265f128a352cc9f12629874bfb4b..5019fd602a913b01ea6b6278c73164c50a154476 100644 +index 4940e101250874111e9c55aeb5b87b28602246f0..1963831ccef0ea1e2ee519c8b3a53d245c80aa63 100644 --- a/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CaveVinesBlock.java @@ -88,4 +88,11 @@ public class CaveVinesBlock extends GrowingPlantHeadBlock implements Bonemealabl @@ -131,10 +131,10 @@ index e5c135ec059746b75fe58516809584221285cdbe..b09ccc493c7503aa99a64d760b5bc769 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 57bc59537abfde26d1fe62f3661dc8eafd811e77..68c173fac745593404b63e8e94ed8c62766bd2c6 100644 +index 566fe203c4b788c316b8c893621579c4dae65f5b..4c087a6ed8032636f27b815f1350feeb092a75e2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -781,6 +781,11 @@ public class PurpurWorldConfig { +@@ -786,6 +786,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } @@ -146,7 +146,7 @@ index 57bc59537abfde26d1fe62f3661dc8eafd811e77..68c173fac745593404b63e8e94ed8c62 public boolean dispenserApplyCursedArmor = true; public boolean dispenserPlaceAnvils = false; private void dispenserSettings() { -@@ -875,6 +880,16 @@ public class PurpurWorldConfig { +@@ -880,6 +885,16 @@ public class PurpurWorldConfig { mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); } @@ -163,7 +163,7 @@ index 57bc59537abfde26d1fe62f3661dc8eafd811e77..68c173fac745593404b63e8e94ed8c62 public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; -@@ -964,6 +979,16 @@ public class PurpurWorldConfig { +@@ -969,6 +984,16 @@ public class PurpurWorldConfig { turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); } @@ -180,7 +180,7 @@ index 57bc59537abfde26d1fe62f3661dc8eafd811e77..68c173fac745593404b63e8e94ed8c62 public boolean waterInfinite = true; public int waterInfiniteRequiredSources = 2; private void waterSources() { -@@ -971,6 +996,16 @@ public class PurpurWorldConfig { +@@ -976,6 +1001,16 @@ public class PurpurWorldConfig { waterInfiniteRequiredSources = getInt("blocks.water.infinite-required-sources", waterInfiniteRequiredSources); } diff --git a/patches/server/0242-Mobs-always-drop-experience.patch b/patches/server/0242-Mobs-always-drop-experience.patch index 0ee710146..896eaaae4 100644 --- a/patches/server/0242-Mobs-always-drop-experience.patch +++ b/patches/server/0242-Mobs-always-drop-experience.patch @@ -37,7 +37,7 @@ index a851aaf84085c9bd79e933246bb2c79e435ab0f1..1436f9f62ce20b39c5ae2425c2fe47f5 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index a51fd1e4e6fb816f544112249e7f7192b334b255..4b9d13fb36d0e35f1cc7a5d95b26dc5f8ded0d6a 100644 +index a7189aff3d36efaee2c41336361960d3c9fa6f72..c3680aa6d92b0adb104d144875cea679084e36f2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -229,6 +229,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -117,7 +117,7 @@ index b5002526f20fb8ae52783a6ba95ccd2d4f9b7840..a79b4a90274d25d427214b96649cdf85 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index 89e3eec134868f727d776ee8144b291518a3931a..e3ae85877110a6eb8017efe3be730f4394cd9ce1 100644 +index f8be4c96e7e7b8e6d8c538b1f425f01d866ce8f9..284c1342695aeb652f39c236d14538647465846e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -168,6 +168,11 @@ public class Dolphin extends WaterAnimal { @@ -133,7 +133,7 @@ index 89e3eec134868f727d776ee8144b291518a3931a..e3ae85877110a6eb8017efe3be730f43 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 8e04d20c0f1038dbe1c8e7f05242f66e95ec5a38..66749befa2e6d766d80224b507e1acef733e5b49 100644 +index 41690949a990a753a24e6c27595cb0b50a52e0a8..21d755f228fbb49ded0e78322c6d29fc2622bb79 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -193,6 +193,11 @@ public class Fox extends Animal { @@ -421,7 +421,7 @@ index 83eef99d7f24634e301a51d2825370c9283b53ac..32870e6727d09fbf1c4913ffdf321a27 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 60b40bf64de5562d124857614f3ebe7b505a59f1..52608eb55f0a191313fbf5a1ace8eafa3eb1bfcb 100644 +index ae50bb7e86cddd95a0b49a89682083994ddf14ef..4688e567dff250437335cbde34db4483f535b79a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -119,6 +119,11 @@ public class Goat extends Animal { @@ -1045,7 +1045,7 @@ index 5b7a6fa9692933ceb40c36e2c684a98d2ba51d57..177bc2b03d2f103add8e8d8ff862c8fe @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 07c2ea2d16c9df6107247507fcd09025923a7798..8f81ad1f4ee7bc31d136048a4b90bc7d234816f2 100644 +index 0759d11e8d62b5794ef12dff792e0361600a8cb1..1f845c00c3e184fd982bccc6951115c131e779d0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -123,6 +123,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -1157,10 +1157,10 @@ index 8d6930868a42b9fc98d7672bff433ec50d36999e..53bebecd30fee7613af73901b3aa9961 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee2c98802f 100644 +index 4c087a6ed8032636f27b815f1350feeb092a75e2..40e54a9d0bdd8e155eae9086facbe8cd7fd261bc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1029,12 +1029,14 @@ public class PurpurWorldConfig { +@@ -1034,12 +1034,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean batRidable = false; -@@ -1050,6 +1052,7 @@ public class PurpurWorldConfig { +@@ -1055,6 +1057,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1062,6 +1065,7 @@ public class PurpurWorldConfig { +@@ -1067,6 +1070,7 @@ public class PurpurWorldConfig { } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1191,7 +1191,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean beeRidable = false; -@@ -1073,6 +1077,7 @@ public class PurpurWorldConfig { +@@ -1078,6 +1082,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1088,6 +1093,7 @@ public class PurpurWorldConfig { +@@ -1093,6 +1098,7 @@ public class PurpurWorldConfig { beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); @@ -1207,7 +1207,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean blazeRidable = false; -@@ -1096,6 +1102,7 @@ public class PurpurWorldConfig { +@@ -1101,6 +1107,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1108,6 +1115,7 @@ public class PurpurWorldConfig { +@@ -1113,6 +1120,7 @@ public class PurpurWorldConfig { } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1223,7 +1223,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean catRidable = false; -@@ -1120,6 +1128,7 @@ public class PurpurWorldConfig { +@@ -1125,6 +1133,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1140,6 +1149,7 @@ public class PurpurWorldConfig { +@@ -1145,6 +1154,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean caveSpiderRidable = false; -@@ -1147,6 +1157,7 @@ public class PurpurWorldConfig { +@@ -1152,6 +1162,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1158,6 +1169,7 @@ public class PurpurWorldConfig { +@@ -1163,6 +1174,7 @@ public class PurpurWorldConfig { } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1255,7 +1255,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean chickenRidable = false; -@@ -1167,6 +1179,7 @@ public class PurpurWorldConfig { +@@ -1172,6 +1184,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1180,12 +1193,14 @@ public class PurpurWorldConfig { +@@ -1185,12 +1198,14 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); @@ -1278,7 +1278,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1196,6 +1211,7 @@ public class PurpurWorldConfig { +@@ -1201,6 +1216,7 @@ public class PurpurWorldConfig { } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1286,7 +1286,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean cowRidable = false; -@@ -1207,6 +1223,7 @@ public class PurpurWorldConfig { +@@ -1212,6 +1228,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1227,6 +1244,7 @@ public class PurpurWorldConfig { +@@ -1232,6 +1249,7 @@ public class PurpurWorldConfig { cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); @@ -1302,7 +1302,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean creeperRidable = false; -@@ -1239,6 +1257,7 @@ public class PurpurWorldConfig { +@@ -1244,6 +1262,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1255,6 +1274,7 @@ public class PurpurWorldConfig { +@@ -1260,6 +1279,7 @@ public class PurpurWorldConfig { creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); @@ -1318,7 +1318,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean dolphinRidable = false; -@@ -1266,6 +1286,7 @@ public class PurpurWorldConfig { +@@ -1271,6 +1291,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1281,6 +1302,7 @@ public class PurpurWorldConfig { +@@ -1286,6 +1307,7 @@ public class PurpurWorldConfig { dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); @@ -1334,7 +1334,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean donkeyRidableInWater = false; -@@ -1292,6 +1314,7 @@ public class PurpurWorldConfig { +@@ -1297,6 +1319,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1309,6 +1332,7 @@ public class PurpurWorldConfig { +@@ -1314,6 +1337,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); @@ -1350,7 +1350,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean drownedRidable = false; -@@ -1321,6 +1345,7 @@ public class PurpurWorldConfig { +@@ -1326,6 +1350,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1337,12 +1362,14 @@ public class PurpurWorldConfig { +@@ -1342,12 +1367,14 @@ public class PurpurWorldConfig { drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); @@ -1373,7 +1373,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1353,6 +1380,7 @@ public class PurpurWorldConfig { +@@ -1358,6 +1385,7 @@ public class PurpurWorldConfig { } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1381,7 +1381,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean enderDragonRidable = false; -@@ -1398,6 +1426,7 @@ public class PurpurWorldConfig { +@@ -1403,6 +1431,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1421,6 +1450,7 @@ public class PurpurWorldConfig { +@@ -1426,6 +1455,7 @@ public class PurpurWorldConfig { endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1397,7 +1397,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean endermiteRidable = false; -@@ -1428,6 +1458,7 @@ public class PurpurWorldConfig { +@@ -1433,6 +1463,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1439,6 +1470,7 @@ public class PurpurWorldConfig { +@@ -1444,6 +1475,7 @@ public class PurpurWorldConfig { } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1413,7 +1413,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean evokerRidable = false; -@@ -1447,6 +1479,7 @@ public class PurpurWorldConfig { +@@ -1452,6 +1484,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1459,6 +1492,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1497,7 @@ public class PurpurWorldConfig { evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1429,7 +1429,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean foxRidable = false; -@@ -1469,6 +1503,7 @@ public class PurpurWorldConfig { +@@ -1474,6 +1508,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1483,6 +1518,7 @@ public class PurpurWorldConfig { +@@ -1488,6 +1523,7 @@ public class PurpurWorldConfig { foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); @@ -1445,7 +1445,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean frogRidable = false; -@@ -1504,6 +1540,7 @@ public class PurpurWorldConfig { +@@ -1509,6 +1545,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1516,6 +1553,7 @@ public class PurpurWorldConfig { +@@ -1521,6 +1558,7 @@ public class PurpurWorldConfig { } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1461,7 +1461,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean giantRidable = false; -@@ -1529,6 +1567,7 @@ public class PurpurWorldConfig { +@@ -1534,6 +1572,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1550,6 +1589,7 @@ public class PurpurWorldConfig { +@@ -1555,6 +1594,7 @@ public class PurpurWorldConfig { giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); @@ -1477,7 +1477,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean glowSquidRidable = false; -@@ -1557,12 +1597,14 @@ public class PurpurWorldConfig { +@@ -1562,12 +1602,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean goatRidable = false; -@@ -1571,6 +1613,7 @@ public class PurpurWorldConfig { +@@ -1576,6 +1618,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1578,12 +1621,14 @@ public class PurpurWorldConfig { +@@ -1583,12 +1626,14 @@ public class PurpurWorldConfig { goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth); goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater); @@ -1515,7 +1515,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1594,6 +1639,7 @@ public class PurpurWorldConfig { +@@ -1599,6 +1644,7 @@ public class PurpurWorldConfig { } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1523,7 +1523,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean forceHalloweenSeason = false; -@@ -1609,6 +1655,7 @@ public class PurpurWorldConfig { +@@ -1614,6 +1660,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1621,6 +1668,7 @@ public class PurpurWorldConfig { +@@ -1626,6 +1673,7 @@ public class PurpurWorldConfig { hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1539,7 +1539,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean horseRidableInWater = false; -@@ -1633,6 +1681,7 @@ public class PurpurWorldConfig { +@@ -1638,6 +1686,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -1547,7 +1547,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1651,6 +1700,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1705,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); @@ -1555,7 +1555,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean huskRidable = false; -@@ -1662,6 +1712,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1717,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1677,6 +1728,7 @@ public class PurpurWorldConfig { +@@ -1682,6 +1733,7 @@ public class PurpurWorldConfig { huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); @@ -1571,7 +1571,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean illusionerRidable = false; -@@ -1686,6 +1738,7 @@ public class PurpurWorldConfig { +@@ -1691,6 +1743,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1703,6 +1756,7 @@ public class PurpurWorldConfig { +@@ -1708,6 +1761,7 @@ public class PurpurWorldConfig { } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1587,7 +1587,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean ironGolemRidable = false; -@@ -1713,6 +1767,7 @@ public class PurpurWorldConfig { +@@ -1718,6 +1772,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1727,6 +1782,7 @@ public class PurpurWorldConfig { +@@ -1732,6 +1787,7 @@ public class PurpurWorldConfig { ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm); @@ -1603,7 +1603,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean llamaRidable = false; -@@ -1741,6 +1797,7 @@ public class PurpurWorldConfig { +@@ -1746,6 +1802,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1761,6 +1818,7 @@ public class PurpurWorldConfig { +@@ -1766,6 +1823,7 @@ public class PurpurWorldConfig { llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); @@ -1619,7 +1619,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean magmaCubeRidable = false; -@@ -1771,6 +1829,7 @@ public class PurpurWorldConfig { +@@ -1776,6 +1834,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1785,6 +1844,7 @@ public class PurpurWorldConfig { +@@ -1790,6 +1849,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean mooshroomRidable = false; -@@ -1793,6 +1853,7 @@ public class PurpurWorldConfig { +@@ -1798,6 +1858,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1805,6 +1866,7 @@ public class PurpurWorldConfig { +@@ -1810,6 +1871,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean muleRidableInWater = false; -@@ -1816,6 +1878,7 @@ public class PurpurWorldConfig { +@@ -1821,6 +1883,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1833,6 +1896,7 @@ public class PurpurWorldConfig { +@@ -1838,6 +1901,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean ocelotRidable = false; -@@ -1841,6 +1905,7 @@ public class PurpurWorldConfig { +@@ -1846,6 +1910,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1853,6 +1918,7 @@ public class PurpurWorldConfig { +@@ -1858,6 +1923,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean pandaRidable = false; -@@ -1861,6 +1927,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1932,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1873,6 +1940,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1945,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean parrotRidable = false; -@@ -1882,6 +1950,7 @@ public class PurpurWorldConfig { +@@ -1887,6 +1955,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1895,6 +1964,7 @@ public class PurpurWorldConfig { +@@ -1900,6 +1969,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean phantomRidable = false; -@@ -1928,6 +1998,7 @@ public class PurpurWorldConfig { +@@ -1933,6 +2003,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1969,6 +2040,7 @@ public class PurpurWorldConfig { +@@ -1974,6 +2045,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean pigRidable = false; -@@ -1978,6 +2050,7 @@ public class PurpurWorldConfig { +@@ -1983,6 +2055,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1991,6 +2064,7 @@ public class PurpurWorldConfig { +@@ -1996,6 +2069,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean piglinRidable = false; -@@ -2000,6 +2074,7 @@ public class PurpurWorldConfig { +@@ -2005,6 +2079,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2013,6 +2088,7 @@ public class PurpurWorldConfig { +@@ -2018,6 +2093,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean piglinBruteRidable = false; -@@ -2020,6 +2096,7 @@ public class PurpurWorldConfig { +@@ -2025,6 +2101,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2031,6 +2108,7 @@ public class PurpurWorldConfig { +@@ -2036,6 +2113,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean pillagerRidable = false; -@@ -2039,6 +2117,7 @@ public class PurpurWorldConfig { +@@ -2044,6 +2122,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2051,6 +2130,7 @@ public class PurpurWorldConfig { +@@ -2056,6 +2135,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean polarBearRidable = false; -@@ -2061,6 +2141,7 @@ public class PurpurWorldConfig { +@@ -2066,6 +2146,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2076,12 +2157,14 @@ public class PurpurWorldConfig { +@@ -2081,12 +2162,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2092,6 +2175,7 @@ public class PurpurWorldConfig { +@@ -2097,6 +2180,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean rabbitRidable = false; -@@ -2103,6 +2187,7 @@ public class PurpurWorldConfig { +@@ -2108,6 +2192,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2118,6 +2203,7 @@ public class PurpurWorldConfig { +@@ -2123,6 +2208,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean ravagerRidable = false; -@@ -2127,6 +2213,7 @@ public class PurpurWorldConfig { +@@ -2132,6 +2218,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2156,12 +2243,14 @@ public class PurpurWorldConfig { +@@ -2161,12 +2248,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2172,6 +2261,7 @@ public class PurpurWorldConfig { +@@ -2177,6 +2266,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean sheepRidable = false; -@@ -2181,6 +2271,7 @@ public class PurpurWorldConfig { +@@ -2186,6 +2276,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2194,6 +2285,7 @@ public class PurpurWorldConfig { +@@ -2199,6 +2290,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean shulkerRidable = false; -@@ -2207,6 +2299,7 @@ public class PurpurWorldConfig { +@@ -2212,6 +2304,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2224,6 +2317,7 @@ public class PurpurWorldConfig { +@@ -2229,6 +2322,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean silverfishRidable = false; -@@ -2232,6 +2326,7 @@ public class PurpurWorldConfig { +@@ -2237,6 +2331,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2244,6 +2339,7 @@ public class PurpurWorldConfig { +@@ -2249,6 +2344,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean skeletonRidable = false; -@@ -2251,6 +2347,7 @@ public class PurpurWorldConfig { +@@ -2256,6 +2352,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2262,6 +2359,7 @@ public class PurpurWorldConfig { +@@ -2267,6 +2364,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean skeletonHorseRidableInWater = true; -@@ -2273,6 +2371,7 @@ public class PurpurWorldConfig { +@@ -2278,6 +2376,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2289,6 +2388,7 @@ public class PurpurWorldConfig { +@@ -2294,6 +2393,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean slimeRidable = false; -@@ -2299,6 +2399,7 @@ public class PurpurWorldConfig { +@@ -2304,6 +2404,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2313,6 +2414,7 @@ public class PurpurWorldConfig { +@@ -2318,6 +2419,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean snowGolemRidable = false; -@@ -2328,6 +2430,7 @@ public class PurpurWorldConfig { +@@ -2333,6 +2435,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2347,6 +2450,7 @@ public class PurpurWorldConfig { +@@ -2352,6 +2455,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean squidRidable = false; -@@ -2356,6 +2460,7 @@ public class PurpurWorldConfig { +@@ -2361,6 +2465,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2369,6 +2474,7 @@ public class PurpurWorldConfig { +@@ -2374,6 +2479,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean spiderRidable = false; -@@ -2376,6 +2482,7 @@ public class PurpurWorldConfig { +@@ -2381,6 +2487,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2387,6 +2494,7 @@ public class PurpurWorldConfig { +@@ -2392,6 +2499,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean strayRidable = false; -@@ -2394,6 +2502,7 @@ public class PurpurWorldConfig { +@@ -2399,6 +2507,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2405,6 +2514,7 @@ public class PurpurWorldConfig { +@@ -2410,6 +2519,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean striderRidable = false; -@@ -2414,6 +2524,7 @@ public class PurpurWorldConfig { +@@ -2419,6 +2529,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2427,6 +2538,7 @@ public class PurpurWorldConfig { +@@ -2432,6 +2543,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean tadpoleRidable = false; -@@ -2449,6 +2561,7 @@ public class PurpurWorldConfig { +@@ -2454,6 +2566,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2468,12 +2581,14 @@ public class PurpurWorldConfig { +@@ -2473,12 +2586,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2484,6 +2599,7 @@ public class PurpurWorldConfig { +@@ -2489,6 +2604,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean turtleRidable = false; -@@ -2492,6 +2608,7 @@ public class PurpurWorldConfig { +@@ -2497,6 +2613,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2504,6 +2621,7 @@ public class PurpurWorldConfig { +@@ -2509,6 +2626,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean vexRidable = false; -@@ -2512,6 +2630,7 @@ public class PurpurWorldConfig { +@@ -2517,6 +2635,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2524,6 +2643,7 @@ public class PurpurWorldConfig { +@@ -2529,6 +2648,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean villagerRidable = false; -@@ -2541,6 +2661,7 @@ public class PurpurWorldConfig { +@@ -2546,6 +2666,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2562,6 +2683,7 @@ public class PurpurWorldConfig { +@@ -2567,6 +2688,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean vindicatorRidable = false; -@@ -2570,6 +2692,7 @@ public class PurpurWorldConfig { +@@ -2575,6 +2697,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2582,6 +2705,7 @@ public class PurpurWorldConfig { +@@ -2587,6 +2710,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean wanderingTraderRidable = false; -@@ -2592,6 +2716,7 @@ public class PurpurWorldConfig { +@@ -2597,6 +2721,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2606,6 +2731,7 @@ public class PurpurWorldConfig { +@@ -2611,6 +2736,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean wardenRidable = false; -@@ -2622,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2627,6 +2753,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2633,6 +2760,7 @@ public class PurpurWorldConfig { +@@ -2638,6 +2765,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean witherRidable = false; -@@ -2647,6 +2775,7 @@ public class PurpurWorldConfig { +@@ -2652,6 +2780,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2669,6 +2798,7 @@ public class PurpurWorldConfig { +@@ -2674,6 +2803,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean witherSkeletonRidable = false; -@@ -2676,6 +2806,7 @@ public class PurpurWorldConfig { +@@ -2681,6 +2811,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2687,6 +2818,7 @@ public class PurpurWorldConfig { +@@ -2692,6 +2823,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean wolfRidable = false; -@@ -2698,6 +2830,7 @@ public class PurpurWorldConfig { +@@ -2703,6 +2835,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2717,6 +2850,7 @@ public class PurpurWorldConfig { +@@ -2722,6 +2855,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean zoglinRidable = false; -@@ -2724,6 +2858,7 @@ public class PurpurWorldConfig { +@@ -2729,6 +2863,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2735,6 +2870,7 @@ public class PurpurWorldConfig { +@@ -2740,6 +2875,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean zombieRidable = false; -@@ -2748,6 +2884,7 @@ public class PurpurWorldConfig { +@@ -2753,6 +2889,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2765,6 +2902,7 @@ public class PurpurWorldConfig { +@@ -2770,6 +2907,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean zombieHorseRidableInWater = false; -@@ -2777,6 +2915,7 @@ public class PurpurWorldConfig { +@@ -2782,6 +2920,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2794,6 +2933,7 @@ public class PurpurWorldConfig { +@@ -2799,6 +2938,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean zombieVillagerRidable = false; -@@ -2808,6 +2948,7 @@ public class PurpurWorldConfig { +@@ -2813,6 +2953,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2826,6 +2967,7 @@ public class PurpurWorldConfig { +@@ -2831,6 +2972,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 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee } public boolean zombifiedPiglinRidable = false; -@@ -2838,6 +2980,7 @@ public class PurpurWorldConfig { +@@ -2843,6 +2985,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 68c173fac745593404b63e8e94ed8c62766bd2c6..73fb5e6d26517f4ffdaef29e1aebbfee private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2854,6 +2997,7 @@ public class PurpurWorldConfig { +@@ -2859,6 +3002,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/0245-Option-to-prevent-spiders-from-climbing-world-border.patch b/patches/server/0245-Option-to-prevent-spiders-from-climbing-world-border.patch index 2a23519ae..4a23654cf 100644 --- a/patches/server/0245-Option-to-prevent-spiders-from-climbing-world-border.patch +++ b/patches/server/0245-Option-to-prevent-spiders-from-climbing-world-border.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to prevent spiders from climbing world border diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 151e573ece15fe19e5b09662a9bb7459aef7e9ae..3d4d3ec099a37458d43a0500724eec7594097a41 100644 +index db6a37a87823a3f305249c0fb7c9d90f669c5124..e5c401a8b2c7333b75188cc7305c271114071bd7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -305,6 +305,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -39,10 +39,10 @@ index bdd4fc3072f7a5ea504ba35f6a08ae971e83b69f..b9ac8cefefe1f47548166330b7c889df } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e82f57bba3669fe7201563186148b42a33c0129b..2d5c629148a004f8cc8b5f41939486bfa5aa435b 100644 +index 40e54a9d0bdd8e155eae9086facbe8cd7fd261bc..452bb5070347251a3e53fef82872b8c5bd990d03 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2483,6 +2483,7 @@ public class PurpurWorldConfig { +@@ -2488,6 +2488,7 @@ public class PurpurWorldConfig { public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; public boolean spiderAlwaysDropExp = false; @@ -50,7 +50,7 @@ index e82f57bba3669fe7201563186148b42a33c0129b..2d5c629148a004f8cc8b5f41939486bf private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2495,6 +2496,7 @@ public class PurpurWorldConfig { +@@ -2500,6 +2501,7 @@ public class PurpurWorldConfig { spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp); diff --git a/patches/server/0246-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0246-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index d7c7c9395..6c42f46df 100644 --- a/patches/server/0246-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0246-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,10 +74,10 @@ index d1d10a7a62c7372634e22d6df8fc7d085d051237..e6a37649900f55d7178f7cd876b71c5d + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 50cfe61d4efeae6b00bde8bea9cf3c36f244989e..69c95e662d60ed63e4cdb4f33d59decd2de3190b 100644 +index 452bb5070347251a3e53fef82872b8c5bd990d03..c8fd074ab4c176c6cc722143879f912edc1880cb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -552,6 +552,8 @@ public class PurpurWorldConfig { +@@ -557,6 +557,8 @@ public class PurpurWorldConfig { public Map axeWaxables = new HashMap<>(); public Map axeWeatherables = new HashMap<>(); public Map hoeTillables = new HashMap<>(); @@ -86,7 +86,7 @@ index 50cfe61d4efeae6b00bde8bea9cf3c36f244989e..69c95e662d60ed63e4cdb4f33d59decd private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -699,6 +701,8 @@ public class PurpurWorldConfig { +@@ -704,6 +706,8 @@ public class PurpurWorldConfig { }); hoeTillables.put(block, new Tillable(condition, into, drops)); }); diff --git a/patches/server/0247-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0247-Shearing-jeb-produces-random-color-wool.patch index 273192401..509ffba39 100644 --- a/patches/server/0247-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0247-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index 63aeab7204ac954b2908207dc6e743d17aa27f2e..aa6f6e252f6f2933825b97bf1b9679fe if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 69c95e662d60ed63e4cdb4f33d59decd2de3190b..a7638fd6b75d04b454388b952157a3a6c791dba0 100644 +index c8fd074ab4c176c6cc722143879f912edc1880cb..6b40e6abbff31cd7af7c1d484f1043881e097d72 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2276,6 +2276,7 @@ public class PurpurWorldConfig { +@@ -2281,6 +2281,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 69c95e662d60ed63e4cdb4f33d59decd2de3190b..a7638fd6b75d04b454388b952157a3a6 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2290,6 +2291,7 @@ public class PurpurWorldConfig { +@@ -2295,6 +2296,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/0248-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0248-Turtle-eggs-random-tick-crack-chance.patch index 2951928a9..0ea1c869d 100644 --- a/patches/server/0248-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0248-Turtle-eggs-random-tick-crack-chance.patch @@ -32,10 +32,10 @@ index 4907e0acb7d01b7f57b75579e58ce743e3e000bb..5e6df1d6cbaecb986d1b8d382fe673a2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a7638fd6b75d04b454388b952157a3a6c791dba0..5dff0bfe5c9f92213715b46f37c87f8da379780b 100644 +index 6b40e6abbff31cd7af7c1d484f1043881e097d72..95ff1d59f4195c1d3815e36c7640aeca4b7a41e6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -976,11 +976,13 @@ public class PurpurWorldConfig { +@@ -981,11 +981,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0249-Mob-head-visibility-percent.patch b/patches/server/0249-Mob-head-visibility-percent.patch index 943b3c697..21ff5f6d4 100644 --- a/patches/server/0249-Mob-head-visibility-percent.patch +++ b/patches/server/0249-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 6e7af1939df4ff99d6d4645f7ed270110d9d0373..d120c8808c6a8df2c8615fe02f2c8a5b6a126d8e 100644 +index 634363eb1c23e088b05d895565fb8ce9d3bdfb08..fd812571fef3782c03735ae8599845fc027c8e05 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1015,9 +1015,17 @@ public abstract class LivingEntity extends Entity { @@ -29,10 +29,10 @@ index 6e7af1939df4ff99d6d4645f7ed270110d9d0373..d120c8808c6a8df2c8615fe02f2c8a5b // 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 5dff0bfe5c9f92213715b46f37c87f8da379780b..f19e95fecdf19bf56d456e4e35edbe0abe5d5839 100644 +index 95ff1d59f4195c1d3815e36c7640aeca4b7a41e6..6f081554311a50678efb05e02bb4409cebe2a897 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1264,6 +1264,7 @@ public class PurpurWorldConfig { +@@ -1269,6 +1269,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -40,7 +40,7 @@ index 5dff0bfe5c9f92213715b46f37c87f8da379780b..f19e95fecdf19bf56d456e4e35edbe0a private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1281,6 +1282,7 @@ public class PurpurWorldConfig { +@@ -1286,6 +1287,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); @@ -48,7 +48,7 @@ index 5dff0bfe5c9f92213715b46f37c87f8da379780b..f19e95fecdf19bf56d456e4e35edbe0a } public boolean dolphinRidable = false; -@@ -2356,6 +2358,7 @@ public class PurpurWorldConfig { +@@ -2361,6 +2363,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -56,7 +56,7 @@ index 5dff0bfe5c9f92213715b46f37c87f8da379780b..f19e95fecdf19bf56d456e4e35edbe0a private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2368,6 +2371,7 @@ public class PurpurWorldConfig { +@@ -2373,6 +2376,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); @@ -64,7 +64,7 @@ index 5dff0bfe5c9f92213715b46f37c87f8da379780b..f19e95fecdf19bf56d456e4e35edbe0a } public boolean skeletonHorseRidableInWater = true; -@@ -2895,6 +2899,7 @@ public class PurpurWorldConfig { +@@ -2900,6 +2904,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -72,7 +72,7 @@ index 5dff0bfe5c9f92213715b46f37c87f8da379780b..f19e95fecdf19bf56d456e4e35edbe0a private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2913,6 +2918,7 @@ public class PurpurWorldConfig { +@@ -2918,6 +2923,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/0252-Stop-bees-from-dying-after-stinging.patch b/patches/server/0252-Stop-bees-from-dying-after-stinging.patch index da0dbf125..436cb2f7a 100644 --- a/patches/server/0252-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0252-Stop-bees-from-dying-after-stinging.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stop bees from dying after stinging diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 4b9d13fb36d0e35f1cc7a5d95b26dc5f8ded0d6a..a6378e6db70ba80aaa18954766f029cd6e97419e 100644 +index c3680aa6d92b0adb104d144875cea679084e36f2..a7c0c2a8b9b5c1336ce33418e24e0bfd77cec5b0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -455,6 +455,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -17,10 +17,10 @@ index 4b9d13fb36d0e35f1cc7a5d95b26dc5f8ded0d6a..a6378e6db70ba80aaa18954766f029cd ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, (int) 1, (int) 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f19e95fecdf19bf56d456e4e35edbe0abe5d5839..88bffce4f59c9d52ccaff90eeded2e375cc50f7a 100644 +index 6f081554311a50678efb05e02bb4409cebe2a897..49bd14bb82b3db30b7a45c6ca88d983a3bd8af91 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1084,6 +1084,7 @@ public class PurpurWorldConfig { +@@ -1089,6 +1089,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index f19e95fecdf19bf56d456e4e35edbe0abe5d5839..88bffce4f59c9d52ccaff90eeded2e37 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1100,6 +1101,7 @@ public class PurpurWorldConfig { +@@ -1105,6 +1106,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/0254-Configurable-farmland-trample-height.patch b/patches/server/0254-Configurable-farmland-trample-height.patch index 77b58dc77..ee104a8d5 100644 --- a/patches/server/0254-Configurable-farmland-trample-height.patch +++ b/patches/server/0254-Configurable-farmland-trample-height.patch @@ -35,10 +35,10 @@ index e5a3e3a4367dfb924624a913b816b3fd56e3fefd..7068cb39ab264fa0c65febff01236b8d 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 88bffce4f59c9d52ccaff90eeded2e375cc50f7a..fc16dbc73fda459e4832b555e20fcce914a90cb6 100644 +index 49bd14bb82b3db30b7a45c6ca88d983a3bd8af91..6944b5fb1f4d01866212012b3c9d8b126e85bf25 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -847,6 +847,7 @@ public class PurpurWorldConfig { +@@ -852,6 +852,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index 88bffce4f59c9d52ccaff90eeded2e375cc50f7a..fc16dbc73fda459e4832b555e20fcce9 private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -854,6 +855,7 @@ public class PurpurWorldConfig { +@@ -859,6 +860,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/0255-Configurable-player-pickup-exp-delay.patch b/patches/server/0255-Configurable-player-pickup-exp-delay.patch index ed35f62b8..311d9ad18 100644 --- a/patches/server/0255-Configurable-player-pickup-exp-delay.patch +++ b/patches/server/0255-Configurable-player-pickup-exp-delay.patch @@ -37,10 +37,10 @@ index 870e794392b94d140db6d5650c3e7ae3dd6f593d..7344324517fb10ee6ab3467b40fcb9cd } 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 62c2bd8988815b5afe54a26e328bf75a758ffab4..ce6744240e4e57aef9f5d452047f103068e37b91 100644 +index 6944b5fb1f4d01866212012b3c9d8b126e85bf25..98c12d6cdabad4c37d535238c8df47509d5afa25 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -416,6 +416,7 @@ public class PurpurWorldConfig { +@@ -421,6 +421,7 @@ public class PurpurWorldConfig { public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; @@ -48,7 +48,7 @@ index 62c2bd8988815b5afe54a26e328bf75a758ffab4..ce6744240e4e57aef9f5d452047f1030 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -444,6 +445,7 @@ public class PurpurWorldConfig { +@@ -449,6 +450,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/0256-Allow-void-trading.patch b/patches/server/0256-Allow-void-trading.patch index 9da7ba73e..0c20a850a 100644 --- a/patches/server/0256-Allow-void-trading.patch +++ b/patches/server/0256-Allow-void-trading.patch @@ -18,10 +18,10 @@ index 81a0047e04f9be9dd8030fb68f2ce59c166700c1..0d82ca8ba9f2b11213cfe1ab01dc6ef3 } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ce6744240e4e57aef9f5d452047f103068e37b91..3b171cc74b925e7ae501f8d5c171afdf99936eb7 100644 +index 98c12d6cdabad4c37d535238c8df47509d5afa25..a9769af473aed648b9fe7505d19dd065ff1c5d64 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 { +@@ -422,6 +422,7 @@ public class PurpurWorldConfig { public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; public int playerExpPickupDelay = 2; @@ -29,7 +29,7 @@ index ce6744240e4e57aef9f5d452047f103068e37b91..3b171cc74b925e7ae501f8d5c171afdf private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -446,6 +447,7 @@ public class PurpurWorldConfig { +@@ -451,6 +452,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/0258-Configurable-phantom-size.patch b/patches/server/0258-Configurable-phantom-size.patch index 274cf2603..918313dfe 100644 --- a/patches/server/0258-Configurable-phantom-size.patch +++ b/patches/server/0258-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index 33b347474b7485633ca77bdff28e4b32580b51b8..bfca1101025e473c97cd4804e74bed04 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 10535d574d71b5d3265f2d7fc6d739c028e503f2..369e4dd447cac95cb7325c2f1239f9c5527c5070 100644 +index a9769af473aed648b9fe7505d19dd065ff1c5d64..0574b279bde0237cd3318c9274e1281f305045b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2015,6 +2015,8 @@ public class PurpurWorldConfig { +@@ -2020,6 +2020,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index 10535d574d71b5d3265f2d7fc6d739c028e503f2..369e4dd447cac95cb7325c2f1239f9c5 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2057,6 +2059,13 @@ public class PurpurWorldConfig { +@@ -2062,6 +2064,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/0261-Configurable-minimum-demand-for-trades.patch b/patches/server/0261-Configurable-minimum-demand-for-trades.patch index 3113991aa..4e88be88c 100644 --- a/patches/server/0261-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0261-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 8a9a701baabdaf066cd9b28c05430f673fcafb4e..17cc3237c7fc8ceda136b2371fabf6f0 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 369e4dd447cac95cb7325c2f1239f9c5527c5070..73fae5e2af9d75bdc449febf34557f68b98c0f0c 100644 +index 0574b279bde0237cd3318c9274e1281f305045b5..e66f169b4355ef537dbde2c3aaf85e7b58cfe523 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2693,6 +2693,7 @@ public class PurpurWorldConfig { +@@ -2698,6 +2698,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 369e4dd447cac95cb7325c2f1239f9c5527c5070..73fae5e2af9d75bdc449febf34557f68 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2715,6 +2716,7 @@ public class PurpurWorldConfig { +@@ -2720,6 +2721,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/0262-Lobotomize-stuck-villagers.patch b/patches/server/0262-Lobotomize-stuck-villagers.patch index 70931c157..d1006bcc6 100644 --- a/patches/server/0262-Lobotomize-stuck-villagers.patch +++ b/patches/server/0262-Lobotomize-stuck-villagers.patch @@ -111,10 +111,10 @@ index f0b910df1ee471b4d72d97c6197ab14f2854976e..6ce32a52d621a0c2629568ea07e445f5 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 73fae5e2af9d75bdc449febf34557f68b98c0f0c..829b0d20d24855416138825066ff03d9baceb193 100644 +index e66f169b4355ef537dbde2c3aaf85e7b58cfe523..53903df5f2fd434b4abc7b66c97046ef850a6e8a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2694,6 +2694,8 @@ public class PurpurWorldConfig { +@@ -2699,6 +2699,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -123,7 +123,7 @@ index 73fae5e2af9d75bdc449febf34557f68b98c0f0c..829b0d20d24855416138825066ff03d9 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2717,6 +2719,17 @@ public class PurpurWorldConfig { +@@ -2722,6 +2724,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/0263-Option-for-villager-display-trade-item.patch b/patches/server/0263-Option-for-villager-display-trade-item.patch index 1f64f86fb..eb443c832 100644 --- a/patches/server/0263-Option-for-villager-display-trade-item.patch +++ b/patches/server/0263-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 385f3df7044e3f03f17c3ec7484b268004a3def9..90ba6a3abf62e4b272fada96b554ca31 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 829b0d20d24855416138825066ff03d9baceb193..8e6201dd9fbacb9f8fae3a2013d5efe7b16b5400 100644 +index 53903df5f2fd434b4abc7b66c97046ef850a6e8a..4c05e766ce5eeec876193b564c8eec9676ae6205 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2696,6 +2696,7 @@ public class PurpurWorldConfig { +@@ -2701,6 +2701,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 829b0d20d24855416138825066ff03d9baceb193..8e6201dd9fbacb9f8fae3a2013d5efe7 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2730,6 +2731,7 @@ public class PurpurWorldConfig { +@@ -2735,6 +2736,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0265-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0265-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index e70027d49..91bfccdaf 100644 --- a/patches/server/0265-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0265-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 18389f46902bb9879ac6d734723e9a720724dc48..b2b8663a9cff08bacdab91c7bb014ba6 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e6201dd9fbacb9f8fae3a2013d5efe7b16b5400..3efe2f056b4186093248ef8faaba5ba664e849dd 100644 +index 4c05e766ce5eeec876193b564c8eec9676ae6205..378b2d00193c69f020e4ac6f39dd62ba4dc918c5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -965,8 +965,10 @@ public class PurpurWorldConfig { +@@ -970,8 +970,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0266-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0266-Config-for-mob-last-hurt-by-player-time.patch index 637f845a7..0eb21c4e6 100644 --- a/patches/server/0266-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0266-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 d120c8808c6a8df2c8615fe02f2c8a5b6a126d8e..ebc92079fa9434689c30782000950842929d6102 100644 +index fd812571fef3782c03735ae8599845fc027c8e05..411593b1b105d62440d76b7bd1b8c74b701e3e75 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1441,13 +1441,13 @@ public abstract class LivingEntity extends Entity { @@ -38,10 +38,10 @@ index 1e854090c986f480e35fac5c6f347e72904f9ab5..76a4803decea19f8bed8cb11e73bd789 // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f90e847e1236bd5a67a6970f2273073c801e37f4..6b21494a7461c2a449b754248cf19d4da571e3e0 100644 +index 378b2d00193c69f020e4ac6f39dd62ba4dc918c5..7d08e462f20a5f8f0263d3786b35219c618e259a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -139,6 +139,7 @@ public class PurpurWorldConfig { +@@ -144,6 +144,7 @@ public class PurpurWorldConfig { public boolean mobsIgnoreRails = false; public boolean rainStopsAfterSleep = true; public boolean thunderStopsAfterSleep = true; @@ -49,7 +49,7 @@ index f90e847e1236bd5a67a6970f2273073c801e37f4..6b21494a7461c2a449b754248cf19d4d private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -164,6 +165,7 @@ public class PurpurWorldConfig { +@@ -169,6 +170,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/0267-Anvil-repair-damage-options.patch b/patches/server/0267-Anvil-repair-damage-options.patch index 19f174e06..3207d926f 100644 --- a/patches/server/0267-Anvil-repair-damage-options.patch +++ b/patches/server/0267-Anvil-repair-damage-options.patch @@ -64,10 +64,10 @@ index 1b23352a9deae37f9c947fef1b1f8a2875507cfa..ad5aad3682926e2e8965bb87ad8d5381 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 cc785c36228fb3653cbbc9cd8d9923d8c8d69a53..145b8e2cf1929203a0c9cdc39c9985ec8020c9d7 100644 +index 7d08e462f20a5f8f0263d3786b35219c618e259a..bd7295f82c963b95b32e9115bc9f4b380852f001 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -712,8 +712,12 @@ public class PurpurWorldConfig { +@@ -717,8 +717,12 @@ public class PurpurWorldConfig { } public boolean anvilAllowColors = false; diff --git a/patches/server/0269-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0269-Option-to-disable-turtle-egg-trampling-with-feather-.patch index e415599b6..d13c3db0e 100644 --- a/patches/server/0269-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0269-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -20,10 +20,10 @@ index 5e6df1d6cbaecb986d1b8d382fe673a2cbb76115..6151226a88a9ca44955821521641e788 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 145b8e2cf1929203a0c9cdc39c9985ec8020c9d7..65236d76e7b3c4bd0a493529eebc5b3f971fbfb2 100644 +index bd7295f82c963b95b32e9115bc9f4b380852f001..0e5002f3dee2aff00c3e848ecd9429417ea88669 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -991,12 +991,14 @@ public class PurpurWorldConfig { +@@ -996,12 +996,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0271-Config-to-prevent-horses-from-standing-when-hurt.patch b/patches/server/0271-Config-to-prevent-horses-from-standing-when-hurt.patch index d834b223a..ae0b7bfe4 100644 --- a/patches/server/0271-Config-to-prevent-horses-from-standing-when-hurt.patch +++ b/patches/server/0271-Config-to-prevent-horses-from-standing-when-hurt.patch @@ -21,10 +21,10 @@ index 7466c437b2e996f16a08aaefc5c2b7cba216a14c..205ce2bd91a98a0c67d3c5dd640eb88c } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 65236d76e7b3c4bd0a493529eebc5b3f971fbfb2..64f580007451ff1b5d8efd9ffc9d70a97bf76441 100644 +index 0e5002f3dee2aff00c3e848ecd9429417ea88669..4a7caa3ac7d47647dd8b771dad30af487b143bde 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1707,6 +1707,7 @@ public class PurpurWorldConfig { +@@ -1712,6 +1712,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -32,7 +32,7 @@ index 65236d76e7b3c4bd0a493529eebc5b3f971fbfb2..64f580007451ff1b5d8efd9ffc9d70a9 public boolean horseAlwaysDropExp = false; private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); -@@ -1726,6 +1727,7 @@ public class PurpurWorldConfig { +@@ -1731,6 +1732,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); diff --git a/patches/server/0273-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0273-Implement-configurable-search-radius-for-villagers-t.patch index 0e805e68b..0c67834f0 100644 --- a/patches/server/0273-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0273-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index ace39b0585c67b2764d75ff9e64d132347157a51..20668d53625ec88ba3eb2a655ad3f6bc 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 64f580007451ff1b5d8efd9ffc9d70a97bf76441..c64d1107119792e3f523bbc39a5a711d209585c9 100644 +index 4a7caa3ac7d47647dd8b771dad30af487b143bde..1a5d5db4cf3a9b5c84d4da46a103afe6461179b4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2709,6 +2709,8 @@ public class PurpurWorldConfig { +@@ -2714,6 +2714,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 64f580007451ff1b5d8efd9ffc9d70a97bf76441..c64d1107119792e3f523bbc39a5a711d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2744,6 +2746,8 @@ public class PurpurWorldConfig { +@@ -2749,6 +2751,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/0274-Stonecutter-damage.patch b/patches/server/0274-Stonecutter-damage.patch index 1578b34c8..02b3e966f 100644 --- a/patches/server/0274-Stonecutter-damage.patch +++ b/patches/server/0274-Stonecutter-damage.patch @@ -80,7 +80,7 @@ index f4ca0a9481533befc78cb18c1f9810826f57562c..902e420d19288df124da2292a60f95e9 throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.msgId)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 619b6bb634e3be722b1e8ab8a7a5974f494da1ff..3d96a49cca34f0a3f3b37de839e476c2a4c1f1d6 100644 +index ac6e4936b0ad1cef84eae68ebccb5279060d884b..8caf0861433263086dbae6f13b5fa6a36de68843 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -200,8 +200,10 @@ public class PurpurConfig { @@ -95,10 +95,10 @@ index 619b6bb634e3be722b1e8ab8a7a5974f494da1ff..3d96a49cca34f0a3f3b37de839e476c2 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 de67f86b7cae63084b51948807bff0f7921541ee..aa1c86640c4674835ab31dbeaf9b592f26bff198 100644 +index 1a5d5db4cf3a9b5c84d4da46a103afe6461179b4..b3228abefb9dab924324a5aceda4fa0d7a904b3e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -986,6 +986,11 @@ public class PurpurWorldConfig { +@@ -991,6 +991,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0275-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0275-Configurable-damage-settings-for-magma-blocks.patch index a82b4e801..4f0214d68 100644 --- a/patches/server/0275-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0275-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index d3540a4daaa8021ae009bfd4d9ef4f1172ab4c56..2b250439f263f64db7920536ed6eaf64 entity.hurt(DamageSource.HOT_FLOOR, 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 f781ea51472cea86d8eb5279326d21a63710b426..d0c725d8fb610a276d96370359eaab7010c85b53 100644 +index b3228abefb9dab924324a5aceda4fa0d7a904b3e..74cac857c8ecc60b333d355258c78db96ca468a2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -922,6 +922,13 @@ public class PurpurWorldConfig { +@@ -927,6 +927,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0276-Add-config-for-snow-on-blue-ice.patch b/patches/server/0276-Add-config-for-snow-on-blue-ice.patch index 4d0c009f5..f78f57d8a 100644 --- a/patches/server/0276-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0276-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 d0c725d8fb610a276d96370359eaab7010c85b53..80b827eb45092a9069a9dced5b04eebce7b82b58 100644 +index 74cac857c8ecc60b333d355258c78db96ca468a2..bb012e35d9a5df7638950c72c03364f8d1f9f1b7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -891,9 +891,11 @@ public class PurpurWorldConfig { +@@ -896,9 +896,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0278-Skeletons-eat-wither-roses.patch b/patches/server/0278-Skeletons-eat-wither-roses.patch index 34d503222..16df53e66 100644 --- a/patches/server/0278-Skeletons-eat-wither-roses.patch +++ b/patches/server/0278-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 51c548cd84bd83624fbff3f853a8050dc1e71ecd..a5ab36fdd0751cb3b96525d53bbaec33 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c4b43f805bc82d5e087728cda23183f990806b54..e8cc15345734ee1f0d7e452f2a90ddd9e57951ba 100644 +index bb012e35d9a5df7638950c72c03364f8d1f9f1b7..137dd05616eba132f5a418dc361adcc22c89d0ca 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2402,6 +2402,7 @@ public class PurpurWorldConfig { +@@ -2407,6 +2407,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index c4b43f805bc82d5e087728cda23183f990806b54..e8cc15345734ee1f0d7e452f2a90ddd9 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2415,6 +2416,7 @@ public class PurpurWorldConfig { +@@ -2420,6 +2421,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/0279-Enchantment-Table-Persists-Lapis.patch b/patches/server/0279-Enchantment-Table-Persists-Lapis.patch index 6e2ac1656..596e132e7 100644 --- a/patches/server/0279-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0279-Enchantment-Table-Persists-Lapis.patch @@ -146,10 +146,10 @@ index 2341a5a249d455628165fc6ba508fc6d70c3dbfb..4ccb8a7dc4201a7cffa59e4195765001 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e8cc15345734ee1f0d7e452f2a90ddd9e57951ba..6a5572714916937eff21c1b984a2a2f00c561cbe 100644 +index 137dd05616eba132f5a418dc361adcc22c89d0ca..07c6a2deac19f7edf25258337981f1e74702b2a9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1423,6 +1423,11 @@ public class PurpurWorldConfig { +@@ -1428,6 +1428,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0282-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0282-Config-for-sculk-shrieker-can_summon-state.patch index 25f6973c3..834fbe786 100644 --- a/patches/server/0282-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0282-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,10 +18,10 @@ index e0998215841e500e5982a242e9f4e646402e1521..11038ba560439dab04c54c31a32d63be @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6a5572714916937eff21c1b984a2a2f00c561cbe..1ffa1182482cd5581979de3ef20a0dc1178eabf4 100644 +index 07c6a2deac19f7edf25258337981f1e74702b2a9..17f01ba3a6d824ea5ab2d6ec445ce17ab85aad87 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -962,6 +962,11 @@ public class PurpurWorldConfig { +@@ -967,6 +967,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0283-Config-to-not-let-coral-die.patch b/patches/server/0283-Config-to-not-let-coral-die.patch index 89f74e62d..d4071fec3 100644 --- a/patches/server/0283-Config-to-not-let-coral-die.patch +++ b/patches/server/0283-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 1ffa1182482cd5581979de3ef20a0dc1178eabf4..fad04b8c56d6183bc72f78915847e56c77228106 100644 +index 17f01ba3a6d824ea5ab2d6ec445ce17ab85aad87..a0e3323d35291b3d7980fe83ec5f27193b4fa79a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -800,6 +800,11 @@ public class PurpurWorldConfig { +@@ -805,6 +805,11 @@ public class PurpurWorldConfig { caveVinesMaxGrowthAge = getInt("blocks.cave_vines.max-growth-age", caveVinesMaxGrowthAge); } diff --git a/patches/server/0285-Add-toggle-for-RNG-manipulation.patch b/patches/server/0285-Add-toggle-for-RNG-manipulation.patch index adc178df6..166ef4ecd 100644 --- a/patches/server/0285-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0285-Add-toggle-for-RNG-manipulation.patch @@ -7,7 +7,7 @@ Paper patches RNG maniplulation by using a shared (and locked) random source. This comes with a performance gain, but technical players may prefer the ability to manipulate RNG. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3d4d3ec099a37458d43a0500724eec7594097a41..d0cfea27a287b91747585053d1ffb3f203196fd7 100644 +index e5c401a8b2c7333b75188cc7305c271114071bd7..c2335d3aa056d3636d22390278d1fd92915fb1a6 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -576,7 +576,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -33,10 +33,10 @@ index 21f5304e01e0844f1bbf3e1b2f9d50c01f8bf8fd..8afdb5d4fecbb45bad2ed801fc0e526d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fad04b8c56d6183bc72f78915847e56c77228106..c75fbe3f3f9f92535e0de92a9fa1fe1ade213192 100644 +index a0e3323d35291b3d7980fe83ec5f27193b4fa79a..2a3ae8ba73a547d02e7a635321e4534de7daafdc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -201,9 +201,11 @@ public class PurpurWorldConfig { +@@ -206,9 +206,11 @@ public class PurpurWorldConfig { public int entityLifeSpan = 0; public float entityLeftHandedChance = 0.05f;