Calm iron golem when fully healed

This commit is contained in:
BillyGalbreath
2022-01-23 19:08:13 -06:00
parent cb7bcb9686
commit b7cc693179
17 changed files with 151 additions and 140 deletions

View File

@@ -1,11 +1,11 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 13 May 2021 21:22:51 -0500
Subject: [PATCH] Iron golem poppy calms anger
Subject: [PATCH] Iron golem calm anger options
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..7d181c78b22b7ad03674df6ab7288a2215aa3708 100644
index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..1fcc7c27e905851871357423fc8185c882f838d8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -101,6 +101,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -16,23 +16,34 @@ index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..7d181c78b22b7ad03674df6ab7288a22
this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.0D, true));
this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F));
this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false));
@@ -313,6 +314,8 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
itemstack.shrink(1);
}
+ if (this.level.purpurConfig.ironGolemHealCalm && isAngry() && getHealth() == getMaxHealth()) stopBeingAngry(); // Purpur
+
return InteractionResult.sidedSuccess(this.level.isClientSide);
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6dfba9bbc2c25044e8c5a676259f439a2a5348ef..de6fbcff60def3596a29352b0324d04af9630819 100644
index 6dfba9bbc2c25044e8c5a676259f439a2a5348ef..55686e45f7d8a92c5363f411548157236543e36a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1344,6 +1344,7 @@ public class PurpurWorldConfig {
@@ -1344,6 +1344,8 @@ public class PurpurWorldConfig {
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
public boolean ironGolemTakeDamageFromWater = false;
+ public boolean ironGolemPoppyCalm = false;
+ public boolean ironGolemHealCalm = false;
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1356,6 +1357,7 @@ public class PurpurWorldConfig {
@@ -1356,6 +1358,8 @@ public class PurpurWorldConfig {
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
+ ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm);
+ ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm);
}
public boolean llamaRidable = false;

View File

@@ -50,10 +50,10 @@ index ee52e83375521fa41369161356802c305deb605d..d68bb48cf703a3ed0bf843d5c0ab9caa
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index de6fbcff60def3596a29352b0324d04af9630819..b398535d5b84c2c17d66296dff4b311f3ea110f4 100644
index 55686e45f7d8a92c5363f411548157236543e36a..90d0cbe43c6feffb3ab8d0c7be970a3a4219f869 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1512,6 +1512,7 @@ public class PurpurWorldConfig {
@@ -1514,6 +1514,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 320D;
public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index de6fbcff60def3596a29352b0324d04af9630819..b398535d5b84c2c17d66296dff4b311f
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1524,6 +1525,7 @@ public class PurpurWorldConfig {
@@ -1526,6 +1527,7 @@ public class PurpurWorldConfig {
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);

View File

@@ -61,10 +61,10 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a970b7721dc0ff0303a80fe83c8342ed762153b1..bc4939abd4b3c2fe5c9866759963b79a4318ce92 100644
index e6527157369e2babfbdfcf0cd3056ac0b450f4eb..7c4eac5536ee0577ff88bcf44c061448b7795a8d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1888,6 +1888,11 @@ public class PurpurWorldConfig {
@@ -1890,6 +1890,11 @@ public class PurpurWorldConfig {
public boolean shulkerControllable = true;
public double shulkerMaxHealth = 30.0D;
public boolean shulkerTakeDamageFromWater = false;
@@ -76,7 +76,7 @@ index a970b7721dc0ff0303a80fe83c8342ed762153b1..bc4939abd4b3c2fe5c9866759963b79a
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1899,6 +1904,11 @@ public class PurpurWorldConfig {
@@ -1901,6 +1906,11 @@ public class PurpurWorldConfig {
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 65421cfff05c0493f5fef1bdff03172c9e33f33e..63584faeec4e5013be7a377e3203ec16
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d3f73582dc2d732710ce6f6a2ca6a7f2353afe8e..cfda7bc71e1dc74636fdf57aa897c50bb0382535 100644
index 1821bee2b071804016db70c180741839ecef9ca6..10dcb1623caa995922bba0a96f73907e05772e9c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2522,4 +2522,9 @@ public class PurpurWorldConfig {
@@ -2524,4 +2524,9 @@ public class PurpurWorldConfig {
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
}

View File

@@ -24,7 +24,7 @@ index 02fc3ede12eadbf72e26e31b1c475c7f5b2ad73a..2288e727929ffb3a3bca138fb0289408
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5f8c3bb92cb1a43a2d74698c2801e8f79a0279f0..f31ea8c7e3354d890c593c2c1f10578d9b3748ed 100644
index 0b14878546df0217fa83eabfc26f6ede84f8ebb2..a755dbab717e6899d57558c7c7f0b17d40ce09fa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -691,6 +691,11 @@ public class PurpurWorldConfig {
@@ -39,7 +39,7 @@ index 5f8c3bb92cb1a43a2d74698c2801e8f79a0279f0..f31ea8c7e3354d890c593c2c1f10578d
public boolean chestOpenWithBlockOnTop = false;
private void chestSettings() {
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
@@ -2681,3 +2686,4 @@ public class PurpurWorldConfig {
@@ -2683,3 +2688,4 @@ public class PurpurWorldConfig {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}
}

View File

@@ -18,10 +18,10 @@ index 92d527081abd35acc646f66a0714f2dc01706dfe..02763379210a45a83b34c6acd6cb37c5
this.gameEvent(GameEvent.MOB_INTERACT, this.eyeBlockPosition());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 51f82229af375f2cc9605fe33c912c2dec129ed7..f6657d08d19d8617b439097779b56c9f3c5c36c5 100644
index 59cd244212822eea978625dcad475025dbff0c11..2b7d4eeda3244e32c19385dd81531cffc9b1a1d4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2667,6 +2667,8 @@ public class PurpurWorldConfig {
@@ -2669,6 +2669,8 @@ public class PurpurWorldConfig {
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
public boolean zombieVillagerTakeDamageFromWater = false;
@@ -30,7 +30,7 @@ index 51f82229af375f2cc9605fe33c912c2dec129ed7..f6657d08d19d8617b439097779b56c9f
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2682,6 +2684,8 @@ public class PurpurWorldConfig {
@@ -2684,6 +2686,8 @@ public class PurpurWorldConfig {
zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance);
zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens);
zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 4778a33cef472b959aa645e6cd495204d3c8975f..e30d8bfb4269e872c20a9bf91348dd36
// this.world.globalLevelEvent(1023, new BlockPosition(this), 0);
//int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a49e363d975ac3a239e984c16f6a06250a1c3d40..fb68e14c61ce224453ddbf9d59dc676f001739f6 100644
index 1bb12a3b52c997fa6d44f98ab73552ffaf87c595..3e14e9ca693cd1649514e84f32951bf70e18863a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2512,6 +2512,7 @@ public class PurpurWorldConfig {
@@ -2514,6 +2514,7 @@ public class PurpurWorldConfig {
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
@@ -29,7 +29,7 @@ index a49e363d975ac3a239e984c16f6a06250a1c3d40..fb68e14c61ce224453ddbf9d59dc676f
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2533,6 +2534,7 @@ public class PurpurWorldConfig {
@@ -2535,6 +2536,7 @@ public class PurpurWorldConfig {
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);
witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius);

View File

@@ -44,10 +44,10 @@ index 96b6e914441ee1faa059aa5ddcf77ffb74e76ae9..31af7d8111e73169d3e02aa52799a018
}
CraftEventFactory.blockDamage = null;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 02d090b33eae57d6c0996f61626acd7438ded7cb..4eb2347ecc0e4ed730a114ce75df860b493313a5 100644
index 6e77bd28c293537bc7a76b242f01fbb63110b53b..4ca41612b59a003189d12e1062688a6ba920d287 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2731,5 +2731,28 @@ public class PurpurWorldConfig {
@@ -2733,5 +2733,28 @@ public class PurpurWorldConfig {
private void hungerSettings() {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}

View File

@@ -18,10 +18,10 @@ index dbae4f3b56d0290c6d28b9beaaa3b459754d43e3..676184c48c3abd8e2fb9a04ae3e165dc
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4eb2347ecc0e4ed730a114ce75df860b493313a5..c71b53a9f9456f666c7ad73737a4adfd6da92da8 100644
index 4ca41612b59a003189d12e1062688a6ba920d287..4c2b47abcb9f2f5d260cd5a07a01dac791462f69 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2754,5 +2754,12 @@ public class PurpurWorldConfig {
@@ -2756,5 +2756,12 @@ public class PurpurWorldConfig {
});
conduitBlocks = conduitBlockList.toArray(Block[]::new);
}

View File

@@ -47,10 +47,10 @@ index edaa34c6c2c65df77c696b4654e64bcf37a3ff20..e63a27abef4b9aab0c2afbb92da994e8
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6c9fb5443821fd7f3ae7a8a4fc8352ab8d998f40..cc8d3cb84a0b5a852845b75467d64861721b7ae4 100644
index bf9a4047175bd22a25545d1e5feac6e475b8c436..24f78e964f39104be5f5eb6c961a7d98bfbeb362 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2097,6 +2097,7 @@ public class PurpurWorldConfig {
@@ -2099,6 +2099,7 @@ public class PurpurWorldConfig {
public double shulkerSpawnFromBulletNearbyRange = 8.0D;
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false;
@@ -58,7 +58,7 @@ index 6c9fb5443821fd7f3ae7a8a4fc8352ab8d998f40..cc8d3cb84a0b5a852845b75467d64861
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2113,6 +2114,7 @@ public class PurpurWorldConfig {
@@ -2115,6 +2116,7 @@ public class PurpurWorldConfig {
shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange);
shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation);
shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor);

View File

@@ -18,10 +18,10 @@ index 02763379210a45a83b34c6acd6cb37c536e5ba36..1e3969d0a462e5e8270128dbc22a4d09
itemstack.shrink(1);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b1a823bb8c6740d9a37c42eb49dc618c62414505..4cf4e592436ffb8b2f984ea5d3908056261b063e 100644
index 21a4f4e4ddf8d9b27df012192db11344dfd44752..f1d8ddc36abfd278cc7d956f5fe980e0d1bcafeb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2731,6 +2731,7 @@ public class PurpurWorldConfig {
@@ -2733,6 +2733,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerTakeDamageFromWater = false;
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
@@ -29,7 +29,7 @@ index b1a823bb8c6740d9a37c42eb49dc618c62414505..4cf4e592436ffb8b2f984ea5d3908056
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2748,6 +2749,7 @@ public class PurpurWorldConfig {
@@ -2750,6 +2751,7 @@ public class PurpurWorldConfig {
zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater);
zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin);
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);

View File

@@ -149,7 +149,7 @@ index 8cdae4fb31b517015e6b154a68b2c37fe76fa127..0d3528f24b4184f7553bd1b91279f3a0
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 849a2aec719c8755409668fd6a7c4899eff4f882..2deccf88c56fc9cccc9abaabe1a516cc8f4eb2eb 100644
index c7ac716958900ccbd03fda080147de5332596a64..add29f2da31ff2fe6f531e78a0b49a9aa1ae8452 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -105,6 +105,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -1157,7 +1157,7 @@ index f3994e53af79a4c3bb327e43cf133a12c20662bf..2acf9de429b75acfe5953628ca503260
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649e048bc00 100644
index bc9acfdb90b6ee2fbb948df98fb0ececfc8fa980..c528e2b9f9bb2879f54658bd459722890b1a215d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1021,12 +1021,14 @@ public class PurpurWorldConfig {
@@ -1587,23 +1587,23 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean ironGolemRidable = false;
@@ -1691,6 +1745,7 @@ public class PurpurWorldConfig {
public double ironGolemMaxHealth = 100.0D;
@@ -1692,6 +1746,7 @@ public class PurpurWorldConfig {
public boolean ironGolemTakeDamageFromWater = false;
public boolean ironGolemPoppyCalm = false;
public boolean ironGolemHealCalm = false;
+ public boolean ironGolemAlwaysDropExp = false;
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1704,6 +1759,7 @@ public class PurpurWorldConfig {
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
@@ -1706,6 +1761,7 @@ public class PurpurWorldConfig {
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm);
ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm);
+ ironGolemAlwaysDropExp = getBoolean("mobs.iron_golem.always-drop-exp", ironGolemAlwaysDropExp);
}
public boolean llamaRidable = false;
@@ -1718,6 +1774,7 @@ public class PurpurWorldConfig {
@@ -1720,6 +1776,7 @@ public class PurpurWorldConfig {
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
public boolean llamaJoinCaravans = true;
@@ -1611,7 +1611,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1738,6 +1795,7 @@ public class PurpurWorldConfig {
@@ -1740,6 +1797,7 @@ public class PurpurWorldConfig {
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);
llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans);
@@ -1619,7 +1619,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean magmaCubeRidable = false;
@@ -1748,6 +1806,7 @@ public class PurpurWorldConfig {
@@ -1750,6 +1808,7 @@ public class PurpurWorldConfig {
public Map<Integer, Double> magmaCubeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> magmaCubeAttackDamageCache = new HashMap<>();
public boolean magmaCubeTakeDamageFromWater = false;
@@ -1627,7 +1627,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void magmaCubeSettings() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@@ -1762,6 +1821,7 @@ public class PurpurWorldConfig {
@@ -1764,6 +1823,7 @@ public class PurpurWorldConfig {
magmaCubeMaxHealthCache.clear();
magmaCubeAttackDamageCache.clear();
magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater);
@@ -1635,7 +1635,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean mooshroomRidable = false;
@@ -1770,6 +1830,7 @@ public class PurpurWorldConfig {
@@ -1772,6 +1832,7 @@ public class PurpurWorldConfig {
public double mooshroomMaxHealth = 10.0D;
public int mooshroomBreedingTicks = 6000;
public boolean mooshroomTakeDamageFromWater = false;
@@ -1643,7 +1643,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1782,6 +1843,7 @@ public class PurpurWorldConfig {
@@ -1784,6 +1845,7 @@ public class PurpurWorldConfig {
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater);
@@ -1651,7 +1651,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean muleRidableInWater = false;
@@ -1793,6 +1855,7 @@ public class PurpurWorldConfig {
@@ -1795,6 +1857,7 @@ public class PurpurWorldConfig {
public double muleMovementSpeedMax = 0.175D;
public int muleBreedingTicks = 6000;
public boolean muleTakeDamageFromWater = false;
@@ -1659,7 +1659,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1810,6 +1873,7 @@ public class PurpurWorldConfig {
@@ -1812,6 +1875,7 @@ public class PurpurWorldConfig {
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater);
@@ -1667,7 +1667,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean ocelotRidable = false;
@@ -1818,6 +1882,7 @@ public class PurpurWorldConfig {
@@ -1820,6 +1884,7 @@ public class PurpurWorldConfig {
public double ocelotMaxHealth = 10.0D;
public int ocelotBreedingTicks = 6000;
public boolean ocelotTakeDamageFromWater = false;
@@ -1675,7 +1675,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1830,6 +1895,7 @@ public class PurpurWorldConfig {
@@ -1832,6 +1897,7 @@ public class PurpurWorldConfig {
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
@@ -1683,7 +1683,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean pandaRidable = false;
@@ -1838,6 +1904,7 @@ public class PurpurWorldConfig {
@@ -1840,6 +1906,7 @@ public class PurpurWorldConfig {
public double pandaMaxHealth = 20.0D;
public int pandaBreedingTicks = 6000;
public boolean pandaTakeDamageFromWater = false;
@@ -1691,7 +1691,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1850,6 +1917,7 @@ public class PurpurWorldConfig {
@@ -1852,6 +1919,7 @@ public class PurpurWorldConfig {
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater);
@@ -1699,7 +1699,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean parrotRidable = false;
@@ -1859,6 +1927,7 @@ public class PurpurWorldConfig {
@@ -1861,6 +1929,7 @@ public class PurpurWorldConfig {
public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false;
public boolean parrotBreedable = false;
@@ -1707,7 +1707,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1872,6 +1941,7 @@ public class PurpurWorldConfig {
@@ -1874,6 +1943,7 @@ public class PurpurWorldConfig {
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);
parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable);
@@ -1715,7 +1715,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean phantomRidable = false;
@@ -1905,6 +1975,7 @@ public class PurpurWorldConfig {
@@ -1907,6 +1977,7 @@ public class PurpurWorldConfig {
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
@@ -1723,7 +1723,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1946,6 +2017,7 @@ public class PurpurWorldConfig {
@@ -1948,6 +2019,7 @@ public class PurpurWorldConfig {
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
@@ -1731,7 +1731,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean pigRidable = false;
@@ -1955,6 +2027,7 @@ public class PurpurWorldConfig {
@@ -1957,6 +2029,7 @@ public class PurpurWorldConfig {
public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000;
public boolean pigTakeDamageFromWater = false;
@@ -1739,7 +1739,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1968,6 +2041,7 @@ public class PurpurWorldConfig {
@@ -1970,6 +2043,7 @@ public class PurpurWorldConfig {
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater);
@@ -1747,7 +1747,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean piglinRidable = false;
@@ -1977,6 +2051,7 @@ public class PurpurWorldConfig {
@@ -1979,6 +2053,7 @@ public class PurpurWorldConfig {
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000;
@@ -1755,7 +1755,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1990,6 +2065,7 @@ public class PurpurWorldConfig {
@@ -1992,6 +2067,7 @@ public class PurpurWorldConfig {
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
@@ -1763,7 +1763,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean piglinBruteRidable = false;
@@ -1997,6 +2073,7 @@ public class PurpurWorldConfig {
@@ -1999,6 +2075,7 @@ public class PurpurWorldConfig {
public boolean piglinBruteControllable = true;
public double piglinBruteMaxHealth = 50.0D;
public boolean piglinBruteTakeDamageFromWater = false;
@@ -1771,7 +1771,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void piglinBruteSettings() {
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
@@ -2008,6 +2085,7 @@ public class PurpurWorldConfig {
@@ -2010,6 +2087,7 @@ public class PurpurWorldConfig {
}
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater);
@@ -1779,7 +1779,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean pillagerRidable = false;
@@ -2016,6 +2094,7 @@ public class PurpurWorldConfig {
@@ -2018,6 +2096,7 @@ public class PurpurWorldConfig {
public double pillagerMaxHealth = 24.0D;
public boolean pillagerBypassMobGriefing = false;
public boolean pillagerTakeDamageFromWater = false;
@@ -1787,7 +1787,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -2028,6 +2107,7 @@ public class PurpurWorldConfig {
@@ -2030,6 +2109,7 @@ public class PurpurWorldConfig {
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater);
@@ -1795,7 +1795,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean polarBearRidable = false;
@@ -2038,6 +2118,7 @@ public class PurpurWorldConfig {
@@ -2040,6 +2120,7 @@ public class PurpurWorldConfig {
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
public boolean polarBearTakeDamageFromWater = false;
@@ -1803,7 +1803,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -2053,12 +2134,14 @@ public class PurpurWorldConfig {
@@ -2055,12 +2136,14 @@ public class PurpurWorldConfig {
if (item != Items.AIR) polarBearBreedableItem = item;
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater);
@@ -1818,7 +1818,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void pufferfishSettings() {
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable);
@@ -2069,6 +2152,7 @@ public class PurpurWorldConfig {
@@ -2071,6 +2154,7 @@ public class PurpurWorldConfig {
}
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater);
@@ -1826,7 +1826,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean rabbitRidable = false;
@@ -2080,6 +2164,7 @@ public class PurpurWorldConfig {
@@ -2082,6 +2166,7 @@ public class PurpurWorldConfig {
public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false;
public boolean rabbitTakeDamageFromWater = false;
@@ -1834,7 +1834,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -2095,6 +2180,7 @@ public class PurpurWorldConfig {
@@ -2097,6 +2182,7 @@ public class PurpurWorldConfig {
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater);
@@ -1842,7 +1842,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean ravagerRidable = false;
@@ -2104,6 +2190,7 @@ public class PurpurWorldConfig {
@@ -2106,6 +2192,7 @@ public class PurpurWorldConfig {
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
public List<Block> ravagerGriefableBlocks = new ArrayList<>();
@@ -1850,7 +1850,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -2133,12 +2220,14 @@ public class PurpurWorldConfig {
@@ -2135,12 +2222,14 @@ public class PurpurWorldConfig {
ravagerGriefableBlocks.add(block);
}
});
@@ -1865,7 +1865,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void salmonSettings() {
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable);
@@ -2149,6 +2238,7 @@ public class PurpurWorldConfig {
@@ -2151,6 +2240,7 @@ public class PurpurWorldConfig {
}
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater);
@@ -1873,7 +1873,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean sheepRidable = false;
@@ -2158,6 +2248,7 @@ public class PurpurWorldConfig {
@@ -2160,6 +2250,7 @@ public class PurpurWorldConfig {
public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false;
public boolean sheepTakeDamageFromWater = false;
@@ -1881,7 +1881,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -2171,6 +2262,7 @@ public class PurpurWorldConfig {
@@ -2173,6 +2264,7 @@ public class PurpurWorldConfig {
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater);
@@ -1889,7 +1889,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean shulkerRidable = false;
@@ -2184,6 +2276,7 @@ public class PurpurWorldConfig {
@@ -2186,6 +2278,7 @@ public class PurpurWorldConfig {
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false;
public boolean shulkerChangeColorWithDye = false;
@@ -1897,7 +1897,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2201,6 +2294,7 @@ public class PurpurWorldConfig {
@@ -2203,6 +2296,7 @@ public class PurpurWorldConfig {
shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation);
shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor);
shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye);
@@ -1905,7 +1905,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean silverfishRidable = false;
@@ -2209,6 +2303,7 @@ public class PurpurWorldConfig {
@@ -2211,6 +2305,7 @@ public class PurpurWorldConfig {
public double silverfishMaxHealth = 8.0D;
public boolean silverfishBypassMobGriefing = false;
public boolean silverfishTakeDamageFromWater = false;
@@ -1913,7 +1913,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -2221,6 +2316,7 @@ public class PurpurWorldConfig {
@@ -2223,6 +2318,7 @@ public class PurpurWorldConfig {
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater);
@@ -1921,7 +1921,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean skeletonRidable = false;
@@ -2228,6 +2324,7 @@ public class PurpurWorldConfig {
@@ -2230,6 +2326,7 @@ public class PurpurWorldConfig {
public boolean skeletonControllable = true;
public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false;
@@ -1929,7 +1929,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2239,6 +2336,7 @@ public class PurpurWorldConfig {
@@ -2241,6 +2338,7 @@ public class PurpurWorldConfig {
}
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
@@ -1937,7 +1937,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean skeletonHorseRidableInWater = true;
@@ -2250,6 +2348,7 @@ public class PurpurWorldConfig {
@@ -2252,6 +2350,7 @@ public class PurpurWorldConfig {
public double skeletonHorseMovementSpeedMin = 0.2D;
public double skeletonHorseMovementSpeedMax = 0.2D;
public boolean skeletonHorseTakeDamageFromWater = false;
@@ -1945,7 +1945,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void skeletonHorseSettings() {
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
@@ -2266,6 +2365,7 @@ public class PurpurWorldConfig {
@@ -2268,6 +2367,7 @@ public class PurpurWorldConfig {
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater);
@@ -1953,7 +1953,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean slimeRidable = false;
@@ -2276,6 +2376,7 @@ public class PurpurWorldConfig {
@@ -2278,6 +2378,7 @@ public class PurpurWorldConfig {
public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> slimeAttackDamageCache = new HashMap<>();
public boolean slimeTakeDamageFromWater = false;
@@ -1961,7 +1961,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void slimeSettings() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@@ -2290,6 +2391,7 @@ public class PurpurWorldConfig {
@@ -2292,6 +2393,7 @@ public class PurpurWorldConfig {
slimeMaxHealthCache.clear();
slimeAttackDamageCache.clear();
slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater);
@@ -1969,7 +1969,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean snowGolemRidable = false;
@@ -2305,6 +2407,7 @@ public class PurpurWorldConfig {
@@ -2307,6 +2409,7 @@ public class PurpurWorldConfig {
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
public boolean snowGolemTakeDamageFromWater = true;
@@ -1977,7 +1977,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -2324,6 +2427,7 @@ public class PurpurWorldConfig {
@@ -2326,6 +2429,7 @@ public class PurpurWorldConfig {
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater);
@@ -1985,7 +1985,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean squidRidable = false;
@@ -2333,6 +2437,7 @@ public class PurpurWorldConfig {
@@ -2335,6 +2439,7 @@ public class PurpurWorldConfig {
public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false;
public boolean squidTakeDamageFromWater = false;
@@ -1993,7 +1993,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -2346,6 +2451,7 @@ public class PurpurWorldConfig {
@@ -2348,6 +2453,7 @@ public class PurpurWorldConfig {
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater);
@@ -2001,7 +2001,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean spiderRidable = false;
@@ -2353,6 +2459,7 @@ public class PurpurWorldConfig {
@@ -2355,6 +2461,7 @@ public class PurpurWorldConfig {
public boolean spiderControllable = true;
public double spiderMaxHealth = 16.0D;
public boolean spiderTakeDamageFromWater = false;
@@ -2009,7 +2009,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -2364,6 +2471,7 @@ public class PurpurWorldConfig {
@@ -2366,6 +2473,7 @@ public class PurpurWorldConfig {
}
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
@@ -2017,7 +2017,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean strayRidable = false;
@@ -2371,6 +2479,7 @@ public class PurpurWorldConfig {
@@ -2373,6 +2481,7 @@ public class PurpurWorldConfig {
public boolean strayControllable = true;
public double strayMaxHealth = 20.0D;
public boolean strayTakeDamageFromWater = false;
@@ -2025,7 +2025,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void straySettings() {
strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
@@ -2382,6 +2491,7 @@ public class PurpurWorldConfig {
@@ -2384,6 +2493,7 @@ public class PurpurWorldConfig {
}
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater);
@@ -2033,7 +2033,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean striderRidable = false;
@@ -2391,6 +2501,7 @@ public class PurpurWorldConfig {
@@ -2393,6 +2503,7 @@ public class PurpurWorldConfig {
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
public boolean striderTakeDamageFromWater = true;
@@ -2041,7 +2041,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -2404,6 +2515,7 @@ public class PurpurWorldConfig {
@@ -2406,6 +2517,7 @@ public class PurpurWorldConfig {
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater);
@@ -2049,7 +2049,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean traderLlamaRidable = false;
@@ -2417,6 +2529,7 @@ public class PurpurWorldConfig {
@@ -2419,6 +2531,7 @@ public class PurpurWorldConfig {
public double traderLlamaMovementSpeedMax = 0.175D;
public int traderLlamaBreedingTicks = 6000;
public boolean traderLlamaTakeDamageFromWater = false;
@@ -2057,7 +2057,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -2436,12 +2549,14 @@ public class PurpurWorldConfig {
@@ -2438,12 +2551,14 @@ public class PurpurWorldConfig {
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater);
@@ -2072,7 +2072,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void tropicalFishSettings() {
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable);
@@ -2452,6 +2567,7 @@ public class PurpurWorldConfig {
@@ -2454,6 +2569,7 @@ public class PurpurWorldConfig {
}
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater);
@@ -2080,7 +2080,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean turtleRidable = false;
@@ -2460,6 +2576,7 @@ public class PurpurWorldConfig {
@@ -2462,6 +2578,7 @@ public class PurpurWorldConfig {
public double turtleMaxHealth = 30.0D;
public int turtleBreedingTicks = 6000;
public boolean turtleTakeDamageFromWater = false;
@@ -2088,7 +2088,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -2472,6 +2589,7 @@ public class PurpurWorldConfig {
@@ -2474,6 +2591,7 @@ public class PurpurWorldConfig {
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater);
@@ -2096,7 +2096,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean vexRidable = false;
@@ -2480,6 +2598,7 @@ public class PurpurWorldConfig {
@@ -2482,6 +2600,7 @@ public class PurpurWorldConfig {
public double vexMaxY = 320D;
public double vexMaxHealth = 14.0D;
public boolean vexTakeDamageFromWater = false;
@@ -2104,7 +2104,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void vexSettings() {
vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
@@ -2492,6 +2611,7 @@ public class PurpurWorldConfig {
@@ -2494,6 +2613,7 @@ public class PurpurWorldConfig {
}
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater);
@@ -2112,7 +2112,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean villagerRidable = false;
@@ -2511,6 +2631,7 @@ public class PurpurWorldConfig {
@@ -2513,6 +2633,7 @@ public class PurpurWorldConfig {
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
@@ -2120,7 +2120,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2534,6 +2655,7 @@ public class PurpurWorldConfig {
@@ -2536,6 +2657,7 @@ public class PurpurWorldConfig {
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
@@ -2128,7 +2128,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean vindicatorRidable = false;
@@ -2542,6 +2664,7 @@ public class PurpurWorldConfig {
@@ -2544,6 +2666,7 @@ public class PurpurWorldConfig {
public double vindicatorMaxHealth = 24.0D;
public double vindicatorJohnnySpawnChance = 0D;
public boolean vindicatorTakeDamageFromWater = false;
@@ -2136,7 +2136,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -2554,6 +2677,7 @@ public class PurpurWorldConfig {
@@ -2556,6 +2679,7 @@ public class PurpurWorldConfig {
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater);
@@ -2144,7 +2144,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean wanderingTraderRidable = false;
@@ -2564,6 +2688,7 @@ public class PurpurWorldConfig {
@@ -2566,6 +2690,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
public boolean wanderingTraderAllowTrading = true;
@@ -2152,7 +2152,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2578,6 +2703,7 @@ public class PurpurWorldConfig {
@@ -2580,6 +2705,7 @@ public class PurpurWorldConfig {
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
@@ -2160,7 +2160,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean witchRidable = false;
@@ -2585,6 +2711,7 @@ public class PurpurWorldConfig {
@@ -2587,6 +2713,7 @@ public class PurpurWorldConfig {
public boolean witchControllable = true;
public double witchMaxHealth = 26.0D;
public boolean witchTakeDamageFromWater = false;
@@ -2168,7 +2168,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -2596,6 +2723,7 @@ public class PurpurWorldConfig {
@@ -2598,6 +2725,7 @@ public class PurpurWorldConfig {
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater);
@@ -2176,7 +2176,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean witherRidable = false;
@@ -2610,6 +2738,7 @@ public class PurpurWorldConfig {
@@ -2612,6 +2740,7 @@ public class PurpurWorldConfig {
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
public boolean witherPlaySpawnSound = true;
@@ -2184,7 +2184,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2632,6 +2761,7 @@ public class PurpurWorldConfig {
@@ -2634,6 +2763,7 @@ public class PurpurWorldConfig {
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);
witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius);
witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound);
@@ -2192,7 +2192,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean witherSkeletonRidable = false;
@@ -2639,6 +2769,7 @@ public class PurpurWorldConfig {
@@ -2641,6 +2771,7 @@ public class PurpurWorldConfig {
public boolean witherSkeletonControllable = true;
public double witherSkeletonMaxHealth = 20.0D;
public boolean witherSkeletonTakeDamageFromWater = false;
@@ -2200,7 +2200,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2650,6 +2781,7 @@ public class PurpurWorldConfig {
@@ -2652,6 +2783,7 @@ public class PurpurWorldConfig {
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater);
@@ -2208,7 +2208,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean wolfRidable = false;
@@ -2661,6 +2793,7 @@ public class PurpurWorldConfig {
@@ -2663,6 +2795,7 @@ public class PurpurWorldConfig {
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
public boolean wolfTakeDamageFromWater = false;
@@ -2216,7 +2216,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2680,6 +2813,7 @@ public class PurpurWorldConfig {
@@ -2682,6 +2815,7 @@ public class PurpurWorldConfig {
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater);
@@ -2224,7 +2224,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean zoglinRidable = false;
@@ -2687,6 +2821,7 @@ public class PurpurWorldConfig {
@@ -2689,6 +2823,7 @@ public class PurpurWorldConfig {
public boolean zoglinControllable = true;
public double zoglinMaxHealth = 40.0D;
public boolean zoglinTakeDamageFromWater = false;
@@ -2232,7 +2232,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2698,6 +2833,7 @@ public class PurpurWorldConfig {
@@ -2700,6 +2835,7 @@ public class PurpurWorldConfig {
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater);
@@ -2240,7 +2240,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean zombieRidable = false;
@@ -2711,6 +2847,7 @@ public class PurpurWorldConfig {
@@ -2713,6 +2849,7 @@ public class PurpurWorldConfig {
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
@@ -2248,7 +2248,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2728,6 +2865,7 @@ public class PurpurWorldConfig {
@@ -2730,6 +2867,7 @@ public class PurpurWorldConfig {
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
@@ -2256,7 +2256,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean zombieHorseRidableInWater = false;
@@ -2740,6 +2878,7 @@ public class PurpurWorldConfig {
@@ -2742,6 +2880,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
public boolean zombieHorseTakeDamageFromWater = false;
@@ -2264,7 +2264,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -2757,6 +2896,7 @@ public class PurpurWorldConfig {
@@ -2759,6 +2898,7 @@ public class PurpurWorldConfig {
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater);
@@ -2272,7 +2272,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean zombieVillagerRidable = false;
@@ -2771,6 +2911,7 @@ public class PurpurWorldConfig {
@@ -2773,6 +2913,7 @@ public class PurpurWorldConfig {
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
public boolean zombieVillagerCureEnabled = true;
@@ -2280,7 +2280,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2789,6 +2930,7 @@ public class PurpurWorldConfig {
@@ -2791,6 +2932,7 @@ public class PurpurWorldConfig {
zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin);
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled);
@@ -2288,7 +2288,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
}
public boolean zombifiedPiglinRidable = false;
@@ -2801,6 +2943,7 @@ public class PurpurWorldConfig {
@@ -2803,6 +2945,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
public boolean zombifiedPiglinTakeDamageFromWater = false;
@@ -2296,7 +2296,7 @@ index d609aa408d7b72af9fbef74072844652b8b01d20..ec72a6f07685d5401aa2a10618ec9649
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2817,6 +2960,7 @@ public class PurpurWorldConfig {
@@ -2819,6 +2962,7 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);

View File

@@ -39,10 +39,10 @@ index 177f9fe0d0a10e5d3644805751f2050fe984fde7..07dc3b10a275895f23fcf50720ef25fa
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ec72a6f07685d5401aa2a10618ec9649e048bc00..e38c94ce88ba0d2803b4b0146844746c3302a3cb 100644
index c528e2b9f9bb2879f54658bd459722890b1a215d..c684f8e65ae8e32c85d511030358c5b1cd56c003 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2460,6 +2460,7 @@ public class PurpurWorldConfig {
@@ -2462,6 +2462,7 @@ public class PurpurWorldConfig {
public double spiderMaxHealth = 16.0D;
public boolean spiderTakeDamageFromWater = false;
public boolean spiderAlwaysDropExp = false;
@@ -50,7 +50,7 @@ index ec72a6f07685d5401aa2a10618ec9649e048bc00..e38c94ce88ba0d2803b4b0146844746c
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -2472,6 +2473,7 @@ public class PurpurWorldConfig {
@@ -2474,6 +2475,7 @@ public class PurpurWorldConfig {
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp);

View File

@@ -18,10 +18,10 @@ index 17d1a0b43b2d155535cf2483af4ba9dd09700c83..fbe71ed86553965aa9fc20b7d8e6fdef
if (entityitem != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 483a6e1c05b8a103f639d37daeb4ee805e9dba96..638ec0b7d026f0164a73f03fed36c25ba17f53a3 100644
index 19873560257005a4039454f53352f1817b79a520..ce431461ea8b55e5b3bf87c3a1a338a63acc578e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2253,6 +2253,7 @@ public class PurpurWorldConfig {
@@ -2255,6 +2255,7 @@ public class PurpurWorldConfig {
public boolean sheepBypassMobGriefing = false;
public boolean sheepTakeDamageFromWater = false;
public boolean sheepAlwaysDropExp = false;
@@ -29,7 +29,7 @@ index 483a6e1c05b8a103f639d37daeb4ee805e9dba96..638ec0b7d026f0164a73f03fed36c25b
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -2267,6 +2268,7 @@ public class PurpurWorldConfig {
@@ -2269,6 +2270,7 @@ public class PurpurWorldConfig {
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater);
sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 0f36cf3ab761d4f920b461054dba8e1dcf55ffc1..6e3cd8c1e0aa87de00824bfc5a06a6bf9cbc907c 100644
index 35bc51479814a293d5ebed62e0ed0d2e178bab2f..78c999b20a312b576095a745d89229cbc110c3cd 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -989,9 +989,17 @@ public abstract class LivingEntity extends Entity {
@@ -29,7 +29,7 @@ index 0f36cf3ab761d4f920b461054dba8e1dcf55ffc1..6e3cd8c1e0aa87de00824bfc5a06a6bf
// Purpur start
if (entity instanceof LivingEntity entityliving) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c7bdfa210836be7a5f5c9956a24f4b791a590f4b..a2b645a13cda2719b361e2cc0473e75e3cfb2383 100644
index 7017a397dc2a3e27376c95983cedcd6313ca8ebd..978be4f1f14a8fe647ea31ff2002a16010210a33 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1256,6 +1256,7 @@ public class PurpurWorldConfig {
@@ -48,7 +48,7 @@ index c7bdfa210836be7a5f5c9956a24f4b791a590f4b..a2b645a13cda2719b361e2cc0473e75e
}
public boolean dolphinRidable = false;
@@ -2333,6 +2335,7 @@ public class PurpurWorldConfig {
@@ -2335,6 +2337,7 @@ public class PurpurWorldConfig {
public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
@@ -56,7 +56,7 @@ index c7bdfa210836be7a5f5c9956a24f4b791a590f4b..a2b645a13cda2719b361e2cc0473e75e
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2345,6 +2348,7 @@ public class PurpurWorldConfig {
@@ -2347,6 +2350,7 @@ public class PurpurWorldConfig {
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
@@ -64,7 +64,7 @@ index c7bdfa210836be7a5f5c9956a24f4b791a590f4b..a2b645a13cda2719b361e2cc0473e75e
}
public boolean skeletonHorseRidableInWater = true;
@@ -2858,6 +2862,7 @@ public class PurpurWorldConfig {
@@ -2860,6 +2864,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
@@ -72,7 +72,7 @@ index c7bdfa210836be7a5f5c9956a24f4b791a590f4b..a2b645a13cda2719b361e2cc0473e75e
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2876,6 +2881,7 @@ public class PurpurWorldConfig {
@@ -2878,6 +2883,7 @@ public class PurpurWorldConfig {
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);

View File

@@ -22,10 +22,10 @@ index 9d83b50d43edc7bfd857daab7be90558d86ca334..c12fbc6a8ba9fd6807a5d43c49881ea4
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6cb51605e560b9e4a57cb87b9b731575f4c1cd8c..2de131b31d8c80ca9be130b8755db9bec379cf6c 100644
index e9b1fccdde19d543dd02a08889dd37c6a8ebcb60..1fd070e037b8bbd358ce162a011cddc1a565385c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1992,6 +1992,8 @@ public class PurpurWorldConfig {
@@ -1994,6 +1994,8 @@ public class PurpurWorldConfig {
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
public boolean phantomAlwaysDropExp = false;
@@ -34,7 +34,7 @@ index 6cb51605e560b9e4a57cb87b9b731575f4c1cd8c..2de131b31d8c80ca9be130b8755db9be
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -2034,6 +2036,13 @@ public class PurpurWorldConfig {
@@ -2036,6 +2038,13 @@ public class PurpurWorldConfig {
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp);

View File

@@ -40,10 +40,10 @@ index c9cb0717c2793acd5b5870a6cc4d672d69a40026..9a402505375af2051673245ec0a1daf9
public ItemStack assemble() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8a2ecb3a3728cc603017a1d5f06be1d5fb3d47a8..287941dc162c47303ec12c18c0ea4747169ffcd6 100644
index 1fd070e037b8bbd358ce162a011cddc1a565385c..e4e75914042b6e1024662ef59b2190865a879759 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2663,6 +2663,7 @@ public class PurpurWorldConfig {
@@ -2665,6 +2665,7 @@ public class PurpurWorldConfig {
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index 8a2ecb3a3728cc603017a1d5f06be1d5fb3d47a8..287941dc162c47303ec12c18c0ea4747
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2687,6 +2688,7 @@ public class PurpurWorldConfig {
@@ -2689,6 +2690,7 @@ public class PurpurWorldConfig {
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);