Files
Purpur/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch
2026-03-24 01:25:28 -07:00

1373 lines
66 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 f40892bbe424408e3d11c887d5bd0fef179aaced..15bb425ed1569cbf445e81aa296039df8abc4746 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 d4178d85b74a41a0d2808681008f1686578db98d..a3a98df8ffeb33d86330b5561252eda596642da8 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -150,6 +150,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 36c5c555faa9a29ec742c97ea8a6fcf720e6d9a1..4fba5ce59065ac024a0108726623dab894ae45c5 100644
--- a/net/minecraft/world/entity/animal/bee/Bee.java
+++ b/net/minecraft/world/entity/animal/bee/Bee.java
@@ -186,7 +186,7 @@ public class Bee extends Animal implements FlyingAnimal, NeutralMob {
// Paper end - Fix MC-167279
this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(PathType.FIRE_IN_NEIGHBOR, -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);
@@ -495,6 +495,13 @@ public class Bee extends Animal implements FlyingAnimal, 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 ccf7c4630e08d9be54a4634c642a4cd1cd542a82..4a59e133fc6c68f3b3d495c62bb965718643f6b8 100644
--- a/net/minecraft/world/entity/animal/chicken/Chicken.java
+++ b/net/minecraft/world/entity/animal/chicken/Chicken.java
@@ -113,6 +113,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 7981f60f10c44ab2459933cb15ee961103922364..7d3853d693a87e5225a16285631e0e2057685c1b 100644
--- a/net/minecraft/world/entity/animal/cow/Cow.java
+++ b/net/minecraft/world/entity/animal/cow/Cow.java
@@ -66,6 +66,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 68a4edef68c9db6b2b0716fc6283e2c7345d4cda..d3e5e12c4e3c168a3a15d611f8ae5845ee365080 100644
--- a/net/minecraft/world/entity/animal/cow/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java
@@ -92,6 +92,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 857bafb865b78d83716d2d5f491c0928ae6951ca..c372a2cc7ec9ac03629a73a45bfc58f77894d63b 100644
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
@@ -162,6 +162,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 8c3d3f0f24e6f5a9b8aa9bf58f3c8b679896017d..5e0846fcaccfab5edbeb90bc61c2360cecf7a0c4 100644
--- a/net/minecraft/world/entity/animal/equine/Donkey.java
+++ b/net/minecraft/world/entity/animal/equine/Donkey.java
@@ -47,6 +47,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 dbb586058f38b6c4f81e2f6567b7ae8ebbaff5a2..64603ad973bdb697ca75642e8e42e7052efd4191 100644
--- a/net/minecraft/world/entity/animal/equine/Horse.java
+++ b/net/minecraft/world/entity/animal/equine/Horse.java
@@ -79,6 +79,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 b3c8ccbb3f79043427dcb6f383c4b02d35124689..e277a58a1c761198f59b987c95567b6e4d9c440b 100644
--- a/net/minecraft/world/entity/animal/equine/Llama.java
+++ b/net/minecraft/world/entity/animal/equine/Llama.java
@@ -158,6 +158,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 cf0f3c9d5f8ff348e6fb76db823da4cadce4fc5b..291176b409097d15c2afff7fe8deb17ba07dbc12 100644
--- a/net/minecraft/world/entity/animal/equine/Mule.java
+++ b/net/minecraft/world/entity/animal/equine/Mule.java
@@ -46,6 +46,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 a4a878791be034140a50b901d5daf2533d299756..9365609fad67377ffe18e11c7959e0d92367852a 100644
--- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java
@@ -74,6 +74,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 7c41aecd2699725211babbac0350cb241f31ca41..a9fcf7827e6a6b061c2a861d1e59bca80117699b 100644
--- a/net/minecraft/world/entity/animal/equine/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java
@@ -77,6 +77,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 4be11663154a870a21832ddba05764a897ce90bd..586151b916a5e21c36578aa04cab9d71994dcf43 100644
--- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java
+++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java
@@ -85,6 +85,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 5c235149eca10c216f0f8d6e645a439d7dbcfbc3..0493926c7918059d82bafd20fed0883bb331bd55 100644
--- a/net/minecraft/world/entity/animal/feline/Cat.java
+++ b/net/minecraft/world/entity/animal/feline/Cat.java
@@ -135,6 +135,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 2accf49e8dd907c8a482e5317d07b28fc5492a1e..9a582b789d3b3037c510c063a07f99f92ac58a1c 100644
--- a/net/minecraft/world/entity/animal/feline/Ocelot.java
+++ b/net/minecraft/world/entity/animal/feline/Ocelot.java
@@ -98,6 +98,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 3ed54f746305a284177b609f410e2b7e9a6e6796..17dba2f70251c2d5f75cc116b300f328f117cecb 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 d9276ab9af526f1714d3241bbf6f9c7906adec70..ba75ba1130c4fe5f4d7b29c624a17becd2a71c99 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 fbe7b76aac06bb0dce7ae53dea85e947a53d1b64..17bc569bf97026e2c072633f1ad6e9e0102c137a 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 f781d02d10317bf7cf9b5fe50706bbefb62820d3..aa419e7cb456f664c1eca1286777caca6bd10e7a 100644
--- a/net/minecraft/world/entity/animal/fox/Fox.java
+++ b/net/minecraft/world/entity/animal/fox/Fox.java
@@ -208,6 +208,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 da763ba40fdc52d6f6fec97e5e288fbef343ead6..0d40bbd8c42178c712f23300364138389ecde548 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -124,6 +124,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 bc66450f8d1be97f11f8380755a9973e8ef4befa..078cb2f09e9aaf05bb965a27b90f34c7c3a4147d 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 ec08c9c2ac32863807061d93ec8894bd094f7ab4..77996312597da9a2bbcf89f798c10a0be0abcd39 100644
--- a/net/minecraft/world/entity/animal/golem/IronGolem.java
+++ b/net/minecraft/world/entity/animal/golem/IronGolem.java
@@ -99,6 +99,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 7091f5bc2ecb9d4b86162fe364447df65d8e9348..2d3127f6846ff9eda1a0b89764dc837da6e7e0c7 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 75a32b65da7080391d0c37622db9cb98c5e092b6..d3367430da307e2c0748874cbe77f265860152a0 100644
--- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java
@@ -161,6 +161,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 02d5949fb91bbee84fa067dac14d20f53f4a029b..f97b8feaedb84baf479998cef7257231f85412d6 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java
+++ b/net/minecraft/world/entity/animal/panda/Panda.java
@@ -153,6 +153,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 af3d3b90f2e4d433b3b842dbc37d8c507a73dc1f..d756d6931dbf560fef5cb9641ace6f091fbcfff9 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 implements FlyingAnimal {
}
// 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 514f13a6965b5f53890ddd2e47ea89e0c1a515c1..05141bc41dc5181a8f0526528147e7a6c015a707 100644
--- a/net/minecraft/world/entity/animal/pig/Pig.java
+++ b/net/minecraft/world/entity/animal/pig/Pig.java
@@ -100,6 +100,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 6d4713663c94e91da7d809e65fa205aff2782f38..2a28c9ef361909aa0c3946ed6857f7d340c8cfc0 100644
--- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java
+++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java
@@ -134,6 +134,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 EntityType.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 4d79ce89c21ba0b973bbda01bf53665e3b7a1902..7dade80db9430e4db587ed23df992d70c6b7ee04 100644
--- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java
+++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java
@@ -177,6 +177,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 9cc59891521963204399b7f67d94bb78c7e75fb6..0ceaa6dd493d0258c419d8b5c4394b35c0808704 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -95,6 +95,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 cb3d0bd838473af87af74c7d1bab38593a6c8f6d..1fa3d614dd1c45ec42caffbe92e3f8db02b399b1 100644
--- a/net/minecraft/world/entity/animal/squid/GlowSquid.java
+++ b/net/minecraft/world/entity/animal/squid/GlowSquid.java
@@ -57,6 +57,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 cc0a1aaa6aa710c0f0b4df0e46e8ad7931f26b2f..e350763a3a22d825a25f02b60bd4c9223aa81f62 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 62d9fce83cc44165c5356049a12bf6081c925857..6d09c0de38f2c91d2a0ab6dd0b694ab42b48a981 100644
--- a/net/minecraft/world/entity/animal/turtle/Turtle.java
+++ b/net/minecraft/world/entity/animal/turtle/Turtle.java
@@ -119,6 +119,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 0561b38982c205edc848b1650152491698a80e29..781cac493f909b02483e5c4064cc2cc791b1dabd 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -220,6 +220,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 51ca6a3fa75f3aef715d786a21327452390dde94..d7b909d65c8ef716ad652c97425148b7fbcd8f2e 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -170,6 +170,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 3e934aee6f651843d861cc87cc1f01a87742edf3..10818999c4e796a4dfd5a7dd21772c9eb8ca2579 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -222,6 +222,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 73b0efd692205f56862c7287d7222efebe3faf73..80327a6ba1da0145f087a7946c7a4dfb6d947ce7 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 ffcfe02c51f6df1bd238c821a8d6535f4ccf019c..a98967c7a76d8e25da9e31eaa8f2ae0bf0704c9d 100644
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -51,6 +51,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 46a60e17837411e46a543d6f0254d7280d30a94c..8862ad857a4c99defe7621c59d8f3ef77ab7aff4 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 040f0b59d93b1b94495253f3286bdba123c22ef4..859d490dd3be2843dde3a811bcc0d51e3eae76f0 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 254548dd024e4963bbcb1b1fce99194461d3f54d..89a2097c2c26dae7f12ddbac10bc091ec7f228d7 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 12f6b4bf9fa011db34617e2115206202d7f2d32e..9ca62d9663fc2e8eb49780ceb7ff38e0363a09a6 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/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index d40a4daeec1500f2d9865022ee6e3c386ad7533e..fba41f261e57a050d4e24d2611cc27edcbb84ddf 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -68,6 +68,13 @@ public class MagmaCube extends Slime {
}
// 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/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index da014eae20abb320ecb897517810e4ab53783a89..20096d8305bbfc29195834b87245c94096986ec8 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -129,6 +129,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 e0ffded3500b221d5c65cff9377120e8c6c7d8c6..bb19e3f2e6522e8b7db32061c0ae2b2a37679369 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -101,6 +101,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 84e27edf490fbe4ed0142b9bb90aab37151acf3d..cf49a580c8dacb895b7a8ec2531d3afee2ffc30c 100644
--- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -135,6 +135,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 e5a0a199685366f082904eb5e7550f0160f9c706..205c05f46d70d37e11a0e35c97128e0c20b94e23 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/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 0713239089bac454b3228d80aaabfd1fca4bd08b..556930ac4d06b4f46a87d237857006729fea5ef5 100644
--- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java
@@ -135,6 +135,13 @@ public class Slime 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.slimeTakeDamageFromWater;
+ }
+ // 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/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index 38a17c219bce1a8a8a67b136e0eaf5cf15ec94fd..1b6137674d807ed29d56e3f3120abe60254274e1 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -87,7 +87,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);
@@ -398,7 +398,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 62fe1bb1632fbe8edf901c22c7972e729a5f6100..c7700ff6b7faf06116626ad95e11cd4604751eda 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -111,6 +111,13 @@ public class Vex extends Monster implements TraceableEntity {
}
// 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 6b17c2135397f349670a7180e88db4794d3902a8..bfa222c9b61bc2d20927fdf08e8baa5fda4fdbdc 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -82,6 +82,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 4d4593f89e20e8e72a979cc2dee54566ef380462..15e5e3c63ec9bddaf19636e27dd21d12df9318ce 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -101,6 +101,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/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index d158807f22a0a08614b2d7054663ef2782a519e3..d001cf955dba66435079eb2cc30e05aec963d2c6 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -105,6 +105,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 d091a12ed1df31f945a04f50af1cbb89a16ca0cd..75276deb3208437fce669f9e483ff6c7a99d69a3 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 bc19b4c293a4101abd559c61c59021e076420b32..32b8f638ea26494cae648f4bb48a664ce2a5021e 100644
--- a/net/minecraft/world/entity/monster/illager/Illusioner.java
+++ b/net/minecraft/world/entity/monster/illager/Illusioner.java
@@ -87,6 +87,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 134650a5866459881c1dca4b77b47110fd67420a..bd9092a0fecef475bde06d94bc2f6726f21404fd 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 865395b9ceddfaac4fc88701878a1cf349556fe1..aab0bd86da31ca73efc4988fa34c906886139ec3 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 356fc7507b58cc38cdf5ee11618ad3551fb3c6a2..de86e23b377ca0727d5f5234f2bc63180ddbbad2 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -133,6 +133,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 4d82bf4283cb3ff26d5a9c367a28b4debed6cb0d..79e084304cec441966a22f0028e021d19e49bfd3 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 76b16400085d237194ed646b04210c8eca8398d3..a2fc1cf5fa77c1cc78610ce0b4bbd35a371878a0 100644
--- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java
+++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java
@@ -50,6 +50,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 ce9364040d6e856fd1fa42baa75b403098e6813f..64dc2a04bb2ae4dc63083a24c48f671bfc8ff8ea 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 024b6d01eaf36ec6c9a85da669cc6bd0a4a6fc90..f1cf1d01a497fc46d201ad403b459f9886059d0f 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 beba154f2a76d3d8f7d9b44c1b45b83c9dc3b86c..cbbfdd2dde1437955f1007618244eeb72768b8fd 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 696d7fa001de544fd2124b4e1135725547a15a94..43c50e6808eaab4bb31ffbbc633a66bab49b9574 100644
--- a/net/minecraft/world/entity/monster/spider/Spider.java
+++ b/net/minecraft/world/entity/monster/spider/Spider.java
@@ -77,6 +77,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 0f64fe7e15655c63f996106d504ab4d18dac4a1c..e4769eeacc3ac97f90acb5ed0127990466c8d886 100644
--- a/net/minecraft/world/entity/monster/zombie/Drowned.java
+++ b/net/minecraft/world/entity/monster/zombie/Drowned.java
@@ -133,6 +133,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 c3f2d9ab49eb501f26939387624f326227908b81..8d6262e99fb3ad98d3142ee069f07d2370ca0778 100644
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
@@ -83,6 +83,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 5bf9970b93e27004dd832c8465dc95a681583ef6..0777e4e0c3aa932699f124c83a571ce913327740 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 8a5634d2204b9abae560d34a7b0616b3ebdc68ab..ecbac0d55dbe921ac2e185e0acab5691579be512 100644
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
@@ -131,6 +131,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 d1edf1f44de1fc6d23bcd8044f8bf4165821790e..6cc4d4729520c60b98d45d5e7dd674e599616505 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 fffc71d2f0cd0d4c4f5d8fad38130208cdbe5e67..fe93e373ea46970af5ca117e80a7d5a2497afeca 100644
--- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -284,6 +284,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 ea74d8ac0b5de890124361e65aeb9a08ad09fa1b..cbbfa09d53ada7c39e9504d28770867989eaa5c1 100644
--- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java
@@ -99,6 +99,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));