Files
Purpur/patches/server/0121-Toggle-for-water-sensitive-mob-damage.patch
granny cb0f04bd77 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@4d20922 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#11024)
PaperMC/Paper@2fa5e0e Fix horse inventories (#11028)
PaperMC/Paper@62ed302 Fix entity distance check when applying knockback

closes #1553
2024-07-07 18:07:38 -07:00

2364 lines
130 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 4cd57672c548950cb4e0aa97af75ecca84be6823..70e3d583f7a039a5c67428ce9e8beb1922574c7b 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -46,6 +46,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 04df50970188cf6b9fbdcc1e99ea6cf8a0beee59..9bb113741bae68b865109549a4025ddf1008103e 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -278,6 +278,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 4b57756e938db00f5c6eba915c096110d68751eb..e7f85150fb7dcee5ba0d7bc3830a0544e18e9817 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -176,7 +176,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
// Paper end - Fix MC-167279
this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F);
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -489,6 +489,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 356f3728fdadf8190cd6c806789f4fd70820ec94..4476fb2764bccdb0868e6e43f3a803971982effb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -139,6 +139,11 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
public int getPurpurBreedTime() {
return this.level().purpurConfig.catBreedingTicks;
}
+
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.catTakeDamageFromWater;
+ }
// Purpur end
public ResourceLocation getTextureId() {
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 38f0fd9c126571d03ca6789a9b8273245168b8db..ab2a91dd2b0ee92dd2471750bd7d850ac70de787 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -85,6 +85,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 3d61c2d5da103de68242c16d85c703813979d179..2343325fa9a771de7b9445cda24a2bcd7a7c1761 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cod.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cod.java
@@ -30,6 +30,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 a52b94a4b9d3e65586fbfc2e3d977d40daf59ee5..2b1b1243fa1e60985ab6fcd0dda9f71db7e3352c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -72,6 +72,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 6278d1020aeac52622ecf98c34453044850a453e..c7bc9e0152419aa44fd2a4dcf2ce1f0b972e432e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -163,6 +163,11 @@ public class Dolphin extends WaterAnimal {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.dolphinScale);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.dolphinTakeDamageFromWater;
+ }
+
@Nullable
@Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
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 6c56c51a89928ba52b1fb5f66f6169fa94fffed0..759e013fea63d859f357744605a1895ed4c9089f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -194,6 +194,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(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
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 5aa58b5bc9e97c030d075accd6803c5fc1f33f07..0cf985cac3279c0cb6255f02b76a5012027cae99 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -85,6 +85,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
}
// Purpur end
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.ironGolemTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
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 22a2328fe5159c8fed635a62334a3f1028c346a5..6cb8d85986f4d891dfbb66b83163ed23bac694f6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -91,6 +91,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 59ac7021389559cf95ef4746e6860bef29e3c0dc..0472e4a206bd3130fa5d5149d231cd298653c74a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
@@ -94,6 +94,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 a0075e23da3bbfe74105f420c347d3f67fda3970..b39069c7f353351331218dac6370abd382518840 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -159,6 +159,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 = this.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 36eee2367689710a68be22209c550298b3e06879..0711b1c38b4bef53aeb0d447774db4a639704e8d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -197,6 +197,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) {
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 c9c31e2e523b6829776d6bcc3d0e183c1315a7a3..27a1ec39e75bf819ca264762d2b19d9f5a7a3e37 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -92,6 +92,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 064d2066b2b987bfc2eb3e71c7fec39248492135..760d1ea4f90dd1179ca5527731856e0ca0252f36 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -125,6 +125,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 0682df1037e23068c715f7bc06f1dc461641bb2f..91fd38aeafb4354e845b579988c7c9a6b3f6f551 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
@@ -68,6 +68,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(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
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 db9ed247a2a2c2316a9dcc06a8961345c40752a9..41477fc4148ce10d72bcde5c5b391af4d25416d0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -151,6 +151,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
public int getPurpurBreedTime() {
return this.level().purpurConfig.rabbitBreedingTicks;
}
+
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.rabbitTakeDamageFromWater;
+ }
// Purpur end
@Override
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 742805994f29a18af444912b10af631d2c60cacf..e101c3bf425902908c43ffa18867fb83a5e1f16e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Salmon.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Salmon.java
@@ -30,6 +30,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 fb429dce94bfad6aba3c63a4694e7c8da772ee14..6f4cd1297e9caa869296e99108c0c78ae67347ab 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -143,6 +143,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 09be2e9651a736bf44f3f06f1d4e6a5b4dcf230b..8966aa5e69cab5be770e2767e3e0f479426d8522 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -115,7 +115,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 ea80eca266500f93fa9c00962d078ec276814f0a..96957b49dd33fbcef7a350b8ac5f76fb5febd373 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -88,6 +88,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 327b1805d9d4069212a8772ff189c9ab24ae1183..4ac998e9d96aed3b0ea0ec3f9dcd5fdd74c45d24 100644
--- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
@@ -84,6 +84,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 751fe2afdea34a6776d428675c3924112668d530..099fd99cf3d455329487fbbf572bb0b27b662e72 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -115,6 +115,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 3f182227b84736273c14474cccfea8e9c7441c74..ac35bb9fc72ffc217b006c652b336e57bce62e8f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -221,6 +221,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
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 05ffcccf19ca07285d821de41909cade42244a08..c241bf3c18c11008a375ab9f5c3d158866d64b95 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
@@ -125,6 +125,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 1de70d3faddb58df1180b500195b9167b6c9d644..9fba034ed863d1dc1ee5fb7cf09650382481dbc7 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
@@ -113,6 +113,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 2990d50fd5209b272e0cfbd5dd633124048e8129..891ea1cca8495c08a1817096c8c4277f5311d6c7 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
@@ -42,6 +42,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 c4b22c52e335080e744a723622f455c0d8cf73e2..d92415ec722935317b7927e3251cce7e2269b1a0 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
@@ -72,6 +72,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 b8a6ebd8301c4873060505c866dabb4e8772d5b5..96f1eba4a356e131a8f3c689bedc9eb8821e1a72 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
@@ -146,6 +146,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 8c52cbd47b90da51f3d5b84b8df4113fecc598df..f2b909029672c17362b2acf0ea54aa19385cff8f 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
@@ -41,6 +41,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 5686bb0b537650e7d89292cef4e7e82bc7383748..7702af3c80ecc09318a25bb6c1acc5099fa10af4 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
@@ -69,6 +69,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, 0.20000000298023224D);
}
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 d22f429f3de9c68a189087f23a483a561454cc54..a7261719c4608bdfbc43072ea5948b950f1bea0d 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
@@ -72,6 +72,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 fbad3b11223ee5dac4af15584e5dfd808a149545..343632a030eb423367387750fabbdae53c4bb20b 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
@@ -65,6 +65,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.0).add(Attributes.MOVEMENT_SPEED, 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 10a81e7e096751fd17db8aa7d6b4b74c6e7e3874..23e4d14bff79d3861a1260920e46695585d7afd2 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
@@ -191,6 +191,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 d75d331355129edb975fe5adc585e35852d484da..714223f131cb4ece988ffacbfc90bb9d7d143636 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
@@ -122,6 +122,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.witherScale);
}
+ @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 089edbcc1c92783e61e56beb32c471029eb2486e..fda1aa7e3db530243e1d71446d0d12901087aac7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
@@ -33,7 +33,7 @@ public class Blaze extends Monster {
public Blaze(EntityType<? extends Blaze> type, Level world) {
super(type, world);
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
this.setPathfindingMalus(PathType.LAVA, 8.0F);
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
@@ -154,7 +154,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 00c48623e8d53e4a00b9c3e40f6fd2c5af4f61b7..e1db768336872a63a20094ea9058550bece1549a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
@@ -49,6 +49,11 @@ public class CaveSpider extends Spider {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.caveSpiderScale);
}
+ @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 576d8288a9a5e39479623cac6cbf0f2cc81096db..1ce1cf48624d8273dccc571ee37a08c06951acad 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -266,6 +266,11 @@ public class Creeper extends Monster implements PowerableMob {
return super.finalizeSpawn(world, difficulty, spawnReason, entityData);
}
+ @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 4f9daaeb1bd4d115a84b0c20649e4dd44af37924..370f1b76c002f7cecf596767db717da51b2990f8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -99,6 +99,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
this.getAttribute(Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level().purpurConfig.drownedSpawnReinforcements);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.drownedTakeDamageFromWater;
+ }
+
@Override
public boolean jockeyOnlyBaby() {
return level().purpurConfig.drownedJockeyOnlyBaby;
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 986a0f75dd8ac3d36e827d88e1e8e6a0f755aab7..795bf6c37362382124ca1ea8ce2a294b421eaa3b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -51,6 +51,11 @@ public class ElderGuardian extends Guardian {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.elderGuardianScale);
}
+ @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 2ef35e21c20ec19e1af0f7380d8c36fbf6948e47..21b2709f96b49c77807c9054843505a4fd0155f0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -92,7 +92,7 @@ public class EnderMan extends Monster implements NeutralMob {
public EnderMan(EntityType<? extends EnderMan> type, Level world) {
super(type, world);
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
}
// Purpur start
@@ -301,7 +301,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 3352007750e093f038a8c47476ff80601a6d7cee..dd73278cea317280b88c3290dfcc052866c9ec52 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -61,6 +61,11 @@ public class Endermite extends Monster {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.endermiteScale);
}
+ @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 a7976b5d8548277061aa6a4e1147922e283d5a7d..03f29e4bc4d161df06d0c71bda10b3c117cda1f5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
@@ -75,6 +75,11 @@ public class Evoker extends SpellcasterIllager {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.evokerScale);
}
+ @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 54b4f299a281096e559baf817f3de7185e419983..f1e379ca03826f4a8ab86cdd1a129b4bef458f97 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
@@ -137,6 +137,11 @@ public class Ghast extends FlyingMob implements Enemy {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.ghastScale);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.ghastTakeDamageFromWater;
+ }
+
@Override
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
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 39367523621c330eda59905d1f2c129288a1026c..f2e838def533b524e0fc7c20095e4bb1bfd35f07 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
@@ -49,6 +49,11 @@ public class Giant extends Monster {
}
}
+ @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 9904f9b79913ae2ee1d2fb26b03606c47fbbb730..9038501f4b7a0cd1ca1e65892ca537358a896c18 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -96,6 +96,11 @@ public class Guardian extends Monster {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.guardianScale);
}
+ @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 6673c0bff3a4e3d11a09e9dc8aeb0c2418dc7f59..cb96bd5769159e6c25968673ea07cd6d107cff46 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -64,6 +64,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) && (MobSpawnType.isSpawner(spawnReason) || 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 4c73f5d2746dbb4d3689ff24a46951505c3419d2..3eaa9cb4b343a17c9bf6efb92c866871d11e7975 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -82,6 +82,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.illusionerScale);
}
+ @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 7769faef7606afca7de8a11fd82a7c3cc61f0b32..f81c09aa7673703e97ac4c39caaf25fac05e3de8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
@@ -66,6 +66,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, 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 88725e6f8c6490253e110485f5a62e9d3d2c9aa9..554e01cf4fb3b15549c8c381274014c4735e08c6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -136,6 +136,11 @@ public class Phantom extends FlyingMob implements Enemy {
}
// Purpur end
+ @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 a8f9f8fac9786b140090b90f34a31ec227cd0b3d..67e6646f68bd2ff47cfd581d2167240309cfeac5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
@@ -85,6 +85,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.pillagerScale);
}
+ @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 5d9e85b22c0fe8d0b9d9fc06fc1f3cd170931e17..30aee88ab5fd1e849780903083c2c95dd4e392aa 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -98,6 +98,11 @@ public class Ravager extends Raider {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.ravagerScale);
}
+ @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 f746e4002dbd2f10d04fcecdbc488a8152efc171..bd4f2297b2267ab99c0419417f37898dd943480b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -120,6 +120,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.shulkerScale);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.shulkerTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
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 4325dc4889fb4c514798b85ef4d06725b0c5faa7..dfdb552ee9c70c0d7dfb93d7382a65a43d208d7f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
@@ -68,6 +68,11 @@ public class Silverfish extends Monster {
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.silverfishAttackDamage);
}
+ @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 ff42908b1204af4694761e84b1b29a658ea5bcef..1d90b5820c6bb923da6b1de7ac714607df6f9630 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -49,6 +49,13 @@ public class Skeleton extends AbstractSkeleton {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.skeletonMaxHealth);
}
+ // Purpur start
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.skeletonTakeDamageFromWater;
+ }
+ // Purpur end
+
@Override
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
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 d7d16e091f25db68d22b0609f5a16360604e8cd7..69d7594a7495cfefdd32a409b2bc71c0958556d0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -77,6 +77,11 @@ public class Slime extends Mob implements Enemy {
return level().purpurConfig.slimeRidable;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.slimeTakeDamageFromWater;
+ }
+
@Override
public boolean dismountsUnderwater() {
return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.slimeRidableInWater;
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 472c271352aa80c6af497c8b913c034afd2f65a6..dc832c9d3ef797580785b2b61abbb93b629cb80e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -74,6 +74,11 @@ public class Spider extends Monster {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.spiderScale);
}
+ @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 ead3b59c853334cef8ad3ac38c928a5b9ebb7728..4ad1ae059efa6de5bbcf34a28fe398667cbd97f7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Stray.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Stray.java
@@ -44,6 +44,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 d534eaa9231602f8fa73d0230223f08348aae95b..a4d94f15e7c7eb90cf5f11f3cec2b19c6f0ba514 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -91,7 +91,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(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur
this.setPathfindingMalus(PathType.LAVA, 0.0F);
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
@@ -443,7 +443,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 ffa4107ec80f153f37221657a1d3aec26819a4c6..1071905ef1fa813f3f43a3e7fce9a295a10c2c5c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vex.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java
@@ -108,6 +108,11 @@ public class Vex extends Monster implements TraceableEntity {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.vexMaxHealth);
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.vexScale);
}
+
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.vexTakeDamageFromWater;
+ }
// Purpur end
@Override
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 f8c2911496aa18e8e2b589309e9cdd78d679f004..7708ed356f9718852b08cb666e165c0d40180448 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -76,6 +76,11 @@ public class Vindicator extends AbstractIllager {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.vindicatorScale);
}
+ @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 24dea8eac5db45f6d3b1851b83cb33cfa9d5c578..2dc3817ac26eb8dcf09b414d3e186434ac8a3cd3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -79,6 +79,11 @@ public class Witch extends Raider implements RangedAttackMob {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.witchScale);
}
+ @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 f0ede7c7734d43aa4d15734a2e0b8bf539151673..da310c5d76c157b23925de97ffe337a9d7da2afe 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -56,6 +56,11 @@ public class WitherSkeleton extends AbstractSkeleton {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.witherSkeletonScale);
}
+ @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 28c400e1d8b56d1dd91d41a30b12543b242eadf9..3c9c32f09b3c60b52cd2e678e3c9e328156d44d0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
@@ -102,6 +102,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.zoglinScale);
}
+ @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 21e0028ad33f8de0211dd733d98a00af8461684b..e6321e1c5ed453824de4af629feff272e24def01 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -143,6 +143,11 @@ public class Zombie extends Monster {
return level().purpurConfig.zombieJockeyTryExistingChickens;
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombieTakeDamageFromWater;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
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 cdf6753b6bb2bbb4f3ab21792bd3153988b26b75..3c4cff3f095cdf2dd74df7bf4bb8f3d5600b342d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -110,6 +110,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level().purpurConfig.zombieVillagerSpawnReinforcements);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombieVillagerTakeDamageFromWater;
+ }
+
@Override
public boolean jockeyOnlyBaby() {
return level().purpurConfig.zombieVillagerJockeyOnlyBaby;
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 2756319fd1e53eca6a3dfa094d7c669014c383e9..f2081f3b4a4bbda071cfc5c714d887ff2de96148 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -86,6 +86,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.zombifiedPiglinScale);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.zombifiedPiglinTakeDamageFromWater;
+ }
+
@Override
public boolean jockeyOnlyBaby() {
return level().purpurConfig.zombifiedPiglinJockeyOnlyBaby;
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 1bd16c9243df4500b9d965ba260f7dd1382261ea..4c6db2e685b204e55b8be7bfb666d25ae81c17c7 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
@@ -118,6 +118,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() {
return true;
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 1084252852676a747cc05849fe2567dbcbc6a359..d8cf4a12964d77f9e9e6652a827863da77b37750 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
@@ -116,6 +116,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.piglinScale);
}
+ @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 ea62ab46518647759bd8ce3e4f3d5ced680414bd..db8c029799215223d7a594dbb945d6aa7966e67a 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
@@ -85,6 +85,11 @@ public class PiglinBrute extends AbstractPiglin {
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.piglinBruteScale);
}
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.piglinBruteTakeDamageFromWater;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0).add(Attributes.MOVEMENT_SPEED, 0.35F).add(Attributes.ATTACK_DAMAGE, 7.0);
}
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 3d34f4ab1e81645d45441589c253544900fc8ec7..5ae9fd76b7c654887171a68e182b783a5192b9e2 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -190,6 +190,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
}
+ @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 0d5e828a7fb6fd6facc04a27175541ac463c918e..05c63eb6cf8a7067105c58d244c7cc27d6bf1125 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -98,6 +98,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth);
}
+ @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 17a57de1513c635640167b90334aca6cb3384a8d..75d45b1c9eb9ad15154454802bc5526fb8e50d27 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -584,12 +584,14 @@ public class PurpurWorldConfig {
public double axolotlMaxHealth = 14.0D;
public double axolotlScale = 1.0D;
public int axolotlBreedingTicks = 6000;
+ public boolean axolotlTakeDamageFromWater = false;
private void axolotlSettings() {
axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable);
axolotlControllable = getBoolean("mobs.axolotl.controllable", axolotlControllable);
axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth);
axolotlScale = Mth.clamp(getDouble("mobs.axolotl.attributes.scale", axolotlScale), 0.0625D, 16.0D);
axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks);
+ axolotlTakeDamageFromWater = getBoolean("mobs.axolotl.takes-damage-from-water", axolotlTakeDamageFromWater);
}
public boolean batRidable = false;
@@ -605,6 +607,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() {
batRidable = getBoolean("mobs.bat.ridable", batRidable);
batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater);
@@ -624,6 +627,7 @@ 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 boolean beeRidable = false;
@@ -633,6 +637,7 @@ public class PurpurWorldConfig {
public double beeMaxHealth = 10.0D;
public double beeScale = 1.0D;
public int beeBreedingTicks = 6000;
+ public boolean beeTakeDamageFromWater = false;
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -646,6 +651,7 @@ public class PurpurWorldConfig {
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeScale = Mth.clamp(getDouble("mobs.bee.attributes.scale", beeScale), 0.0625D, 16.0D);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
+ beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);
}
public boolean blazeRidable = false;
@@ -654,6 +660,7 @@ public class PurpurWorldConfig {
public double blazeMaxY = 320D;
public double blazeMaxHealth = 20.0D;
public double blazeScale = 1.0D;
+ public boolean blazeTakeDamageFromWater = true;
private void blazeSettings() {
blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable);
blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater);
@@ -666,6 +673,7 @@ public class PurpurWorldConfig {
}
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
blazeScale = Mth.clamp(getDouble("mobs.blaze.attributes.scale", blazeScale), 0.0625D, 16.0D);
+ blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater);
}
public boolean boggedRidable = false;
@@ -710,6 +718,7 @@ public class PurpurWorldConfig {
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
public DyeColor catDefaultCollarColor = DyeColor.RED;
+ public boolean catTakeDamageFromWater = false;
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -730,6 +739,7 @@ public class PurpurWorldConfig {
} catch (IllegalArgumentException ignore) {
catDefaultCollarColor = DyeColor.RED;
}
+ catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater);
}
public boolean caveSpiderRidable = false;
@@ -737,6 +747,7 @@ public class PurpurWorldConfig {
public boolean caveSpiderControllable = true;
public double caveSpiderMaxHealth = 12.0D;
public double caveSpiderScale = 1.0D;
+ public boolean caveSpiderTakeDamageFromWater = false;
private void caveSpiderSettings() {
caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable);
caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater);
@@ -748,6 +759,7 @@ public class PurpurWorldConfig {
}
caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
caveSpiderScale = Mth.clamp(getDouble("mobs.cave_spider.attributes.scale", caveSpiderScale), 0.0625D, 16.0D);
+ caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater);
}
public boolean chickenRidable = false;
@@ -757,6 +769,7 @@ public class PurpurWorldConfig {
public double chickenScale = 1.0D;
public boolean chickenRetaliate = false;
public int chickenBreedingTicks = 6000;
+ public boolean chickenTakeDamageFromWater = false;
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -770,12 +783,14 @@ public class PurpurWorldConfig {
chickenScale = Mth.clamp(getDouble("mobs.chicken.attributes.scale", chickenScale), 0.0625D, 16.0D);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
+ chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater);
}
public boolean codRidable = false;
public boolean codControllable = true;
public double codMaxHealth = 3.0D;
public double codScale = 1.0D;
+ public boolean codTakeDamageFromWater = false;
private void codSettings() {
codRidable = getBoolean("mobs.cod.ridable", codRidable);
codControllable = getBoolean("mobs.cod.controllable", codControllable);
@@ -786,6 +801,7 @@ public class PurpurWorldConfig {
}
codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
codScale = Mth.clamp(getDouble("mobs.cod.attributes.scale", codScale), 0.0625D, 16.0D);
+ codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater);
}
public boolean cowRidable = false;
@@ -795,6 +811,7 @@ public class PurpurWorldConfig {
public double cowScale = 1.0D;
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
+ public boolean cowTakeDamageFromWater = false;
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -808,6 +825,7 @@ public class PurpurWorldConfig {
cowScale = Mth.clamp(getDouble("mobs.cow.attributes.scale", cowScale), 0.0625D, 16.0D);
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 boolean creeperRidable = false;
@@ -818,6 +836,7 @@ public class PurpurWorldConfig {
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
+ public boolean creeperTakeDamageFromWater = false;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -832,6 +851,7 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
+ creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
}
public boolean dolphinRidable = false;
@@ -842,6 +862,7 @@ public class PurpurWorldConfig {
public double dolphinMaxHealth = 10.0D;
public double dolphinScale = 1.0D;
public boolean dolphinDisableTreasureSearching = false;
+ public boolean dolphinTakeDamageFromWater = false;
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -856,6 +877,7 @@ public class PurpurWorldConfig {
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinScale = Mth.clamp(getDouble("mobs.dolphin.attributes.scale", dolphinScale), 0.0625D, 16.0D);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
+ dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);
}
public boolean donkeyRidableInWater = false;
@@ -866,6 +888,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() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -882,6 +905,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 boolean drownedRidable = false;
@@ -893,6 +917,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyOnlyBaby = true;
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
+ public boolean drownedTakeDamageFromWater = false;
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -908,12 +933,14 @@ 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 boolean elderGuardianRidable = false;
public boolean elderGuardianControllable = true;
public double elderGuardianMaxHealth = 80.0D;
public double elderGuardianScale = 1.0D;
+ public boolean elderGuardianTakeDamageFromWater = false;
private void elderGuardianSettings() {
elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable);
elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable);
@@ -924,6 +951,7 @@ public class PurpurWorldConfig {
}
elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
elderGuardianScale = Mth.clamp(getDouble("mobs.elder_guardian.attributes.scale", elderGuardianScale), 0.0625D, 16.0D);
+ elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater);
}
public boolean enderDragonRidable = false;
@@ -933,6 +961,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
+ public boolean enderDragonTakeDamageFromWater = false;
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -950,6 +979,7 @@ public class PurpurWorldConfig {
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
+ enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater);
}
public boolean endermanRidable = false;
@@ -960,6 +990,7 @@ public class PurpurWorldConfig {
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
+ public boolean endermanTakeDamageFromWater = true;
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -974,6 +1005,7 @@ public class PurpurWorldConfig {
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
+ endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
}
public boolean endermiteRidable = false;
@@ -981,6 +1013,7 @@ public class PurpurWorldConfig {
public boolean endermiteControllable = true;
public double endermiteMaxHealth = 8.0D;
public double endermiteScale = 1.0D;
+ public boolean endermiteTakeDamageFromWater = false;
private void endermiteSettings() {
endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable);
endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater);
@@ -992,6 +1025,7 @@ public class PurpurWorldConfig {
}
endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
endermiteScale = Mth.clamp(getDouble("mobs.endermite.attributes.scale", endermiteScale), 0.0625D, 16.0D);
+ endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater);
}
public boolean evokerRidable = false;
@@ -1000,6 +1034,7 @@ public class PurpurWorldConfig {
public double evokerMaxHealth = 24.0D;
public double evokerScale = 1.0D;
public boolean evokerBypassMobGriefing = false;
+ public boolean evokerTakeDamageFromWater = false;
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -1012,6 +1047,7 @@ public class PurpurWorldConfig {
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerScale = Mth.clamp(getDouble("mobs.evoker.attributes.scale", evokerScale), 0.0625D, 16.0D);
evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing);
+ evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater);
}
public boolean foxRidable = false;
@@ -1022,6 +1058,7 @@ public class PurpurWorldConfig {
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
public boolean foxBypassMobGriefing = false;
+ public boolean foxTakeDamageFromWater = false;
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -1036,6 +1073,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 boolean frogRidable = false;
@@ -1057,6 +1095,7 @@ public class PurpurWorldConfig {
public double ghastMaxY = 320D;
public double ghastMaxHealth = 10.0D;
public double ghastScale = 1.0D;
+ public boolean ghastTakeDamageFromWater = false;
private void ghastSettings() {
ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable);
ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater);
@@ -1069,6 +1108,7 @@ public class PurpurWorldConfig {
}
ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
ghastScale = Mth.clamp(getDouble("mobs.ghast.attributes.scale", ghastScale), 0.0625D, 16.0D);
+ ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater);
}
public boolean giantRidable = false;
@@ -1082,6 +1122,7 @@ public class PurpurWorldConfig {
public float giantJumpHeight = 1.0F;
public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false;
+ public boolean giantTakeDamageFromWater = false;
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -1103,6 +1144,7 @@ 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 boolean glowSquidRidable = false;
@@ -1110,12 +1152,14 @@ public class PurpurWorldConfig {
public double glowSquidMaxHealth = 10.0D;
public double glowSquidScale = 1.0D;
public boolean glowSquidsCanFly = false;
+ public boolean glowSquidTakeDamageFromWater = false;
private void glowSquidSettings() {
glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable);
glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable);
glowSquidMaxHealth = getDouble("mobs.glow_squid.attributes.max_health", glowSquidMaxHealth);
glowSquidScale = Mth.clamp(getDouble("mobs.glow_squid.attributes.scale", glowSquidScale), 0.0625D, 16.0D);
glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly);
+ glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater);
}
public boolean goatRidable = false;
@@ -1124,6 +1168,7 @@ public class PurpurWorldConfig {
public double goatMaxHealth = 10.0D;
public double goatScale = 1.0D;
public int goatBreedingTicks = 6000;
+ public boolean goatTakeDamageFromWater = false;
private void goatSettings() {
goatRidable = getBoolean("mobs.goat.ridable", goatRidable);
goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater);
@@ -1131,12 +1176,14 @@ public class PurpurWorldConfig {
goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth);
goatScale = Mth.clamp(getDouble("mobs.goat.attributes.scale", goatScale), 0.0625D, 16.0D);
goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks);
+ goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater);
}
public boolean guardianRidable = false;
public boolean guardianControllable = true;
public double guardianMaxHealth = 30.0D;
public double guardianScale = 1.0D;
+ public boolean guardianTakeDamageFromWater = false;
private void guardianSettings() {
guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable);
guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable);
@@ -1147,6 +1194,7 @@ public class PurpurWorldConfig {
}
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
guardianScale = Mth.clamp(getDouble("mobs.guardian.attributes.scale", guardianScale), 0.0625D, 16.0D);
+ guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
}
public boolean hoglinRidable = false;
@@ -1155,6 +1203,7 @@ public class PurpurWorldConfig {
public double hoglinMaxHealth = 40.0D;
public double hoglinScale = 1.0D;
public int hoglinBreedingTicks = 6000;
+ public boolean hoglinTakeDamageFromWater = false;
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -1167,6 +1216,7 @@ public class PurpurWorldConfig {
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinScale = Mth.clamp(getDouble("mobs.hoglin.attributes.scale", hoglinScale), 0.0625D, 16.0D);
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
+ hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater);
}
public boolean horseRidableInWater = false;
@@ -1177,6 +1227,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() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1193,6 +1244,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 boolean huskRidable = false;
@@ -1204,6 +1256,7 @@ public class PurpurWorldConfig {
public boolean huskJockeyOnlyBaby = true;
public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true;
+ public boolean huskTakeDamageFromWater = false;
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -1219,6 +1272,7 @@ public class PurpurWorldConfig {
huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby);
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
+ huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater);
}
public boolean illusionerRidable = false;
@@ -1228,6 +1282,7 @@ public class PurpurWorldConfig {
public double illusionerFollowRange = 18.0D;
public double illusionerMaxHealth = 32.0D;
public double illusionerScale = 1.0D;
+ public boolean illusionerTakeDamageFromWater = false;
private void illusionerSettings() {
illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable);
illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater);
@@ -1245,6 +1300,7 @@ public class PurpurWorldConfig {
}
illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
illusionerScale = Mth.clamp(getDouble("mobs.illusioner.attributes.scale", illusionerScale), 0.0625D, 16.0D);
+ illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater);
}
public boolean ironGolemRidable = false;
@@ -1253,6 +1309,7 @@ public class PurpurWorldConfig {
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
public double ironGolemScale = 1.0D;
+ public boolean ironGolemTakeDamageFromWater = false;
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1265,6 +1322,7 @@ public class PurpurWorldConfig {
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemScale = Mth.clamp(getDouble("mobs.iron_golem.attributes.scale", ironGolemScale), 0.0625D, 16.0D);
+ ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
}
public boolean llamaRidable = false;
@@ -1277,6 +1335,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);
@@ -1295,6 +1354,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
+ llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);
}
public boolean magmaCubeRidable = false;
@@ -1304,6 +1364,7 @@ public class PurpurWorldConfig {
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() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@@ -1317,6 +1378,7 @@ 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 boolean mooshroomRidable = false;
@@ -1325,6 +1387,7 @@ public class PurpurWorldConfig {
public double mooshroomMaxHealth = 10.0D;
public double mooshroomScale = 1.0D;
public int mooshroomBreedingTicks = 6000;
+ public boolean mooshroomTakeDamageFromWater = false;
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1337,6 +1400,7 @@ public class PurpurWorldConfig {
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomScale = Mth.clamp(getDouble("mobs.mooshroom.attributes.scale", mooshroomScale), 0.0625D, 16.0D);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
+ mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater);
}
public boolean muleRidableInWater = false;
@@ -1347,6 +1411,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() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1363,6 +1428,7 @@ public class PurpurWorldConfig {
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
+ muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater);
}
public boolean ocelotRidable = false;
@@ -1371,6 +1437,7 @@ public class PurpurWorldConfig {
public double ocelotMaxHealth = 10.0D;
public double ocelotScale = 1.0D;
public int ocelotBreedingTicks = 6000;
+ public boolean ocelotTakeDamageFromWater = false;
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1383,6 +1450,7 @@ public class PurpurWorldConfig {
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotScale = Mth.clamp(getDouble("mobs.ocelot.attributes.scale", ocelotScale), 0.0625D, 16.0D);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
+ ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
}
public boolean pandaRidable = false;
@@ -1391,6 +1459,7 @@ public class PurpurWorldConfig {
public double pandaMaxHealth = 20.0D;
public double pandaScale = 1.0D;
public int pandaBreedingTicks = 6000;
+ public boolean pandaTakeDamageFromWater = false;
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1403,6 +1472,7 @@ public class PurpurWorldConfig {
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaScale = Mth.clamp(getDouble("mobs.panda.attributes.scale", pandaScale), 0.0625D, 16.0D);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
+ pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater);
}
public boolean parrotRidable = false;
@@ -1411,6 +1481,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 320D;
public double parrotMaxHealth = 6.0D;
public double parrotScale = 1.0D;
+ public boolean parrotTakeDamageFromWater = false;
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1423,6 +1494,7 @@ public class PurpurWorldConfig {
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotScale = Mth.clamp(getDouble("mobs.parrot.attributes.scale", parrotScale), 0.0625D, 16.0D);
+ parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);
}
public boolean phantomRidable = false;
@@ -1449,6 +1521,7 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
+ public boolean phantomTakeDamageFromWater = false;
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1483,6 +1556,7 @@ public class PurpurWorldConfig {
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
+ phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
}
public boolean pigRidable = false;
@@ -1492,6 +1566,7 @@ public class PurpurWorldConfig {
public double pigScale = 1.0D;
public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000;
+ public boolean pigTakeDamageFromWater = false;
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1505,6 +1580,7 @@ public class PurpurWorldConfig {
pigScale = Mth.clamp(getDouble("mobs.pig.attributes.scale", pigScale), 0.0625D, 16.0D);
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 boolean piglinRidable = false;
@@ -1513,6 +1589,7 @@ public class PurpurWorldConfig {
public double piglinMaxHealth = 16.0D;
public double piglinScale = 1.0D;
public boolean piglinBypassMobGriefing = false;
+ public boolean piglinTakeDamageFromWater = false;
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1525,6 +1602,7 @@ public class PurpurWorldConfig {
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinScale = Mth.clamp(getDouble("mobs.piglin.attributes.scale", piglinScale), 0.0625D, 16.0D);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
+ piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
}
public boolean piglinBruteRidable = false;
@@ -1532,6 +1610,7 @@ public class PurpurWorldConfig {
public boolean piglinBruteControllable = true;
public double piglinBruteMaxHealth = 50.0D;
public double piglinBruteScale = 1.0D;
+ public boolean piglinBruteTakeDamageFromWater = false;
private void piglinBruteSettings() {
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
@@ -1543,6 +1622,7 @@ public class PurpurWorldConfig {
}
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
piglinBruteScale = Mth.clamp(getDouble("mobs.piglin_brute.attributes.scale", piglinBruteScale), 0.0625D, 16.0D);
+ piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater);
}
public boolean pillagerRidable = false;
@@ -1551,6 +1631,7 @@ public class PurpurWorldConfig {
public double pillagerMaxHealth = 24.0D;
public double pillagerScale = 1.0D;
public boolean pillagerBypassMobGriefing = false;
+ public boolean pillagerTakeDamageFromWater = false;
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1563,6 +1644,7 @@ public class PurpurWorldConfig {
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerScale = Mth.clamp(getDouble("mobs.pillager.attributes.scale", pillagerScale), 0.0625D, 16.0D);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
+ pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater);
}
public boolean polarBearRidable = false;
@@ -1573,6 +1655,7 @@ public class PurpurWorldConfig {
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
+ public boolean polarBearTakeDamageFromWater = false;
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1588,12 +1671,14 @@ public class PurpurWorldConfig {
Item item = BuiltInRegistries.ITEM.get(ResourceLocation.parse(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 boolean pufferfishRidable = false;
public boolean pufferfishControllable = true;
public double pufferfishMaxHealth = 3.0D;
public double pufferfishScale = 1.0D;
+ public boolean pufferfishTakeDamageFromWater = false;
private void pufferfishSettings() {
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable);
@@ -1604,6 +1689,7 @@ public class PurpurWorldConfig {
}
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
pufferfishScale = Mth.clamp(getDouble("mobs.pufferfish.attributes.scale", pufferfishScale), 0.0625D, 16.0D);
+ pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater);
}
public boolean rabbitRidable = false;
@@ -1615,6 +1701,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false;
+ public boolean rabbitTakeDamageFromWater = false;
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1630,6 +1717,7 @@ public class PurpurWorldConfig {
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
+ rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater);
}
public boolean ravagerRidable = false;
@@ -1638,6 +1726,7 @@ public class PurpurWorldConfig {
public double ravagerMaxHealth = 100.0D;
public double ravagerScale = 1.0D;
public boolean ravagerBypassMobGriefing = false;
+ public boolean ravagerTakeDamageFromWater = false;
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1650,12 +1739,14 @@ public class PurpurWorldConfig {
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerScale = Mth.clamp(getDouble("mobs.ravager.attributes.scale", ravagerScale), 0.0625D, 16.0D);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
+ ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);
}
public boolean salmonRidable = false;
public boolean salmonControllable = true;
public double salmonMaxHealth = 3.0D;
public double salmonScale = 1.0D;
+ public boolean salmonTakeDamageFromWater = false;
private void salmonSettings() {
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable);
@@ -1666,6 +1757,7 @@ public class PurpurWorldConfig {
}
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
salmonScale = Mth.clamp(getDouble("mobs.salmon.attributes.scale", salmonScale), 0.0625D, 16.0D);
+ salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater);
}
public boolean sheepRidable = false;
@@ -1675,6 +1767,7 @@ public class PurpurWorldConfig {
public double sheepScale = 1.0D;
public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false;
+ public boolean sheepTakeDamageFromWater = false;
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1688,6 +1781,7 @@ public class PurpurWorldConfig {
sheepScale = Mth.clamp(getDouble("mobs.sheep.attributes.scale", sheepScale), 0.0625D, 16.0D);
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 boolean shulkerRidable = false;
@@ -1695,6 +1789,7 @@ public class PurpurWorldConfig {
public boolean shulkerControllable = true;
public double shulkerMaxHealth = 30.0D;
public double shulkerScale = 1.0D;
+ public boolean shulkerTakeDamageFromWater = false;
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1706,6 +1801,7 @@ public class PurpurWorldConfig {
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerScale = Mth.clamp(getDouble("mobs.shulker.attributes.scale", shulkerScale), 0.0625D, Shulker.MAX_SCALE);
+ shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);
}
public boolean silverfishRidable = false;
@@ -1716,6 +1812,7 @@ public class PurpurWorldConfig {
public double silverfishMovementSpeed = 0.25D;
public double silverfishAttackDamage = 1.0D;
public boolean silverfishBypassMobGriefing = false;
+ public boolean silverfishTakeDamageFromWater = false;
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1730,6 +1827,7 @@ public class PurpurWorldConfig {
silverfishMovementSpeed = getDouble("mobs.silverfish.attributes.movement_speed", silverfishMovementSpeed);
silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
+ silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater);
}
public boolean skeletonRidable = false;
@@ -1737,6 +1835,7 @@ public class PurpurWorldConfig {
public boolean skeletonControllable = true;
public double skeletonMaxHealth = 20.0D;
public double skeletonScale = 1.0D;
+ public boolean skeletonTakeDamageFromWater = false;
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -1748,6 +1847,7 @@ public class PurpurWorldConfig {
}
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonScale = Mth.clamp(getDouble("mobs.skeleton.attributes.scale", skeletonScale), 0.0625D, 16.0D);
+ skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
}
public boolean skeletonHorseRidable = false;
@@ -1759,6 +1859,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() {
skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable);
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
@@ -1775,6 +1876,7 @@ public class PurpurWorldConfig {
skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax);
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
+ skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater);
}
public boolean slimeRidable = false;
@@ -1784,6 +1886,7 @@ public class PurpurWorldConfig {
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() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@@ -1797,6 +1900,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 snowGolemRidable = false;
@@ -1811,6 +1915,7 @@ public class PurpurWorldConfig {
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
+ public boolean snowGolemTakeDamageFromWater = true;
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1829,6 +1934,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
+ snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater);
}
public boolean snifferRidable = false;
@@ -1853,6 +1959,7 @@ public class PurpurWorldConfig {
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false;
+ public boolean squidTakeDamageFromWater = false;
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1866,6 +1973,7 @@ 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 boolean spiderRidable = false;
@@ -1873,6 +1981,7 @@ public class PurpurWorldConfig {
public boolean spiderControllable = true;
public double spiderMaxHealth = 16.0D;
public double spiderScale = 1.0D;
+ public boolean spiderTakeDamageFromWater = false;
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -1884,6 +1993,7 @@ public class PurpurWorldConfig {
}
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
spiderScale = Mth.clamp(getDouble("mobs.spider.attributes.scale", spiderScale), 0.0625D, 16.0D);
+ spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
}
public boolean strayRidable = false;
@@ -1891,6 +2001,7 @@ public class PurpurWorldConfig {
public boolean strayControllable = true;
public double strayMaxHealth = 20.0D;
public double strayScale = 1.0D;
+ public boolean strayTakeDamageFromWater = false;
private void straySettings() {
strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
@@ -1902,6 +2013,7 @@ public class PurpurWorldConfig {
}
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
strayScale = Mth.clamp(getDouble("mobs.stray.attributes.scale", strayScale), 0.0625D, 16.0D);
+ strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater);
}
public boolean striderRidable = false;
@@ -1911,6 +2023,7 @@ public class PurpurWorldConfig {
public double striderScale = 1.0D;
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
+ public boolean striderTakeDamageFromWater = true;
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1924,6 +2037,7 @@ public class PurpurWorldConfig {
striderScale = Mth.clamp(getDouble("mobs.strider.attributes.scale", striderScale), 0.0625D, 16.0D);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
+ striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater);
}
public boolean tadpoleRidable = false;
@@ -1945,6 +2059,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() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1963,12 +2078,14 @@ 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 boolean tropicalFishRidable = false;
public boolean tropicalFishControllable = true;
public double tropicalFishMaxHealth = 3.0D;
public double tropicalFishScale = 1.0D;
+ public boolean tropicalFishTakeDamageFromWater = false;
private void tropicalFishSettings() {
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable);
@@ -1979,6 +2096,7 @@ public class PurpurWorldConfig {
}
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
tropicalFishScale = Mth.clamp(getDouble("mobs.tropical_fish.attributes.scale", tropicalFishScale), 0.0625D, 16.0D);
+ tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater);
}
public boolean turtleRidable = false;
@@ -1987,6 +2105,7 @@ public class PurpurWorldConfig {
public double turtleMaxHealth = 30.0D;
public double turtleScale = 1.0D;
public int turtleBreedingTicks = 6000;
+ public boolean turtleTakeDamageFromWater = false;
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1999,6 +2118,7 @@ public class PurpurWorldConfig {
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleScale = Mth.clamp(getDouble("mobs.turtle.attributes.scale", turtleScale), 0.0625D, 16.0D);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
+ turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater);
}
public boolean vexRidable = false;
@@ -2007,6 +2127,7 @@ public class PurpurWorldConfig {
public double vexMaxY = 320D;
public double vexMaxHealth = 14.0D;
public double vexScale = 1.0D;
+ public boolean vexTakeDamageFromWater = false;
private void vexSettings() {
vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
@@ -2019,6 +2140,7 @@ public class PurpurWorldConfig {
}
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
vexScale = Mth.clamp(getDouble("mobs.vex.attributes.scale", vexScale), 0.0625D, 16.0D);
+ vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater);
}
public boolean villagerRidable = false;
@@ -2033,6 +2155,7 @@ public class PurpurWorldConfig {
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
+ public boolean villagerTakeDamageFromWater = false;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2051,6 +2174,7 @@ public class PurpurWorldConfig {
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
+ villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
}
public boolean vindicatorRidable = false;
@@ -2059,6 +2183,7 @@ public class PurpurWorldConfig {
public double vindicatorMaxHealth = 24.0D;
public double vindicatorScale = 1.0D;
public double vindicatorJohnnySpawnChance = 0D;
+ public boolean vindicatorTakeDamageFromWater = false;
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -2071,6 +2196,7 @@ public class PurpurWorldConfig {
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorScale = Mth.clamp(getDouble("mobs.vindicator.attributes.scale", vindicatorScale), 0.0625D, 16.0D);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
+ vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater);
}
public boolean wanderingTraderRidable = false;
@@ -2080,6 +2206,7 @@ public class PurpurWorldConfig {
public double wanderingTraderScale = 1.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
+ public boolean wanderingTraderTakeDamageFromWater = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2093,6 +2220,7 @@ public class PurpurWorldConfig {
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
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 boolean wardenRidable = false;
@@ -2109,6 +2237,7 @@ public class PurpurWorldConfig {
public boolean witchControllable = true;
public double witchMaxHealth = 26.0D;
public double witchScale = 1.0D;
+ public boolean witchTakeDamageFromWater = false;
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -2120,6 +2249,7 @@ public class PurpurWorldConfig {
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
witchScale = Mth.clamp(getDouble("mobs.witch.attributes.scale", witchScale), 0.0625D, 16.0D);
+ witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater);
}
public boolean witherRidable = false;
@@ -2131,6 +2261,7 @@ public class PurpurWorldConfig {
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
+ public boolean witherTakeDamageFromWater = false;
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2150,6 +2281,7 @@ 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 boolean witherSkeletonRidable = false;
@@ -2157,6 +2289,7 @@ public class PurpurWorldConfig {
public boolean witherSkeletonControllable = true;
public double witherSkeletonMaxHealth = 20.0D;
public double witherSkeletonScale = 1.0D;
+ public boolean witherSkeletonTakeDamageFromWater = false;
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2168,6 +2301,7 @@ public class PurpurWorldConfig {
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
witherSkeletonScale = Mth.clamp(getDouble("mobs.wither_skeleton.attributes.scale", witherSkeletonScale), 0.0625D, 16.0D);
+ witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater);
}
public boolean wolfRidable = false;
@@ -2179,6 +2313,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
+ public boolean wolfTakeDamageFromWater = false;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2198,6 +2333,7 @@ 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 boolean zoglinRidable = false;
@@ -2205,6 +2341,7 @@ public class PurpurWorldConfig {
public boolean zoglinControllable = true;
public double zoglinMaxHealth = 40.0D;
public double zoglinScale = 1.0D;
+ public boolean zoglinTakeDamageFromWater = false;
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2216,6 +2353,7 @@ public class PurpurWorldConfig {
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
zoglinScale = Mth.clamp(getDouble("mobs.zoglin.attributes.scale", zoglinScale), 0.0625D, 16.0D);
+ zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater);
}
public boolean zombieRidable = false;
@@ -2229,6 +2367,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
+ public boolean zombieTakeDamageFromWater = false;
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2246,6 +2385,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 boolean zombieHorseRidable = false;
@@ -2258,6 +2398,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() {
zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable);
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
@@ -2275,6 +2416,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 boolean zombieVillagerRidable = false;
@@ -2286,6 +2428,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
+ public boolean zombieVillagerTakeDamageFromWater = false;
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2301,6 +2444,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 boolean zombifiedPiglinRidable = false;
@@ -2313,6 +2457,7 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
+ public boolean zombifiedPiglinTakeDamageFromWater = false;
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2329,5 +2474,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);
}
}