Files
Purpur/patches/server/0125-Toggle-for-water-sensitive-mob-damage.patch
Ben Kerllenevich d839ab0989 like 50 more patches
2023-06-08 19:39:47 -04:00

2211 lines
117 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/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index 8d2a915280f7a010483720295077f66684f49615..17ff16de143ccd40bf7654062eefb6a36b65a851 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -33,6 +33,11 @@ public class GlowSquid extends Squid {
return this.level.purpurConfig.glowSquidsCanFly;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.glowSquidTakeDamageFromWater;
+ }
+
@Override
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index eb6ced824d024a6402772e4df56e867e18fae988..b29d4dc2f531cb9e8ba11e49c636df41b27c6bd2 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -234,6 +234,11 @@ public class Bat extends AmbientCreature {
this.getAttribute(Attributes.ATTACK_KNOCKBACK).setBaseValue(this.level.purpurConfig.batAttackKnockback);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.batTakeDamageFromWater;
+ }
+
@Override
public void readAdditionalSaveData(CompoundTag nbt) {
super.readAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index d50f80e1b6ba690c25fb2993f596f2329bd422a3..9ffb7b5c410f1b2b5bb409788315c20fc171d820 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -160,7 +160,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
// Paper end
this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, -1.0F);
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
this.setPathfindingMalus(BlockPathTypes.WATER_BORDER, 16.0F);
this.setPathfindingMalus(BlockPathTypes.COCOA, -1.0F);
this.setPathfindingMalus(BlockPathTypes.FENCE, -1.0F);
@@ -425,6 +425,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
return this.level.purpurConfig.beeBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.beeTakeDamageFromWater;
+ }
+
@Override
public int getRemainingPersistentAngerTime() {
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 0d8320fde901cd9ae6aa420b76362be77ca62c93..0ebfb9e6e6845cf0248410698fe59a4c7a76c43c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -107,6 +107,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
return this.level.purpurConfig.catBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.catTakeDamageFromWater;
+ }
+
public ResourceLocation getResourceLocation() {
return this.getVariant().texture();
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
index 6ade6225e83bab038aab91637a425616cab2853e..9d531f623ceb0c7ac732588b906d5fe3492ce96a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -67,6 +67,11 @@ public class Chicken extends Animal {
return this.level.purpurConfig.chickenBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.chickenTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cod.java b/src/main/java/net/minecraft/world/entity/animal/Cod.java
index 3e213264f5991ccfcb5c207621334b8e9d6cc9bc..d7e725d0ffc7092b0c59598cbda1d253b6dfc003 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cod.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cod.java
@@ -18,6 +18,11 @@ public class Cod extends AbstractSchoolingFish {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.codMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.codTakeDamageFromWater;
+ }
+
@Override
public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
index 154829bdef01a0a93f163578ea8e51a0cb3952e5..385bf94f85471c9461c83df2fff48c1e1115e5f7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -53,6 +53,11 @@ public class Cow extends Animal {
return this.level.purpurConfig.cowBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.cowTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index 1c8e81fd2561535a04d55238ad086a6cc6851d5d..c02a84fc12780b8f02722539b31ace840ae4bc1d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -91,6 +91,11 @@ public class Dolphin extends WaterAnimal {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.dolphinMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.dolphinTakeDamageFromWater;
+ }
+
@Nullable
@Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 5974577a408c13d05f326c7bfc704441644e7c8b..169cd4a00de163dc86cf73382275ba97a5d09e7f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -153,6 +153,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
return this.level.purpurConfig.foxBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.foxTakeDamageFromWater;
+ }
+
@Override
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 4bdef5dd01b69ff64f632a71096c1a87b2fc1195..ec5cd6de7a77dc1959a5d15d51d4dfffc4e3c29d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -71,6 +71,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.ironGolemMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.ironGolemTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.0D, true));
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index 6d7fd5bab1173e99eb8f2b67d202b22abaad28bb..6a0afe12430dbd1ff76f17801eb0bf44c2f90ff0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -73,6 +73,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
return this.level.purpurConfig.mooshroomBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.mooshroomTakeDamageFromWater;
+ }
+
@Override
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
index 42e838e1d41353c42342c8a06e110e8e650a3ca5..44dd0c0494eae1af75ffa9b14d00d2da88024d6f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
@@ -78,6 +78,11 @@ public class Ocelot extends Animal {
return this.level.purpurConfig.ocelotBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.ocelotTakeDamageFromWater;
+ }
+
public boolean isTrusting() {
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index b5c4277efab43543cca5605a4fd6d02df33a151c..978598f01aa6e3a43f4323e53b9e519557f37148 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -119,6 +119,11 @@ public class Panda extends Animal {
return this.level.purpurConfig.pandaBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.pandaTakeDamageFromWater;
+ }
+
@Override
public boolean canTakeItem(ItemStack stack) {
EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index f36afb818845b65058891db18575913ceb768b66..1298cfd6b45b145b13afa7dbc4ffe914896c58f2 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -145,6 +145,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
return 6000;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.parrotTakeDamageFromWater;
+ }
+
@Nullable
@Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
index 3a1669cbd8309b4c03c7efb9e554423484d096ae..288b5e4e359e238ba11b9d046110a6d29a9a42eb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -74,6 +74,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
return this.level.purpurConfig.pigBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.pigTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
index 5bbd66ceb757a23bd67690a9e0b5b39b266fcee1..acf21b1622eac1df0e08fda502dc2475fb82c22e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -96,6 +96,11 @@ public class PolarBear extends Animal implements NeutralMob {
return this.level.purpurConfig.polarBearBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.polarBearTakeDamageFromWater;
+ }
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
index 86270f51c69836ba88c08de6ad36bacf2c433b3f..71e7ca1f4cdb1dcd31a0ad66a02f8b7af7d45a60 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
@@ -50,6 +50,11 @@ public class Pufferfish extends AbstractFish {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.pufferfishMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.pufferfishTakeDamageFromWater;
+ }
+
@Override
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index 919c27b38085d545617cc685fef9c8a29926b018..57771ff9362e5c423aa2456740970289d6bde005 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -101,6 +101,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
return this.level.purpurConfig.rabbitBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.rabbitTakeDamageFromWater;
+ }
+
// CraftBukkit start - code from constructor
public void initializePathFinderGoals(){
this.setSpeedModifier(0.0D);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Salmon.java b/src/main/java/net/minecraft/world/entity/animal/Salmon.java
index 40196aa0f8abc8be68dffd397f706a0c2c0fc320..1f81836419b5da90aa12a00c3397fab74058dd19 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Salmon.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Salmon.java
@@ -18,6 +18,11 @@ public class Salmon extends AbstractSchoolingFish {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.salmonMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.salmonTakeDamageFromWater;
+ }
+
@Override
public int getMaxSchoolSize() {
return 5;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index 34ddf57d47dc82b87ad9898c91b7891b8255455f..145e17504690299ca6e64a06a52dbb8684ac6966 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -127,6 +127,11 @@ public class Sheep extends Animal implements Shearable {
return this.level.purpurConfig.sheepBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.sheepTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 6b8169ac1fbe3920083ffd8cb5e15b9d8e67f436..e932db904ba8c22a4ab939a2e92e20e3200512c0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -97,7 +97,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level.purpurConfig.snowGolemTakeDamageFromWater; // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 77ef1ae92dee5bf13590312466c778a249129d69..35d61f8c990154aa297c70338f410a4468e01d68 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -70,6 +70,11 @@ public class Squid extends WaterAnimal {
return this.wasTouchingWater || canFly();
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.squidTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
index c0605ccfd050417189595cdcb68eb9d56e9fc4ee..e2252ea4e7303fcbbe2e55faa9604c1c668ea908 100644
--- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
@@ -47,6 +47,11 @@ public class TropicalFish extends AbstractSchoolingFish implements VariantHolder
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.tropicalFishMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.tropicalFishTakeDamageFromWater;
+ }
+
public static String getPredefinedName(int variant) {
return "entity.minecraft.tropical_fish.predefined." + variant;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index 2f685d2512d8bd3cb41dd1b652ca2c2fb805b83b..866b205b996c4f64deef501a2afb7ddfd0987e12 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -93,6 +93,11 @@ public class Turtle extends Animal {
return this.level.purpurConfig.turtleBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.turtleTakeDamageFromWater;
+ }
+
public void setHomePos(BlockPos pos) {
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 3c5186800381c414c8dd3f2c58b1cd947e64a092..f18d90f4b2b786acbea242c4adbbdca2293929ec 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -187,6 +187,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
super.tame(player);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.wolfTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 4ce8b7cfdbbb475e257fe91ea541669361b92173..574c011caa6ab029edfb0ee6c7436b451f407bc6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -108,6 +108,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
return this.level.purpurConfig.axolotlBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.axolotlTakeDamageFromWater;
+ }
+
@Override
public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues;
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 2c1a6321f46a029ddc1c4e4c0afe07516c874843..25cbeb86b23f7e629fbca37a3bd4b74521803803 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -94,6 +94,11 @@ public class Goat extends Animal {
return this.level.purpurConfig.goatBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.goatTakeDamageFromWater;
+ }
+
@Override
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
index 11dc7cf7cd38994edb6e8c1ed0761e45bc998bfc..935f1e8af2ac139fb8956b53edc55ae793d9a42d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -35,6 +35,11 @@ public class Donkey extends AbstractChestedHorse {
return this.level.purpurConfig.donkeyBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.donkeyTakeDamageFromWater;
+ }
+
@Override
protected SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
index 97cbd228dd33333468e545697530bbd14de86308..8dd0cc7bff5ec3ce9603f6e511dd5042e1cf9657 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
@@ -60,6 +60,11 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
return this.level.purpurConfig.horseBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.horseTakeDamageFromWater;
+ }
+
@Override
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 5d960b40ff2c41e7e21cace33a2655eb8bea7dc9..84f6fab337f126290225e93038555699a7814f94 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -99,6 +99,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
return this.level.purpurConfig.llamaBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.llamaTakeDamageFromWater;
+ }
+
public boolean isTraderLlama() {
return false;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
index b219f5003379280d812acadd5a9ed93dde27ff8b..9d805f4765aab5896025b9000e45e9f0cc099e00 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
@@ -34,6 +34,11 @@ public class Mule extends AbstractChestedHorse {
return this.level.purpurConfig.muleBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.muleTakeDamageFromWater;
+ }
+
@Override
protected SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index ef97b87b6c385888f96e6e9dbb949d0d8977bc78..12df6aeae5325f5eb4268111e5c8fb55e41d1456 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -48,6 +48,11 @@ public class SkeletonHorse extends AbstractHorse {
return 6000;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.skeletonHorseTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
index 55b64ac786696736058c5f4314c7fb075c05bba3..a8245720710c46b8385c9d364ba4410d915b67ee 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -47,6 +47,11 @@ public class TraderLlama extends Llama {
return this.level.purpurConfig.traderLlamaBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.traderLlamaTakeDamageFromWater;
+ }
+
@Override
public boolean isTraderLlama() {
return true;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index f3f4c559f19de41f1102dde13dbb554218219e9f..5ca204e8eba26cc461ccaf9ae3d1cde8fb16c508 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -41,6 +41,11 @@ public class ZombieHorse extends AbstractHorse {
return 6000;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.zombieHorseTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index c819d041bf2e4909e97d6e856474786a96085a25..84aedd74177d8c521d4dc660706e08a0fed80f28 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -146,6 +146,11 @@ public class EnderDragon extends Mob implements Enemy {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.enderDragonMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.enderDragonTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index dda3152aa6d4e8265fcb3fd450ecf39ec0f1a9ac..21a9438ed70d0bd0e9cbbe707612594cb9bbc3bc 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -103,6 +103,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.witherMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.witherTakeDamageFromWater;
+ }
+
@Override
protected PathNavigation createNavigation(Level world) {
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
index f91fd938ac941a780e1dc72d766985d865cfcb76..b43c08f4cee928d9b901c06353553264b81934cf 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
@@ -32,7 +32,7 @@ public class Blaze extends Monster {
public Blaze(EntityType<? extends Blaze> type, Level world) {
super(type, world);
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
this.setPathfindingMalus(BlockPathTypes.LAVA, 8.0F);
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, 0.0F);
this.setPathfindingMalus(BlockPathTypes.DAMAGE_FIRE, 0.0F);
@@ -106,7 +106,7 @@ public class Blaze extends Monster {
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level.purpurConfig.blazeTakeDamageFromWater; // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
index 4367d14654aa3e85b821d72ca8243d3976fda072..782b2c8bfc0ae71337ba8462d964a3e963acbf28 100644
--- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
@@ -33,6 +33,11 @@ public class CaveSpider extends Spider {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.caveSpiderMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.caveSpiderTakeDamageFromWater;
+ }
+
@Override
public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(target)) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 7e3b64dbd6df0b4d3556f7666c632a630a3a381e..4c175c9e8a3452f67b3f7cdac5aac1169309e993 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -186,6 +186,11 @@ public class Creeper extends Monster implements PowerableMob {
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.creeperTakeDamageFromWater;
+ }
+
@Override
protected SoundEvent getHurtSound(DamageSource source) {
return SoundEvents.CREEPER_HURT;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 366f4d7e5e640d1b906dc532ea1e2d323c293a51..050b337bfd328c0272a93615c98b8eec02deb026 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -93,6 +93,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
return level.purpurConfig.drownedJockeyTryExistingChickens;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.drownedTakeDamageFromWater;
+ }
+
@Override
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0D));
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
index 61fa65292c75661a48012e215368055708560360..ac36e59cf53c7a2ab0efea5741d142fb3d646557 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -38,6 +38,11 @@ public class ElderGuardian extends Guardian {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.elderGuardianMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.elderGuardianTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 444993e357e7a3e4aba0b0a73760fe478f6461ff..69da4fc206d33c7ff401c86edc86d0f308ad7c1f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -89,7 +89,7 @@ public class EnderMan extends Monster implements NeutralMob {
public EnderMan(EntityType<? extends EnderMan> type, Level world) {
super(type, world);
this.setMaxUpStep(1.0F);
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
}
@Override
@@ -283,7 +283,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level.purpurConfig.endermanTakeDamageFromWater; // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
index 07e709f886bd182511d92e27a2f77f8a0c93500f..e3573708cf8497935144aa270e1a1d5781d3ec7f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -42,6 +42,11 @@ public class Endermite extends Monster {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.endermiteMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.endermiteTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
index eaf84c30701dbe8562e0d498f088f0461c53c442..ad2910d1c12bf8f7ba3093fa4c9e9f8cb06fef03 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
@@ -53,6 +53,11 @@ public class Evoker extends SpellcasterIllager {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.evokerMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.evokerTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
index 2cb35b9b35f1c449784226caf200e8e19dccc64a..a20d843c10af7089fda45f92ea366d884570708d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
@@ -101,6 +101,11 @@ public class Ghast extends FlyingMob implements Enemy {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.ghastMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.ghastTakeDamageFromWater;
+ }
+
@Override
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
index 3d45d1a5091fbf7dd275aebfca336d80a72010b0..75ded7406f023680a221119a7dfb69586d9241f1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
@@ -38,6 +38,11 @@ public class Giant extends Monster {
this.safeFallDistance = 10.0F; // Purpur
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.giantTakeDamageFromWater;
+ }
+
@Override
protected void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.giantMaxHealth);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
index afae01e4bf1c22eafe06243a23dd21cd6894ca92..7811e226d2cda0e7b2d4539c7b87bcedc09b2586 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -78,6 +78,11 @@ public class Guardian extends Monster {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.guardianMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.guardianTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
MoveTowardsRestrictionGoal pathfindergoalmovetowardsrestriction = new MoveTowardsRestrictionGoal(this, 1.0D);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index d35c3630d7aba71271038cee04d97ca98038c847..2c605d8acc12177baedacc265b276f66e268d0a2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -47,6 +47,11 @@ public class Husk extends Zombie {
return level.purpurConfig.huskJockeyTryExistingChickens;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.huskTakeDamageFromWater;
+ }
+
public static boolean checkHuskSpawnRules(EntityType<Husk> type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (spawnReason == MobSpawnType.SPAWNER || world.canSeeSky(pos));
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
index 03646f5ffa43b19679241999877da1e93b293744..d3f6ccde772f606f99d70980ff9e0318835196fb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -66,6 +66,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.illusionerMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.illusionerTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
index 0f375ed5073435f6826c4d946e50a2d24ae54be0..1cdff3875c82e2fc900bc4e58c58c2f3607abbb4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
@@ -45,6 +45,11 @@ public class MagmaCube extends Slime {
return level.purpurConfig.magmaCubeAttackDamageCache;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.magmaCubeTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index c0980014edd84582f179882e9d63abb5474df622..935cab241766f11b2dc957403db35d43b93e9080 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -61,6 +61,11 @@ public class Phantom extends FlyingMob implements Enemy {
this.lookControl = new Phantom.PhantomLookControl(this);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.phantomTakeDamageFromWater;
+ }
+
@Override
public boolean isFlapping() {
return (this.getUniqueFlapTickOffset() + this.tickCount) % Phantom.TICKS_PER_FLAP == 0;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
index 508d76f5120ec614092669af7d7c61f7216c8dc3..b102b360f48aab31d5a9c4d1b5fd136369b55df2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
@@ -67,6 +67,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.pillagerMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.pillagerTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 26ca7b3ac44f24c324f0f97e0e2bb5ed62f3aa73..5fc6506c1d0d064c5adce5416eb1c1049ae8cf01 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -70,6 +70,11 @@ public class Ravager extends Raider {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.ravagerMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.ravagerTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index b7900691214fabe130f163253879c38952b9a20b..4017784e5b722887caf8ab5d17579e6daf50c5b4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -103,6 +103,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.shulkerMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.shulkerTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new LookAtPlayerGoal(this, Player.class, 8.0F, 0.02F, true));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
index 2b51cd9052271575c0f7ecabe69a1cc88f7ce800..ac3544ad12cc43ab92cf0e2a1d7b5a17616ada98 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
@@ -47,6 +47,11 @@ public class Silverfish extends Monster {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.silverfishMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.silverfishTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index f0bbfa0317b56a7ddb829ba55879d371632c9320..0b03160db790fd3a107d7459c747b393dda71415 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -31,6 +31,11 @@ public class Skeleton extends AbstractSkeleton {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.skeletonMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.skeletonTakeDamageFromWater;
+ }
+
@Override
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index ccbe63cae3a719e73013dd3da1c5179bdf9ccc75..0d97d7a99cc25664cda93596e2e0819c3a6cb48d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -102,6 +102,11 @@ public class Slime extends Mob implements Enemy {
return value;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.slimeTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new Slime.SlimeFloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index 4d9be4599d7181bc891bf86c01299b8ed460d916..2a00c9e116426151e83028fc4bbabbed886fd15c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -56,6 +56,11 @@ public class Spider extends Monster {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.spiderMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.spiderTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Stray.java b/src/main/java/net/minecraft/world/entity/monster/Stray.java
index 36ae65cb4510f8706f55fb851d37b121ca431ace..beb0b0c45020c2da42defd2f8e4e9cd09403c714 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Stray.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Stray.java
@@ -26,6 +26,11 @@ public class Stray extends AbstractSkeleton {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.strayMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.strayTakeDamageFromWater;
+ }
+
public static boolean checkStraySpawnRules(EntityType<Stray> type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
BlockPos blockPos = pos;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
index 7d57137951c9493265623f8674b8900c850ef396..5edfb858b081ff1be289c3e139fdb0beb9e53958 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -94,7 +94,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
super(type, world);
this.steering = new ItemBasedSteering(this.entityData, Strider.DATA_BOOST_TIME, Strider.DATA_SADDLE_ID);
this.blocksBuilding = true;
- this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(BlockPathTypes.WATER, -1.0F); // Purpur
this.setPathfindingMalus(BlockPathTypes.LAVA, 0.0F);
this.setPathfindingMalus(BlockPathTypes.DANGER_FIRE, 0.0F);
this.setPathfindingMalus(BlockPathTypes.DAMAGE_FIRE, 0.0F);
@@ -426,7 +426,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@Override
public boolean isSensitiveToWater() {
- return true;
+ return this.level.purpurConfig.striderTakeDamageFromWater; // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java
index 41b6c2d33121144e062f0733db55ec6a40603020..e7f3a3688a3c339d8e223afce6147fa94efcf01e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vex.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java
@@ -68,6 +68,11 @@ public class Vex extends Monster implements TraceableEntity {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.vexMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.vexTakeDamageFromWater;
+ }
+
@Override
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
return dimensions.height - 0.28125F;
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 886d42e847b400f166ccbdf7a0f61744080a8b54..9e142e5b0973c89a5b623e651360752f22e9cc5b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -63,6 +63,11 @@ public class Vindicator extends AbstractIllager {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.vindicatorMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.vindicatorTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
index 956e0f5ea71f01f4ae192c8c8e0f1e8b323b06ba..e4d2c02bf9264ccea2c4aadf31b6f26b44f97802 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -62,6 +62,11 @@ public class Witch extends Raider implements RangedAttackMob {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.witchMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.witchTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
super.registerGoals();
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index dda157fa91572198407a0840079cd18473adae4e..c7964f89805a72dfb1746f78d3310cea876bf19b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -40,6 +40,11 @@ public class WitherSkeleton extends AbstractSkeleton {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.witherSkeletonMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.witherSkeletonTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
index 54ce647b16efcc15d378009e56691cdf47bd04e4..5491c38e2c40859e1087801836831f1ff16e923f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
@@ -72,6 +72,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.zoglinMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.zoglinTakeDamageFromWater;
+ }
+
@Override
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index fddee85b60de8fe75f6a6bab43a0989509850b18..a7f1c1f38b187cc5a67a9ef08fa432b80f450617 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -123,6 +123,11 @@ public class Zombie extends Monster {
return level.purpurConfig.zombieJockeyTryExistingChickens;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.zombieTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
if (this.level().paperConfig().entities.behavior.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index 1f0265ee248da4dc1bf57a1d3d58aee52184fe72..818fc0b9bc6bd95c46b5939f0a09c6e6f86b80e4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -104,6 +104,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
return level.purpurConfig.zombieVillagerJockeyTryExistingChickens;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.zombieVillagerTakeDamageFromWater;
+ }
+
@Override
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index c8a024c9bd7c9cdbeff029bfacf4dba91e6ac580..2d4bf7dea360d72bcc33c10f00f2416599f85c83 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -83,6 +83,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
return level.purpurConfig.zombifiedPiglinJockeyTryExistingChickens;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.zombifiedPiglinTakeDamageFromWater;
+ }
+
@Override
public void setPersistentAngerTarget(@Nullable UUID angryAt) {
this.persistentAngerTarget = angryAt;
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 467ea5292a5dca5679b0e9b92b75447c3770fae0..639bbbf36ba6a627a26fc8cd112f3d2896cb45ab 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -77,6 +77,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
return this.level.purpurConfig.hoglinBreedingTicks;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.hoglinTakeDamageFromWater;
+ }
+
@Override
public boolean canBeLeashed(Player player) {
return !this.isLeashed();
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index 20339cb8a1fa4ca0716c7362276fc0cb9add6dee..eb27d6934f165d7f958ad441feb18a95c9ed4c24 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -101,6 +101,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.piglinMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.piglinTakeDamageFromWater;
+ }
+
@Override
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
index 5f4dcb1d2fd8e3354fb5148512648062463b5bd8..2f6b55361f62f9f9125fec9b3ca062f98e1768a7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
@@ -46,6 +46,11 @@ public class PiglinBrute extends AbstractPiglin {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.piglinBruteMaxHealth);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.piglinBruteTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D);
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 8144e3c60bc586bd48677a1d1af3b20f1a1fa337..8e32ba64acfc1b671b859be23f3a84fb4151b570 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -165,6 +165,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return level.purpurConfig.villagerCanBeLeashed && !this.isLeashed();
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.villagerTakeDamageFromWater;
+ }
+
@Override
public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 5bf96ff879318ea1be45f89b8689b6739ed9ca5b..86c8e3d6ad7bb497c50433ff882fab3f5bd7b6ad 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -76,6 +76,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return level.purpurConfig.wanderingTraderCanBeLeashed && !this.isLeashed();
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level.purpurConfig.wanderingTraderTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f39c4a2acf8d6af849ce3c0ef319a58a203b08c1..f3a2c3cd83d8048df9d0df86220d59f2ce4c10af 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -547,9 +547,11 @@ public class PurpurWorldConfig {
public double axolotlMaxHealth = 14.0D;
public int axolotlBreedingTicks = 6000;
+ public boolean axolotlTakeDamageFromWater = false;
private void axolotlSettings() {
axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth);
axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks);
+ axolotlTakeDamageFromWater = getBoolean("mobs.axolotl.takes-damage-from-water", axolotlTakeDamageFromWater);
}
public double batMaxHealth = 6.0D;
@@ -560,6 +562,7 @@ public class PurpurWorldConfig {
public double batArmor = 0.0D;
public double batArmorToughness = 0.0D;
public double batAttackKnockback = 0.0D;
+ public boolean batTakeDamageFromWater = false;
private void batSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.bat.attributes.max-health", batMaxHealth);
@@ -574,10 +577,12 @@ public class PurpurWorldConfig {
batArmor = getDouble("mobs.bat.attributes.armor", batArmor);
batArmorToughness = getDouble("mobs.bat.attributes.armor_toughness", batArmorToughness);
batAttackKnockback = getDouble("mobs.bat.attributes.attack_knockback", batAttackKnockback);
+ batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater);
}
public double beeMaxHealth = 10.0D;
public int beeBreedingTicks = 6000;
+ public boolean beeTakeDamageFromWater = false;
private void beeSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.bee.attributes.max-health", beeMaxHealth);
@@ -586,9 +591,11 @@ public class PurpurWorldConfig {
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
+ beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);
}
public double blazeMaxHealth = 20.0D;
+ public boolean blazeTakeDamageFromWater = true;
private void blazeSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.blaze.attributes.max-health", blazeMaxHealth);
@@ -596,6 +603,7 @@ public class PurpurWorldConfig {
set("mobs.blaze.attributes.max_health", oldValue);
}
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
+ blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater);
}
public int camelBreedingTicks = 6000;
@@ -621,6 +629,7 @@ public class PurpurWorldConfig {
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
public DyeColor catDefaultCollarColor = DyeColor.RED;
+ public boolean catTakeDamageFromWater = false;
private void catSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.cat.attributes.max-health", catMaxHealth);
@@ -637,9 +646,11 @@ public class PurpurWorldConfig {
} catch (IllegalArgumentException ignore) {
catDefaultCollarColor = DyeColor.RED;
}
+ catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater);
}
public double caveSpiderMaxHealth = 12.0D;
+ public boolean caveSpiderTakeDamageFromWater = false;
private void caveSpiderSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.cave_spider.attributes.max-health", caveSpiderMaxHealth);
@@ -647,11 +658,13 @@ public class PurpurWorldConfig {
set("mobs.cave_spider.attributes.max_health", oldValue);
}
caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
+ caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater);
}
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
public int chickenBreedingTicks = 6000;
+ public boolean chickenTakeDamageFromWater = false;
private void chickenSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.chicken.attributes.max-health", chickenMaxHealth);
@@ -661,9 +674,11 @@ public class PurpurWorldConfig {
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
+ chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater);
}
public double codMaxHealth = 3.0D;
+ public boolean codTakeDamageFromWater = false;
private void codSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.cod.attributes.max-health", codMaxHealth);
@@ -671,11 +686,13 @@ public class PurpurWorldConfig {
set("mobs.cod.attributes.max_health", oldValue);
}
codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
+ codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater);
}
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
+ public boolean cowTakeDamageFromWater = false;
private void cowSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.cow.attributes.max-health", cowMaxHealth);
@@ -685,12 +702,14 @@ public class PurpurWorldConfig {
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
+ cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater);
}
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
+ public boolean creeperTakeDamageFromWater = false;
private void creeperSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.creeper.attributes.max-health", creeperMaxHealth);
@@ -701,10 +720,12 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
+ creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
}
public double dolphinMaxHealth = 10.0D;
public boolean dolphinDisableTreasureSearching = false;
+ public boolean dolphinTakeDamageFromWater = false;
private void dolphinSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.dolphin.attributes.max-health", dolphinMaxHealth);
@@ -713,6 +734,7 @@ public class PurpurWorldConfig {
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
+ dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);
}
public double donkeyMaxHealthMin = 15.0D;
@@ -722,6 +744,7 @@ public class PurpurWorldConfig {
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
public int donkeyBreedingTicks = 6000;
+ public boolean donkeyTakeDamageFromWater = false;
private void donkeySettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.donkey.attributes.max-health.min", donkeyMaxHealthMin);
@@ -737,6 +760,7 @@ public class PurpurWorldConfig {
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
+ donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater);
}
public double drownedMaxHealth = 20.0D;
@@ -744,6 +768,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyOnlyBaby = true;
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
+ public boolean drownedTakeDamageFromWater = false;
private void drownedSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.drowned.attributes.max-health", drownedMaxHealth);
@@ -755,9 +780,11 @@ public class PurpurWorldConfig {
drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby);
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
+ drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);
}
public double elderGuardianMaxHealth = 80.0D;
+ public boolean elderGuardianTakeDamageFromWater = false;
private void elderGuardianSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.elder_guardian.attributes.max-health", elderGuardianMaxHealth);
@@ -765,11 +792,13 @@ public class PurpurWorldConfig {
set("mobs.elder_guardian.attributes.max_health", oldValue);
}
elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
+ elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater);
}
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
+ public boolean enderDragonTakeDamageFromWater = false;
private void enderDragonSettings() {
if (PurpurConfig.version < 8) {
double oldValue = getDouble("mobs.ender_dragon.max-health", enderDragonMaxHealth);
@@ -783,12 +812,14 @@ public class PurpurWorldConfig {
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
+ enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater);
}
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
+ public boolean endermanTakeDamageFromWater = true;
private void endermanSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.enderman.attributes.max-health", endermanMaxHealth);
@@ -799,9 +830,11 @@ public class PurpurWorldConfig {
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
+ endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
}
public double endermiteMaxHealth = 8.0D;
+ public boolean endermiteTakeDamageFromWater = false;
private void endermiteSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.endermite.attributes.max-health", endermiteMaxHealth);
@@ -809,10 +842,12 @@ public class PurpurWorldConfig {
set("mobs.endermite.attributes.max_health", oldValue);
}
endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
+ endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater);
}
public double evokerMaxHealth = 24.0D;
public boolean evokerBypassMobGriefing = false;
+ public boolean evokerTakeDamageFromWater = false;
private void evokerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.evoker.attributes.max-health", evokerMaxHealth);
@@ -821,12 +856,14 @@ public class PurpurWorldConfig {
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing);
+ evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater);
}
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
public boolean foxBypassMobGriefing = false;
+ public boolean foxTakeDamageFromWater = false;
private void foxSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.fox.attributes.max-health", foxMaxHealth);
@@ -837,6 +874,7 @@ public class PurpurWorldConfig {
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing);
+ foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater);
}
public int frogBreedingTicks = 6000;
@@ -845,6 +883,7 @@ public class PurpurWorldConfig {
}
public double ghastMaxHealth = 10.0D;
+ public boolean ghastTakeDamageFromWater = false;
private void ghastSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.ghast.attributes.max-health", ghastMaxHealth);
@@ -852,6 +891,7 @@ public class PurpurWorldConfig {
set("mobs.ghast.attributes.max_health", oldValue);
}
ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
+ ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater);
}
public double giantMovementSpeed = 0.5D;
@@ -861,6 +901,7 @@ public class PurpurWorldConfig {
public float giantJumpHeight = 1.0F;
public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false;
+ public boolean giantTakeDamageFromWater = false;
private void giantSettings() {
giantMovementSpeed = getDouble("mobs.giant.movement-speed", giantMovementSpeed);
giantAttackDamage = getDouble("mobs.giant.attack-damage", giantAttackDamage);
@@ -878,23 +919,29 @@ public class PurpurWorldConfig {
giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight);
giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI);
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
+ giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater);
}
public double glowSquidMaxHealth = 10.0D;
public boolean glowSquidsCanFly = false;
+ public boolean glowSquidTakeDamageFromWater = false;
private void glowSquidSettings() {
glowSquidMaxHealth = getDouble("mobs.glow_squid.attributes.max_health", glowSquidMaxHealth);
glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly);
+ glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater);
}
public double goatMaxHealth = 10.0D;
public int goatBreedingTicks = 6000;
+ public boolean goatTakeDamageFromWater = false;
private void goatSettings() {
goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth);
goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks);
+ goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater);
}
public double guardianMaxHealth = 30.0D;
+ public boolean guardianTakeDamageFromWater = false;
private void guardianSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.guardian.attributes.max-health", guardianMaxHealth);
@@ -902,10 +949,12 @@ public class PurpurWorldConfig {
set("mobs.guardian.attributes.max_health", oldValue);
}
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
+ guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
}
public double hoglinMaxHealth = 40.0D;
public int hoglinBreedingTicks = 6000;
+ public boolean hoglinTakeDamageFromWater = false;
private void hoglinSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.hoglin.attributes.max-health", hoglinMaxHealth);
@@ -914,6 +963,7 @@ public class PurpurWorldConfig {
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
+ hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater);
}
public double horseMaxHealthMin = 15.0D;
@@ -923,6 +973,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
public int horseBreedingTicks = 6000;
+ public boolean horseTakeDamageFromWater = false;
private void horseSettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.horse.attributes.max-health.min", horseMaxHealthMin);
@@ -938,6 +989,7 @@ public class PurpurWorldConfig {
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
+ horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater);
}
public double huskMaxHealth = 20.0D;
@@ -945,6 +997,7 @@ public class PurpurWorldConfig {
public boolean huskJockeyOnlyBaby = true;
public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true;
+ public boolean huskTakeDamageFromWater = false;
private void huskSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.husk.attributes.max-health", huskMaxHealth);
@@ -956,11 +1009,13 @@ public class PurpurWorldConfig {
huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby);
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
+ huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater);
}
public double illusionerMovementSpeed = 0.5D;
public double illusionerFollowRange = 18.0D;
public double illusionerMaxHealth = 32.0D;
+ public boolean illusionerTakeDamageFromWater = false;
private void illusionerSettings() {
illusionerMovementSpeed = getDouble("mobs.illusioner.movement-speed", illusionerMovementSpeed);
illusionerFollowRange = getDouble("mobs.illusioner.follow-range", illusionerFollowRange);
@@ -974,9 +1029,11 @@ public class PurpurWorldConfig {
set("mobs.illusioner.attributes.max_health", oldValue);
}
illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
+ illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater);
}
public double ironGolemMaxHealth = 100.0D;
+ public boolean ironGolemTakeDamageFromWater = false;
private void ironGolemSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.iron_golem.attributes.max-health", ironGolemMaxHealth);
@@ -984,6 +1041,7 @@ public class PurpurWorldConfig {
set("mobs.iron_golem.attributes.max_health", oldValue);
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
+ ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
}
public boolean llamaRidable = false;
@@ -996,6 +1054,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
+ public boolean llamaTakeDamageFromWater = false;
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1014,12 +1073,14 @@ public class PurpurWorldConfig {
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
+ llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);
}
public String magmaCubeMaxHealth = "size * size";
public String magmaCubeAttackDamage = "size";
public Map<Integer, Double> magmaCubeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> magmaCubeAttackDamageCache = new HashMap<>();
+ public boolean magmaCubeTakeDamageFromWater = false;
private void magmaCubeSettings() {
if (PurpurConfig.version < 10) {
String oldValue = getString("mobs.magma_cube.attributes.max-health", magmaCubeMaxHealth);
@@ -1030,10 +1091,12 @@ public class PurpurWorldConfig {
magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage);
magmaCubeMaxHealthCache.clear();
magmaCubeAttackDamageCache.clear();
+ magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater);
}
public double mooshroomMaxHealth = 10.0D;
public int mooshroomBreedingTicks = 6000;
+ public boolean mooshroomTakeDamageFromWater = false;
private void mooshroomSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.mooshroom.attributes.max-health", mooshroomMaxHealth);
@@ -1042,6 +1105,7 @@ public class PurpurWorldConfig {
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
+ mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater);
}
public double muleMaxHealthMin = 15.0D;
@@ -1051,6 +1115,7 @@ public class PurpurWorldConfig {
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
public int muleBreedingTicks = 6000;
+ public boolean muleTakeDamageFromWater = false;
private void muleSettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.mule.attributes.max-health.min", muleMaxHealthMin);
@@ -1066,10 +1131,12 @@ public class PurpurWorldConfig {
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
+ muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater);
}
public double ocelotMaxHealth = 10.0D;
public int ocelotBreedingTicks = 6000;
+ public boolean ocelotTakeDamageFromWater = false;
private void ocelotSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.ocelot.attributes.max-health", ocelotMaxHealth);
@@ -1078,10 +1145,12 @@ public class PurpurWorldConfig {
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
+ ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
}
public double pandaMaxHealth = 20.0D;
public int pandaBreedingTicks = 6000;
+ public boolean pandaTakeDamageFromWater = false;
private void pandaSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.panda.attributes.max-health", pandaMaxHealth);
@@ -1090,9 +1159,11 @@ public class PurpurWorldConfig {
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
+ pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater);
}
public double parrotMaxHealth = 6.0D;
+ public boolean parrotTakeDamageFromWater = false;
private void parrotSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.parrot.attributes.max-health", parrotMaxHealth);
@@ -1100,6 +1171,7 @@ public class PurpurWorldConfig {
set("mobs.parrot.attributes.max_health", oldValue);
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
+ parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);
}
public String phantomMaxHealth = "20.0";
@@ -1116,6 +1188,7 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
+ public boolean phantomTakeDamageFromWater = false;
private void phantomSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.phantom.attributes.max-health", Double.parseDouble(phantomMaxHealth));
@@ -1140,11 +1213,13 @@ public class PurpurWorldConfig {
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
+ phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
}
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000;
+ public boolean pigTakeDamageFromWater = false;
private void pigSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.pig.attributes.max-health", pigMaxHealth);
@@ -1154,10 +1229,12 @@ public class PurpurWorldConfig {
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
+ pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater);
}
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = false;
+ public boolean piglinTakeDamageFromWater = false;
private void piglinSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.piglin.attributes.max-health", piglinMaxHealth);
@@ -1166,9 +1243,11 @@ public class PurpurWorldConfig {
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
+ piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
}
public double piglinBruteMaxHealth = 50.0D;
+ public boolean piglinBruteTakeDamageFromWater = false;
private void piglinBruteSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.piglin_brute.attributes.max-health", piglinBruteMaxHealth);
@@ -1176,10 +1255,12 @@ public class PurpurWorldConfig {
set("mobs.piglin_brute.attributes.max_health", oldValue);
}
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
+ piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater);
}
public double pillagerMaxHealth = 24.0D;
public boolean pillagerBypassMobGriefing = false;
+ public boolean pillagerTakeDamageFromWater = false;
private void pillagerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.pillager.attributes.max-health", pillagerMaxHealth);
@@ -1188,12 +1269,14 @@ public class PurpurWorldConfig {
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
+ pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater);
}
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
+ public boolean polarBearTakeDamageFromWater = false;
private void polarBearSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.polar_bear.attributes.max-health", polarBearMaxHealth);
@@ -1205,9 +1288,11 @@ public class PurpurWorldConfig {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
+ polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater);
}
public double pufferfishMaxHealth = 3.0D;
+ public boolean pufferfishTakeDamageFromWater = false;
private void pufferfishSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.pufferfish.attributes.max-health", pufferfishMaxHealth);
@@ -1215,6 +1300,7 @@ public class PurpurWorldConfig {
set("mobs.pufferfish.attributes.max_health", oldValue);
}
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
+ pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater);
}
public double rabbitMaxHealth = 3.0D;
@@ -1222,6 +1308,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false;
+ public boolean rabbitTakeDamageFromWater = false;
private void rabbitSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.rabbit.attributes.max-health", rabbitMaxHealth);
@@ -1233,10 +1320,12 @@ public class PurpurWorldConfig {
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
+ rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater);
}
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
+ public boolean ravagerTakeDamageFromWater = false;
private void ravagerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.ravager.attributes.max-health", ravagerMaxHealth);
@@ -1245,9 +1334,11 @@ public class PurpurWorldConfig {
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
+ ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);
}
public double salmonMaxHealth = 3.0D;
+ public boolean salmonTakeDamageFromWater = false;
private void salmonSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.salmon.attributes.max-health", salmonMaxHealth);
@@ -1255,11 +1346,13 @@ public class PurpurWorldConfig {
set("mobs.salmon.attributes.max_health", oldValue);
}
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
+ salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater);
}
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false;
+ public boolean sheepTakeDamageFromWater = false;
private void sheepSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth);
@@ -1269,9 +1362,11 @@ public class PurpurWorldConfig {
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
+ sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater);
}
public double shulkerMaxHealth = 30.0D;
+ public boolean shulkerTakeDamageFromWater = false;
private void shulkerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.shulker.attributes.max-health", shulkerMaxHealth);
@@ -1279,10 +1374,12 @@ public class PurpurWorldConfig {
set("mobs.shulker.attributes.max_health", oldValue);
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
+ shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);
}
public double silverfishMaxHealth = 8.0D;
public boolean silverfishBypassMobGriefing = false;
+ public boolean silverfishTakeDamageFromWater = false;
private void silverfishSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.silverfish.attributes.max-health", silverfishMaxHealth);
@@ -1291,9 +1388,11 @@ public class PurpurWorldConfig {
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
+ silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater);
}
public double skeletonMaxHealth = 20.0D;
+ public boolean skeletonTakeDamageFromWater = false;
private void skeletonSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.skeleton.attributes.max-health", skeletonMaxHealth);
@@ -1301,6 +1400,7 @@ public class PurpurWorldConfig {
set("mobs.skeleton.attributes.max_health", oldValue);
}
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
+ skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
}
public double skeletonHorseMaxHealthMin = 15.0D;
@@ -1309,6 +1409,7 @@ public class PurpurWorldConfig {
public double skeletonHorseJumpStrengthMax = 1.0D;
public double skeletonHorseMovementSpeedMin = 0.2D;
public double skeletonHorseMovementSpeedMax = 0.2D;
+ public boolean skeletonHorseTakeDamageFromWater = false;
private void skeletonHorseSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.skeleton_horse.attributes.max-health", skeletonHorseMaxHealthMin);
@@ -1322,12 +1423,14 @@ public class PurpurWorldConfig {
skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax);
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
+ skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater);
}
public String slimeMaxHealth = "size * size";
public String slimeAttackDamage = "size";
public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> slimeAttackDamageCache = new HashMap<>();
+ public boolean slimeTakeDamageFromWater = false;
private void slimeSettings() {
if (PurpurConfig.version < 10) {
String oldValue = getString("mobs.slime.attributes.max-health", slimeMaxHealth);
@@ -1338,6 +1441,7 @@ public class PurpurWorldConfig {
slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage);
slimeMaxHealthCache.clear();
slimeAttackDamageCache.clear();
+ slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater);
}
public boolean snowGolemLeaveTrailWhenRidden = false;
@@ -1349,6 +1453,7 @@ public class PurpurWorldConfig {
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
+ public boolean snowGolemTakeDamageFromWater = true;
private void snowGolemSettings() {
snowGolemLeaveTrailWhenRidden = getBoolean("mobs.snow_golem.leave-trail-when-ridden", snowGolemLeaveTrailWhenRidden);
if (PurpurConfig.version < 10) {
@@ -1364,6 +1469,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
+ snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater);
}
public double snifferMaxHealth = 14.0D;
@@ -1377,6 +1483,7 @@ public class PurpurWorldConfig {
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false;
+ public boolean squidTakeDamageFromWater = false;
private void squidSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.squid.attributes.max-health", squidMaxHealth);
@@ -1387,9 +1494,11 @@ public class PurpurWorldConfig {
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
+ squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater);
}
public double spiderMaxHealth = 16.0D;
+ public boolean spiderTakeDamageFromWater = false;
private void spiderSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.spider.attributes.max-health", spiderMaxHealth);
@@ -1397,9 +1506,11 @@ public class PurpurWorldConfig {
set("mobs.spider.attributes.max_health", oldValue);
}
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
+ spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
}
public double strayMaxHealth = 20.0D;
+ public boolean strayTakeDamageFromWater = false;
private void straySettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.stray.attributes.max-health", strayMaxHealth);
@@ -1407,11 +1518,13 @@ public class PurpurWorldConfig {
set("mobs.stray.attributes.max_health", oldValue);
}
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
+ strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater);
}
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
+ public boolean striderTakeDamageFromWater = true;
private void striderSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.strider.attributes.max-health", striderMaxHealth);
@@ -1421,6 +1534,7 @@ public class PurpurWorldConfig {
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
+ striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater);
}
public double traderLlamaMaxHealthMin = 15.0D;
@@ -1430,6 +1544,7 @@ public class PurpurWorldConfig {
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
public int traderLlamaBreedingTicks = 6000;
+ public boolean traderLlamaTakeDamageFromWater = false;
private void traderLlamaSettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.trader_llama.attributes.max-health.min", traderLlamaMaxHealthMin);
@@ -1445,9 +1560,11 @@ public class PurpurWorldConfig {
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
+ traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater);
}
public double tropicalFishMaxHealth = 3.0D;
+ public boolean tropicalFishTakeDamageFromWater = false;
private void tropicalFishSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.tropical_fish.attributes.max-health", tropicalFishMaxHealth);
@@ -1455,10 +1572,12 @@ public class PurpurWorldConfig {
set("mobs.tropical_fish.attributes.max_health", oldValue);
}
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
+ tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater);
}
public double turtleMaxHealth = 30.0D;
public int turtleBreedingTicks = 6000;
+ public boolean turtleTakeDamageFromWater = false;
private void turtleSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.turtle.attributes.max-health", turtleMaxHealth);
@@ -1467,10 +1586,12 @@ public class PurpurWorldConfig {
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
+ turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater);
}
public double vexMaxY = 320D;
public double vexMaxHealth = 14.0D;
+ public boolean vexTakeDamageFromWater = false;
private void vexSettings() {
vexMaxY = getDouble("mobs.vex.ridable-max-y", vexMaxY);
if (PurpurConfig.version < 10) {
@@ -1479,6 +1600,7 @@ public class PurpurWorldConfig {
set("mobs.vex.attributes.max_health", oldValue);
}
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
+ vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater);
}
public double villagerMaxHealth = 20.0D;
@@ -1487,6 +1609,7 @@ public class PurpurWorldConfig {
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
public boolean villagerBypassMobGriefing = false;
+ public boolean villagerTakeDamageFromWater = false;
private void villagerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.villager.attributes.max-health", villagerMaxHealth);
@@ -1499,10 +1622,12 @@ public class PurpurWorldConfig {
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
+ villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
}
public double vindicatorMaxHealth = 24.0D;
public double vindicatorJohnnySpawnChance = 0D;
+ public boolean vindicatorTakeDamageFromWater = false;
private void vindicatorSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.vindicator.attributes.max-health", vindicatorMaxHealth);
@@ -1511,11 +1636,13 @@ public class PurpurWorldConfig {
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
+ vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater);
}
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
+ public boolean wanderingTraderTakeDamageFromWater = false;
private void wanderingTraderSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.wandering_trader.attributes.max-health", wanderingTraderMaxHealth);
@@ -1525,9 +1652,11 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
+ wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
}
public double witchMaxHealth = 26.0D;
+ public boolean witchTakeDamageFromWater = false;
private void witchSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.witch.attributes.max-health", witchMaxHealth);
@@ -1535,12 +1664,14 @@ public class PurpurWorldConfig {
set("mobs.witch.attributes.max_health", oldValue);
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
+ witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater);
}
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
+ public boolean witherTakeDamageFromWater = false;
private void witherSettings() {
if (PurpurConfig.version < 8) {
double oldValue = getDouble("mobs.wither.max-health", witherMaxHealth);
@@ -1555,9 +1686,11 @@ public class PurpurWorldConfig {
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
+ witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);
}
public double witherSkeletonMaxHealth = 20.0D;
+ public boolean witherSkeletonTakeDamageFromWater = false;
private void witherSkeletonSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.wither_skeleton.attributes.max-health", witherSkeletonMaxHealth);
@@ -1565,6 +1698,7 @@ public class PurpurWorldConfig {
set("mobs.wither_skeleton.attributes.max_health", oldValue);
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
+ witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater);
}
public double wolfMaxHealth = 8.0D;
@@ -1572,6 +1706,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
+ public boolean wolfTakeDamageFromWater = false;
private void wolfSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.wolf.attributes.max-health", wolfMaxHealth);
@@ -1587,9 +1722,11 @@ public class PurpurWorldConfig {
wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies);
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
+ wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater);
}
public double zoglinMaxHealth = 40.0D;
+ public boolean zoglinTakeDamageFromWater = false;
private void zoglinSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.zoglin.attributes.max-health", zoglinMaxHealth);
@@ -1597,6 +1734,7 @@ public class PurpurWorldConfig {
set("mobs.zoglin.attributes.max_health", oldValue);
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
+ zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater);
}
public double zombieMaxHealth = 20.0D;
@@ -1606,6 +1744,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
+ public boolean zombieTakeDamageFromWater = false;
private void zombieSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.zombie.attributes.max-health", zombieMaxHealth);
@@ -1619,6 +1758,7 @@ public class PurpurWorldConfig {
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
+ zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
}
public double zombieHorseMaxHealthMin = 15.0D;
@@ -1628,6 +1768,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
+ public boolean zombieHorseTakeDamageFromWater = false;
private void zombieHorseSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.zombie_horse.attributes.max-health", zombieHorseMaxHealthMin);
@@ -1642,6 +1783,7 @@ public class PurpurWorldConfig {
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
+ zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater);
}
public double zombieVillagerMaxHealth = 20.0D;
@@ -1649,6 +1791,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
+ public boolean zombieVillagerTakeDamageFromWater = false;
private void zombieVillagerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.zombie_villager.attributes.max-health", zombieVillagerMaxHealth);
@@ -1660,6 +1803,7 @@ public class PurpurWorldConfig {
zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby);
zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance);
zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens);
+ zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater);
}
public double zombifiedPiglinMaxHealth = 20.0D;
@@ -1668,6 +1812,7 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
+ public boolean zombifiedPiglinTakeDamageFromWater = false;
private void zombifiedPiglinSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.zombified_piglin.attributes.max-health", zombifiedPiglinMaxHealth);
@@ -1680,5 +1825,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
+ zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
}
}