Prevent using values above 25 for kelp/vines max-growth-age

There is a hard limit of 25 coded into the blockstate on both the server and client. Values above this will cause crashes.

Fixes PaperMC/Paper#7143
This commit is contained in:
BillyGalbreath
2021-12-24 06:02:08 -06:00
parent 7665e3659b
commit 0623652013
2 changed files with 142 additions and 127 deletions

View File

@@ -131,10 +131,10 @@ index 35b2bad76c45b5a94ba7f2e9c7a8cfeb8c3f498b..913818656f058990270ed1e4303da1c4
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba..8d5525c7b7b867360d6e0b4222e8c2452790d994 100644 index 9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba..9938ec945282ec726f720abb140743f9bc1f1834 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -768,6 +768,26 @@ public class PurpurWorldConfig { @@ -768,6 +768,41 @@ public class PurpurWorldConfig {
composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess);
} }
@@ -146,16 +146,31 @@ index 9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba..8d5525c7b7b867360d6e0b4222e8c245
+ public int kelpMaxGrowthAge = 25; + public int kelpMaxGrowthAge = 25;
+ private void kelpSettings() { + private void kelpSettings() {
+ kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); + kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge);
+ if (kelpMaxGrowthAge > 25) {
+ kelpMaxGrowthAge = 25;
+ log(Level.WARNING, "blocks.kelp.max-growth-age is set to above maximum allowed value of 25");
+ log(Level.WARNING, "Using value of 25 anyway to prevent issues");
+ }
+ } + }
+ +
+ public int twistingVinesMaxGrowthAge = 25; + public int twistingVinesMaxGrowthAge = 25;
+ private void twistingVinesSettings() { + private void twistingVinesSettings() {
+ twistingVinesMaxGrowthAge = getInt("blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge); + twistingVinesMaxGrowthAge = getInt("blocks.twisting_vines.max-growth-age", twistingVinesMaxGrowthAge);
+ if (twistingVinesMaxGrowthAge > 25) {
+ twistingVinesMaxGrowthAge = 25;
+ log(Level.WARNING, "blocks.twisting_vines.max-growth-age is set to above maximum allowed value of 25");
+ log(Level.WARNING, "Using value of 25 anyway to prevent issues");
+ }
+ } + }
+ +
+ public int weepingVinesMaxGrowthAge = 25; + public int weepingVinesMaxGrowthAge = 25;
+ private void weepingVinesSettings() { + private void weepingVinesSettings() {
+ weepingVinesMaxGrowthAge = getInt("blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge); + weepingVinesMaxGrowthAge = getInt("blocks.weeping_vines.max-growth-age", weepingVinesMaxGrowthAge);
+ if (weepingVinesMaxGrowthAge > 25) {
+ weepingVinesMaxGrowthAge = 25;
+ log(Level.WARNING, "blocks.weeping_vines.max-growth-age is set to above maximum allowed value of 25");
+ log(Level.WARNING, "Using value of 25 anyway to prevent issues");
+ }
+ } + }
+ +
public boolean dispenserApplyCursedArmor = true; public boolean dispenserApplyCursedArmor = true;

View File

@@ -1157,10 +1157,10 @@ index 1a8df13b06b1ac5e5a7d63033b4a53261c779eda..8be025b735cea47ab3ce6c6b2aef052e
@Override @Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b92ed86b3 100644 index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f7debdeb6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -999,11 +999,13 @@ public class PurpurWorldConfig { @@ -1014,11 +1014,13 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false; public boolean axolotlRidable = false;
public double axolotlMaxHealth = 14.0D; public double axolotlMaxHealth = 14.0D;
public int axolotlBreedingTicks = 6000; public int axolotlBreedingTicks = 6000;
@@ -1174,7 +1174,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean batRidable = false; public boolean batRidable = false;
@@ -1018,6 +1020,7 @@ public class PurpurWorldConfig { @@ -1033,6 +1035,7 @@ public class PurpurWorldConfig {
public double batArmorToughness = 0.0D; public double batArmorToughness = 0.0D;
public double batAttackKnockback = 0.0D; public double batAttackKnockback = 0.0D;
public boolean batTakeDamageFromWater = false; public boolean batTakeDamageFromWater = false;
@@ -1182,7 +1182,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void batSettings() { private void batSettings() {
batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidable = getBoolean("mobs.bat.ridable", batRidable);
batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater);
@@ -1029,6 +1032,7 @@ public class PurpurWorldConfig { @@ -1044,6 +1047,7 @@ public class PurpurWorldConfig {
} }
batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth);
batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater);
@@ -1190,7 +1190,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean beeRidable = false; public boolean beeRidable = false;
@@ -1039,6 +1043,7 @@ public class PurpurWorldConfig { @@ -1054,6 +1058,7 @@ public class PurpurWorldConfig {
public boolean beeTakeDamageFromWater = false; public boolean beeTakeDamageFromWater = false;
public boolean beeCanWorkAtNight = false; public boolean beeCanWorkAtNight = false;
public boolean beeCanWorkInRain = false; public boolean beeCanWorkInRain = false;
@@ -1198,7 +1198,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void beeSettings() { private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -1053,6 +1058,7 @@ public class PurpurWorldConfig { @@ -1068,6 +1073,7 @@ public class PurpurWorldConfig {
beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);
beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
@@ -1206,7 +1206,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean blazeRidable = false; public boolean blazeRidable = false;
@@ -1060,6 +1066,7 @@ public class PurpurWorldConfig { @@ -1075,6 +1081,7 @@ public class PurpurWorldConfig {
public double blazeMaxY = 256D; public double blazeMaxY = 256D;
public double blazeMaxHealth = 20.0D; public double blazeMaxHealth = 20.0D;
public boolean blazeTakeDamageFromWater = true; public boolean blazeTakeDamageFromWater = true;
@@ -1214,7 +1214,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void blazeSettings() { private void blazeSettings() {
blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable);
blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater);
@@ -1071,6 +1078,7 @@ public class PurpurWorldConfig { @@ -1086,6 +1093,7 @@ public class PurpurWorldConfig {
} }
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater);
@@ -1222,7 +1222,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean catRidable = false; public boolean catRidable = false;
@@ -1082,6 +1090,7 @@ public class PurpurWorldConfig { @@ -1097,6 +1105,7 @@ public class PurpurWorldConfig {
public int catSpawnVillageScanRange = 48; public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000; public int catBreedingTicks = 6000;
public boolean catTakeDamageFromWater = false; public boolean catTakeDamageFromWater = false;
@@ -1230,7 +1230,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void catSettings() { private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -1101,12 +1110,14 @@ public class PurpurWorldConfig { @@ -1116,12 +1125,14 @@ public class PurpurWorldConfig {
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks);
catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater);
@@ -1245,7 +1245,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void caveSpiderSettings() { private void caveSpiderSettings() {
caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable);
caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater);
@@ -1117,6 +1128,7 @@ public class PurpurWorldConfig { @@ -1132,6 +1143,7 @@ public class PurpurWorldConfig {
} }
caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater);
@@ -1253,7 +1253,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean chickenRidable = false; public boolean chickenRidable = false;
@@ -1125,6 +1137,7 @@ public class PurpurWorldConfig { @@ -1140,6 +1152,7 @@ public class PurpurWorldConfig {
public boolean chickenRetaliate = false; public boolean chickenRetaliate = false;
public int chickenBreedingTicks = 6000; public int chickenBreedingTicks = 6000;
public boolean chickenTakeDamageFromWater = false; public boolean chickenTakeDamageFromWater = false;
@@ -1261,7 +1261,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void chickenSettings() { private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -1137,11 +1150,13 @@ public class PurpurWorldConfig { @@ -1152,11 +1165,13 @@ public class PurpurWorldConfig {
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater);
@@ -1275,7 +1275,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void codSettings() { private void codSettings() {
codRidable = getBoolean("mobs.cod.ridable", codRidable); codRidable = getBoolean("mobs.cod.ridable", codRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1151,6 +1166,7 @@ public class PurpurWorldConfig { @@ -1166,6 +1181,7 @@ public class PurpurWorldConfig {
} }
codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater);
@@ -1283,7 +1283,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean cowRidable = false; public boolean cowRidable = false;
@@ -1161,6 +1177,7 @@ public class PurpurWorldConfig { @@ -1176,6 +1192,7 @@ public class PurpurWorldConfig {
public boolean cowTakeDamageFromWater = false; public boolean cowTakeDamageFromWater = false;
public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersChance = 0.0D;
public double cowNaturallyAggressiveToPlayersDamage = 2.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D;
@@ -1291,7 +1291,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void cowSettings() { private void cowSettings() {
if (PurpurConfig.version < 22) { if (PurpurConfig.version < 22) {
double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance);
@@ -1180,6 +1197,7 @@ public class PurpurWorldConfig { @@ -1195,6 +1212,7 @@ public class PurpurWorldConfig {
cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater);
cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance);
cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage);
@@ -1299,7 +1299,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean creeperRidable = false; public boolean creeperRidable = false;
@@ -1191,6 +1209,7 @@ public class PurpurWorldConfig { @@ -1206,6 +1224,7 @@ public class PurpurWorldConfig {
public boolean creeperTakeDamageFromWater = false; public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false; public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false; public boolean creeperHealthRadius = false;
@@ -1307,7 +1307,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void creeperSettings() { private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1206,6 +1225,7 @@ public class PurpurWorldConfig { @@ -1221,6 +1240,7 @@ public class PurpurWorldConfig {
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
@@ -1315,7 +1315,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean dolphinRidable = false; public boolean dolphinRidable = false;
@@ -1216,6 +1236,7 @@ public class PurpurWorldConfig { @@ -1231,6 +1251,7 @@ public class PurpurWorldConfig {
public boolean dolphinDisableTreasureSearching = false; public boolean dolphinDisableTreasureSearching = false;
public boolean dolphinTakeDamageFromWater = false; public boolean dolphinTakeDamageFromWater = false;
public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D;
@@ -1323,7 +1323,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void dolphinSettings() { private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown);
@@ -1230,6 +1251,7 @@ public class PurpurWorldConfig { @@ -1245,6 +1266,7 @@ public class PurpurWorldConfig {
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);
dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance);
@@ -1331,7 +1331,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean donkeyRidableInWater = false; public boolean donkeyRidableInWater = false;
@@ -1241,6 +1263,7 @@ public class PurpurWorldConfig { @@ -1256,6 +1278,7 @@ public class PurpurWorldConfig {
public double donkeyMovementSpeedMax = 0.175D; public double donkeyMovementSpeedMax = 0.175D;
public int donkeyBreedingTicks = 6000; public int donkeyBreedingTicks = 6000;
public boolean donkeyTakeDamageFromWater = false; public boolean donkeyTakeDamageFromWater = false;
@@ -1339,7 +1339,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void donkeySettings() { private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1258,6 +1281,7 @@ public class PurpurWorldConfig { @@ -1273,6 +1296,7 @@ public class PurpurWorldConfig {
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater);
@@ -1347,7 +1347,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean drownedRidable = false; public boolean drownedRidable = false;
@@ -1269,6 +1293,7 @@ public class PurpurWorldConfig { @@ -1284,6 +1308,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyTryExistingChickens = true; public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false; public boolean drownedTakeDamageFromWater = false;
public boolean drownedBreakDoors = false; public boolean drownedBreakDoors = false;
@@ -1355,7 +1355,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void drownedSettings() { private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1284,11 +1309,13 @@ public class PurpurWorldConfig { @@ -1299,11 +1324,13 @@ public class PurpurWorldConfig {
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);
drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors);
@@ -1369,7 +1369,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void elderGuardianSettings() { private void elderGuardianSettings() {
elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1298,6 +1325,7 @@ public class PurpurWorldConfig { @@ -1313,6 +1340,7 @@ public class PurpurWorldConfig {
} }
elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater);
@@ -1377,7 +1377,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean enderDragonRidable = false; public boolean enderDragonRidable = false;
@@ -1340,6 +1368,7 @@ public class PurpurWorldConfig { @@ -1355,6 +1383,7 @@ public class PurpurWorldConfig {
public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanIgnorePlayerDragonHead = false;
public boolean endermanDisableStareAggro = false; public boolean endermanDisableStareAggro = false;
public boolean endermanIgnoreProjectiles = false; public boolean endermanIgnoreProjectiles = false;
@@ -1385,7 +1385,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void endermanSettings() { private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1362,12 +1391,14 @@ public class PurpurWorldConfig { @@ -1377,12 +1406,14 @@ public class PurpurWorldConfig {
endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead);
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles);
@@ -1400,7 +1400,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void endermiteSettings() { private void endermiteSettings() {
endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable);
endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater);
@@ -1378,6 +1409,7 @@ public class PurpurWorldConfig { @@ -1393,6 +1424,7 @@ public class PurpurWorldConfig {
} }
endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater);
@@ -1408,7 +1408,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean evokerRidable = false; public boolean evokerRidable = false;
@@ -1385,6 +1417,7 @@ public class PurpurWorldConfig { @@ -1400,6 +1432,7 @@ public class PurpurWorldConfig {
public double evokerMaxHealth = 24.0D; public double evokerMaxHealth = 24.0D;
public boolean evokerBypassMobGriefing = false; public boolean evokerBypassMobGriefing = false;
public boolean evokerTakeDamageFromWater = false; public boolean evokerTakeDamageFromWater = false;
@@ -1416,7 +1416,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void evokerSettings() { private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -1396,6 +1429,7 @@ public class PurpurWorldConfig { @@ -1411,6 +1444,7 @@ public class PurpurWorldConfig {
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing);
evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater);
@@ -1424,7 +1424,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean foxRidable = false; public boolean foxRidable = false;
@@ -1405,6 +1439,7 @@ public class PurpurWorldConfig { @@ -1420,6 +1454,7 @@ public class PurpurWorldConfig {
public int foxBreedingTicks = 6000; public int foxBreedingTicks = 6000;
public boolean foxBypassMobGriefing = false; public boolean foxBypassMobGriefing = false;
public boolean foxTakeDamageFromWater = false; public boolean foxTakeDamageFromWater = false;
@@ -1432,7 +1432,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void foxSettings() { private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -1418,6 +1453,7 @@ public class PurpurWorldConfig { @@ -1433,6 +1468,7 @@ public class PurpurWorldConfig {
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing);
foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater);
@@ -1440,7 +1440,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean ghastRidable = false; public boolean ghastRidable = false;
@@ -1425,6 +1461,7 @@ public class PurpurWorldConfig { @@ -1440,6 +1476,7 @@ public class PurpurWorldConfig {
public double ghastMaxY = 256D; public double ghastMaxY = 256D;
public double ghastMaxHealth = 10.0D; public double ghastMaxHealth = 10.0D;
public boolean ghastTakeDamageFromWater = false; public boolean ghastTakeDamageFromWater = false;
@@ -1448,7 +1448,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void ghastSettings() { private void ghastSettings() {
ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable);
ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater);
@@ -1436,6 +1473,7 @@ public class PurpurWorldConfig { @@ -1451,6 +1488,7 @@ public class PurpurWorldConfig {
} }
ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater);
@@ -1456,7 +1456,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean giantRidable = false; public boolean giantRidable = false;
@@ -1448,6 +1486,7 @@ public class PurpurWorldConfig { @@ -1463,6 +1501,7 @@ public class PurpurWorldConfig {
public boolean giantHaveAI = false; public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false; public boolean giantHaveHostileAI = false;
public boolean giantTakeDamageFromWater = false; public boolean giantTakeDamageFromWater = false;
@@ -1464,7 +1464,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void giantSettings() { private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -1468,17 +1507,20 @@ public class PurpurWorldConfig { @@ -1483,17 +1522,20 @@ public class PurpurWorldConfig {
giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI);
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater);
@@ -1485,7 +1485,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean goatRidable = false; public boolean goatRidable = false;
@@ -1486,17 +1528,20 @@ public class PurpurWorldConfig { @@ -1501,17 +1543,20 @@ public class PurpurWorldConfig {
public double goatMaxHealth = 10.0D; public double goatMaxHealth = 10.0D;
public int goatBreedingTicks = 6000; public int goatBreedingTicks = 6000;
public boolean goatTakeDamageFromWater = false; public boolean goatTakeDamageFromWater = false;
@@ -1506,7 +1506,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void guardianSettings() { private void guardianSettings() {
guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1506,6 +1551,7 @@ public class PurpurWorldConfig { @@ -1521,6 +1566,7 @@ public class PurpurWorldConfig {
} }
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
@@ -1514,7 +1514,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean forceHalloweenSeason = false; public boolean forceHalloweenSeason = false;
@@ -1520,6 +1566,7 @@ public class PurpurWorldConfig { @@ -1535,6 +1581,7 @@ public class PurpurWorldConfig {
public double hoglinMaxHealth = 40.0D; public double hoglinMaxHealth = 40.0D;
public int hoglinBreedingTicks = 6000; public int hoglinBreedingTicks = 6000;
public boolean hoglinTakeDamageFromWater = false; public boolean hoglinTakeDamageFromWater = false;
@@ -1522,7 +1522,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void hoglinSettings() { private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -1531,6 +1578,7 @@ public class PurpurWorldConfig { @@ -1546,6 +1593,7 @@ public class PurpurWorldConfig {
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater);
@@ -1530,7 +1530,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean horseRidableInWater = false; public boolean horseRidableInWater = false;
@@ -1543,6 +1591,7 @@ public class PurpurWorldConfig { @@ -1558,6 +1606,7 @@ public class PurpurWorldConfig {
public int horseBreedingTicks = 6000; public int horseBreedingTicks = 6000;
public boolean horseTakeDamageFromWater = false; public boolean horseTakeDamageFromWater = false;
public boolean horseStandWithRider = true; public boolean horseStandWithRider = true;
@@ -1538,7 +1538,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void horseSettings() { private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1561,6 +1610,7 @@ public class PurpurWorldConfig { @@ -1576,6 +1625,7 @@ public class PurpurWorldConfig {
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater);
horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider);
@@ -1546,7 +1546,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean huskRidable = false; public boolean huskRidable = false;
@@ -1571,6 +1621,7 @@ public class PurpurWorldConfig { @@ -1586,6 +1636,7 @@ public class PurpurWorldConfig {
public double huskJockeyChance = 0.05D; public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true; public boolean huskJockeyTryExistingChickens = true;
public boolean huskTakeDamageFromWater = false; public boolean huskTakeDamageFromWater = false;
@@ -1554,7 +1554,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void huskSettings() { private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -1585,6 +1636,7 @@ public class PurpurWorldConfig { @@ -1600,6 +1651,7 @@ public class PurpurWorldConfig {
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater);
@@ -1562,7 +1562,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean illusionerRidable = false; public boolean illusionerRidable = false;
@@ -1593,6 +1645,7 @@ public class PurpurWorldConfig { @@ -1608,6 +1660,7 @@ public class PurpurWorldConfig {
public double illusionerFollowRange = 18.0D; public double illusionerFollowRange = 18.0D;
public double illusionerMaxHealth = 32.0D; public double illusionerMaxHealth = 32.0D;
public boolean illusionerTakeDamageFromWater = false; public boolean illusionerTakeDamageFromWater = false;
@@ -1570,7 +1570,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void illusionerSettings() { private void illusionerSettings() {
illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable);
illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater);
@@ -1609,6 +1662,7 @@ public class PurpurWorldConfig { @@ -1624,6 +1677,7 @@ public class PurpurWorldConfig {
} }
illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater);
@@ -1578,7 +1578,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean ironGolemRidable = false; public boolean ironGolemRidable = false;
@@ -1617,6 +1671,7 @@ public class PurpurWorldConfig { @@ -1632,6 +1686,7 @@ public class PurpurWorldConfig {
public double ironGolemMaxHealth = 100.0D; public double ironGolemMaxHealth = 100.0D;
public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemTakeDamageFromWater = false;
public boolean ironGolemPoppyCalm = false; public boolean ironGolemPoppyCalm = false;
@@ -1586,7 +1586,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void ironGolemSettings() { private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1629,6 +1684,7 @@ public class PurpurWorldConfig { @@ -1644,6 +1699,7 @@ public class PurpurWorldConfig {
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm);
@@ -1594,7 +1594,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean llamaRidable = false; public boolean llamaRidable = false;
@@ -1642,6 +1698,7 @@ public class PurpurWorldConfig { @@ -1657,6 +1713,7 @@ public class PurpurWorldConfig {
public int llamaBreedingTicks = 6000; public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false; public boolean llamaTakeDamageFromWater = false;
public boolean llamaJoinCaravans = true; public boolean llamaJoinCaravans = true;
@@ -1602,7 +1602,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void llamaSettings() { private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1661,12 +1718,14 @@ public class PurpurWorldConfig { @@ -1676,12 +1733,14 @@ public class PurpurWorldConfig {
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);
llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans);
@@ -1617,7 +1617,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void magmaCubeSettings() { private void magmaCubeSettings() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@@ -1677,6 +1736,7 @@ public class PurpurWorldConfig { @@ -1692,6 +1751,7 @@ public class PurpurWorldConfig {
} }
magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth); magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth);
magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater);
@@ -1625,7 +1625,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean mooshroomRidable = false; public boolean mooshroomRidable = false;
@@ -1684,6 +1744,7 @@ public class PurpurWorldConfig { @@ -1699,6 +1759,7 @@ public class PurpurWorldConfig {
public double mooshroomMaxHealth = 10.0D; public double mooshroomMaxHealth = 10.0D;
public int mooshroomBreedingTicks = 6000; public int mooshroomBreedingTicks = 6000;
public boolean mooshroomTakeDamageFromWater = false; public boolean mooshroomTakeDamageFromWater = false;
@@ -1633,7 +1633,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void mooshroomSettings() { private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1695,6 +1756,7 @@ public class PurpurWorldConfig { @@ -1710,6 +1771,7 @@ public class PurpurWorldConfig {
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater);
@@ -1641,7 +1641,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean muleRidableInWater = false; public boolean muleRidableInWater = false;
@@ -1706,6 +1768,7 @@ public class PurpurWorldConfig { @@ -1721,6 +1783,7 @@ public class PurpurWorldConfig {
public double muleMovementSpeedMax = 0.175D; public double muleMovementSpeedMax = 0.175D;
public int muleBreedingTicks = 6000; public int muleBreedingTicks = 6000;
public boolean muleTakeDamageFromWater = false; public boolean muleTakeDamageFromWater = false;
@@ -1649,7 +1649,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void muleSettings() { private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1723,6 +1786,7 @@ public class PurpurWorldConfig { @@ -1738,6 +1801,7 @@ public class PurpurWorldConfig {
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater);
@@ -1657,7 +1657,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean ocelotRidable = false; public boolean ocelotRidable = false;
@@ -1730,6 +1794,7 @@ public class PurpurWorldConfig { @@ -1745,6 +1809,7 @@ public class PurpurWorldConfig {
public double ocelotMaxHealth = 10.0D; public double ocelotMaxHealth = 10.0D;
public int ocelotBreedingTicks = 6000; public int ocelotBreedingTicks = 6000;
public boolean ocelotTakeDamageFromWater = false; public boolean ocelotTakeDamageFromWater = false;
@@ -1665,7 +1665,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void ocelotSettings() { private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1741,6 +1806,7 @@ public class PurpurWorldConfig { @@ -1756,6 +1821,7 @@ public class PurpurWorldConfig {
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
@@ -1673,7 +1673,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean pandaRidable = false; public boolean pandaRidable = false;
@@ -1748,6 +1814,7 @@ public class PurpurWorldConfig { @@ -1763,6 +1829,7 @@ public class PurpurWorldConfig {
public double pandaMaxHealth = 20.0D; public double pandaMaxHealth = 20.0D;
public int pandaBreedingTicks = 6000; public int pandaBreedingTicks = 6000;
public boolean pandaTakeDamageFromWater = false; public boolean pandaTakeDamageFromWater = false;
@@ -1681,7 +1681,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void pandaSettings() { private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1759,6 +1826,7 @@ public class PurpurWorldConfig { @@ -1774,6 +1841,7 @@ public class PurpurWorldConfig {
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater);
@@ -1689,7 +1689,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean parrotRidable = false; public boolean parrotRidable = false;
@@ -1767,6 +1835,7 @@ public class PurpurWorldConfig { @@ -1782,6 +1850,7 @@ public class PurpurWorldConfig {
public double parrotMaxHealth = 6.0D; public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false; public boolean parrotTakeDamageFromWater = false;
public boolean parrotBreedable = false; public boolean parrotBreedable = false;
@@ -1697,7 +1697,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void parrotSettings() { private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1779,6 +1848,7 @@ public class PurpurWorldConfig { @@ -1794,6 +1863,7 @@ public class PurpurWorldConfig {
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);
parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable);
@@ -1705,7 +1705,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean phantomRidable = false; public boolean phantomRidable = false;
@@ -1808,6 +1878,7 @@ public class PurpurWorldConfig { @@ -1823,6 +1893,7 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true; public boolean phantomBurnInDaylight = true;
public boolean phantomTakeDamageFromWater = false; public boolean phantomTakeDamageFromWater = false;
@@ -1713,7 +1713,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void phantomSettings() { private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1841,6 +1912,7 @@ public class PurpurWorldConfig { @@ -1856,6 +1927,7 @@ public class PurpurWorldConfig {
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
@@ -1721,7 +1721,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean pigRidable = false; public boolean pigRidable = false;
@@ -1849,6 +1921,7 @@ public class PurpurWorldConfig { @@ -1864,6 +1936,7 @@ public class PurpurWorldConfig {
public boolean pigGiveSaddleBack = false; public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000; public int pigBreedingTicks = 6000;
public boolean pigTakeDamageFromWater = false; public boolean pigTakeDamageFromWater = false;
@@ -1729,7 +1729,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void pigSettings() { private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1861,6 +1934,7 @@ public class PurpurWorldConfig { @@ -1876,6 +1949,7 @@ public class PurpurWorldConfig {
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater);
@@ -1737,7 +1737,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean piglinRidable = false; public boolean piglinRidable = false;
@@ -1869,6 +1943,7 @@ public class PurpurWorldConfig { @@ -1884,6 +1958,7 @@ public class PurpurWorldConfig {
public boolean piglinBypassMobGriefing = false; public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false; public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000; public int piglinPortalSpawnModifier = 2000;
@@ -1745,7 +1745,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void piglinSettings() { private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1881,12 +1956,14 @@ public class PurpurWorldConfig { @@ -1896,12 +1971,14 @@ public class PurpurWorldConfig {
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
@@ -1760,7 +1760,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void piglinBruteSettings() { private void piglinBruteSettings() {
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
@@ -1897,6 +1974,7 @@ public class PurpurWorldConfig { @@ -1912,6 +1989,7 @@ public class PurpurWorldConfig {
} }
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater);
@@ -1768,7 +1768,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean pillagerRidable = false; public boolean pillagerRidable = false;
@@ -1904,6 +1982,7 @@ public class PurpurWorldConfig { @@ -1919,6 +1997,7 @@ public class PurpurWorldConfig {
public double pillagerMaxHealth = 24.0D; public double pillagerMaxHealth = 24.0D;
public boolean pillagerBypassMobGriefing = false; public boolean pillagerBypassMobGriefing = false;
public boolean pillagerTakeDamageFromWater = false; public boolean pillagerTakeDamageFromWater = false;
@@ -1776,7 +1776,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void pillagerSettings() { private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1915,6 +1994,7 @@ public class PurpurWorldConfig { @@ -1930,6 +2009,7 @@ public class PurpurWorldConfig {
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater);
@@ -1784,7 +1784,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean polarBearRidable = false; public boolean polarBearRidable = false;
@@ -1924,6 +2004,7 @@ public class PurpurWorldConfig { @@ -1939,6 +2019,7 @@ public class PurpurWorldConfig {
public Item polarBearBreedableItem = null; public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000; public int polarBearBreedingTicks = 6000;
public boolean polarBearTakeDamageFromWater = false; public boolean polarBearTakeDamageFromWater = false;
@@ -1792,7 +1792,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void polarBearSettings() { private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1938,11 +2019,13 @@ public class PurpurWorldConfig { @@ -1953,11 +2034,13 @@ public class PurpurWorldConfig {
if (item != Items.AIR) polarBearBreedableItem = item; if (item != Items.AIR) polarBearBreedableItem = item;
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater);
@@ -1806,7 +1806,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void pufferfishSettings() { private void pufferfishSettings() {
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -1952,6 +2035,7 @@ public class PurpurWorldConfig { @@ -1967,6 +2050,7 @@ public class PurpurWorldConfig {
} }
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater);
@@ -1814,7 +1814,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean rabbitRidable = false; public boolean rabbitRidable = false;
@@ -1962,6 +2046,7 @@ public class PurpurWorldConfig { @@ -1977,6 +2061,7 @@ public class PurpurWorldConfig {
public int rabbitBreedingTicks = 6000; public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false; public boolean rabbitBypassMobGriefing = false;
public boolean rabbitTakeDamageFromWater = false; public boolean rabbitTakeDamageFromWater = false;
@@ -1822,7 +1822,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void rabbitSettings() { private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1976,6 +2061,7 @@ public class PurpurWorldConfig { @@ -1991,6 +2076,7 @@ public class PurpurWorldConfig {
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater);
@@ -1830,7 +1830,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean ravagerRidable = false; public boolean ravagerRidable = false;
@@ -1984,6 +2070,7 @@ public class PurpurWorldConfig { @@ -1999,6 +2085,7 @@ public class PurpurWorldConfig {
public boolean ravagerBypassMobGriefing = false; public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false; public boolean ravagerTakeDamageFromWater = false;
public List<Block> ravagerGriefableBlocks = new ArrayList<>(); public List<Block> ravagerGriefableBlocks = new ArrayList<>();
@@ -1838,7 +1838,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void ravagerSettings() { private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -2012,11 +2099,13 @@ public class PurpurWorldConfig { @@ -2027,11 +2114,13 @@ public class PurpurWorldConfig {
ravagerGriefableBlocks.add(block); ravagerGriefableBlocks.add(block);
} }
}); });
@@ -1852,7 +1852,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void salmonSettings() { private void salmonSettings() {
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -2026,6 +2115,7 @@ public class PurpurWorldConfig { @@ -2041,6 +2130,7 @@ public class PurpurWorldConfig {
} }
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater);
@@ -1860,7 +1860,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean sheepRidable = false; public boolean sheepRidable = false;
@@ -2034,6 +2124,7 @@ public class PurpurWorldConfig { @@ -2049,6 +2139,7 @@ public class PurpurWorldConfig {
public int sheepBreedingTicks = 6000; public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false; public boolean sheepBypassMobGriefing = false;
public boolean sheepTakeDamageFromWater = false; public boolean sheepTakeDamageFromWater = false;
@@ -1868,7 +1868,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void sheepSettings() { private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -2046,6 +2137,7 @@ public class PurpurWorldConfig { @@ -2061,6 +2152,7 @@ public class PurpurWorldConfig {
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater);
@@ -1876,7 +1876,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean shulkerRidable = false; public boolean shulkerRidable = false;
@@ -2058,6 +2150,7 @@ public class PurpurWorldConfig { @@ -2073,6 +2165,7 @@ public class PurpurWorldConfig {
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerSpawnFromBulletRandomColor = false;
public boolean shulkerChangeColorWithDye = false; public boolean shulkerChangeColorWithDye = false;
@@ -1884,7 +1884,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void shulkerSettings() { private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2074,6 +2167,7 @@ public class PurpurWorldConfig { @@ -2089,6 +2182,7 @@ public class PurpurWorldConfig {
shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation);
shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor);
shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye);
@@ -1892,7 +1892,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean silverfishRidable = false; public boolean silverfishRidable = false;
@@ -2081,6 +2175,7 @@ public class PurpurWorldConfig { @@ -2096,6 +2190,7 @@ public class PurpurWorldConfig {
public double silverfishMaxHealth = 8.0D; public double silverfishMaxHealth = 8.0D;
public boolean silverfishBypassMobGriefing = false; public boolean silverfishBypassMobGriefing = false;
public boolean silverfishTakeDamageFromWater = false; public boolean silverfishTakeDamageFromWater = false;
@@ -1900,7 +1900,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void silverfishSettings() { private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -2092,12 +2187,14 @@ public class PurpurWorldConfig { @@ -2107,12 +2202,14 @@ public class PurpurWorldConfig {
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater);
@@ -1915,7 +1915,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void skeletonSettings() { private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2108,6 +2205,7 @@ public class PurpurWorldConfig { @@ -2123,6 +2220,7 @@ public class PurpurWorldConfig {
} }
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
@@ -1923,7 +1923,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean skeletonHorseRidableInWater = true; public boolean skeletonHorseRidableInWater = true;
@@ -2119,6 +2217,7 @@ public class PurpurWorldConfig { @@ -2134,6 +2232,7 @@ public class PurpurWorldConfig {
public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMin = 0.2D;
public double skeletonHorseMovementSpeedMax = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D;
public boolean skeletonHorseTakeDamageFromWater = false; public boolean skeletonHorseTakeDamageFromWater = false;
@@ -1931,7 +1931,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void skeletonHorseSettings() { private void skeletonHorseSettings() {
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
@@ -2135,6 +2234,7 @@ public class PurpurWorldConfig { @@ -2150,6 +2249,7 @@ public class PurpurWorldConfig {
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater);
@@ -1939,7 +1939,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean slimeRidable = false; public boolean slimeRidable = false;
@@ -2142,6 +2242,7 @@ public class PurpurWorldConfig { @@ -2157,6 +2257,7 @@ public class PurpurWorldConfig {
public String slimeMaxHealth = "size * size"; public String slimeMaxHealth = "size * size";
public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>(); public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
public boolean slimeTakeDamageFromWater = false; public boolean slimeTakeDamageFromWater = false;
@@ -1947,7 +1947,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void slimeSettings() { private void slimeSettings() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@@ -2153,6 +2254,7 @@ public class PurpurWorldConfig { @@ -2168,6 +2269,7 @@ public class PurpurWorldConfig {
slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth); slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth);
slimeMaxHealthCache.clear(); slimeMaxHealthCache.clear();
slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater);
@@ -1955,7 +1955,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean snowGolemRidable = false; public boolean snowGolemRidable = false;
@@ -2167,6 +2269,7 @@ public class PurpurWorldConfig { @@ -2182,6 +2284,7 @@ public class PurpurWorldConfig {
public double snowGolemAttackDistance = 1.25D; public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemBypassMobGriefing = false;
public boolean snowGolemTakeDamageFromWater = true; public boolean snowGolemTakeDamageFromWater = true;
@@ -1963,7 +1963,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void snowGolemSettings() { private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -2185,6 +2288,7 @@ public class PurpurWorldConfig { @@ -2200,6 +2303,7 @@ public class PurpurWorldConfig {
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater);
@@ -1971,7 +1971,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean squidRidable = false; public boolean squidRidable = false;
@@ -2193,6 +2297,7 @@ public class PurpurWorldConfig { @@ -2208,6 +2312,7 @@ public class PurpurWorldConfig {
public double squidOffsetWaterCheck = 0.0D; public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false; public boolean squidsCanFly = false;
public boolean squidTakeDamageFromWater = false; public boolean squidTakeDamageFromWater = false;
@@ -1979,7 +1979,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void squidSettings() { private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -2205,12 +2310,14 @@ public class PurpurWorldConfig { @@ -2220,12 +2325,14 @@ public class PurpurWorldConfig {
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater);
@@ -1994,7 +1994,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void spiderSettings() { private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -2221,12 +2328,14 @@ public class PurpurWorldConfig { @@ -2236,12 +2343,14 @@ public class PurpurWorldConfig {
} }
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
@@ -2009,7 +2009,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void straySettings() { private void straySettings() {
strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
@@ -2237,6 +2346,7 @@ public class PurpurWorldConfig { @@ -2252,6 +2361,7 @@ public class PurpurWorldConfig {
} }
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater);
@@ -2017,7 +2017,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean striderRidable = false; public boolean striderRidable = false;
@@ -2245,6 +2355,7 @@ public class PurpurWorldConfig { @@ -2260,6 +2370,7 @@ public class PurpurWorldConfig {
public int striderBreedingTicks = 6000; public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false; public boolean striderGiveSaddleBack = false;
public boolean striderTakeDamageFromWater = true; public boolean striderTakeDamageFromWater = true;
@@ -2025,7 +2025,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void striderSettings() { private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -2257,6 +2368,7 @@ public class PurpurWorldConfig { @@ -2272,6 +2383,7 @@ public class PurpurWorldConfig {
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater);
@@ -2033,7 +2033,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean traderLlamaRidable = false; public boolean traderLlamaRidable = false;
@@ -2269,6 +2381,7 @@ public class PurpurWorldConfig { @@ -2284,6 +2396,7 @@ public class PurpurWorldConfig {
public double traderLlamaMovementSpeedMax = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D;
public int traderLlamaBreedingTicks = 6000; public int traderLlamaBreedingTicks = 6000;
public boolean traderLlamaTakeDamageFromWater = false; public boolean traderLlamaTakeDamageFromWater = false;
@@ -2041,7 +2041,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void traderLlamaSettings() { private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -2287,11 +2400,13 @@ public class PurpurWorldConfig { @@ -2302,11 +2415,13 @@ public class PurpurWorldConfig {
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater);
@@ -2055,7 +2055,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void tropicalFishSettings() { private void tropicalFishSettings() {
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
if (PurpurConfig.version < 10) { if (PurpurConfig.version < 10) {
@@ -2301,6 +2416,7 @@ public class PurpurWorldConfig { @@ -2316,6 +2431,7 @@ public class PurpurWorldConfig {
} }
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater);
@@ -2063,7 +2063,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean turtleEggsBypassMobGriefing = false; public boolean turtleEggsBypassMobGriefing = false;
@@ -2316,6 +2432,7 @@ public class PurpurWorldConfig { @@ -2331,6 +2447,7 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBreakFromMinecarts = true;
public int turtleBreedingTicks = 6000; public int turtleBreedingTicks = 6000;
public boolean turtleTakeDamageFromWater = false; public boolean turtleTakeDamageFromWater = false;
@@ -2071,7 +2071,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void turtleEggSettings() { private void turtleEggSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -2330,6 +2447,7 @@ public class PurpurWorldConfig { @@ -2345,6 +2462,7 @@ public class PurpurWorldConfig {
turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater);
@@ -2079,7 +2079,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean vexRidable = false; public boolean vexRidable = false;
@@ -2337,6 +2455,7 @@ public class PurpurWorldConfig { @@ -2352,6 +2470,7 @@ public class PurpurWorldConfig {
public double vexMaxY = 256D; public double vexMaxY = 256D;
public double vexMaxHealth = 14.0D; public double vexMaxHealth = 14.0D;
public boolean vexTakeDamageFromWater = false; public boolean vexTakeDamageFromWater = false;
@@ -2087,7 +2087,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void vexSettings() { private void vexSettings() {
vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
@@ -2348,6 +2467,7 @@ public class PurpurWorldConfig { @@ -2363,6 +2482,7 @@ public class PurpurWorldConfig {
} }
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater);
@@ -2095,7 +2095,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean villagerRidable = false; public boolean villagerRidable = false;
@@ -2366,6 +2486,7 @@ public class PurpurWorldConfig { @@ -2381,6 +2501,7 @@ public class PurpurWorldConfig {
public boolean villagerBypassMobGriefing = false; public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false; public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true; public boolean villagerAllowTrading = true;
@@ -2103,7 +2103,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void villagerSettings() { private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2388,6 +2509,7 @@ public class PurpurWorldConfig { @@ -2403,6 +2524,7 @@ public class PurpurWorldConfig {
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
@@ -2111,7 +2111,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean vindicatorRidable = false; public boolean vindicatorRidable = false;
@@ -2395,6 +2517,7 @@ public class PurpurWorldConfig { @@ -2410,6 +2532,7 @@ public class PurpurWorldConfig {
public double vindicatorMaxHealth = 24.0D; public double vindicatorMaxHealth = 24.0D;
public double vindicatorJohnnySpawnChance = 0D; public double vindicatorJohnnySpawnChance = 0D;
public boolean vindicatorTakeDamageFromWater = false; public boolean vindicatorTakeDamageFromWater = false;
@@ -2119,7 +2119,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void vindicatorSettings() { private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -2406,6 +2529,7 @@ public class PurpurWorldConfig { @@ -2421,6 +2544,7 @@ public class PurpurWorldConfig {
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater);
@@ -2127,7 +2127,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean wanderingTraderRidable = false; public boolean wanderingTraderRidable = false;
@@ -2415,6 +2539,7 @@ public class PurpurWorldConfig { @@ -2430,6 +2554,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderTakeDamageFromWater = false;
public boolean wanderingTraderAllowTrading = true; public boolean wanderingTraderAllowTrading = true;
@@ -2135,7 +2135,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void wanderingTraderSettings() { private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2428,12 +2553,14 @@ public class PurpurWorldConfig { @@ -2443,12 +2568,14 @@ public class PurpurWorldConfig {
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
@@ -2150,7 +2150,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void witchSettings() { private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -2444,6 +2571,7 @@ public class PurpurWorldConfig { @@ -2459,6 +2586,7 @@ public class PurpurWorldConfig {
} }
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater);
@@ -2158,7 +2158,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean witherRidable = false; public boolean witherRidable = false;
@@ -2457,6 +2585,7 @@ public class PurpurWorldConfig { @@ -2472,6 +2600,7 @@ public class PurpurWorldConfig {
public boolean witherCanRideVehicles = false; public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F; public float witherExplosionRadius = 1.0F;
public boolean witherPlaySpawnSound = true; public boolean witherPlaySpawnSound = true;
@@ -2166,7 +2166,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void witherSettings() { private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2478,12 +2607,14 @@ public class PurpurWorldConfig { @@ -2493,12 +2622,14 @@ public class PurpurWorldConfig {
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);
witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius);
witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound);
@@ -2181,7 +2181,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void witherSkeletonSettings() { private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2494,6 +2625,7 @@ public class PurpurWorldConfig { @@ -2509,6 +2640,7 @@ public class PurpurWorldConfig {
} }
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater);
@@ -2189,7 +2189,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean wolfRidable = false; public boolean wolfRidable = false;
@@ -2504,6 +2636,7 @@ public class PurpurWorldConfig { @@ -2519,6 +2651,7 @@ public class PurpurWorldConfig {
public double wolfNaturalRabid = 0.0D; public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000; public int wolfBreedingTicks = 6000;
public boolean wolfTakeDamageFromWater = false; public boolean wolfTakeDamageFromWater = false;
@@ -2197,7 +2197,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void wolfSettings() { private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2522,12 +2655,14 @@ public class PurpurWorldConfig { @@ -2537,12 +2670,14 @@ public class PurpurWorldConfig {
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater);
@@ -2212,7 +2212,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void zoglinSettings() { private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2538,6 +2673,7 @@ public class PurpurWorldConfig { @@ -2553,6 +2688,7 @@ public class PurpurWorldConfig {
} }
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater);
@@ -2220,7 +2220,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean zombieRidable = false; public boolean zombieRidable = false;
@@ -2550,6 +2686,7 @@ public class PurpurWorldConfig { @@ -2565,6 +2701,7 @@ public class PurpurWorldConfig {
public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false; public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false; public boolean zombieTakeDamageFromWater = false;
@@ -2228,7 +2228,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void zombieSettings() { private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2566,6 +2703,7 @@ public class PurpurWorldConfig { @@ -2581,6 +2718,7 @@ public class PurpurWorldConfig {
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
@@ -2236,7 +2236,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean zombieHorseRidableInWater = false; public boolean zombieHorseRidableInWater = false;
@@ -2578,6 +2716,7 @@ public class PurpurWorldConfig { @@ -2593,6 +2731,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D; public double zombieHorseSpawnChance = 0.0D;
public boolean zombieHorseTakeDamageFromWater = false; public boolean zombieHorseTakeDamageFromWater = false;
@@ -2244,7 +2244,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void zombieHorseSettings() { private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -2595,6 +2734,7 @@ public class PurpurWorldConfig { @@ -2610,6 +2749,7 @@ public class PurpurWorldConfig {
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater);
@@ -2252,7 +2252,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean zombieVillagerRidable = false; public boolean zombieVillagerRidable = false;
@@ -2608,6 +2748,7 @@ public class PurpurWorldConfig { @@ -2623,6 +2763,7 @@ public class PurpurWorldConfig {
public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000; public int zombieVillagerCuringTimeMax = 6000;
public boolean zombieVillagerCureEnabled = true; public boolean zombieVillagerCureEnabled = true;
@@ -2260,7 +2260,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void zombieVillagerSettings() { private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2625,6 +2766,7 @@ public class PurpurWorldConfig { @@ -2640,6 +2781,7 @@ public class PurpurWorldConfig {
zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin);
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled);
@@ -2268,7 +2268,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
} }
public boolean zombifiedPiglinRidable = false; public boolean zombifiedPiglinRidable = false;
@@ -2636,6 +2778,7 @@ public class PurpurWorldConfig { @@ -2651,6 +2793,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
public boolean zombifiedPiglinTakeDamageFromWater = false; public boolean zombifiedPiglinTakeDamageFromWater = false;
@@ -2276,7 +2276,7 @@ index 8d5525c7b7b867360d6e0b4222e8c2452790d994..f4dca5581c8d15963fd6d2cfa926737b
private void zombifiedPiglinSettings() { private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2651,6 +2794,7 @@ public class PurpurWorldConfig { @@ -2666,6 +2809,7 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);