diff --git a/patches/server-unmapped/0163-Config-to-use-infinity-bows-without-arrows.patch b/patches/server-unmapped/0163-Config-to-use-infinity-bows-without-arrows.patch deleted file mode 100644 index ce6517eee..000000000 --- a/patches/server-unmapped/0163-Config-to-use-infinity-bows-without-arrows.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Encode42 -Date: Mon, 25 Jan 2021 11:36:39 -0500 -Subject: [PATCH] Config to use infinity bows without arrows - -Allows for bows with infinity to be used without any arrows in the player's inventory. -Uses a standard arrow when shot. - -diff --git a/src/main/java/net/minecraft/world/item/ItemBow.java b/src/main/java/net/minecraft/world/item/ItemBow.java -index c7e20b25b4d09463fa54c66e62208e90515013e2..59b803ec4552058f2dda269e9435daf65be10559 100644 ---- a/src/main/java/net/minecraft/world/item/ItemBow.java -+++ b/src/main/java/net/minecraft/world/item/ItemBow.java -@@ -130,7 +130,7 @@ public class ItemBow extends ItemProjectileWeapon implements ItemVanishable { - ItemStack itemstack = entityhuman.b(enumhand); - boolean flag = !entityhuman.f(itemstack).isEmpty(); - -- if (!entityhuman.abilities.canInstantlyBuild && !flag) { -+ if (!(world.purpurConfig.infinityWorksWithoutArrows && EnchantmentManager.getEnchantmentLevel(Enchantments.ARROW_INFINITE, itemstack) > 0) && !entityhuman.abilities.canInstantlyBuild && !flag) { // Purpur - return InteractionResultWrapper.fail(itemstack); - } else { - entityhuman.c(enumhand); -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 742db39c2bcd0a1416108e6ee57bd8156b50c0b8..7b0babbd727421ecd05523eadbff3abb758fab6f 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -253,10 +253,12 @@ public class PurpurWorldConfig { - idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); - } - -+ public boolean infinityWorksWithoutArrows = false; - public boolean infinityWorksWithNormalArrows = true; - public boolean infinityWorksWithSpectralArrows = false; - public boolean infinityWorksWithTippedArrows = false; - private void infinityArrowsSettings() { -+ infinityWorksWithoutArrows = getBoolean("gameplay-mechanics.infinity-bow.works-without-arrows", infinityWorksWithoutArrows); - infinityWorksWithNormalArrows = getBoolean("gameplay-mechanics.infinity-bow.normal-arrows", infinityWorksWithNormalArrows); - infinityWorksWithSpectralArrows = getBoolean("gameplay-mechanics.infinity-bow.spectral-arrows", infinityWorksWithSpectralArrows); - infinityWorksWithTippedArrows = getBoolean("gameplay-mechanics.infinity-bow.tipped-arrows", infinityWorksWithTippedArrows); diff --git a/patches/server-unmapped/0164-Toggle-for-water-sensitive-mob-damage.patch b/patches/server-unmapped/0164-Toggle-for-water-sensitive-mob-damage.patch deleted file mode 100644 index 983ef806f..000000000 --- a/patches/server-unmapped/0164-Toggle-for-water-sensitive-mob-damage.patch +++ /dev/null @@ -1,152 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: YouHaveTrouble -Date: Fri, 5 Feb 2021 01:11:22 +0100 -Subject: [PATCH] Toggle for water sensitive mob damage - - -diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -index 9f6c98a8649b31ef8f5f2e60b1cb2f9f62f70930..41af652c8ba15753dcae3cf6a96df188d5f34886 100644 ---- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java -+++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java -@@ -848,7 +848,8 @@ public abstract class EntityInsentient extends EntityLiving { - if (goalFloat.validConditions()) goalFloat.update(); - this.getControllerJump().jumpIfSet(); - } -- if ((this instanceof EntityBlaze || this instanceof EntityEnderman) && isInWaterOrRainOrBubble()) { -+ -+ if (isSensitiveToWater() && isInWaterOrRainOrBubble()) { // Purpur - Toggle for water sensitive mob damage - damageEntity(DamageSource.DROWN, 1.0F); - } - return; -diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index d5c4c183db2dc01d65a9d39727722b8251872a6f..a2afce8391a8bd30e39cda917d92842fe3da33e5 100644 ---- a/src/main/java/net/minecraft/world/entity/EntityLiving.java -+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java -@@ -2974,6 +2974,7 @@ public abstract class EntityLiving extends Entity { - - } - -+ public boolean isSensitiveToWater() { return dO(); } // Purpur - OBFHELPER - public boolean dO() { - return false; - } -diff --git a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -index b13cd3f344a0e2c4c02b30f80ca9a81d93cc1954..d7aa3bd329eef71d58a8ea9be5735c58a598222b 100644 ---- a/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -+++ b/src/main/java/net/minecraft/world/entity/animal/EntitySnowman.java -@@ -108,7 +108,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt - - @Override - public boolean dO() { -- return true; -+ return world.purpurConfig.snowGolemTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage - } - - @Override -diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java -index 55b6f483aca8cbb5c30b3759e23c86a699e19569..09f8f792bb800a274f7b127bc925c07416906ed5 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java -+++ b/src/main/java/net/minecraft/world/entity/monster/EntityBlaze.java -@@ -143,7 +143,7 @@ public class EntityBlaze extends EntityMonster { - - @Override - public boolean dO() { -- return true; -+ return world.purpurConfig.blazeTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage - } - - @Override -diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -index 2992d173dc870eccdfc5f515d162844f19691d11..a2e0fed960f6dffb0f00c9d6ce91359e3597231c 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -+++ b/src/main/java/net/minecraft/world/entity/monster/EntityEnderman.java -@@ -289,7 +289,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable { - - @Override - public boolean dO() { -- return true; -+ return world.purpurConfig.endermanTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage - } - - @Override -diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityStrider.java b/src/main/java/net/minecraft/world/entity/monster/EntityStrider.java -index 5e4cc99a746d98231bbb71672fbc02431e4fab48..f52ae7446c16d5b8ac51bd2e12bb51d221ca43ca 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/EntityStrider.java -+++ b/src/main/java/net/minecraft/world/entity/monster/EntityStrider.java -@@ -405,7 +405,7 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab - - @Override - public boolean dO() { -- return true; -+ return world.purpurConfig.striderTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage - } - - @Override -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7b0babbd727421ecd05523eadbff3abb758fab6f..faa5df044857f19503b35bbcf7366ac13b2fa2a9 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -629,6 +629,7 @@ public class PurpurWorldConfig { - public boolean blazeRidableInWater = false; - public double blazeMaxY = 256D; - public double blazeMaxHealth = 20.0D; -+ public boolean blazeTakeDamageFromWater = true; - private void blazeSettings() { - blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); - blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -639,6 +640,7 @@ public class PurpurWorldConfig { - set("mobs.blaze.attributes.max_health", oldValue); - } - blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); -+ blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); - } - - public boolean catRidable = false; -@@ -853,6 +855,7 @@ public class PurpurWorldConfig { - public boolean endermanBypassMobGriefing = false; - public boolean endermanDespawnEvenWithBlock = false; - public double endermanMaxHealth = 40.0D; -+ public boolean endermanTakeDamageFromWater = true; - private void endermanSettings() { - endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); - endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -865,6 +868,7 @@ public class PurpurWorldConfig { - set("mobs.enderman.attributes.max_health", oldValue); - } - endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); -+ endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); - } - - public boolean endermiteRidable = false; -@@ -1554,6 +1558,7 @@ public class PurpurWorldConfig { - public float snowGolemSnowBallModifier = 10.0F; - public double snowGolemAttackDistance = 1.25D; - public double snowGolemMaxHealth = 4.0D; -+ public boolean snowGolemTakeDamageFromWater = true; - private void snowGolemSettings() { - snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); - snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1571,6 +1576,7 @@ public class PurpurWorldConfig { - set("mobs.snow_golem.attributes.max_health", oldValue); - } - snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); -+ snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); - } - - public boolean squidRidable = false; -@@ -1624,6 +1630,7 @@ public class PurpurWorldConfig { - public int striderBreedingTicks = 6000; - public boolean striderGiveSaddleBack = false; - public double striderMaxHealth = 20.0D; -+ public boolean striderTakeDamageFromWater = true; - private void striderSettings() { - striderRidable = getBoolean("mobs.strider.ridable", striderRidable); - striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1635,6 +1642,7 @@ public class PurpurWorldConfig { - set("mobs.strider.attributes.max_health", oldValue); - } - striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); -+ striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); - } - - public boolean tropicalFishRidable = false; diff --git a/patches/server/0110-Infinity-bow-settings.patch b/patches/server/0110-Infinity-bow-settings.patch index 88e27a2b5..2ec7bca3f 100644 --- a/patches/server/0110-Infinity-bow-settings.patch +++ b/patches/server/0110-Infinity-bow-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Infinity bow settings diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java -index afe33f20578177cb517e1c116e6319481642e66c..93c58f7ef7f00c7f843444ad6d00bd855a3987a4 100644 +index afe33f20578177cb517e1c116e6319481642e66c..fe4695adbb506733b4029ecfabcfda3d23dde52a 100644 --- a/src/main/java/net/minecraft/world/item/BowItem.java +++ b/src/main/java/net/minecraft/world/item/BowItem.java @@ -38,7 +38,7 @@ public class BowItem extends ProjectileWeaponItem implements Vanishable { @@ -17,18 +17,29 @@ index afe33f20578177cb517e1c116e6319481642e66c..93c58f7ef7f00c7f843444ad6d00bd85 if (!world.isClientSide) { ArrowItem itemarrow = (ArrowItem) (itemstack1.getItem() instanceof ArrowItem ? itemstack1.getItem() : Items.ARROW); +@@ -132,7 +132,7 @@ public class BowItem extends ProjectileWeaponItem implements Vanishable { + ItemStack itemstack = user.getItemInHand(hand); + boolean flag = !user.getProjectile(itemstack).isEmpty(); + +- if (!user.getAbilities().instabuild && !flag) { ++ if (!(world.purpurConfig.infinityWorksWithoutArrows && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, itemstack) > 0) && !user.getAbilities().instabuild && !flag) { // Purpur + return InteractionResultHolder.fail(itemstack); + } else { + user.startUsingItem(hand); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9421df1069e16efd0bc121d1b433ae92d7e211ff..c161b36df19e05a7721d3d814e32a6b046aa5e8c 100644 +index 9421df1069e16efd0bc121d1b433ae92d7e211ff..0c8619651858ee0920f5b301079bd23a1edbd26a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -107,6 +107,15 @@ public class PurpurWorldConfig { +@@ -107,6 +107,17 @@ public class PurpurWorldConfig { entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan); } ++ public boolean infinityWorksWithoutArrows = false; + public boolean infinityWorksWithNormalArrows = true; + public boolean infinityWorksWithSpectralArrows = false; + public boolean infinityWorksWithTippedArrows = false; + private void infinityArrowsSettings() { ++ infinityWorksWithoutArrows = getBoolean("gameplay-mechanics.infinity-bow.works-without-arrows", infinityWorksWithoutArrows); + infinityWorksWithNormalArrows = getBoolean("gameplay-mechanics.infinity-bow.normal-arrows", infinityWorksWithNormalArrows); + infinityWorksWithSpectralArrows = getBoolean("gameplay-mechanics.infinity-bow.spectral-arrows", infinityWorksWithSpectralArrows); + infinityWorksWithTippedArrows = getBoolean("gameplay-mechanics.infinity-bow.tipped-arrows", infinityWorksWithTippedArrows); diff --git a/patches/server/0111-Stonecutter-damage.patch b/patches/server/0111-Stonecutter-damage.patch index 4c40cdd9d..825b7de53 100644 --- a/patches/server/0111-Stonecutter-damage.patch +++ b/patches/server/0111-Stonecutter-damage.patch @@ -61,10 +61,10 @@ index 2ad5ff9a1d7de54e75436e99da8a73db9dc91bde..60605a8a021cc56f9c3ba22bc43c43c3 } else if (blockState.is(Blocks.HONEY_BLOCK)) { return BlockPathTypes.STICKY_HONEY; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c161b36df19e05a7721d3d814e32a6b046aa5e8c..e9ad6f9d41889376d1d72317c408d16b8ef1bc27 100644 +index 0c8619651858ee0920f5b301079bd23a1edbd26a..f7c808830fecca2e4ad7b828db14e86173e33e58 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -428,6 +428,11 @@ public class PurpurWorldConfig { +@@ -430,6 +430,11 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0114-Infinite-fuel-furnace.patch b/patches/server/0114-Infinite-fuel-furnace.patch index 02b406798..52cba84e4 100644 --- a/patches/server/0114-Infinite-fuel-furnace.patch +++ b/patches/server/0114-Infinite-fuel-furnace.patch @@ -48,10 +48,10 @@ index c559ec5041474e585e4d95a664c84e1fa895cf16..806277d029a1c1a2d334a05d94163415 private static boolean canBurn(@Nullable Recipe recipe, NonNullList slots, int count) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ab0c03e69adc922dbe525cf4a9f7e603da51fb66..daccabe019d73879c6739964032624e86976c460 100644 +index ac0aaf5d557e411bc29120470a80862c61c35bc5..25b3f33f487dd0cc25f9bdc335002f4601e138d2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -396,6 +396,11 @@ public class PurpurWorldConfig { +@@ -398,6 +398,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0116-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0116-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index bafc85958..6bec2361b 100644 --- a/patches/server/0116-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0116-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 97e5cb4fd9f97c0bfa9d66c0ceac84e134f1053f..e92f6ffcda47aad76ad647bc2ad3d186 return; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index daccabe019d73879c6739964032624e86976c460..b30e124fbf25cafd4c44a61f81030566b53a28ed 100644 +index 25b3f33f487dd0cc25f9bdc335002f4601e138d2..5f45d06c06e4a077096273f05d932ab9d53e918e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -392,8 +392,10 @@ public class PurpurWorldConfig { +@@ -394,8 +394,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0117-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0117-Add-adjustable-breeding-cooldown-to-config.patch index 79d22afb4..9c2263c6d 100644 --- a/patches/server/0117-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0117-Add-adjustable-breeding-cooldown-to-config.patch @@ -95,10 +95,10 @@ index 917a671894e16e024db941cea1845e39eaf93ef8..b17f250eec710c91a1d5995136d7dec2 this.world = new CraftWorld((ServerLevel) this, gen, env); this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b30e124fbf25cafd4c44a61f81030566b53a28ed..bde3fd58b152b80e07e112f8468349c8d8dab0e3 100644 +index 5f45d06c06e4a077096273f05d932ab9d53e918e..b54797a5dad26113bcd3a2752378504e62b30b3d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -328,6 +328,7 @@ public class PurpurWorldConfig { +@@ -330,6 +330,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -106,7 +106,7 @@ index b30e124fbf25cafd4c44a61f81030566b53a28ed..bde3fd58b152b80e07e112f8468349c8 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -339,6 +340,7 @@ public class PurpurWorldConfig { +@@ -341,6 +342,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/0118-Make-entity-breeding-times-configurable.patch b/patches/server/0118-Make-entity-breeding-times-configurable.patch index cc58d4d33..c209873d8 100644 --- a/patches/server/0118-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0118-Make-entity-breeding-times-configurable.patch @@ -474,10 +474,10 @@ index 5d289be8f0ef003abbce992e7662f6ddce4f4a99..5e3d7321a73144c3e4c43c18c5b748b2 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb312832b1a2042 100644 +index b54797a5dad26113bcd3a2752378504e62b30b3d..b07147b64ee76cb26b8bbc842c6242d401765acd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -460,9 +460,11 @@ public class PurpurWorldConfig { +@@ -462,9 +462,11 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; @@ -489,7 +489,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean batRidable = false; -@@ -492,6 +494,7 @@ public class PurpurWorldConfig { +@@ -494,6 +496,7 @@ public class PurpurWorldConfig { public boolean beeRidableInWater = false; public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; @@ -497,7 +497,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -502,6 +505,7 @@ public class PurpurWorldConfig { +@@ -504,6 +507,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -505,7 +505,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean blazeRidable = false; -@@ -526,6 +530,7 @@ public class PurpurWorldConfig { +@@ -528,6 +532,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -513,7 +513,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -538,6 +543,7 @@ public class PurpurWorldConfig { +@@ -540,6 +545,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); @@ -521,7 +521,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean caveSpiderRidable = false; -@@ -558,6 +564,7 @@ public class PurpurWorldConfig { +@@ -560,6 +566,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -529,7 +529,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -568,6 +575,7 @@ public class PurpurWorldConfig { +@@ -570,6 +577,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -537,7 +537,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean codRidable = false; -@@ -586,6 +594,7 @@ public class PurpurWorldConfig { +@@ -588,6 +596,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -545,7 +545,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -596,6 +605,7 @@ public class PurpurWorldConfig { +@@ -598,6 +607,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -553,7 +553,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean creeperRidable = false; -@@ -643,6 +653,7 @@ public class PurpurWorldConfig { +@@ -645,6 +655,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -561,7 +561,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -658,6 +669,7 @@ public class PurpurWorldConfig { +@@ -660,6 +671,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); @@ -569,7 +569,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean drownedRidable = false; -@@ -764,6 +776,7 @@ public class PurpurWorldConfig { +@@ -766,6 +778,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -577,7 +577,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -774,6 +787,7 @@ public class PurpurWorldConfig { +@@ -776,6 +789,7 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -585,7 +585,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean ghastRidable = false; -@@ -832,10 +846,12 @@ public class PurpurWorldConfig { +@@ -834,10 +848,12 @@ public class PurpurWorldConfig { public boolean goatRidable = false; public boolean goatRidableInWater = false; public double goatMaxHealth = 10.0D; @@ -598,7 +598,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean guardianRidable = false; -@@ -853,6 +869,7 @@ public class PurpurWorldConfig { +@@ -855,6 +871,7 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; public double hoglinMaxHealth = 40.0D; @@ -606,7 +606,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -862,6 +879,7 @@ public class PurpurWorldConfig { +@@ -864,6 +881,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -614,7 +614,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean horseRidableInWater = false; -@@ -871,6 +889,7 @@ public class PurpurWorldConfig { +@@ -873,6 +891,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -622,7 +622,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -886,6 +905,7 @@ public class PurpurWorldConfig { +@@ -888,6 +907,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); @@ -630,7 +630,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean huskRidable = false; -@@ -956,6 +976,7 @@ public class PurpurWorldConfig { +@@ -958,6 +978,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -638,7 +638,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -972,6 +993,7 @@ public class PurpurWorldConfig { +@@ -974,6 +995,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); @@ -646,7 +646,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean magmaCubeRidable = false; -@@ -991,6 +1013,7 @@ public class PurpurWorldConfig { +@@ -993,6 +1015,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; public double mooshroomMaxHealth = 10.0D; @@ -654,7 +654,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1000,6 +1023,7 @@ public class PurpurWorldConfig { +@@ -1002,6 +1025,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -662,7 +662,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean muleRidableInWater = false; -@@ -1009,6 +1033,7 @@ public class PurpurWorldConfig { +@@ -1011,6 +1035,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -670,7 +670,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1024,11 +1049,13 @@ public class PurpurWorldConfig { +@@ -1026,11 +1051,13 @@ 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); @@ -684,7 +684,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1038,11 +1065,13 @@ public class PurpurWorldConfig { +@@ -1040,11 +1067,13 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -698,7 +698,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1052,6 +1081,7 @@ public class PurpurWorldConfig { +@@ -1054,6 +1083,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -706,7 +706,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean parrotRidable = false; -@@ -1132,6 +1162,7 @@ public class PurpurWorldConfig { +@@ -1134,6 +1164,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -714,7 +714,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1142,6 +1173,7 @@ public class PurpurWorldConfig { +@@ -1144,6 +1175,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -722,7 +722,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean piglinRidable = false; -@@ -1191,6 +1223,7 @@ public class PurpurWorldConfig { +@@ -1193,6 +1225,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -730,7 +730,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1203,6 +1236,7 @@ public class PurpurWorldConfig { +@@ -1205,6 +1238,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; @@ -738,7 +738,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean pufferfishRidable = false; -@@ -1222,6 +1256,7 @@ public class PurpurWorldConfig { +@@ -1224,6 +1258,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -746,7 +746,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1233,6 +1268,7 @@ public class PurpurWorldConfig { +@@ -1235,6 +1270,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); @@ -754,7 +754,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean ravagerRidable = false; -@@ -1264,6 +1300,7 @@ public class PurpurWorldConfig { +@@ -1266,6 +1302,7 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; @@ -762,7 +762,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1273,6 +1310,7 @@ public class PurpurWorldConfig { +@@ -1275,6 +1312,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -770,7 +770,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean shulkerRidable = false; -@@ -1427,6 +1465,7 @@ public class PurpurWorldConfig { +@@ -1429,6 +1467,7 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; @@ -778,7 +778,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1436,6 +1475,7 @@ public class PurpurWorldConfig { +@@ -1438,6 +1477,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -786,7 +786,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean traderLlamaRidable = false; -@@ -1446,6 +1486,7 @@ public class PurpurWorldConfig { +@@ -1448,6 +1488,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -794,7 +794,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1462,6 +1503,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1505,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); @@ -802,7 +802,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean tropicalFishRidable = false; -@@ -1482,6 +1524,7 @@ public class PurpurWorldConfig { +@@ -1484,6 +1526,7 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -810,7 +810,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void turtleEggSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1494,6 +1537,7 @@ public class PurpurWorldConfig { +@@ -1496,6 +1539,7 @@ public class PurpurWorldConfig { turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); @@ -818,7 +818,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean vexRidable = false; -@@ -1522,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1524,6 +1568,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -826,7 +826,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1538,6 +1583,7 @@ public class PurpurWorldConfig { +@@ -1540,6 +1585,7 @@ public class PurpurWorldConfig { villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -834,7 +834,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 } public boolean vindicatorRidable = false; -@@ -1631,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1633,6 +1679,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -842,7 +842,7 @@ index bde3fd58b152b80e07e112f8468349c8d8dab0e3..652fadf7076a53a785551b2f4fb31283 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1640,6 +1687,7 @@ public class PurpurWorldConfig { +@@ -1642,6 +1689,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0119-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0119-Apply-display-names-from-item-forms-of-entities-to-e.patch index 862643af6..1f29a1575 100644 --- a/patches/server/0119-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0119-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -142,7 +142,7 @@ index 282bfe4904637aaff1bd29e30ed18ba843c07cab..ddd50db8bb92c147d7c1eef4d1df3ac5 if (((HangingEntity) object).survives()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 652fadf7076a53a785551b2f4fb312832b1a2042..2bdb2a2ddf9bda35deed49934860144981a30099 100644 +index b07147b64ee76cb26b8bbc842c6242d401765acd..7518fe1ba629e9bd17be3f687e62a030509faa12 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -85,8 +85,10 @@ public class PurpurWorldConfig { @@ -156,7 +156,7 @@ index 652fadf7076a53a785551b2f4fb312832b1a2042..2bdb2a2ddf9bda35deed499348601449 } public int daytimeTicks = 12000; -@@ -324,6 +326,7 @@ public class PurpurWorldConfig { +@@ -326,6 +328,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; public boolean persistentTileEntityDisplayNames = false; @@ -164,7 +164,7 @@ index 652fadf7076a53a785551b2f4fb312832b1a2042..2bdb2a2ddf9bda35deed499348601449 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -336,6 +339,7 @@ public class PurpurWorldConfig { +@@ -338,6 +341,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); diff --git a/patches/server/0121-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/server/0121-Add-twisting-and-weeping-vines-growth-rates.patch index 808c89c05..9d9d71be0 100644 --- a/patches/server/0121-Add-twisting-and-weeping-vines-growth-rates.patch +++ b/patches/server/0121-Add-twisting-and-weeping-vines-growth-rates.patch @@ -67,10 +67,10 @@ index 35b2bad76c45b5a94ba7f2e9c7a8cfeb8c3f498b..d2cb1a7e7ea364cb8e2af4c4e756d8e4 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 55245e4b9551ec1ffcc1ef3c375b5ec31dfbb7c6..1aa81f2330d6d22a0c3b0021575995e6f74ecdcd 100644 +index 65de0a66e81ad3fdf0f85d233512dd7bb1a8a416..6168b3c2a8d700653f181f692e7011a611b2f82b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -455,6 +455,16 @@ public class PurpurWorldConfig { +@@ -457,6 +457,16 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } diff --git a/patches/server/0122-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0122-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index 818a1ac6d..2c30a0b6f 100644 --- a/patches/server/0122-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0122-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -89,10 +89,10 @@ index d2cb1a7e7ea364cb8e2af4c4e756d8e45bc0ca10..bb99dda3c5167f23b2500a1f37cbc1ca // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1aa81f2330d6d22a0c3b0021575995e6f74ecdcd..0b83e98cac0894fdd186c00fc3e51a1d21e64651 100644 +index 6168b3c2a8d700653f181f692e7011a611b2f82b..af5d052ad3f5948ed198091964006dc33de09d78 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -422,6 +422,11 @@ public class PurpurWorldConfig { +@@ -424,6 +424,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -104,7 +104,7 @@ index 1aa81f2330d6d22a0c3b0021575995e6f74ecdcd..0b83e98cac0894fdd186c00fc3e51a1d public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -456,13 +461,17 @@ public class PurpurWorldConfig { +@@ -458,13 +463,17 @@ public class PurpurWorldConfig { } public double twistingVinesGrowthModifier = 0.10D; diff --git a/patches/server/0123-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0123-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 0dbd1ad67..55cfbb3d3 100644 --- a/patches/server/0123-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0123-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 5ebedd6a156b06e98aded57c817f63429a1ae380..c99d295b999a28dd1eb504179250445d private static class EndermanFreezeWhenLookedAt extends Goal { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0b83e98cac0894fdd186c00fc3e51a1d21e64651..d110713313fc3c9495fccf0ae2ea309d25cb1f26 100644 +index af5d052ad3f5948ed198091964006dc33de09d78..35114bb65efc940dc44e93546152580bbc9be9e3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -757,6 +757,7 @@ public class PurpurWorldConfig { +@@ -759,6 +759,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 0b83e98cac0894fdd186c00fc3e51a1d21e64651..d110713313fc3c9495fccf0ae2ea309d private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -767,6 +768,7 @@ public class PurpurWorldConfig { +@@ -769,6 +770,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0125-Add-configurable-snowball-damage.patch b/patches/server/0125-Add-configurable-snowball-damage.patch index d47fc8fd8..127802d46 100644 --- a/patches/server/0125-Add-configurable-snowball-damage.patch +++ b/patches/server/0125-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d110713313fc3c9495fccf0ae2ea309d25cb1f26..10c6e40c54bff7dfdba00e2febdc9f2bef343ba8 100644 +index 35114bb65efc940dc44e93546152580bbc9be9e3..94302930c2009ca9c4750cb3315b5bcce59518da 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -270,6 +270,11 @@ public class PurpurWorldConfig { +@@ -272,6 +272,11 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0126-Zombie-break-door-minimum-difficulty-option.patch b/patches/server/0126-Zombie-break-door-minimum-difficulty-option.patch index bdc1e2d80..03eae0252 100644 --- a/patches/server/0126-Zombie-break-door-minimum-difficulty-option.patch +++ b/patches/server/0126-Zombie-break-door-minimum-difficulty-option.patch @@ -44,7 +44,7 @@ index fe045f8e35fe2aac51032a67ce52b27a53a8eff0..03bc86c776596ca5964c22adb757115d + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 10c6e40c54bff7dfdba00e2febdc9f2bef343ba8..fd3362058694b55bf3cc28a51d7c9c1306d86144 100644 +index 94302930c2009ca9c4750cb3315b5bcce59518da..aba5325f96a396be479445730558235529afdcec 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -2,6 +2,7 @@ package net.pl3x.purpur; @@ -55,7 +55,7 @@ index 10c6e40c54bff7dfdba00e2febdc9f2bef343ba8..fd3362058694b55bf3cc28a51d7c9c13 import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.Explosion; -@@ -1744,6 +1745,7 @@ public class PurpurWorldConfig { +@@ -1746,6 +1747,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -63,7 +63,7 @@ index 10c6e40c54bff7dfdba00e2febdc9f2bef343ba8..fd3362058694b55bf3cc28a51d7c9c13 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1758,6 +1760,11 @@ public class PurpurWorldConfig { +@@ -1760,6 +1762,11 @@ 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/0128-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0128-Changeable-Mob-Left-Handed-Chance.patch index f8cc7ae5d..4e90861d5 100644 --- a/patches/server/0128-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0128-Changeable-Mob-Left-Handed-Chance.patch @@ -18,7 +18,7 @@ index 2ca0c22a23916acd034f70edc9d94ea22bbd0b52..e0fa000738d2fb4472056e973159e40d } else { this.setLeftHanded(false); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fd3362058694b55bf3cc28a51d7c9c1306d86144..424a902aacfe209f43556ff40ab5aa880f0e0b5d 100644 +index aba5325f96a396be479445730558235529afdcec..5466cb48c7d71e6c369e17a354b877ff73091544 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -115,8 +115,10 @@ public class PurpurWorldConfig { @@ -31,4 +31,4 @@ index fd3362058694b55bf3cc28a51d7c9c1306d86144..424a902aacfe209f43556ff40ab5aa88 + entityLeftHandedChance = (float) getDouble("gameplay-mechanics.entity-left-handed-chance", entityLeftHandedChance); } - public boolean infinityWorksWithNormalArrows = true; + public boolean infinityWorksWithoutArrows = false; diff --git a/patches/server/0129-Add-boat-fall-damage-config.patch b/patches/server/0129-Add-boat-fall-damage-config.patch index a2921aa00..6dc0f3f10 100644 --- a/patches/server/0129-Add-boat-fall-damage-config.patch +++ b/patches/server/0129-Add-boat-fall-damage-config.patch @@ -27,10 +27,10 @@ index 5b395fb6f0e7bee4a24fb2d5b0bc9421b70e5b8d..c4ff2e17d032f20395bb8a42152d16de if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 424a902aacfe209f43556ff40ab5aa880f0e0b5d..078b1c08c63e39f80ecb1c8a18d71a38ee69f7b6 100644 +index 5466cb48c7d71e6c369e17a354b877ff73091544..ec332b3ee149204a41eff5ea5f9690f5db0dbb3e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -332,6 +332,7 @@ public class PurpurWorldConfig { +@@ -334,6 +334,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 424a902aacfe209f43556ff40ab5aa880f0e0b5d..078b1c08c63e39f80ecb1c8a18d71a38 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -345,6 +346,7 @@ public class PurpurWorldConfig { +@@ -347,6 +348,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/0130-Snow-Golem-rate-of-fire-config.patch b/patches/server/0130-Snow-Golem-rate-of-fire-config.patch index 74de32229..d7943f3d0 100644 --- a/patches/server/0130-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0130-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index 0733f9c057fef17fd79a4769f19b78f4c83a7784..1697b573ffd0c5d17d2d538c40f5ce4b this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(4, new RandomLookAroundGoal(this)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 078b1c08c63e39f80ecb1c8a18d71a38ee69f7b6..70a552932c824a78bd70217bdbd850612ab4065d 100644 +index ec332b3ee149204a41eff5ea5f9690f5db0dbb3e..3b68c30f3af6c4f459967d56267196d88f8191e1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1439,6 +1439,10 @@ public class PurpurWorldConfig { +@@ -1441,6 +1441,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 078b1c08c63e39f80ecb1c8a18d71a38ee69f7b6..70a552932c824a78bd70217bdbd85061 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1451,6 +1455,10 @@ public class PurpurWorldConfig { +@@ -1453,6 +1457,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/0133-Lobotomize-stuck-villagers.patch b/patches/server/0133-Lobotomize-stuck-villagers.patch index 5efb51ffb..84b8020c8 100644 --- a/patches/server/0133-Lobotomize-stuck-villagers.patch +++ b/patches/server/0133-Lobotomize-stuck-villagers.patch @@ -53,10 +53,10 @@ index 1e05cc98a332e5b115c4670e5331e679117c6629..84142a42111ff03827297c522b7ce164 if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 70a552932c824a78bd70217bdbd850612ab4065d..806af61c0d553b3825f2d5dc9768648fbf0d4cbb 100644 +index 3b68c30f3af6c4f459967d56267196d88f8191e1..36cfbb5a729269b7a435c2d6c253665891de6ef9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1612,6 +1612,8 @@ public class PurpurWorldConfig { +@@ -1614,6 +1614,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -65,7 +65,7 @@ index 70a552932c824a78bd70217bdbd850612ab4065d..806af61c0d553b3825f2d5dc9768648f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1629,6 +1631,13 @@ public class PurpurWorldConfig { +@@ -1631,6 +1633,13 @@ public class PurpurWorldConfig { villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0134-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0134-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index fff4a5af3..81f117c28 100644 --- a/patches/server/0134-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0134-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -185,10 +185,10 @@ index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e612 public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiType.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 806af61c0d553b3825f2d5dc9768648fbf0d4cbb..addb6963c78574461e8f096e76ad564450e6160b 100644 +index 36cfbb5a729269b7a435c2d6c253665891de6ef9..4590e1ee56e93befc0b5844c4d044e724c77e13e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1614,6 +1614,8 @@ public class PurpurWorldConfig { +@@ -1616,6 +1616,8 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheck = 60; @@ -197,7 +197,7 @@ index 806af61c0d553b3825f2d5dc9768648fbf0d4cbb..addb6963c78574461e8f096e76ad5644 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1638,6 +1640,8 @@ public class PurpurWorldConfig { +@@ -1640,6 +1642,8 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); diff --git a/patches/server/0135-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0135-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index c843faf0a..c6c87c861 100644 --- a/patches/server/0135-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0135-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 43ef93d2c0c59e0d7021ee9aa2b44345192cc0a9..ce780a2ba7dcbd9c1c9dc24c07387861 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index addb6963c78574461e8f096e76ad564450e6160b..0919c4a48173fba93ba56859f8f4443333608f18 100644 +index 4590e1ee56e93befc0b5844c4d044e724c77e13e..79916dd8f7605b3f8d5853518847622bda61dd2f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1848,6 +1848,7 @@ public class PurpurWorldConfig { +@@ -1850,6 +1850,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index addb6963c78574461e8f096e76ad564450e6160b..0919c4a48173fba93ba56859f8f44433 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1861,5 +1862,6 @@ public class PurpurWorldConfig { +@@ -1863,5 +1864,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/0137-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0137-Configurable-chance-for-wolves-to-spawn-rabid.patch index 518f1c13d..84f6e35dd 100644 --- a/patches/server/0137-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0137-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -201,10 +201,10 @@ index ef4abaf68de01b0879f7d0b330d2d57cc6bd10f9..3e7409ebf1f94b9cf55f2d0b0fe17ca8 return super.mobInteract(player, hand); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0919c4a48173fba93ba56859f8f4443333608f18..b2b08de791ff43f0db6c37e6295f4edef8912c37 100644 +index 79916dd8f7605b3f8d5853518847622bda61dd2f..cc8b9b1ed14efd6d5b2bb4f5da80ae85bf2aad0a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1735,6 +1735,8 @@ public class PurpurWorldConfig { +@@ -1737,6 +1737,8 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -213,7 +213,7 @@ index 0919c4a48173fba93ba56859f8f4443333608f18..b2b08de791ff43f0db6c37e6295f4ede public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1745,6 +1747,8 @@ public class PurpurWorldConfig { +@@ -1747,6 +1749,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0138-Configurable-default-wolf-collar-color.patch b/patches/server/0138-Configurable-default-wolf-collar-color.patch index 61d246130..e555a63e1 100644 --- a/patches/server/0138-Configurable-default-wolf-collar-color.patch +++ b/patches/server/0138-Configurable-default-wolf-collar-color.patch @@ -24,7 +24,7 @@ index 3e7409ebf1f94b9cf55f2d0b0fe17ca8ec44659f..518dd0e6b4889c049e438b393baa795a @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b2b08de791ff43f0db6c37e6295f4edef8912c37..9b78428352167039682828e7415d4c32339c45de 100644 +index cc8b9b1ed14efd6d5b2bb4f5da80ae85bf2aad0a..876a4a09700907d7bb79fc1f7686076e489e9303 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -3,6 +3,7 @@ package net.pl3x.purpur; @@ -35,7 +35,7 @@ index b2b08de791ff43f0db6c37e6295f4edef8912c37..9b78428352167039682828e7415d4c32 import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.Explosion; -@@ -1735,6 +1736,7 @@ public class PurpurWorldConfig { +@@ -1737,6 +1738,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -43,7 +43,7 @@ index b2b08de791ff43f0db6c37e6295f4edef8912c37..9b78428352167039682828e7415d4c32 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1747,6 +1749,11 @@ public class PurpurWorldConfig { +@@ -1749,6 +1751,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0139-Phantom-flames-on-swoop.patch b/patches/server/0139-Phantom-flames-on-swoop.patch index 561980888..fe001b626 100644 --- a/patches/server/0139-Phantom-flames-on-swoop.patch +++ b/patches/server/0139-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 782d4499f925950d66072b63f34a828bcc51d2e7..3ea6f2d96245caa85f365c488b8cc019 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9b78428352167039682828e7415d4c32339c45de..4e30410ee50cd699b236bcd713bb77ab67b4d3d5 100644 +index 876a4a09700907d7bb79fc1f7686076e489e9303..3e9af1b5796b9cb6e7c9223583d94c1f510f280e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1144,6 +1144,7 @@ public class PurpurWorldConfig { +@@ -1146,6 +1146,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 9b78428352167039682828e7415d4c32339c45de..4e30410ee50cd699b236bcd713bb77ab public double phantomMaxHealth = 20.0D; public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; -@@ -1170,6 +1171,7 @@ public class PurpurWorldConfig { +@@ -1172,6 +1173,7 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/server/0140-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0140-Option-for-chests-to-open-even-with-a-solid-block-on.patch index 0fd2111ac..adf44effa 100644 --- a/patches/server/0140-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0140-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index d980a556785b52fe827310b83638139df0816b11..3c8c02fc92374def12254f7ffad604b2 return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4e30410ee50cd699b236bcd713bb77ab67b4d3d5..58432ebd2ca2ea463c0794e7bd353e6f51ef60f6 100644 +index 3e9af1b5796b9cb6e7c9223583d94c1f510f280e..e377af1c0c565df4cb3487654980b4cf9cc16d97 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -403,6 +403,11 @@ public class PurpurWorldConfig { +@@ -405,6 +405,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0142-Striders-give-saddle-back.patch b/patches/server/0142-Striders-give-saddle-back.patch index b6b441ea3..8ba47aa8c 100644 --- a/patches/server/0142-Striders-give-saddle-back.patch +++ b/patches/server/0142-Striders-give-saddle-back.patch @@ -28,10 +28,10 @@ index 294f276fa8d2d754abde11ebc3d39e5e68996b05..b3928617f732b49cfc124e9bdb879110 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 58432ebd2ca2ea463c0794e7bd353e6f51ef60f6..bf3a65955ba41d4db94bb7a05c5a315d8751c6a2 100644 +index e377af1c0c565df4cb3487654980b4cf9cc16d97..5ac846ec65890394d8460aff3f9453cd1baabbd3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1519,6 +1519,7 @@ public class PurpurWorldConfig { +@@ -1521,6 +1521,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -39,7 +39,7 @@ index 58432ebd2ca2ea463c0794e7bd353e6f51ef60f6..bf3a65955ba41d4db94bb7a05c5a315d private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1529,6 +1530,7 @@ public class PurpurWorldConfig { +@@ -1531,6 +1532,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/0144-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0144-Full-netherite-armor-grants-fire-resistance.patch index d20cf9e25..609e8a873 100644 --- a/patches/server/0144-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0144-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index 62540f8af27709976e109bd79975a9a5cd11c8d3..ac2235f40571818e6fc82be929bb3662 protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bf3a65955ba41d4db94bb7a05c5a315d8751c6a2..ec075758721a0949237b60376d0b67cdee5fe4df 100644 +index 5ac846ec65890394d8460aff3f9453cd1baabbd3..d4813180eeb1dcb004b0ba0baf892567cd36725e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -251,6 +251,19 @@ public class PurpurWorldConfig { +@@ -253,6 +253,19 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0147-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0147-Add-mobGriefing-bypass-to-everything-affected.patch index 5ff01494b..bc7976ccd 100644 --- a/patches/server/0147-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0147-Add-mobGriefing-bypass-to-everything-affected.patch @@ -393,10 +393,10 @@ index e98fc3c235f9160f1928a8afb0d7991a6d3430cb..db35f756b7adb6b113659ae13b08ab89 return true; // Purpur end diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc000c818c 100644 +index d4813180eeb1dcb004b0ba0baf892567cd36725e..288d42cdfb3d89b5fdb956606c91ebd914969ce0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -349,9 +349,12 @@ public class PurpurWorldConfig { +@@ -351,9 +351,12 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -409,7 +409,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -363,9 +366,12 @@ public class PurpurWorldConfig { +@@ -365,9 +368,12 @@ 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); @@ -422,7 +422,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc 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); -@@ -428,9 +434,11 @@ public class PurpurWorldConfig { +@@ -430,9 +436,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -434,7 +434,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -456,6 +464,11 @@ public class PurpurWorldConfig { +@@ -458,6 +466,11 @@ public class PurpurWorldConfig { kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); } @@ -446,7 +446,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -489,6 +502,11 @@ public class PurpurWorldConfig { +@@ -491,6 +504,11 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } @@ -458,7 +458,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc public double twistingVinesGrowthModifier = 0.10D; public int twistingVinesMaxGrowthAge = 25; private void twistingVinesSettings() { -@@ -667,6 +685,7 @@ public class PurpurWorldConfig { +@@ -669,6 +687,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -466,7 +466,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -678,6 +697,7 @@ public class PurpurWorldConfig { +@@ -680,6 +699,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); @@ -474,7 +474,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean dolphinRidable = false; -@@ -765,6 +785,7 @@ public class PurpurWorldConfig { +@@ -767,6 +787,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -482,7 +482,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -780,6 +801,7 @@ public class PurpurWorldConfig { +@@ -782,6 +803,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -490,7 +490,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean endermanRidable = false; -@@ -787,6 +809,7 @@ public class PurpurWorldConfig { +@@ -789,6 +811,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -498,7 +498,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -798,6 +821,7 @@ public class PurpurWorldConfig { +@@ -800,6 +823,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); @@ -506,7 +506,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean endermiteRidable = false; -@@ -817,6 +841,7 @@ public class PurpurWorldConfig { +@@ -819,6 +843,7 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; public double evokerMaxHealth = 24.0D; @@ -514,7 +514,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -826,6 +851,7 @@ public class PurpurWorldConfig { +@@ -828,6 +853,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -522,7 +522,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean foxRidable = false; -@@ -833,6 +859,7 @@ public class PurpurWorldConfig { +@@ -835,6 +861,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -530,7 +530,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -844,6 +871,7 @@ public class PurpurWorldConfig { +@@ -846,6 +873,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); @@ -538,7 +538,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean ghastRidable = false; -@@ -1237,6 +1265,7 @@ public class PurpurWorldConfig { +@@ -1239,6 +1267,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -546,7 +546,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1246,6 +1275,7 @@ public class PurpurWorldConfig { +@@ -1248,6 +1277,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -554,7 +554,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean piglinBruteRidable = false; -@@ -1265,6 +1295,7 @@ public class PurpurWorldConfig { +@@ -1267,6 +1297,7 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; public double pillagerMaxHealth = 24.0D; @@ -562,7 +562,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1274,6 +1305,7 @@ public class PurpurWorldConfig { +@@ -1276,6 +1307,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -570,7 +570,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean polarBearRidable = false; -@@ -1315,6 +1347,7 @@ public class PurpurWorldConfig { +@@ -1317,6 +1349,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -578,7 +578,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1327,11 +1360,13 @@ public class PurpurWorldConfig { +@@ -1329,11 +1362,13 @@ 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 ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1341,6 +1376,7 @@ public class PurpurWorldConfig { +@@ -1343,6 +1378,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -600,7 +600,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean salmonRidable = false; -@@ -1359,6 +1395,7 @@ public class PurpurWorldConfig { +@@ -1361,6 +1397,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -608,7 +608,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1369,6 +1406,7 @@ public class PurpurWorldConfig { +@@ -1371,6 +1408,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 ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean shulkerRidable = false; -@@ -1388,6 +1426,7 @@ public class PurpurWorldConfig { +@@ -1390,6 +1428,7 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; public double silverfishMaxHealth = 8.0D; @@ -624,7 +624,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1397,6 +1436,7 @@ public class PurpurWorldConfig { +@@ -1399,6 +1438,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -632,7 +632,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean skeletonRidable = false; -@@ -1464,6 +1504,7 @@ public class PurpurWorldConfig { +@@ -1466,6 +1506,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -640,7 +640,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1480,6 +1521,7 @@ public class PurpurWorldConfig { +@@ -1482,6 +1523,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 ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean squidRidable = false; -@@ -1639,6 +1681,7 @@ public class PurpurWorldConfig { +@@ -1641,6 +1683,7 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheck = 60; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -656,7 +656,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1665,6 +1708,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1710,7 @@ public class PurpurWorldConfig { villagerLobotomizeCheck = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheck); 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 ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean vindicatorRidable = false; -@@ -1721,6 +1765,7 @@ public class PurpurWorldConfig { +@@ -1723,6 +1767,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -672,7 +672,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1737,6 +1782,7 @@ public class PurpurWorldConfig { +@@ -1739,6 +1784,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 ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc } public boolean witherSkeletonRidable = false; -@@ -1804,6 +1850,7 @@ public class PurpurWorldConfig { +@@ -1806,6 +1852,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public Difficulty zombieBreakDoorMinDifficulty = Difficulty.HARD; @@ -688,7 +688,7 @@ index ec075758721a0949237b60376d0b67cdee5fe4df..f7bbcaffe0a8be47e5528c8704f997bc private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1823,6 +1870,7 @@ public class PurpurWorldConfig { +@@ -1825,6 +1872,7 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { zombieBreakDoorMinDifficulty = Difficulty.HARD; } diff --git a/patches/server/0148-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0148-Config-to-allow-Note-Block-sounds-when-blocked.patch index 4f57e246a..5492febf7 100644 --- a/patches/server/0148-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0148-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index d3c8fd8399629efb8bcbaf7d9a0c43340fcdfeda..c74df3b5c2a25469ad3fb6a853438bbc org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f7bbcaffe0a8be47e5528c8704f997bc000c818c..f9a1e5b7e0192aa986fbd63a663f9fe7f8fca499 100644 +index 288d42cdfb3d89b5fdb956606c91ebd914969ce0..18eac861d4cdc3ab7b9b078254d73da244965deb 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -352,6 +352,7 @@ public class PurpurWorldConfig { +@@ -354,6 +354,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index f7bbcaffe0a8be47e5528c8704f997bc000c818c..f9a1e5b7e0192aa986fbd63a663f9fe7 public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; -@@ -369,6 +370,7 @@ public class PurpurWorldConfig { +@@ -371,6 +372,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/0149-Add-EntityTeleportHinderedEvent.patch b/patches/server/0149-Add-EntityTeleportHinderedEvent.patch index 54c82b956..649570ba6 100644 --- a/patches/server/0149-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0149-Add-EntityTeleportHinderedEvent.patch @@ -78,10 +78,10 @@ index 09cbce5aec6eabfa220f7de81b492a180cb8ca1e..265770975ad1190283103b04cdd52a07 blockEntity.teleportCooldown = 100; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f9a1e5b7e0192aa986fbd63a663f9fe7f8fca499..0e31a358c9faa8173f455d61508c7f4111b51301 100644 +index 18eac861d4cdc3ab7b9b078254d73da244965deb..e2da11f256a24e583d6294dda341f238668db408 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -351,6 +351,7 @@ public class PurpurWorldConfig { +@@ -353,6 +353,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -89,7 +89,7 @@ index f9a1e5b7e0192aa986fbd63a663f9fe7f8fca499..0e31a358c9faa8173f455d61508c7f41 public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentTileEntityDisplayNames = false; -@@ -369,6 +370,7 @@ public class PurpurWorldConfig { +@@ -371,6 +372,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/0151-Farmland-trampling-changes.patch b/patches/server/0151-Farmland-trampling-changes.patch index c88358a90..78ab1d261 100644 --- a/patches/server/0151-Farmland-trampling-changes.patch +++ b/patches/server/0151-Farmland-trampling-changes.patch @@ -37,10 +37,10 @@ index 5b15275c8d808916a1506a19a8bc29103adedae9..3b170886d42df4c217b565f54b1c6272 if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0e31a358c9faa8173f455d61508c7f4111b51301..95497513c805c9d71fa10404ac953092a852397b 100644 +index e2da11f256a24e583d6294dda341f238668db408..0bd50fc8e2c3945b51eae86b6c6eaed3e4b9bf8c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -441,10 +441,16 @@ public class PurpurWorldConfig { +@@ -443,10 +443,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0153-Fix-stuck-in-portals.patch b/patches/server/0153-Fix-stuck-in-portals.patch index 157cb8b9c..7a6671282 100644 --- a/patches/server/0153-Fix-stuck-in-portals.patch +++ b/patches/server/0153-Fix-stuck-in-portals.patch @@ -37,10 +37,10 @@ index 98f0728733e0bce5fe5a0e7b4ce1a42afd7c653e..bdd6bd6ddad0ead1f0887f83f0e47a03 this.isInsidePortal = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 063505bc3987a384fdf8e235b03717c962c2ca9f..18c9741d2a9d7504c8874145b215c937f394e992 100644 +index 4d69d20f5c009745cf633d912ab22498c52e9460..3e4c63da65d2a6ee49b115b58ecc0935e92f6b06 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -280,6 +280,7 @@ public class PurpurWorldConfig { +@@ -282,6 +282,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index 063505bc3987a384fdf8e235b03717c962c2ca9f..18c9741d2a9d7504c8874145b215c937 private void playerSettings() { idleTimeoutKick = getBoolean("gameplay-mechanics.player.idle-timeout.kick-if-idle", idleTimeoutKick); idleTimeoutTickNearbyEntities = getBoolean("gameplay-mechanics.player.idle-timeout.tick-nearby-entities", idleTimeoutTickNearbyEntities); -@@ -291,6 +292,7 @@ public class PurpurWorldConfig { +@@ -293,6 +294,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/0154-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0154-Toggle-for-water-sensitive-mob-damage.patch new file mode 100644 index 000000000..c41c68a82 --- /dev/null +++ b/patches/server/0154-Toggle-for-water-sensitive-mob-damage.patch @@ -0,0 +1,139 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: YouHaveTrouble +Date: Fri, 5 Feb 2021 01:11:22 +0100 +Subject: [PATCH] Toggle for water sensitive mob damage + + +diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java +index 0cb0b08b8bcf5d43c28a8696173e0269469b57ab..d92549e81160afaa1d109501806f3af96c475d7e 100644 +--- a/src/main/java/net/minecraft/world/entity/Mob.java ++++ b/src/main/java/net/minecraft/world/entity/Mob.java +@@ -855,7 +855,7 @@ public abstract class Mob extends LivingEntity { + if (goalFloat.canUse()) goalFloat.tick(); + this.getJumpControl().tick(); + } +- if ((this instanceof net.minecraft.world.entity.monster.Blaze || this instanceof net.minecraft.world.entity.monster.EnderMan) && isInWaterRainOrBubble()) { ++ if (isSensitiveToWater() && isInWaterRainOrBubble()) { // Purpur + hurt(DamageSource.DROWN, 1.0F); + } + return; +diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +index 69bb27e8223b4be0e410ab9dd10e4db2fd26e564..c66e72606c346d12d628b92dda97a997e503bdaf 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java ++++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +@@ -110,7 +110,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM + + @Override + public boolean isSensitiveToWater() { +- return true; ++ return this.level.purpurConfig.snowGolemTakeDamageFromWater; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java +index 83f9a1139a501135a89a758993c7ff209b5b92d5..d772fcfc62425bb720003a681b987382603961f7 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java ++++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java +@@ -138,7 +138,7 @@ public class Blaze extends Monster { + + @Override + public boolean isSensitiveToWater() { +- return true; ++ return this.level.purpurConfig.blazeTakeDamageFromWater; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +index 96ad40de21a4f00df15ec5c0c8c130566ac27cd1..3907b7cb559dabdd3cc347678d42071215c66a6c 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +@@ -287,7 +287,7 @@ public class EnderMan extends Monster implements NeutralMob { + + @Override + public boolean isSensitiveToWater() { +- return true; ++ return this.level.purpurConfig.endermanTakeDamageFromWater; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java +index b3928617f732b49cfc124e9bdb879110413defd7..1c6d29a30df66e9971cd50e264bb4455cefe0e8a 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java ++++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java +@@ -407,7 +407,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { + + @Override + public boolean isSensitiveToWater() { +- return true; ++ return this.level.purpurConfig.striderTakeDamageFromWater; // Purpur + } + + @Override +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 3e4c63da65d2a6ee49b115b58ecc0935e92f6b06..58338f0d1c1cdd153ce90e79ad4ae2725622752e 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -604,6 +604,7 @@ public class PurpurWorldConfig { + public boolean blazeRidableInWater = false; + public double blazeMaxY = 256D; + public double blazeMaxHealth = 20.0D; ++ public boolean blazeTakeDamageFromWater = true; + private void blazeSettings() { + blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); + blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); +@@ -614,6 +615,7 @@ public class PurpurWorldConfig { + set("mobs.blaze.attributes.max_health", oldValue); + } + blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); ++ blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); + } + + public boolean catRidable = false; +@@ -830,6 +832,7 @@ public class PurpurWorldConfig { + public boolean endermanAllowGriefing = true; + public boolean endermanDespawnEvenWithBlock = false; + public boolean endermanBypassMobGriefing = false; ++ public boolean endermanTakeDamageFromWater = true; + private void endermanSettings() { + endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); + endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); +@@ -842,6 +845,7 @@ 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); ++ endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); + } + + public boolean endermiteRidable = false; +@@ -1525,6 +1529,7 @@ public class PurpurWorldConfig { + public float snowGolemSnowBallModifier = 10.0F; + public double snowGolemAttackDistance = 1.25D; + public boolean snowGolemBypassMobGriefing = false; ++ public boolean snowGolemTakeDamageFromWater = true; + private void snowGolemSettings() { + snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); + snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); +@@ -1542,6 +1547,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); ++ snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); + } + + public boolean squidRidable = false; +@@ -1595,6 +1601,7 @@ public class PurpurWorldConfig { + public double striderMaxHealth = 20.0D; + public int striderBreedingTicks = 6000; + public boolean striderGiveSaddleBack = false; ++ public boolean striderTakeDamageFromWater = true; + private void striderSettings() { + striderRidable = getBoolean("mobs.strider.ridable", striderRidable); + striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); +@@ -1606,6 +1613,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); ++ striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); + } + + public boolean traderLlamaRidable = false;