Files
Purpur/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch
2026-06-08 12:07:56 -07:00

1391 lines
67 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: YouHaveTrouble <garrenpolska@gmail.com>
Date: Fri, 5 Feb 2021 01:11:22 +0100
Subject: [PATCH] Toggle for water sensitive mob damage
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index cb242c69be97e0927dd62714f1a9b112c0dec84b..626463a20f49c807eae86b30fe38c514311abd88 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -109,6 +109,13 @@ public class Bat extends AmbientCreature {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.batTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 11b3d0706a89b21251b5a045fbb34b1c3e3d77b8..523358fb9bfb393dde41fb90fed40ab8a54ba107 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -154,6 +154,13 @@ public class Axolotl extends Animal implements Bucketable {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.axolotlTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java
index c871d6e0140fae4e15bf07ba86ed7c67615e9ce6..f4e063e0fe64e26f926523765eba83a8a61d6404 100644
--- a/net/minecraft/world/entity/animal/bee/Bee.java
+++ b/net/minecraft/world/entity/animal/bee/Bee.java
@@ -183,7 +183,7 @@ public class Bee extends Animal implements NeutralMob {
// Paper end - Fix MC-167279
this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(PathType.FIRE, -1.0F);
- if (this.level().purpurConfig.beeCanInstantlyStartDrowning) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option
+ if (this.level().purpurConfig.beeCanInstantlyStartDrowning || isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option // Purpur - Toggle for water sensitive mob damage
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -492,6 +492,13 @@ public class Bee extends Animal implements NeutralMob {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.beeTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public long getPersistentAngerEndTime() {
return this.entityData.get(DATA_ANGER_END_TIME);
diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java
index b27e52819fa244d93f70177b19898ab6399e2d3f..fed0cce13f0b75395ba4398e2cc79b142c289e68 100644
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
@@ -118,6 +118,13 @@ public class Chicken extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.chickenTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java
index da88b2b3ed1c27100bff546cb80837da6e30e20b..103b4cd879e059fc34f8e42a5d25fc6cbb146837 100644
--- a/net/minecraft/world/entity/animal/cow/Cow.java
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
@@ -74,6 +74,13 @@ public class Cow extends AbstractCow {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.cowTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
super.defineSynchedData(entityData);
diff --git a/net/minecraft/world/entity/animal/cow/MushroomCow.java b/net/minecraft/world/entity/animal/cow/MushroomCow.java
index ab57ef2e091d95adc8d13d1b33033b190b7f68d6..fdc5cc7fe6c3955ae04b184d189f1156b6f2af9a 100644
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
@@ -100,6 +100,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.mooshroomTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public float getWalkTargetValue(final BlockPos pos, final LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
index b6d698fbdf1fe5b6b1ffe8d622c83004f1fa693a..68c59f9b7048c9e523c3d33d0ab444d430e491ef 100644
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
@@ -169,6 +169,13 @@ public class Dolphin extends AgeableWaterCreature {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.dolphinTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public @Nullable SpawnGroupData finalizeSpawn(
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData
diff --git a/net/minecraft/world/entity/animal/equine/Donkey.java b/net/minecraft/world/entity/animal/equine/Donkey.java
index ee024d5f00b5a2845eeb296172c593b1040be1a8..a74124c9910c121c834eb7510f3e6a54557c8c07 100644
--- a/net/minecraft/world/entity/animal/equine/Donkey.java
+++ b/net/minecraft/world/entity/animal/equine/Donkey.java
@@ -48,6 +48,13 @@ public class Donkey extends AbstractChestedHorse {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.donkeyTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/equine/Horse.java b/net/minecraft/world/entity/animal/equine/Horse.java
index e69ae448ed73949a11ee3284f93a535a9f0b3d1c..187f72ab0fa2fa623e4b7ea825a640f1b1d42d72 100644
--- a/net/minecraft/world/entity/animal/equine/Horse.java
+++ b/net/minecraft/world/entity/animal/equine/Horse.java
@@ -80,6 +80,13 @@ public class Horse extends AbstractHorse {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.horseTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void randomizeAttributes(final RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
diff --git a/net/minecraft/world/entity/animal/equine/Llama.java b/net/minecraft/world/entity/animal/equine/Llama.java
index 0678e622e90fc13f758c582286f872b358f46243..75eb96b3a62fcb07b93edbf629965fe75d385c38 100644
--- a/net/minecraft/world/entity/animal/equine/Llama.java
+++ b/net/minecraft/world/entity/animal/equine/Llama.java
@@ -159,6 +159,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.llamaTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public boolean isTraderLlama() {
return false;
}
diff --git a/net/minecraft/world/entity/animal/equine/Mule.java b/net/minecraft/world/entity/animal/equine/Mule.java
index 24daee9922a270c9cdfb26899c9eda74370a5dea..c54a7033d40e973b7c93de5276d20451306b48bc 100644
--- a/net/minecraft/world/entity/animal/equine/Mule.java
+++ b/net/minecraft/world/entity/animal/equine/Mule.java
@@ -47,6 +47,13 @@ public class Mule extends AbstractChestedHorse {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.muleTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
index f1657977511160e4f35172bff89f503887b13e25..a5a2923dbc0b4a090c29de16bd564bfd78ca8f9c 100644
--- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
@@ -75,6 +75,13 @@ public class SkeletonHorse extends AbstractHorse {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.skeletonHorseTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/equine/TraderLlama.java b/net/minecraft/world/entity/animal/equine/TraderLlama.java
index 544777353802146de13f3365935bd1f7dda41af3..e9bd6334f0713d8fab91d1cfddfb8d4580faaa5b 100644
--- a/net/minecraft/world/entity/animal/equine/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java
@@ -78,6 +78,13 @@ public class TraderLlama extends Llama {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.traderLlamaTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean isTraderLlama() {
return true;
diff --git a/net/minecraft/world/entity/animal/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
index aca379a8af847b5551d950cf2880a242d9ec1768..9deb8e249830aea4bbc230f26eb192479eec0c4e 100644
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
@@ -86,6 +86,13 @@ public class ZombieHorse extends AbstractHorse {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombieHorseTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 25.0);
}
diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java
index bcc7eeaaba22fbc5ec21028d1b6b400ea6fcbec1..3e8ba2867b37b9171375c81ece0d534692c9ac68 100644
--- a/net/minecraft/world/entity/animal/feline/Cat.java
+++ b/net/minecraft/world/entity/animal/feline/Cat.java
@@ -142,6 +142,13 @@ public class Cat extends TamableAnimal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.catTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, i -> i.is(ItemTags.CAT_FOOD), true);
diff --git a/net/minecraft/world/entity/animal/feline/Ocelot.java b/net/minecraft/world/entity/animal/feline/Ocelot.java
index b04d9caff464a5e690bafcdce4b1b46b9571d238..528341355817ae603eed895beb67814ef4fc12f2 100644
--- a/net/minecraft/world/entity/animal/feline/Ocelot.java
+++ b/net/minecraft/world/entity/animal/feline/Ocelot.java
@@ -105,6 +105,13 @@ public class Ocelot extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.ocelotTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public boolean isTrusting() {
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/fish/Cod.java b/net/minecraft/world/entity/animal/fish/Cod.java
index 948d6a8e3465fd5985e91ca7eaa5f02258ad9625..f44214eaa47c2021f7ca9c84a7b89be15fecb5bc 100644
--- a/net/minecraft/world/entity/animal/fish/Cod.java
+++ b/net/minecraft/world/entity/animal/fish/Cod.java
@@ -32,6 +32,13 @@ public class Cod extends AbstractSchoolingFish {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.codTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
index 3d68c742dfa6b805f22c647af8b2c4f5ccc5cccf..60f2b9411bf7acf02a66e91377b6042b421b56ab 100644
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
@@ -66,6 +66,13 @@ public class Pufferfish extends AbstractFish {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.pufferfishTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
super.defineSynchedData(entityData);
diff --git a/net/minecraft/world/entity/animal/fish/Salmon.java b/net/minecraft/world/entity/animal/fish/Salmon.java
index ecc4e79d43f2fce16c4ee78ea8fb8efba4d0c9e6..53f24f3f22c41d4a3a401c3da92867d5ac96febd 100644
--- a/net/minecraft/world/entity/animal/fish/Salmon.java
+++ b/net/minecraft/world/entity/animal/fish/Salmon.java
@@ -60,6 +60,13 @@ public class Salmon extends AbstractSchoolingFish {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.salmonTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public int getMaxSchoolSize() {
return 5;
diff --git a/net/minecraft/world/entity/animal/fish/TropicalFish.java b/net/minecraft/world/entity/animal/fish/TropicalFish.java
index e9692aacca5f32c4280b16b4eabecf87c2ed5aeb..dc2800dd2f4c9f71c79d9f012be17398263d033d 100644
--- a/net/minecraft/world/entity/animal/fish/TropicalFish.java
+++ b/net/minecraft/world/entity/animal/fish/TropicalFish.java
@@ -96,6 +96,13 @@ public class TropicalFish extends AbstractSchoolingFish {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.tropicalFishTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static String getPredefinedName(final int index) {
return "entity.minecraft.tropical_fish.predefined." + index;
}
diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java
index bf9ff90916733110a249912d7aeabc2e45f63b01..4553c0d7528f3aea8434e353e4daf78b53ac831d 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -214,6 +214,13 @@ public class Fox extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.foxTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
super.defineSynchedData(entityData);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 49cfa8f360aac209106052e15ae0a6d88b3cc3ff..9744d757ae7dcc31291db469539ebd58db7b08a2 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -130,6 +130,13 @@ public class Goat extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.goatTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected Brain<Goat> makeBrain(final Brain.Packed packedBrain) {
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java
index 5337c65d317299df2ac0dfd9b7ea12fc7debcdb6..53e17b3ebb5f66f00870c45fb0389ace08a2c144 100644
--- a/net/minecraft/world/entity/animal/golem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java
@@ -144,6 +144,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.copperGolemTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/golem/IronGolem.java b/net/minecraft/world/entity/animal/golem/IronGolem.java
index 9fd7366157c7e6d3d75469c33599560c5045abf7..0d47b1d7ffb09a883edde3c5c0a8e6eadec08642 100644
--- a/net/minecraft/world/entity/animal/golem/IronGolem.java
+++ b/net/minecraft/world/entity/animal/golem/IronGolem.java
@@ -100,6 +100,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.ironGolemTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java
index ad300631146959f158cbabddac12fda4deb33360..efd9770fb2401650e4459fab8066cb0da9870e58 100644
--- a/net/minecraft/world/entity/animal/golem/SnowGolem.java
+++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java
@@ -124,7 +124,7 @@ public class SnowGolem extends AbstractGolem implements RangedAttackMob, Shearab
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level().purpurConfig.snowGolemTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
}
@Override
diff --git a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
index a70806026e1c664bd45f9992a2c28dc7bbfb01eb..f37773ac8ec943744a8989b443e913710e13230b 100644
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
@@ -164,6 +164,13 @@ public class HappyGhast extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.happyGhastTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
index 9328cb71c88efc13afc203da1c0bff7cd305fb3c..af66c192d57d4f5b49b7a0e4c00cfbce6616eb9b 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java
+++ b/net/minecraft/world/entity/animal/panda/Panda.java
@@ -154,6 +154,13 @@ public class Panda extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.pandaTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected boolean canDispenserEquipIntoSlot(final EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/parrot/Parrot.java b/net/minecraft/world/entity/animal/parrot/Parrot.java
index 22962f57daf5c274fa0ec46170f36dcaa1c8bed3..e43fe2c45e79526ba954dba2260c49075ae1c556 100644
--- a/net/minecraft/world/entity/animal/parrot/Parrot.java
+++ b/net/minecraft/world/entity/animal/parrot/Parrot.java
@@ -214,6 +214,13 @@ public class Parrot extends ShoulderRidingEntity {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.parrotTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public @Nullable SpawnGroupData finalizeSpawn(
final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData
diff --git a/net/minecraft/world/entity/animal/pig/Pig.java b/net/minecraft/world/entity/animal/pig/Pig.java
index 0deeb7ed21c3b6d4a29951ac84771a6439728698..9463a70aec69af7d680caf35cbab7ee4b975b6ea 100644
--- a/net/minecraft/world/entity/animal/pig/Pig.java
+++ b/net/minecraft/world/entity/animal/pig/Pig.java
@@ -108,6 +108,13 @@ public class Pig extends Animal implements ItemSteerable {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.pigTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/polarbear/PolarBear.java b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
index 8041beeb5bb039f0aec0b59ba45806cf6eb57582..c47640ebcf2db48bb27b671c907f3270eac3c126 100644
--- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java
+++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
@@ -139,6 +139,13 @@ public class PolarBear extends Animal implements NeutralMob {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.polarBearTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public @Nullable AgeableMob getBreedOffspring(final ServerLevel level, final AgeableMob partner) {
return EntityTypes.POLAR_BEAR.create(level, EntitySpawnReason.BREEDING);
diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
index 80a65dba81ab82cdb9bd43d1878e74550e61d634..d7b287459fb0633470efffd70dda67ad8177615a 100644
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
@@ -178,6 +178,13 @@ public class Rabbit extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.rabbitTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index cd53e9540856c53b9aae961ee0303b592a513684..0116de3318e769076481d3e5d479a810e235f0c0 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -103,6 +103,13 @@ public class Sheep extends Animal implements Shearable {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.sheepTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/squid/GlowSquid.java b/net/minecraft/world/entity/animal/squid/GlowSquid.java
index 86b8f30bc9c98423e2e5bbb2a7548ea36c0854b6..e11e4e9134db7e59bd7f3112605206ad1f36cab6 100644
--- a/net/minecraft/world/entity/animal/squid/GlowSquid.java
+++ b/net/minecraft/world/entity/animal/squid/GlowSquid.java
@@ -58,6 +58,13 @@ public class GlowSquid extends Squid {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.glowSquidTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java
index 66477755d3ee8293a8bd79baa01214954b792898..6d6981635b4029a09ccc6115f0d17451089e09d4 100644
--- a/net/minecraft/world/entity/animal/squid/Squid.java
+++ b/net/minecraft/world/entity/animal/squid/Squid.java
@@ -104,6 +104,13 @@ public class Squid extends AgeableWaterCreature {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.squidTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
diff --git a/net/minecraft/world/entity/animal/turtle/Turtle.java b/net/minecraft/world/entity/animal/turtle/Turtle.java
index bbee5d60204cf7c6e77cf337044e608d79d8462e..1080f96351535e4caa29120c65727280e361a042 100644
--- a/net/minecraft/world/entity/animal/turtle/Turtle.java
+++ b/net/minecraft/world/entity/animal/turtle/Turtle.java
@@ -120,6 +120,13 @@ public class Turtle extends Animal {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.turtleTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public void setHomePos(final BlockPos pos) {
this.homePos = pos;
}
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 66e58482f8422e5478b29f82271489d0449ceddb..cdc12cabee85c7090ff317068a98b0acc973fdbe 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -227,6 +227,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.wolfTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 1294dc666be270b4c7b335b7f2786b9b68bededc..5ad833b7673e73a1a5120b335f8980f639a9b2eb 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -171,6 +171,13 @@ public class EnderDragon extends Mob implements Enemy {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.enderDragonTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
}
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 543ea15e63316564aa6c699863d952570d7e0df7..7032f6b01ee36422952ce564a388c4e1ffeb05c5 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -221,6 +221,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.witherTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected PathNavigation createNavigation(final Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index b553c6dd60bd23fba7ee3df9886561fc7640f104..7f0e76437798f1bab7956722382e1517f8f71121 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -35,7 +35,7 @@ public class Blaze extends Monster {
public Blaze(final EntityType<? extends Blaze> blaze, final Level level) {
super(blaze, level);
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur - Ridables
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
this.setPathfindingMalus(PathType.LAVA, 8.0F);
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, 0.0F);
this.setPathfindingMalus(PathType.FIRE, 0.0F);
@@ -158,7 +158,7 @@ public class Blaze extends Monster {
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level().purpurConfig.blazeTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
}
@Override
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
index 01c722932aaed2221badaa6231d8a20d005b087b..2d60c5e6426097302464e04bcfdd60abd08b96b9 100644
--- a/net/minecraft/world/entity/monster/Creeper.java
+++ b/net/minecraft/world/entity/monster/Creeper.java
@@ -266,6 +266,13 @@ public class Creeper extends Monster {
}
// Purpur end - Config to make Creepers explode on death
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.creeperTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public SoundEvent getHurtSound(final DamageSource source) {
return SoundEvents.CREEPER_HURT;
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
index a14807226ac6b6786cd1470130819d2d735db16b..68922bcf87052d7b13a78fd6f8daddcdec6b8614 100644
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -52,6 +52,13 @@ public class ElderGuardian extends Guardian {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.elderGuardianTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 3f233ad5cf2514813ec8d3d36a59f716615a8b18..2b02becb39f89ca02e42cf9e3df6cbfa8eba800f 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -86,7 +86,7 @@ public class EnderMan extends Monster implements NeutralMob {
public EnderMan(final EntityType<? extends EnderMan> type, final Level level) {
super(type, level);
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
}
// Purpur start - Ridables
@@ -285,7 +285,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level().purpurConfig.endermanTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
}
@Override
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
index c10982945974171e478690d2db5080551cb29cdb..099476663f734f00b4979de7c2d0f13da5bf4909 100644
--- a/net/minecraft/world/entity/monster/Endermite.java
+++ b/net/minecraft/world/entity/monster/Endermite.java
@@ -72,6 +72,13 @@ public class Endermite extends Monster {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.endermiteTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index f6cd12c6a36c95dcb338c5aec791707bb971d615..3b514d9102946166534e404181af287865655c32 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -83,6 +83,13 @@ public class Ghast extends Mob implements Enemy {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.ghastTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
index c39031e8fdfb0dff7867d9525dbddde110242647..43ebfe06ce2a8c15787d72a8ef54cd6c7cac2bfc 100644
--- a/net/minecraft/world/entity/monster/Giant.java
+++ b/net/minecraft/world/entity/monster/Giant.java
@@ -62,6 +62,13 @@ public class Giant extends Monster {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.giantTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index a803e9b43758b7bad9bb1f9b577a2c9c7bc040d2..04d092ad64f58b898f210266a2aba758ccc0577b 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -97,6 +97,13 @@ public class Guardian extends Monster {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.guardianTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
MoveTowardsRestrictionGoal goal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index f2665ff68020cddf921675f4eaa4c0e99c9d9563..7c1aad8b5f9625d757039cb636783cb760aa87e0 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -128,6 +128,13 @@ public class Phantom extends Mob implements Enemy {
}
// Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.phantomTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean isFlapping() {
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 22722b7cec888fa1c28fa17baeb37f38c55a72e4..9afb9be57a6223cc262a9357a42cd7d19953bef5 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -102,6 +102,13 @@ public class Ravager extends Raider {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.ravagerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index 12b32798d890bf430a04781866de140e07f94821..bfef619b3b21ee2071fd74c82b1b658f239cd402 100644
--- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -134,6 +134,13 @@ public class Shulker extends AbstractGolem implements Enemy {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.shulkerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 1119feee838deb454ceef5d6c9998773c7169daf..d8f696287021d3f20949002f5229d1caf40c9d4f 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -65,6 +65,13 @@ public class Silverfish extends Monster {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.silverfishTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index 6017c3865c685c55ecf304af34b07e64563c5969..584aee58a1319da937eeb78d3015bc48e705bd64 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -93,7 +93,7 @@ public class Strider extends Animal implements ItemSteerable {
public Strider(final EntityType<? extends Strider> strider, final Level level) {
super(strider, level);
this.blocksBuilding = true;
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
this.setPathfindingMalus(PathType.LAVA, 0.0F);
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, 0.0F);
this.setPathfindingMalus(PathType.FIRE, 0.0F);
@@ -409,7 +409,7 @@ public class Strider extends Animal implements ItemSteerable {
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level().purpurConfig.striderTakeDamageFromWater; // Purpur - Toggle for water sensitive mob damage
}
@Override
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index 854c78d567a446479a704fbf459885f2b164e54d..e361d1ecf9e9a27491bb8195fee6272dc903615c 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -112,6 +112,13 @@ public class Vex extends Monster implements TraceableEntity, OwnableEntity {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.vexTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean isFlapping() {
return this.tickCount % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index 4b2da14b64476d4b7358c6c764a622d4b0fc6207..847363cd327e52b5d67d07510618dd0f6a7fc8a4 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -83,6 +83,13 @@ public class Witch extends Raider implements RangedAttackMob {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.witchTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index f449875ed2ada648aef7f0cfff52c08e94516d73..dec8f0ab0fd8f33dbc4b18d38e43ff1531963b07 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -109,6 +109,13 @@ public class Zoglin extends Monster implements HoglinBase {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zoglinTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected Brain<Zoglin> makeBrain(final Brain.Packed packedBrain) {
return BRAIN_PROVIDER.makeBrain(this, packedBrain);
diff --git a/net/minecraft/world/entity/monster/cubemob/MagmaCube.java b/net/minecraft/world/entity/monster/cubemob/MagmaCube.java
index 54cc2ab970ec854ca44476a5e58b53363c64d1e5..44e8dd9667663e971c65613baef25f4d7ddf4a79 100644
--- a/net/minecraft/world/entity/monster/cubemob/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/cubemob/MagmaCube.java
@@ -90,6 +90,13 @@ public class MagmaCube extends AbstractCubeMob implements Enemy {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.magmaCubeTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/cubemob/Slime.java b/net/minecraft/world/entity/monster/cubemob/Slime.java
index 22c20e4360473cdbe9cda8bb7b3b30be85f16fe6..3c09f472ba54f8929782ac6a080ceabf10f09699 100644
--- a/net/minecraft/world/entity/monster/cubemob/Slime.java
+++ b/net/minecraft/world/entity/monster/cubemob/Slime.java
@@ -101,6 +101,13 @@ public class Slime extends AbstractCubeMob implements Enemy {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.slimeTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public SoundEvent getHurtSound(final DamageSource source) {
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
index 8a12c35177a745e94c2a4ced86994114fac933f5..f777ed1de1ec159fed3019bd5bfb711b9aad6146 100644
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
@@ -165,6 +165,13 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
protected java.util.Map<Integer, Double> getAttackDamageCache() {return new java.util.HashMap<>();}
// Purpur start - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.sulfurCubeTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean fromBucket() {
return this.entityData.get(FROM_BUCKET);
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index c8b60fd516340de7245d3d23303c44bef4239a9c..03686024f7a870079dc1c379c5e88f92d8f904fe 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -113,6 +113,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.hoglinTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@VisibleForTesting
public void setTimeInOverworld(final int timeInOverworld) {
this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java
index 4b077693e8749b6d2440b12f0aa1d7d6ac899593..fead174f8a56ea9611aa4f20ff870df32048037f 100644
--- a/net/minecraft/world/entity/monster/illager/Evoker.java
+++ b/net/minecraft/world/entity/monster/illager/Evoker.java
@@ -75,6 +75,13 @@ public class Evoker extends SpellcasterIllager {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.evokerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/illager/Illusioner.java b/net/minecraft/world/entity/monster/illager/Illusioner.java
index 0150ebdcbb681bcf8128eec34fd6e3fbfb85a79f..bfd1a61d43fcc1293592a6199d7bab0346f40c7f 100644
--- a/net/minecraft/world/entity/monster/illager/Illusioner.java
+++ b/net/minecraft/world/entity/monster/illager/Illusioner.java
@@ -86,6 +86,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.illusionerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/illager/Pillager.java b/net/minecraft/world/entity/monster/illager/Pillager.java
index 81d956085667b7564588b54b54c1150b8a082c97..18c177bd17873d87769dbcdd4ee3794fb828905c 100644
--- a/net/minecraft/world/entity/monster/illager/Pillager.java
+++ b/net/minecraft/world/entity/monster/illager/Pillager.java
@@ -90,6 +90,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.pillagerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/illager/Vindicator.java b/net/minecraft/world/entity/monster/illager/Vindicator.java
index d06f6bf930277f08756752f7f259a57f456e7c38..db2ca5e6f5c5a0968e1fb76369ad2efdee57e480 100644
--- a/net/minecraft/world/entity/monster/illager/Vindicator.java
+++ b/net/minecraft/world/entity/monster/illager/Vindicator.java
@@ -82,6 +82,13 @@ public class Vindicator extends AbstractIllager {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.vindicatorTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 013550c72a194977b1874f30aeda60d27b682853..f7e8b26f3acaff88aeb3e2cde93ec7922859e1ae 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -134,6 +134,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.piglinTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void addAdditionalSaveData(final ValueOutput output) {
super.addAdditionalSaveData(output);
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
index 3cbb6f2ee343e6d3851e84e53cb1aafa55418b0f..5f25162930b7d18385d84715f4f72962c1efa93d 100644
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
@@ -75,6 +75,13 @@ public class PiglinBrute extends AbstractPiglin {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.piglinBruteTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/monster/skeleton/Skeleton.java b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
index 12f87667ddeda1f57fe89f137b2df6cebef35c74..0890eb175438eb1dd39ca511c9ac332ef2a32e02 100644
--- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java
+++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
@@ -51,6 +51,13 @@ public class Skeleton extends AbstractSkeleton {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.skeletonTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
super.defineSynchedData(entityData);
diff --git a/net/minecraft/world/entity/monster/skeleton/Stray.java b/net/minecraft/world/entity/monster/skeleton/Stray.java
index f028e74e34b16cfa4b5c808a8896521d4709d03f..60aae5ecbd5d1243c63b304a7ffbfd729ad093c0 100644
--- a/net/minecraft/world/entity/monster/skeleton/Stray.java
+++ b/net/minecraft/world/entity/monster/skeleton/Stray.java
@@ -47,6 +47,13 @@ public class Stray extends AbstractSkeleton {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.strayTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
public static boolean checkStraySpawnRules(
final EntityType<Stray> type, final ServerLevelAccessor level, final EntitySpawnReason spawnReason, final BlockPos pos, final RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
index 7ef07d92c1accc525f331e29406ff89ebe5afd05..2ec114406a6d207676739bf6b7eeb3b218442edd 100644
--- a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
+++ b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java
@@ -59,6 +59,13 @@ public class WitherSkeleton extends AbstractSkeleton {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.witherSkeletonTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/spider/CaveSpider.java b/net/minecraft/world/entity/monster/spider/CaveSpider.java
index 6a34024c8fc6b537d405afddd5bc9afa7a91a7b7..cb4d092e7365a978c16b620dfe05cbca56a0e1f0 100644
--- a/net/minecraft/world/entity/monster/spider/CaveSpider.java
+++ b/net/minecraft/world/entity/monster/spider/CaveSpider.java
@@ -51,6 +51,13 @@ public class CaveSpider extends Spider {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.caveSpiderTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean doHurtTarget(final ServerLevel level, final Entity target) {
if (super.doHurtTarget(level, target)) {
diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java
index 0f87739c64f976f59c5740556d15763b4189a01e..4b406ba70824d3ab06883085204c0233c7ff0a0a 100644
--- a/net/minecraft/world/entity/monster/spider/Spider.java
+++ b/net/minecraft/world/entity/monster/spider/Spider.java
@@ -78,6 +78,13 @@ public class Spider extends Monster {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.spiderTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java
index 1234c13b4290f45997eab79f6ef18933dcf3b04f..a6ff55afa5987ddf3ff1e9a43e34392f1cede2b4 100644
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
@@ -134,6 +134,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
}
// Purpur end - Configurable jockey options
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.drownedTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
index 91800961ba5b724aac905ccd4fd1d0f915c93803..83c2d21587fc490eb7eb60c43a21da73f144140c 100644
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
@@ -84,6 +84,13 @@ public class Husk extends Zombie {
}
// Purpur end - Configurable jockey options
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.huskTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean isSunSensitive() {
return false;
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
index f47f4a3f8e0f4f5a40f520a25e87e0068a564b4c..26f0ac03eaa3d33fa593ce65bc944872864a66a9 100644
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
@@ -152,6 +152,13 @@ public class Zombie extends Monster {
}
// Purpur end - Configurable jockey options
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombieTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
index 155ba4d03e7864b21e7a3dab854315b62d3b9e5b..b704a24142f79f40e72a2dd76d1448501d9f7f59 100644
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
@@ -133,6 +133,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
}
// Purpur end - Configurable jockey options
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombieVillagerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void defineSynchedData(final SynchedEntityData.Builder entityData) {
super.defineSynchedData(entityData);
diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
index 7a59980a38abb8ed9500def97fc7e3e8952a439d..1233173bec21f780b25e7773788fd1fb003804af 100644
--- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java
@@ -110,6 +110,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
}
// Purpur end - Configurable jockey options
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombifiedPiglinTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
index bd9f39efb01f9153db56e6e58b56b76dec3d8cc3..dddbde704f3488b6bd7cbf126bc18ccb26d24d2c 100644
--- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -275,6 +275,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.villagerTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public Brain<Villager> getBrain() {
return (Brain<Villager>)super.getBrain();
diff --git a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
index d0c9643d3f64d0e17cd8c3a62ec389430d9d7c87..2f6fe59d812ccef104d7e3357483442c8f52e826 100644
--- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
@@ -98,6 +98,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
}
// Purpur end - Villagers follow emerald blocks
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.wanderingTraderTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));