update ridable settings

This commit is contained in:
Ben Kerllenevich
2023-06-11 21:48:15 -04:00
parent 8731b19f93
commit 188f461ccf
81 changed files with 619 additions and 599 deletions

View File

@@ -2261,6 +2261,24 @@ index 2682a49cd3948e0f80e2d7e58abcd3e6d8f7ac4e..ede5469f26f530beacfc655581e213d3
}
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 4efa7e331cc974008c653a04687a336e97626445..76a38d235de3499ca19c3ccacd9289c7355012db 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -84,6 +84,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
groundPathNavigation.setCanWalkOverFences(true);
}
+ // Purpur start
+ @Override
+ public boolean dismountsUnderwater() {
+ return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.camelRidableInWater;
+ }
+ // Purpur end
+
@Override
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index 203691417e208b9e023e5f8c3b76993db2747ba8..d4100aab149913a3146ce00f20baf15e2c3ecbfb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -5214,10 +5232,10 @@ index 9fe1cdafdafc3f718ef4eb4fd4150971e2832738..0cab29584c4d5205950571660b6c271d
+ }
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2b7f1dedb3289efc7e42a138f4483f4969902801..ec168b917d60cc6d8c48620eb4dcd89b0b121aea 100644
index 2b7f1dedb3289efc7e42a138f4483f4969902801..3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -91,4 +91,717 @@ public class PurpurWorldConfig {
@@ -91,4 +91,722 @@ public class PurpurWorldConfig {
final Map<String, Object> value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null);
return value.isEmpty() ? fallback : value;
}
@@ -5282,6 +5300,11 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..ec168b917d60cc6d8c48620eb4dcd89b
+ blazeMaxY = getDouble("mobs.blaze.ridable-max-y", blazeMaxY);
+ }
+
+ public boolean camelRidableInWater = false;
+ private void camelSettings() {
+ camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
+ }
+
+ public boolean catRidable = false;
+ public boolean catRidableInWater = true;
+ public boolean catControllable = true;

View File

@@ -475,10 +475,10 @@ index ede5469f26f530beacfc655581e213d39276c7d9..3b70849dca92ee4b0427396de6440f1c
public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues;
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 4efa7e331cc974008c653a04687a336e97626445..e2540b7e28c8ba63a0360766a8afa57ac33e336f 100644
index 76a38d235de3499ca19c3ccacd9289c7355012db..5ec8815cc69f5abe03a29224650edfb153c9f5d0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -319,6 +319,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
@@ -326,6 +326,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
return this.dashCooldown;
}
@@ -1053,7 +1053,7 @@ index aad51022eac584fbc058c2b25e2bf1929fccca6f..b472309f97b24f1d7b97d8b6d464c479
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 519d7667e6a8bcb39c200546af5ebbf74e0e9368..2189058a752986179165fb904513796e7220438e 100644
index 8c8ff7d291999cc8ab251a145db000871050236f..961300cb8bcc7b0aff476a435aa33e713bd520a6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -150,7 +150,10 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -1504,10 +1504,10 @@ index d434b96b878652190fac4e2882b7b7373febbbd5..62deb4a443bf65655d2a4310c0dd9f40
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178b1a61609 100644
index 3ad11a5c1e661d7a8752f0f7682e5eee98aa0c0a..e89b221674472a3f0f1529f1f54f54b548fe6b1f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -114,94 +114,188 @@ public class PurpurWorldConfig {
@@ -114,42 +114,94 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false;
public boolean axolotlControllable = true;
@@ -1601,6 +1601,8 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
+ camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax);
}
public boolean camelRidableInWater = false;
@@ -160,53 +212,95 @@ public class PurpurWorldConfig {
public boolean catRidable = false;
public boolean catRidableInWater = true;
public boolean catControllable = true;
@@ -1696,7 +1698,7 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
}
public boolean dolphinRidable = false;
@@ -209,80 +303,161 @@ public class PurpurWorldConfig {
@@ -214,80 +308,161 @@ public class PurpurWorldConfig {
public int dolphinSpitCooldown = 20;
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
@@ -1858,7 +1860,7 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
}
public boolean frogRidable = false;
@@ -300,147 +475,316 @@ public class PurpurWorldConfig {
@@ -305,147 +480,316 @@ public class PurpurWorldConfig {
public boolean ghastRidableInWater = true;
public boolean ghastControllable = true;
public double ghastMaxY = 320D;
@@ -2175,7 +2177,7 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
}
public boolean phantomRidable = false;
@@ -450,6 +794,10 @@ public class PurpurWorldConfig {
@@ -455,6 +799,10 @@ public class PurpurWorldConfig {
public float phantomFlameDamage = 1.0F;
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
@@ -2186,7 +2188,7 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -458,189 +806,361 @@ public class PurpurWorldConfig {
@@ -463,189 +811,361 @@ public class PurpurWorldConfig {
phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage);
phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime);
phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing);
@@ -2548,7 +2550,7 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
}
public boolean tadpoleRidable = false;
@@ -655,64 +1175,125 @@ public class PurpurWorldConfig {
@@ -660,64 +1180,125 @@ public class PurpurWorldConfig {
public boolean traderLlamaRidable = false;
public boolean traderLlamaRidableInWater = false;
public boolean traderLlamaControllable = true;
@@ -2674,7 +2676,7 @@ index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..d16e7c78f6da209a94ab0fd95fb8e178
}
public boolean wardenRidable = false;
@@ -727,81 +1308,165 @@ public class PurpurWorldConfig {
@@ -732,81 +1313,165 @@ public class PurpurWorldConfig {
public boolean witchRidable = false;
public boolean witchRidableInWater = true;
public boolean witchControllable = true;

View File

@@ -113,10 +113,10 @@ index db95323da1aef267aa4fbe56aaff63cb8684e15b..12e27b36b3f9949eb644175dd346c487
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d4d7a0543953a02305348f4744a3467a8b2f02d2..c1996047ebfb4f515a037bf4b8d7872eb8363739 100644
index 52092177a09fa10f326e45e1f09922ad2b4752f0..288db2556fd47c505dc5ebfd281ea61df1f4b357 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -558,6 +558,10 @@ public class PurpurWorldConfig {
@@ -563,6 +563,10 @@ public class PurpurWorldConfig {
public double giantMovementSpeed = 0.5D;
public double giantAttackDamage = 50.0D;
public double giantMaxHealth = 100.0D;
@@ -127,7 +127,7 @@ index d4d7a0543953a02305348f4744a3467a8b2f02d2..c1996047ebfb4f515a037bf4b8d7872e
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -574,6 +578,10 @@ public class PurpurWorldConfig {
@@ -579,6 +583,10 @@ public class PurpurWorldConfig {
set("mobs.giant.attributes.max_health", oldValue);
}
giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth);

View File

@@ -30,10 +30,10 @@ index a6acc178949f45c18009b5da2b8998cbcab2289b..2cd6b08ef5d8a67175c86d33e938c088
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7eed48428c5b5449010bbb8d07cddeab7140f603..ff50c86268ff722350fef6b81dbe4c4b0d752ef6 100644
index 288db2556fd47c505dc5ebfd281ea61df1f4b357..c2d6a944ed84dfa4b2fb848f4132378c3f2135ea 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1488,6 +1488,7 @@ public class PurpurWorldConfig {
@@ -1493,6 +1493,7 @@ public class PurpurWorldConfig {
public double zombieHorseJumpStrengthMax = 1.0D;
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
@@ -41,7 +41,7 @@ index 7eed48428c5b5449010bbb8d07cddeab7140f603..ff50c86268ff722350fef6b81dbe4c4b
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -1503,6 +1504,7 @@ public class PurpurWorldConfig {
@@ -1508,6 +1509,7 @@ public class PurpurWorldConfig {
zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax);
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);

View File

@@ -24,10 +24,10 @@ index 539f44793f11db1971e72e2bbeae8d2d9d9b6798..4f374a2b1aab20fe2523df716a9d622c
protected SoundEvent getHurtSound(DamageSource source) {
return SoundEvents.CREEPER_HURT;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aee48b41a0a550dd4db9b33d7c02961753a5c4ed..e9fbb9f7aeadd2860491a8afdc200de40b51320b 100644
index c2d6a944ed84dfa4b2fb848f4132378c3f2135ea..f2b019144f02f42c924bcc87980fa2d57e28c0be 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -349,6 +349,7 @@ public class PurpurWorldConfig {
@@ -354,6 +354,7 @@ public class PurpurWorldConfig {
public boolean creeperRidableInWater = true;
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
@@ -35,7 +35,7 @@ index aee48b41a0a550dd4db9b33d7c02961753a5c4ed..e9fbb9f7aeadd2860491a8afdc200de4
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -359,6 +360,7 @@ public class PurpurWorldConfig {
@@ -364,6 +365,7 @@ public class PurpurWorldConfig {
set("mobs.creeper.attributes.max_health", oldValue);
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);

View File

@@ -33,10 +33,10 @@ index db37932e56d88717a61eb8608b44c6911513aa35..2f373666e982a8c4e769168b565ca26e
int i = world.getRandom().nextInt(100);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1f4f075c257d96d73e96a4640248e011919e4b1e..9d81b796df992393f23d6eded02f46c41f0b385b 100644
index f2b019144f02f42c924bcc87980fa2d57e28c0be..9037bcdac20db7d2fdc0ef662d7af0143d5e1417 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -992,6 +992,8 @@ public class PurpurWorldConfig {
@@ -997,6 +997,8 @@ public class PurpurWorldConfig {
public boolean rabbitRidableInWater = true;
public boolean rabbitControllable = true;
public double rabbitMaxHealth = 3.0D;
@@ -45,7 +45,7 @@ index 1f4f075c257d96d73e96a4640248e011919e4b1e..9d81b796df992393f23d6eded02f46c4
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1002,6 +1004,8 @@ public class PurpurWorldConfig {
@@ -1007,6 +1009,8 @@ public class PurpurWorldConfig {
set("mobs.rabbit.attributes.max_health", oldValue);
}
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);

View File

@@ -75,10 +75,10 @@ index 451abd7a6d7fb0926dcebdc4504b1c9c298766e3..7e191d8bb56d0b6591b3a60dfe07004d
// Paper start - Cancellable death event
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 62937cdd2e6cc83a28bf96550b9ea4558f522c67..15e98301b1b77c0e0df42aa923d3d55913bd4767 100644
index 9037bcdac20db7d2fdc0ef662d7af0143d5e1417..72685416d14c49df1ea5288197ec1d0eaf26912b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -513,6 +513,7 @@ public class PurpurWorldConfig {
@@ -518,6 +518,7 @@ public class PurpurWorldConfig {
public boolean foxRidableInWater = true;
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
@@ -86,7 +86,7 @@ index 62937cdd2e6cc83a28bf96550b9ea4558f522c67..15e98301b1b77c0e0df42aa923d3d559
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -523,6 +524,7 @@ public class PurpurWorldConfig {
@@ -528,6 +529,7 @@ public class PurpurWorldConfig {
set("mobs.fox.attributes.max_health", oldValue);
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);

View File

@@ -59,10 +59,10 @@ index 48ec595e76c09cf719477a543364f1206664afa5..b2cf680e377f849a7cc17136ebca3cf3
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4c83055430523377aa0590440841d0a09224bb70..e226eee1e9483c16bb5b1677bdcbfea72761c301 100644
index 72685416d14c49df1ea5288197ec1d0eaf26912b..057d2c72fd201481d2af3618276777bc05002536 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -964,6 +964,8 @@ public class PurpurWorldConfig {
@@ -969,6 +969,8 @@ public class PurpurWorldConfig {
public boolean polarBearRidableInWater = true;
public boolean polarBearControllable = true;
public double polarBearMaxHealth = 30.0D;
@@ -71,7 +71,7 @@ index 4c83055430523377aa0590440841d0a09224bb70..e226eee1e9483c16bb5b1677bdcbfea7
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -974,6 +976,9 @@ public class PurpurWorldConfig {
@@ -979,6 +981,9 @@ public class PurpurWorldConfig {
set("mobs.polar_bear.attributes.max_health", oldValue);
}
polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth);

View File

@@ -50,10 +50,10 @@ index ea404a84a43a02a5614d5142bb78a586edfc69f6..0f49705e3c7adf033cee9d0746319885
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4647d1bf9b33923b20b0bdb87f6aff36f57d7618..1f8da294544cae98391723fa1be37868d02a938e 100644
index 057d2c72fd201481d2af3618276777bc05002536..97c9f24872f5a257083e15f60243d0ca8d7d7e92 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -303,6 +303,7 @@ public class PurpurWorldConfig {
@@ -308,6 +308,7 @@ public class PurpurWorldConfig {
public boolean chickenRidableInWater = false;
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
@@ -61,7 +61,7 @@ index 4647d1bf9b33923b20b0bdb87f6aff36f57d7618..1f8da294544cae98391723fa1be37868
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -313,6 +314,7 @@ public class PurpurWorldConfig {
@@ -318,6 +319,7 @@ public class PurpurWorldConfig {
set("mobs.chicken.attributes.max_health", oldValue);
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);

View File

@@ -51,10 +51,10 @@ index 5f407535298a31a34cfe114dd863fd6a9b977707..29c7e33fe961020e5a0007287fe9b663
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 839746c7fd91e946f1a2f673ac93d03381ac0790..7781d869af5d5a93ee6065005aeedc01db500c1f 100644
index d9f2f048bb8d0c64b565c9ab4710fed307ca050b..d55180a8ed54a07c77987f58af88f5d543d86490 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -276,6 +276,9 @@ public class PurpurWorldConfig {
@@ -281,6 +281,9 @@ public class PurpurWorldConfig {
public boolean catRidableInWater = true;
public boolean catControllable = true;
public double catMaxHealth = 10.0D;
@@ -64,7 +64,7 @@ index 839746c7fd91e946f1a2f673ac93d03381ac0790..7781d869af5d5a93ee6065005aeedc01
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -286,6 +289,9 @@ public class PurpurWorldConfig {
@@ -291,6 +294,9 @@ public class PurpurWorldConfig {
set("mobs.cat.attributes.max_health", oldValue);
}
catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth);

View File

@@ -114,10 +114,10 @@ index d26a44d634fe02e595654e573d02243b5eb66086..b94ec05ffa0a6f9e7368731d360319ff
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7781d869af5d5a93ee6065005aeedc01db500c1f..521abcf437aaab03f0f44be709b4a37a9ce18ab5 100644
index d55180a8ed54a07c77987f58af88f5d543d86490..aaf1a159c1e362134d1db3af208f3dcc0204b933 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -346,6 +346,7 @@ public class PurpurWorldConfig {
@@ -351,6 +351,7 @@ public class PurpurWorldConfig {
public boolean cowRidableInWater = true;
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
@@ -125,7 +125,7 @@ index 7781d869af5d5a93ee6065005aeedc01db500c1f..521abcf437aaab03f0f44be709b4a37a
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -356,6 +357,7 @@ public class PurpurWorldConfig {
@@ -361,6 +362,7 @@ public class PurpurWorldConfig {
set("mobs.cow.attributes.max_health", oldValue);
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);

View File

@@ -27,10 +27,10 @@ index a22e5b6c13b48b46d16a859531d4231376bc1bfc..ff98a81f7104bbaf67ed85b8ad0946ed
if (!this.level().isClientSide) {
player.startRiding(this);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 143735894cb1aca700373e92aa1a4fbf3edae5af..d24d01f389ccb4ceecc6fc810c4536ba727adb34 100644
index aaf1a159c1e362134d1db3af208f3dcc0204b933..08754473b4777774825450f6cfe6f936d3732ad9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -915,6 +915,7 @@ public class PurpurWorldConfig {
@@ -920,6 +920,7 @@ public class PurpurWorldConfig {
public boolean pigRidableInWater = false;
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
@@ -38,7 +38,7 @@ index 143735894cb1aca700373e92aa1a4fbf3edae5af..d24d01f389ccb4ceecc6fc810c4536ba
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -925,6 +926,7 @@ public class PurpurWorldConfig {
@@ -930,6 +931,7 @@ public class PurpurWorldConfig {
set("mobs.pig.attributes.max_health", oldValue);
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);

View File

@@ -32,10 +32,10 @@ index a8b411cc3dd1f61b4f949862a077e87e26e424de..2a5ffaf5614e19305f4e08e157523649
this.forceDrops = false; // CraftBukkit
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d24d01f389ccb4ceecc6fc810c4536ba727adb34..fa08a977ee3e42ae2793eebc21a550b93c99246e 100644
index 08754473b4777774825450f6cfe6f936d3732ad9..e9ee68048a1b4ed0a75d56579a7c08616b82d60f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1178,6 +1178,8 @@ public class PurpurWorldConfig {
@@ -1183,6 +1183,8 @@ public class PurpurWorldConfig {
public boolean snowGolemControllable = true;
public boolean snowGolemLeaveTrailWhenRidden = false;
public double snowGolemMaxHealth = 4.0D;
@@ -44,7 +44,7 @@ index d24d01f389ccb4ceecc6fc810c4536ba727adb34..fa08a977ee3e42ae2793eebc21a550b9
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1189,6 +1191,8 @@ public class PurpurWorldConfig {
@@ -1194,6 +1196,8 @@ public class PurpurWorldConfig {
set("mobs.snow_golem.attributes.max_health", oldValue);
}
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);

View File

@@ -18,10 +18,10 @@ index f160933af318becaf99befc0ecc0204bc48ed4a9..81cf89bc57af0f43d05ba93256255155
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3c8cbb7c114f9c14837da9977632fb6442075e35..fdcee2e4d549ad2e5af4ba9b28c944a7cf82ad52 100644
index e9ee68048a1b4ed0a75d56579a7c08616b82d60f..eac1743c0d42689e4337542439dab9949f6e627e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -459,6 +459,7 @@ public class PurpurWorldConfig {
@@ -464,6 +464,7 @@ public class PurpurWorldConfig {
public boolean enderDragonControllable = true;
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
@@ -29,7 +29,7 @@ index 3c8cbb7c114f9c14837da9977632fb6442075e35..fdcee2e4d549ad2e5af4ba9b28c944a7
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -474,6 +475,7 @@ public class PurpurWorldConfig {
@@ -479,6 +480,7 @@ public class PurpurWorldConfig {
set("mobs.ender_dragon.attributes.max_health", oldValue);
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);

View File

@@ -38,10 +38,10 @@ index a97d4e3c4dd03fa8cc299e825479463bb3e148c2..54b59b7faf69d54c05bdfee9b1bd2f13
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index de0226cc930177fec754ba91a1379f5082dda2ad..14a81a1ce795fa88b77597b2cda20072dfc5288b 100644
index 6162dd0fba79171cd0acf8eb378d991f0b73f068..12297df7be1a4b5388715b1c50394bd49e6ce227 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -441,6 +441,7 @@ public class PurpurWorldConfig {
@@ -446,6 +446,7 @@ public class PurpurWorldConfig {
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
@@ -49,7 +49,7 @@ index de0226cc930177fec754ba91a1379f5082dda2ad..14a81a1ce795fa88b77597b2cda20072
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -452,6 +453,7 @@ public class PurpurWorldConfig {
@@ -457,6 +458,7 @@ public class PurpurWorldConfig {
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
@@ -57,7 +57,7 @@ index de0226cc930177fec754ba91a1379f5082dda2ad..14a81a1ce795fa88b77597b2cda20072
}
public boolean dolphinRidable = false;
@@ -558,6 +560,7 @@ public class PurpurWorldConfig {
@@ -563,6 +565,7 @@ public class PurpurWorldConfig {
public boolean endermanRidableInWater = true;
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
@@ -65,7 +65,7 @@ index de0226cc930177fec754ba91a1379f5082dda2ad..14a81a1ce795fa88b77597b2cda20072
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -568,6 +571,7 @@ public class PurpurWorldConfig {
@@ -573,6 +576,7 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max_health", oldValue);
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);

View File

@@ -54,10 +54,10 @@ index 62deb4a443bf65655d2a4310c0dd9f40a02cb401..1c7359431533716b2681176b3b59b502
this.goalSelector.addGoal(8, new WaterAvoidingRandomStrollGoal(this, 0.35D));
this.goalSelector.addGoal(9, new InteractGoal(this, Player.class, 3.0F, 1.0F));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c45b2383fba314e39dbbefcf687be8444683318a..68f1e89cf4a0ba87a15277e91e7b636ae26a6f45 100644
index 12297df7be1a4b5388715b1c50394bd49e6ce227..3614a0affd54572cbfaa472cb70b702cf51a3dfa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1439,6 +1439,7 @@ public class PurpurWorldConfig {
@@ -1444,6 +1444,7 @@ public class PurpurWorldConfig {
public boolean villagerRidableInWater = true;
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
@@ -65,7 +65,7 @@ index c45b2383fba314e39dbbefcf687be8444683318a..68f1e89cf4a0ba87a15277e91e7b636a
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1449,6 +1450,7 @@ public class PurpurWorldConfig {
@@ -1454,6 +1455,7 @@ public class PurpurWorldConfig {
set("mobs.villager.attributes.max_health", oldValue);
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
@@ -73,7 +73,7 @@ index c45b2383fba314e39dbbefcf687be8444683318a..68f1e89cf4a0ba87a15277e91e7b636a
}
public boolean vindicatorRidable = false;
@@ -1471,6 +1473,7 @@ public class PurpurWorldConfig {
@@ -1476,6 +1478,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidableInWater = true;
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
@@ -81,7 +81,7 @@ index c45b2383fba314e39dbbefcf687be8444683318a..68f1e89cf4a0ba87a15277e91e7b636a
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1481,6 +1484,7 @@ public class PurpurWorldConfig {
@@ -1486,6 +1489,7 @@ public class PurpurWorldConfig {
set("mobs.wandering_trader.attributes.max_health", oldValue);
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);

View File

@@ -49,10 +49,10 @@ index 1c7359431533716b2681176b3b59b5028aa043c2..41ddf073ecb8ea97cca8021390500d65
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 68f1e89cf4a0ba87a15277e91e7b636ae26a6f45..807dfd6f54a12e299c53762e835144cd2a3d9858 100644
index 3614a0affd54572cbfaa472cb70b702cf51a3dfa..e3021cbcc712398d062c9ddbd021974f32228169 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1440,6 +1440,7 @@ public class PurpurWorldConfig {
@@ -1445,6 +1445,7 @@ public class PurpurWorldConfig {
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
public boolean villagerFollowEmeraldBlock = false;
@@ -60,7 +60,7 @@ index 68f1e89cf4a0ba87a15277e91e7b636ae26a6f45..807dfd6f54a12e299c53762e835144cd
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1451,6 +1452,7 @@ public class PurpurWorldConfig {
@@ -1456,6 +1457,7 @@ public class PurpurWorldConfig {
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
@@ -68,7 +68,7 @@ index 68f1e89cf4a0ba87a15277e91e7b636ae26a6f45..807dfd6f54a12e299c53762e835144cd
}
public boolean vindicatorRidable = false;
@@ -1474,6 +1476,7 @@ public class PurpurWorldConfig {
@@ -1479,6 +1481,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
@@ -76,7 +76,7 @@ index 68f1e89cf4a0ba87a15277e91e7b636ae26a6f45..807dfd6f54a12e299c53762e835144cd
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1485,6 +1488,7 @@ public class PurpurWorldConfig {
@@ -1490,6 +1493,7 @@ public class PurpurWorldConfig {
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);

View File

@@ -167,10 +167,10 @@ index 8f22bfcde4bb8ad73794f2b98b156113e5a2a6c9..3d61b27c23d90e87fdfc8c170eafc116
public void setPersistentAngerTarget(@Nullable UUID angryAt) {
this.persistentAngerTarget = angryAt;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d003411a802c1 100644
index 573b5872053d273bd0f536a374ab158d0ed338ac..810c8862c423e9ff4440dfe26da740c13a33dbe3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -592,6 +592,9 @@ public class PurpurWorldConfig {
@@ -597,6 +597,9 @@ public class PurpurWorldConfig {
public boolean drownedControllable = true;
public double drownedMaxHealth = 20.0D;
public double drownedSpawnReinforcements = 0.1D;
@@ -180,7 +180,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -603,6 +606,9 @@ public class PurpurWorldConfig {
@@ -608,6 +611,9 @@ public class PurpurWorldConfig {
}
drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth);
drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements);
@@ -190,7 +190,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
}
public boolean elderGuardianRidable = false;
@@ -851,6 +857,9 @@ public class PurpurWorldConfig {
@@ -856,6 +862,9 @@ public class PurpurWorldConfig {
public boolean huskControllable = true;
public double huskMaxHealth = 20.0D;
public double huskSpawnReinforcements = 0.1D;
@@ -200,7 +200,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -862,6 +871,9 @@ public class PurpurWorldConfig {
@@ -867,6 +876,9 @@ public class PurpurWorldConfig {
}
huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth);
huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements);
@@ -210,7 +210,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
}
public boolean illusionerRidable = false;
@@ -1678,6 +1690,9 @@ public class PurpurWorldConfig {
@@ -1683,6 +1695,9 @@ public class PurpurWorldConfig {
public boolean zombieControllable = true;
public double zombieMaxHealth = 20.0D;
public double zombieSpawnReinforcements = 0.1D;
@@ -220,7 +220,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1689,6 +1704,9 @@ public class PurpurWorldConfig {
@@ -1694,6 +1709,9 @@ public class PurpurWorldConfig {
}
zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth);
zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
@@ -230,7 +230,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
}
public boolean zombieHorseRidableInWater = false;
@@ -1723,6 +1741,9 @@ public class PurpurWorldConfig {
@@ -1728,6 +1746,9 @@ public class PurpurWorldConfig {
public boolean zombieVillagerControllable = true;
public double zombieVillagerMaxHealth = 20.0D;
public double zombieVillagerSpawnReinforcements = 0.1D;
@@ -240,7 +240,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1734,6 +1755,9 @@ public class PurpurWorldConfig {
@@ -1739,6 +1760,9 @@ public class PurpurWorldConfig {
}
zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
@@ -250,7 +250,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
}
public boolean zombifiedPiglinRidable = false;
@@ -1741,6 +1765,9 @@ public class PurpurWorldConfig {
@@ -1746,6 +1770,9 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinControllable = true;
public double zombifiedPiglinMaxHealth = 20.0D;
public double zombifiedPiglinSpawnReinforcements = 0.0D;
@@ -260,7 +260,7 @@ index 2a64f26cd8db56bf522b1a9f6201164d188bd0b9..9d3c5867a8d54200e4a6e90ead9d0034
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1752,5 +1779,8 @@ public class PurpurWorldConfig {
@@ -1757,5 +1784,8 @@ public class PurpurWorldConfig {
}
zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);

View File

@@ -257,10 +257,10 @@ index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1e
private float speed = 0.1F;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9d3c5867a8d54200e4a6e90ead9d003411a802c1..713c41552f6ad40ab60fa771069771cca85293e5 100644
index 810c8862c423e9ff4440dfe26da740c13a33dbe3..3115d26f1ef9e52e02b71cc31dd8181e54d90875 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1069,6 +1069,9 @@ public class PurpurWorldConfig {
@@ -1074,6 +1074,9 @@ public class PurpurWorldConfig {
public String phantomAttackDamage = "6 + size";
public Map<Integer, Double> phantomMaxHealthCache = new HashMap<>();
public Map<Integer, Double> phantomAttackDamageCache = new HashMap<>();
@@ -270,7 +270,7 @@ index 9d3c5867a8d54200e4a6e90ead9d003411a802c1..713c41552f6ad40ab60fa771069771cc
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1090,6 +1093,9 @@ public class PurpurWorldConfig {
@@ -1095,6 +1098,9 @@ public class PurpurWorldConfig {
phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage);
phantomMaxHealthCache.clear();
phantomAttackDamageCache.clear();

View File

@@ -40,10 +40,10 @@ index bc7648dbc132551dc6591ab49a1919a623c30f60..5b880677c895d0e747a1ed6a380ae356
for (int l = 0; l < k; ++l) {
// Paper start
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 713c41552f6ad40ab60fa771069771cca85293e5..f207be407429ddb864b00c2ed139a1927e286b65 100644
index 3115d26f1ef9e52e02b71cc31dd8181e54d90875..60f817c6aaa6f35e27f6deca35fb852b90a643e1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1072,6 +1072,12 @@ public class PurpurWorldConfig {
@@ -1077,6 +1077,12 @@ public class PurpurWorldConfig {
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;
@@ -56,7 +56,7 @@ index 713c41552f6ad40ab60fa771069771cca85293e5..f207be407429ddb864b00c2ed139a192
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1096,6 +1102,12 @@ public class PurpurWorldConfig {
@@ -1101,6 +1107,12 @@ public class PurpurWorldConfig {
phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius);
phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage);
phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e8bf33d0731a41f16e4321cdd119c7787292cde3..227d7ffff8d9a605656a8b85f094d32af712c9d9 100644
index 8a336795be721fda5d2ac686042a11a8c7e41051..1245d8d79f81f20805eea0d255b57c56813d43cf 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig {
@@ -1462,6 +1462,7 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
@@ -16,7 +16,7 @@ index e8bf33d0731a41f16e4321cdd119c7787292cde3..227d7ffff8d9a605656a8b85f094d32a
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1466,6 +1467,7 @@ public class PurpurWorldConfig {
@@ -1471,6 +1472,7 @@ public class PurpurWorldConfig {
set("mobs.squid.attributes.max_health", oldValue);
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);

View File

@@ -52,10 +52,10 @@ index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f
list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error
Iterator iterator = list.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 227d7ffff8d9a605656a8b85f094d32af712c9d9..5a834dee8903db6062bcb6c9c73def6e1c1cf831 100644
index 1245d8d79f81f20805eea0d255b57c56813d43cf..e1f5b78e0a92b27cac21454e0f59adc66b5ca37b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1127,6 +1127,9 @@ public class PurpurWorldConfig {
@@ -1132,6 +1132,9 @@ public class PurpurWorldConfig {
public double phantomSpawnLocalDifficultyChance = 3.0D;
public int phantomSpawnMinPerAttempt = 1;
public int phantomSpawnMaxPerAttempt = -1;
@@ -65,7 +65,7 @@ index 227d7ffff8d9a605656a8b85f094d32af712c9d9..5a834dee8903db6062bcb6c9c73def6e
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1157,6 +1160,9 @@ public class PurpurWorldConfig {
@@ -1162,6 +1165,9 @@ public class PurpurWorldConfig {
phantomSpawnLocalDifficultyChance = getDouble("mobs.phantom.spawn.local-difficulty-chance", phantomSpawnLocalDifficultyChance);
phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt);
phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt);

View File

@@ -18,10 +18,10 @@ index 813b9708d218589afaaa2d0578affcc78f0c075f..52a84f354cc51b3ca875756514588b2e
private boolean hungry() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5a834dee8903db6062bcb6c9c73def6e1c1cf831..03f32bd89a72a9549e5d9313595ad163b56d4fbd 100644
index e1f5b78e0a92b27cac21454e0f59adc66b5ca37b..91299ae4bba67e9253d8d380b703ea04ef8dc44b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1615,6 +1615,7 @@ public class PurpurWorldConfig {
@@ -1620,6 +1620,7 @@ public class PurpurWorldConfig {
public double villagerMaxHealth = 20.0D;
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
@@ -29,7 +29,7 @@ index 5a834dee8903db6062bcb6c9c73def6e1c1cf831..03f32bd89a72a9549e5d9313595ad163
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1627,6 +1628,7 @@ public class PurpurWorldConfig {
@@ -1632,6 +1633,7 @@ public class PurpurWorldConfig {
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);

View File

@@ -22,10 +22,10 @@ index 40858ac2a9b58108472748d0ef2c2fd5ef5cfd98..2a5b6b94b15bf066b5722e7a4f782bc8
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1895ec42d033c148bd79a04fee4a28bc2be117bb..3ee48df518c1a05ccd12f239231e5f50dce5be44 100644
index 3066dd87ecd6a75ce9799a5f8da9a7d40793b347..bbeeefc1d3e46b81a72c7708d8f0333d3713d22b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1642,6 +1642,7 @@ public class PurpurWorldConfig {
@@ -1647,6 +1647,7 @@ public class PurpurWorldConfig {
public boolean vindicatorRidableInWater = true;
public boolean vindicatorControllable = true;
public double vindicatorMaxHealth = 24.0D;
@@ -33,7 +33,7 @@ index 1895ec42d033c148bd79a04fee4a28bc2be117bb..3ee48df518c1a05ccd12f239231e5f50
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1652,6 +1653,7 @@ public class PurpurWorldConfig {
@@ -1657,6 +1658,7 @@ public class PurpurWorldConfig {
set("mobs.vindicator.attributes.max_health", oldValue);
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);

View File

@@ -17,10 +17,10 @@ index 08e9fd3581578195e5df079b086811c5964fd17a..7b2674233d0b8582243448c49d1c4727
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 47e425967c120fa0abec8dacf4385ce3ad47f21e..9b398a73d093f83e437867119bbd77229080cfc3 100644
index 6a25428229cbfc64cdb50395816ad6c1e7a33edb..0055c06af2ab486287d92ca3d9beff684768fcab 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -614,6 +614,7 @@ public class PurpurWorldConfig {
@@ -619,6 +619,7 @@ public class PurpurWorldConfig {
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
@@ -28,7 +28,7 @@ index 47e425967c120fa0abec8dacf4385ce3ad47f21e..9b398a73d093f83e437867119bbd7722
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -626,6 +627,7 @@ public class PurpurWorldConfig {
@@ -631,6 +632,7 @@ public class PurpurWorldConfig {
set("mobs.dolphin.attributes.max_health", oldValue);
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);

View File

@@ -54,10 +54,10 @@ index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9b398a73d093f83e437867119bbd77229080cfc3..99ce124edf3cb3e747785675c17bd831bf68fc74 100644
index 0055c06af2ab486287d92ca3d9beff684768fcab..816d99c3ff70317204395234469c25c0cf6ae37a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1482,6 +1482,7 @@ public class PurpurWorldConfig {
@@ -1487,6 +1487,7 @@ public class PurpurWorldConfig {
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
@@ -65,7 +65,7 @@ index 9b398a73d093f83e437867119bbd77229080cfc3..99ce124edf3cb3e747785675c17bd831
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1492,6 +1493,7 @@ public class PurpurWorldConfig {
@@ -1497,6 +1498,7 @@ public class PurpurWorldConfig {
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);

View File

@@ -23,10 +23,10 @@ index a20017a6086421061ee13df9cf37e08eeb515a5b..c2f4ae412684cc2f8d3cc2206003be5c
this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a36f35990fe315dbb87c453b501892009acaa342..af5bc07bf5598dc4ecb88b05e36d0ce232441b1e 100644
index 01809e43b010973ce09974f243e737330ab77e06..fe55555284c977e87922302fc7fe27b25b3680dd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1721,6 +1721,8 @@ public class PurpurWorldConfig {
@@ -1726,6 +1726,8 @@ public class PurpurWorldConfig {
public boolean witherControllable = true;
public double witherMaxY = 320D;
public double witherMaxHealth = 300.0D;
@@ -35,7 +35,7 @@ index a36f35990fe315dbb87c453b501892009acaa342..af5bc07bf5598dc4ecb88b05e36d0ce2
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1736,6 +1738,8 @@ public class PurpurWorldConfig {
@@ -1741,6 +1743,8 @@ public class PurpurWorldConfig {
set("mobs.wither.attributes.max_health", oldValue);
}
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);

View File

@@ -70,10 +70,10 @@ index b2b04d7b7bbc400fb66cac385fa754d4fb47c7d9..bd75aa78a7dd437d6fce79a6cb182981
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c9b51a213e32c62f42b5ee1adc9d57ea930ff59d..f08ce3435d293fbd39c6e6fa89607157d33f9812 100644
index 8e9c3e1efb6d108f6ab98d64e3991389a49096a4..a3e1d30b90cd037854fd53144ad799f42e6364a2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1854,6 +1854,7 @@ public class PurpurWorldConfig {
@@ -1859,6 +1859,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@@ -81,7 +81,7 @@ index c9b51a213e32c62f42b5ee1adc9d57ea930ff59d..f08ce3435d293fbd39c6e6fa89607157
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1868,6 +1869,7 @@ public class PurpurWorldConfig {
@@ -1873,6 +1874,7 @@ public class PurpurWorldConfig {
zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby);
zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance);
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);

View File

@@ -58,10 +58,10 @@ index de0a015cc944c36358fc34a3142ecbf9d2a332b5..1431d7f295614641c1a5a5197f4bac3f
float f1 = Mth.cos(f) * 0.2F;
float f2 = -0.1F + this.squid.getRandom().nextFloat() * 0.2F;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f08ce3435d293fbd39c6e6fa89607157d33f9812..37a7ceb49a00a086dadd27168726d690da3dc7c8 100644
index a3e1d30b90cd037854fd53144ad799f42e6364a2..7e9375610bcd2e58eb8acf59bc9311928acb5f6d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -906,10 +906,12 @@ public class PurpurWorldConfig {
@@ -911,10 +911,12 @@ public class PurpurWorldConfig {
public boolean glowSquidRidable = false;
public boolean glowSquidControllable = true;
public double glowSquidMaxHealth = 10.0D;
@@ -74,7 +74,7 @@ index f08ce3435d293fbd39c6e6fa89607157d33f9812..37a7ceb49a00a086dadd27168726d690
}
public boolean goatRidable = false;
@@ -1541,6 +1543,7 @@ public class PurpurWorldConfig {
@@ -1546,6 +1548,7 @@ public class PurpurWorldConfig {
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
@@ -82,7 +82,7 @@ index f08ce3435d293fbd39c6e6fa89607157d33f9812..37a7ceb49a00a086dadd27168726d690
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1552,6 +1555,7 @@ public class PurpurWorldConfig {
@@ -1557,6 +1560,7 @@ public class PurpurWorldConfig {
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);

View File

@@ -22,7 +22,7 @@ index 0951c04533e7c39b969d041271684355770b53c2..02d4ba2ccdce99ca97614baa7c8e4921
world.broadcastEntityEvent(entityvillager2, (byte) 12);
return Optional.of(entityvillager2);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
index 975eaac5d1e6cbf40454a0bebcea0ee4451c0cb2..3977e59d9d248accc1d2946874960f1072e11a7b 100644
index 9f6728184dffc4b5a93900ac6e8411f967eed26d..15feb1baed21b2ed3fb90d68aa9b2b97aa664b15 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
@@ -40,6 +40,7 @@ public abstract class Animal extends AgeableMob {
@@ -316,23 +316,20 @@ index 3b70849dca92ee4b0427396de6440f1c29fd724a..8b69eaf846d746e8c4a0d45378d85edc
public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues;
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index e2540b7e28c8ba63a0360766a8afa57ac33e336f..d560bb344fefdfb2e8393dc1c5d96ef6d9dbf0e5 100644
index 5ec8815cc69f5abe03a29224650edfb153c9f5d0..8073a3a0df7d75a29419303c85d7dadd9f94be99 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -84,6 +84,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
groundPathNavigation.setCanWalkOverFences(true);
@@ -89,6 +89,10 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
public boolean dismountsUnderwater() {
return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.camelRidableInWater;
}
+ // Purpur start
+ @Override
+
+ public int getPurpurBreedTime() {
+ return this.level().purpurConfig.camelBreedingTicks;
+ }
+ // Purpur end
+
// Purpur end
@Override
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index d4100aab149913a3146ce00f20baf15e2c3ecbfb..eab6d7bb5ae6635eb881156f50c8fd4ed2adb11a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -525,7 +522,7 @@ index 853fe631a7d665e2379296c89e433e761495a814..ae4d404b837da202e52d246dabfc00c8
public boolean canBeLeashed(Player player) {
return !this.isLeashed();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2ebe20d8f5a 100644
index 6e049d5b08550b5073f3d790d1b3805e930ad002..19c0d2a94fef6e6a62908d93160c10955f033891 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -507,10 +507,12 @@ public class PurpurWorldConfig {
@@ -572,8 +569,8 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
+ camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks);
}
public boolean catRidable = false;
@@ -603,6 +609,7 @@ public class PurpurWorldConfig {
public boolean camelRidableInWater = false;
@@ -608,6 +614,7 @@ public class PurpurWorldConfig {
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
@@ -581,7 +578,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -616,6 +623,7 @@ public class PurpurWorldConfig {
@@ -621,6 +628,7 @@ public class PurpurWorldConfig {
catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay);
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
@@ -589,7 +586,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean caveSpiderRidable = false;
@@ -639,6 +647,7 @@ public class PurpurWorldConfig {
@@ -644,6 +652,7 @@ public class PurpurWorldConfig {
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
@@ -597,7 +594,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -650,6 +659,7 @@ public class PurpurWorldConfig {
@@ -655,6 +664,7 @@ public class PurpurWorldConfig {
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
@@ -605,7 +602,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean codRidable = false;
@@ -671,6 +681,7 @@ public class PurpurWorldConfig {
@@ -676,6 +686,7 @@ public class PurpurWorldConfig {
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
@@ -613,7 +610,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -682,6 +693,7 @@ public class PurpurWorldConfig {
@@ -687,6 +698,7 @@ public class PurpurWorldConfig {
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
@@ -621,7 +618,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean creeperRidable = false;
@@ -733,6 +745,7 @@ public class PurpurWorldConfig {
@@ -738,6 +750,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@@ -629,7 +626,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -748,6 +761,7 @@ public class PurpurWorldConfig {
@@ -753,6 +766,7 @@ public class PurpurWorldConfig {
donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax);
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
@@ -637,7 +634,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean drownedRidable = false;
@@ -867,6 +881,7 @@ public class PurpurWorldConfig {
@@ -872,6 +886,7 @@ public class PurpurWorldConfig {
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
@@ -645,7 +642,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -878,17 +893,20 @@ public class PurpurWorldConfig {
@@ -883,17 +898,20 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@@ -666,7 +663,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean ghastRidable = false;
@@ -956,11 +974,13 @@ public class PurpurWorldConfig {
@@ -961,11 +979,13 @@ public class PurpurWorldConfig {
public boolean goatRidableInWater = true;
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
@@ -680,7 +677,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean guardianRidable = false;
@@ -981,6 +1001,7 @@ public class PurpurWorldConfig {
@@ -986,6 +1006,7 @@ public class PurpurWorldConfig {
public boolean hoglinRidableInWater = true;
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
@@ -688,7 +685,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -991,6 +1012,7 @@ public class PurpurWorldConfig {
@@ -996,6 +1017,7 @@ public class PurpurWorldConfig {
set("mobs.hoglin.attributes.max_health", oldValue);
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
@@ -696,7 +693,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean horseRidableInWater = false;
@@ -1000,6 +1022,7 @@ public class PurpurWorldConfig {
@@ -1005,6 +1027,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@@ -704,7 +701,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1015,6 +1038,7 @@ public class PurpurWorldConfig {
@@ -1020,6 +1043,7 @@ public class PurpurWorldConfig {
horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax);
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
@@ -712,7 +709,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean huskRidable = false;
@@ -1092,6 +1116,7 @@ public class PurpurWorldConfig {
@@ -1097,6 +1121,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@@ -720,7 +717,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1109,6 +1134,7 @@ public class PurpurWorldConfig {
@@ -1114,6 +1139,7 @@ public class PurpurWorldConfig {
llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax);
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
@@ -728,7 +725,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean magmaCubeRidable = false;
@@ -1137,6 +1163,7 @@ public class PurpurWorldConfig {
@@ -1142,6 +1168,7 @@ public class PurpurWorldConfig {
public boolean mooshroomRidableInWater = true;
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
@@ -736,7 +733,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1147,6 +1174,7 @@ public class PurpurWorldConfig {
@@ -1152,6 +1179,7 @@ public class PurpurWorldConfig {
set("mobs.mooshroom.attributes.max_health", oldValue);
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
@@ -744,7 +741,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean muleRidableInWater = false;
@@ -1156,6 +1184,7 @@ public class PurpurWorldConfig {
@@ -1161,6 +1189,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@@ -752,7 +749,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1171,12 +1200,14 @@ public class PurpurWorldConfig {
@@ -1176,12 +1205,14 @@ public class PurpurWorldConfig {
muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax);
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
@@ -767,7 +764,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1187,12 +1218,14 @@ public class PurpurWorldConfig {
@@ -1192,12 +1223,14 @@ public class PurpurWorldConfig {
set("mobs.ocelot.attributes.max_health", oldValue);
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
@@ -782,7 +779,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1203,6 +1236,7 @@ public class PurpurWorldConfig {
@@ -1208,6 +1241,7 @@ public class PurpurWorldConfig {
set("mobs.panda.attributes.max_health", oldValue);
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
@@ -790,7 +787,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean parrotRidable = false;
@@ -1286,6 +1320,7 @@ public class PurpurWorldConfig {
@@ -1291,6 +1325,7 @@ public class PurpurWorldConfig {
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
@@ -798,7 +795,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1297,6 +1332,7 @@ public class PurpurWorldConfig {
@@ -1302,6 +1337,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@@ -806,7 +803,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean piglinRidable = false;
@@ -1353,6 +1389,7 @@ public class PurpurWorldConfig {
@@ -1358,6 +1394,7 @@ public class PurpurWorldConfig {
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@@ -814,7 +811,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1366,6 +1403,7 @@ public class PurpurWorldConfig {
@@ -1371,6 +1408,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
@@ -822,7 +819,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean pufferfishRidable = false;
@@ -1388,6 +1426,7 @@ public class PurpurWorldConfig {
@@ -1393,6 +1431,7 @@ public class PurpurWorldConfig {
public double rabbitMaxHealth = 3.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@@ -830,7 +827,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1400,6 +1439,7 @@ public class PurpurWorldConfig {
@@ -1405,6 +1444,7 @@ public class PurpurWorldConfig {
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
@@ -838,7 +835,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean ravagerRidable = false;
@@ -1436,6 +1476,7 @@ public class PurpurWorldConfig {
@@ -1441,6 +1481,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = true;
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
@@ -846,7 +843,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1446,6 +1487,7 @@ public class PurpurWorldConfig {
@@ -1451,6 +1492,7 @@ public class PurpurWorldConfig {
set("mobs.sheep.attributes.max_health", oldValue);
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
@@ -854,7 +851,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean shulkerRidable = false;
@@ -1569,11 +1611,13 @@ public class PurpurWorldConfig {
@@ -1574,11 +1616,13 @@ public class PurpurWorldConfig {
public boolean snifferRidableInWater = true;
public boolean snifferControllable = true;
public double snifferMaxHealth = 14.0D;
@@ -868,7 +865,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean squidRidable = false;
@@ -1632,6 +1676,7 @@ public class PurpurWorldConfig {
@@ -1637,6 +1681,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
@@ -876,7 +873,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1642,6 +1687,7 @@ public class PurpurWorldConfig {
@@ -1647,6 +1692,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
@@ -884,7 +881,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean tadpoleRidable = false;
@@ -1662,6 +1708,7 @@ public class PurpurWorldConfig {
@@ -1667,6 +1713,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -892,7 +889,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1679,6 +1726,7 @@ public class PurpurWorldConfig {
@@ -1684,6 +1731,7 @@ public class PurpurWorldConfig {
traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax);
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
@@ -900,7 +897,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean tropicalFishRidable = false;
@@ -1699,6 +1747,7 @@ public class PurpurWorldConfig {
@@ -1704,6 +1752,7 @@ public class PurpurWorldConfig {
public boolean turtleRidableInWater = true;
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
@@ -908,7 +905,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1709,6 +1758,7 @@ public class PurpurWorldConfig {
@@ -1714,6 +1763,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
@@ -916,7 +913,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean vexRidable = false;
@@ -1736,6 +1786,7 @@ public class PurpurWorldConfig {
@@ -1741,6 +1791,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
@@ -924,7 +921,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1749,6 +1800,7 @@ public class PurpurWorldConfig {
@@ -1754,6 +1805,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
@@ -932,7 +929,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
}
public boolean vindicatorRidable = false;
@@ -1860,6 +1912,7 @@ public class PurpurWorldConfig {
@@ -1865,6 +1917,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = true;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -940,7 +937,7 @@ index 79f951f6275612234a26bff758ef3b0a67be9e52..510ab470e6d3c49f209277732e78c2eb
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1870,6 +1923,7 @@ public class PurpurWorldConfig {
@@ -1875,6 +1928,7 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -8,7 +8,7 @@ This should help to reduce the amount of dirt, gravel, grass, and etc.
that Endermen like to randomly place all over the world.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 15eb4c93ddd4ea06640ff45e11c54b5c761ca89a..47b82549b401acca5e9a5702d41674652ab6853f 100644
index a9de01b7043124d8460f1608c3b929e911e3bc6f..772402331f2a24c899ed7e7002ec981403574e22 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -484,7 +484,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -21,10 +21,10 @@ index 15eb4c93ddd4ea06640ff45e11c54b5c761ca89a..47b82549b401acca5e9a5702d4167465
private static class EndermanFreezeWhenLookedAt extends Goal {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6aebb6d2f2837117424aa1f47fc3334323bfe061..3740e5223b6d4c42b2e7e8001c0c875bc56bc445 100644
index 967e9aa6c66489c6f1b976427c75f2f109d90bc9..6d1f838bf02a4883519484d15fa82483005b9acb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -837,6 +837,7 @@ public class PurpurWorldConfig {
@@ -842,6 +842,7 @@ public class PurpurWorldConfig {
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
@@ -32,7 +32,7 @@ index 6aebb6d2f2837117424aa1f47fc3334323bfe061..3740e5223b6d4c42b2e7e8001c0c875b
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -848,6 +849,7 @@ public class PurpurWorldConfig {
@@ -853,6 +854,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -23,10 +23,10 @@ index 2a5ffaf5614e19305f4e08e15752364919e68a49..ecc0f221fca332b6f4d8feb72dbafc52
this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5852c31513548a42a644e58e6ba5080b2baa76c4..b1823acc4f02d86d839f45d00efd289e4f734e3e 100644
index a5d70130c9411b381152c073d9ccb957a22d8953..f2b8ff85257c67aefa7b8e541a68c7cce04a4367 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1609,6 +1609,10 @@ public class PurpurWorldConfig {
@@ -1614,6 +1614,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public boolean snowGolemDropsPumpkin = true;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index 5852c31513548a42a644e58e6ba5080b2baa76c4..b1823acc4f02d86d839f45d00efd289e
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1622,6 +1626,10 @@ public class PurpurWorldConfig {
@@ -1627,6 +1631,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -176,10 +176,10 @@ index ac70c2c03241e73943bd517a8c69dd05e0873634..0318663a824d2a9515f867a075d148c3
public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b1823acc4f02d86d839f45d00efd289e4f734e3e..2fbc0385254828548ac42e0b9cc4f0d1b4a829a9 100644
index f2b8ff85257c67aefa7b8e541a68c7cce04a4367..a7db2b09decdc19b8e41720937f6f6ad05e088d1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1812,6 +1812,8 @@ public class PurpurWorldConfig {
@@ -1817,6 +1817,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -188,7 +188,7 @@ index b1823acc4f02d86d839f45d00efd289e4f734e3e..2fbc0385254828548ac42e0b9cc4f0d1
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1826,6 +1828,8 @@ public class PurpurWorldConfig {
@@ -1831,6 +1833,8 @@ public class PurpurWorldConfig {
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);

View File

@@ -35,10 +35,10 @@ index 3d61b27c23d90e87fdfc8c170eafc116716ac047..67fd554cfd6b848ca1f2cf804ad4543a
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2fbc0385254828548ac42e0b9cc4f0d1b4a829a9..4c9fb0baae787ee7563b2e721f7b6367b0691d2d 100644
index a7db2b09decdc19b8e41720937f6f6ad05e088d1..761ae4d1e9770dee94f79779e5abf883b1d32d96 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2056,6 +2056,7 @@ public class PurpurWorldConfig {
@@ -2061,6 +2061,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index 2fbc0385254828548ac42e0b9cc4f0d1b4a829a9..4c9fb0baae787ee7563b2e721f7b6367
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2070,5 +2071,6 @@ public class PurpurWorldConfig {
@@ -2075,5 +2076,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby);
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);

View File

@@ -221,10 +221,10 @@ index e43fd3e59fd8c74828ae65965fade27f56beef65..b2f133c8baabba1cffa6e92ea0f85453
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4c9fb0baae787ee7563b2e721f7b6367b0691d2d..ead17ced10d157231fcc5648512a18f603354fbf 100644
index 761ae4d1e9770dee94f79779e5abf883b1d32d96..7578a7be9df62de16edd9c245e1df9e2d83a6ed1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1941,6 +1941,8 @@ public class PurpurWorldConfig {
@@ -1946,6 +1946,8 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = true;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -233,7 +233,7 @@ index 4c9fb0baae787ee7563b2e721f7b6367b0691d2d..ead17ced10d157231fcc5648512a18f6
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -1952,6 +1954,8 @@ public class PurpurWorldConfig {
@@ -1957,6 +1959,8 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -43,10 +43,10 @@ index aa484d03ed31f6c60c0b4456a4047bc38a40ea4a..89627025c0b5464900a5ea818c7aaf5d
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ead17ced10d157231fcc5648512a18f603354fbf..52a17b09fb33255b0fb883c76aa0541ddc2e071b 100644
index 7578a7be9df62de16edd9c245e1df9e2d83a6ed1..c4842302969392f4bccc23a16b52e4cdec2fe959 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -625,6 +625,7 @@ public class PurpurWorldConfig {
@@ -630,6 +630,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
@@ -54,7 +54,7 @@ index ead17ced10d157231fcc5648512a18f603354fbf..52a17b09fb33255b0fb883c76aa0541d
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -639,6 +640,11 @@ public class PurpurWorldConfig {
@@ -644,6 +645,11 @@ public class PurpurWorldConfig {
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks);
@@ -66,7 +66,7 @@ index ead17ced10d157231fcc5648512a18f603354fbf..52a17b09fb33255b0fb883c76aa0541d
}
public boolean caveSpiderRidable = false;
@@ -1941,6 +1947,7 @@ public class PurpurWorldConfig {
@@ -1946,6 +1952,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = true;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -74,7 +74,7 @@ index ead17ced10d157231fcc5648512a18f603354fbf..52a17b09fb33255b0fb883c76aa0541d
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -1954,6 +1961,11 @@ public class PurpurWorldConfig {
@@ -1959,6 +1966,11 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -17,10 +17,10 @@ index 899a7d3989b51456600787ae09b1736f83bf9a65..076a881412d40ce6a8f5e5f83f7598bf
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 52a17b09fb33255b0fb883c76aa0541ddc2e071b..a02c5dce24e1a2d74e718fbf1eb6aaa2e104f19d 100644
index c4842302969392f4bccc23a16b52e4cdec2fe959..68bcb9fdb95a453a0781cf732a7bf3fd3f6318e2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1303,6 +1303,7 @@ public class PurpurWorldConfig {
@@ -1308,6 +1308,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index 52a17b09fb33255b0fb883c76aa0541ddc2e071b..a02c5dce24e1a2d74e718fbf1eb6aaa2
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1336,6 +1337,7 @@ public class PurpurWorldConfig {
@@ -1341,6 +1342,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);

View File

@@ -29,10 +29,10 @@ index 93dca4758ed995373fe1585930f225604a4153fa..4c077c94b654f54465ece2aa45c5ead0
if (!this.level().isClientSide) {
player.startRiding(this);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7220bcb158ea7706bb3554a457c0ee3d32af1cf5..2de252b735d8430e776e755996a1dbb3a65fd754 100644
index 236a85b1cd681db91d7fbd5b24e6cee986bd7e67..fe1d6a3904a0915fb4b5cb5f567ae861f5cd8133 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1715,6 +1715,7 @@ public class PurpurWorldConfig {
@@ -1720,6 +1720,7 @@ public class PurpurWorldConfig {
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
@@ -40,7 +40,7 @@ index 7220bcb158ea7706bb3554a457c0ee3d32af1cf5..2de252b735d8430e776e755996a1dbb3
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1726,6 +1727,7 @@ public class PurpurWorldConfig {
@@ -1731,6 +1732,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 27df4e881e850a73947651ce7ad98df5159f4c1c..182436020d2376101f5863f80b4b6d3d9ebd6a2e 100644
index a9e4240777f13f7d1326534a7643ed5280153cdf..02b5f17a44cf73b852b4f1d676b14d091bdef061 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1767,7 +1767,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -157,7 +157,7 @@ index c2f4ae412684cc2f8d3cc2206003be5c9e3b2769..d5f0636053fa0ed246ae2413a5b04f70
j = Mth.floor(this.getX());
int i1 = Mth.floor(this.getZ());
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 47b82549b401acca5e9a5702d41674652ab6853f..87960051bd908822cf8c0d5c7b2d1faa6396c92f 100644
index 772402331f2a24c899ed7e7002ec981403574e22..cda9662affdac0f42f27d4b2edfa412b9cd16283 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -532,7 +532,15 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -374,7 +374,7 @@ index 1942649e868fc985a488034c411a6721595ecc67..7495e0e8beedad59fff24ebf189b58b3
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8bafd2b456 100644
index 4eef40d903f9025046ec84ed5122217513522e3d..3785ae72b9cbfc9178387375fbbbe9f7e3556043 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -117,8 +117,11 @@ public class PurpurWorldConfig {
@@ -438,7 +438,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public int waterInfiniteRequiredSources = 2;
@@ -741,6 +756,7 @@ public class PurpurWorldConfig {
@@ -746,6 +761,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -446,7 +446,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -753,6 +769,7 @@ public class PurpurWorldConfig {
@@ -758,6 +774,7 @@ public class PurpurWorldConfig {
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -454,7 +454,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean dolphinRidable = false;
@@ -847,6 +864,7 @@ public class PurpurWorldConfig {
@@ -852,6 +869,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@@ -462,7 +462,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -863,6 +881,7 @@ public class PurpurWorldConfig {
@@ -868,6 +886,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -470,7 +470,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean endermanRidable = false;
@@ -871,6 +890,7 @@ public class PurpurWorldConfig {
@@ -876,6 +895,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -478,7 +478,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -883,6 +903,7 @@ public class PurpurWorldConfig {
@@ -888,6 +908,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -486,7 +486,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean endermiteRidable = false;
@@ -905,6 +926,7 @@ public class PurpurWorldConfig {
@@ -910,6 +931,7 @@ public class PurpurWorldConfig {
public boolean evokerRidableInWater = true;
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
@@ -494,7 +494,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -915,6 +937,7 @@ public class PurpurWorldConfig {
@@ -920,6 +942,7 @@ public class PurpurWorldConfig {
set("mobs.evoker.attributes.max_health", oldValue);
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
@@ -502,7 +502,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean foxRidable = false;
@@ -923,6 +946,7 @@ public class PurpurWorldConfig {
@@ -928,6 +951,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -510,7 +510,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -935,6 +959,7 @@ public class PurpurWorldConfig {
@@ -940,6 +964,7 @@ public class PurpurWorldConfig {
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
@@ -518,7 +518,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean frogRidable = false;
@@ -1382,6 +1407,7 @@ public class PurpurWorldConfig {
@@ -1387,6 +1412,7 @@ public class PurpurWorldConfig {
public boolean piglinRidableInWater = true;
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
@@ -526,7 +526,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1392,6 +1418,7 @@ public class PurpurWorldConfig {
@@ -1397,6 +1423,7 @@ public class PurpurWorldConfig {
set("mobs.piglin.attributes.max_health", oldValue);
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
@@ -534,7 +534,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean piglinBruteRidable = false;
@@ -1414,6 +1441,7 @@ public class PurpurWorldConfig {
@@ -1419,6 +1446,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidableInWater = true;
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
@@ -542,7 +542,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1424,6 +1452,7 @@ public class PurpurWorldConfig {
@@ -1429,6 +1457,7 @@ public class PurpurWorldConfig {
set("mobs.pillager.attributes.max_health", oldValue);
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
@@ -550,7 +550,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean polarBearRidable = false;
@@ -1470,6 +1499,7 @@ public class PurpurWorldConfig {
@@ -1475,6 +1504,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -558,7 +558,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1483,12 +1513,14 @@ public class PurpurWorldConfig {
@@ -1488,12 +1518,14 @@ public class PurpurWorldConfig {
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
@@ -573,7 +573,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1499,6 +1531,7 @@ public class PurpurWorldConfig {
@@ -1504,6 +1536,7 @@ public class PurpurWorldConfig {
set("mobs.ravager.attributes.max_health", oldValue);
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
@@ -581,7 +581,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean salmonRidable = false;
@@ -1520,6 +1553,7 @@ public class PurpurWorldConfig {
@@ -1525,6 +1558,7 @@ public class PurpurWorldConfig {
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
@@ -589,7 +589,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1531,6 +1565,7 @@ public class PurpurWorldConfig {
@@ -1536,6 +1570,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -597,7 +597,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean shulkerRidable = false;
@@ -1553,6 +1588,7 @@ public class PurpurWorldConfig {
@@ -1558,6 +1593,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidableInWater = true;
public boolean silverfishControllable = true;
public double silverfishMaxHealth = 8.0D;
@@ -605,7 +605,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1563,6 +1599,7 @@ public class PurpurWorldConfig {
@@ -1568,6 +1604,7 @@ public class PurpurWorldConfig {
set("mobs.silverfish.attributes.max_health", oldValue);
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
@@ -613,7 +613,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean skeletonRidable = false;
@@ -1639,6 +1676,7 @@ public class PurpurWorldConfig {
@@ -1644,6 +1681,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -621,7 +621,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1656,6 +1694,7 @@ public class PurpurWorldConfig {
@@ -1661,6 +1699,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax);
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
@@ -629,7 +629,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean snifferRidable = false;
@@ -1842,6 +1881,7 @@ public class PurpurWorldConfig {
@@ -1847,6 +1886,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -637,7 +637,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1858,6 +1898,7 @@ public class PurpurWorldConfig {
@@ -1863,6 +1903,7 @@ public class PurpurWorldConfig {
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
@@ -645,7 +645,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean vindicatorRidable = false;
@@ -1930,6 +1971,7 @@ public class PurpurWorldConfig {
@@ -1935,6 +1976,7 @@ public class PurpurWorldConfig {
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -653,7 +653,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1947,6 +1989,7 @@ public class PurpurWorldConfig {
@@ -1952,6 +1994,7 @@ public class PurpurWorldConfig {
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -661,7 +661,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
}
public boolean witherSkeletonRidable = false;
@@ -2018,6 +2061,7 @@ public class PurpurWorldConfig {
@@ -2023,6 +2066,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -669,7 +669,7 @@ index 787116225cc5a21576a3854c481f963b19c63cc4..2d358654a518d3dfa663d079fc522f8b
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2033,6 +2077,7 @@ public class PurpurWorldConfig {
@@ -2038,6 +2082,7 @@ public class PurpurWorldConfig {
zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance);
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);

View File

@@ -1197,7 +1197,7 @@ index 41ddf073ecb8ea97cca8021390500d65866488a5..e2a9179bb7a5ecbc31d98a2410a09f5e
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3ffeae0c7 100644
index d7d3001d1b547d6191eef83736ff1f24137784c2..ddce741ab355df1fd3ca3d857ecfb17fc8332ca4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -574,11 +574,13 @@ public class PurpurWorldConfig {
@@ -1262,7 +1262,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public int camelBreedingTicks = 6000;
@@ -677,6 +685,7 @@ public class PurpurWorldConfig {
@@ -682,6 +690,7 @@ public class PurpurWorldConfig {
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
public DyeColor catDefaultCollarColor = DyeColor.RED;
@@ -1270,7 +1270,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -696,12 +705,14 @@ public class PurpurWorldConfig {
@@ -701,12 +710,14 @@ public class PurpurWorldConfig {
} catch (IllegalArgumentException ignore) {
catDefaultCollarColor = DyeColor.RED;
}
@@ -1285,7 +1285,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void caveSpiderSettings() {
caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable);
caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater);
@@ -712,6 +723,7 @@ public class PurpurWorldConfig {
@@ -717,6 +728,7 @@ public class PurpurWorldConfig {
set("mobs.cave_spider.attributes.max_health", oldValue);
}
caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
@@ -1293,7 +1293,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean chickenRidable = false;
@@ -720,6 +732,7 @@ public class PurpurWorldConfig {
@@ -725,6 +737,7 @@ public class PurpurWorldConfig {
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
public int chickenBreedingTicks = 6000;
@@ -1301,7 +1301,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -732,11 +745,13 @@ public class PurpurWorldConfig {
@@ -737,11 +750,13 @@ public class PurpurWorldConfig {
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
@@ -1315,7 +1315,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void codSettings() {
codRidable = getBoolean("mobs.cod.ridable", codRidable);
codControllable = getBoolean("mobs.cod.controllable", codControllable);
@@ -746,6 +761,7 @@ public class PurpurWorldConfig {
@@ -751,6 +766,7 @@ public class PurpurWorldConfig {
set("mobs.cod.attributes.max_health", oldValue);
}
codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
@@ -1323,7 +1323,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean cowRidable = false;
@@ -754,6 +770,7 @@ public class PurpurWorldConfig {
@@ -759,6 +775,7 @@ public class PurpurWorldConfig {
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
@@ -1331,7 +1331,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -766,6 +783,7 @@ public class PurpurWorldConfig {
@@ -771,6 +788,7 @@ public class PurpurWorldConfig {
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
@@ -1339,7 +1339,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean creeperRidable = false;
@@ -775,6 +793,7 @@ public class PurpurWorldConfig {
@@ -780,6 +798,7 @@ public class PurpurWorldConfig {
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
@@ -1347,7 +1347,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -788,6 +807,7 @@ public class PurpurWorldConfig {
@@ -793,6 +812,7 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
@@ -1355,7 +1355,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean dolphinRidable = false;
@@ -797,6 +817,7 @@ public class PurpurWorldConfig {
@@ -802,6 +822,7 @@ public class PurpurWorldConfig {
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
public boolean dolphinDisableTreasureSearching = false;
@@ -1363,7 +1363,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -810,6 +831,7 @@ public class PurpurWorldConfig {
@@ -815,6 +836,7 @@ public class PurpurWorldConfig {
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
@@ -1371,7 +1371,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean donkeyRidableInWater = false;
@@ -820,6 +842,7 @@ public class PurpurWorldConfig {
@@ -825,6 +847,7 @@ public class PurpurWorldConfig {
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
public int donkeyBreedingTicks = 6000;
@@ -1379,7 +1379,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -836,6 +859,7 @@ public class PurpurWorldConfig {
@@ -841,6 +864,7 @@ public class PurpurWorldConfig {
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
@@ -1387,7 +1387,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean drownedRidable = false;
@@ -846,6 +870,7 @@ public class PurpurWorldConfig {
@@ -851,6 +875,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyOnlyBaby = true;
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
@@ -1395,7 +1395,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -860,11 +885,13 @@ public class PurpurWorldConfig {
@@ -865,11 +890,13 @@ public class PurpurWorldConfig {
drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby);
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
@@ -1409,7 +1409,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void elderGuardianSettings() {
elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable);
elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable);
@@ -874,6 +901,7 @@ public class PurpurWorldConfig {
@@ -879,6 +906,7 @@ public class PurpurWorldConfig {
set("mobs.elder_guardian.attributes.max_health", oldValue);
}
elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
@@ -1417,7 +1417,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean enderDragonRidable = false;
@@ -883,6 +911,7 @@ public class PurpurWorldConfig {
@@ -888,6 +916,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
@@ -1425,7 +1425,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -900,6 +929,7 @@ public class PurpurWorldConfig {
@@ -905,6 +934,7 @@ public class PurpurWorldConfig {
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
@@ -1433,7 +1433,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean endermanRidable = false;
@@ -909,6 +939,7 @@ public class PurpurWorldConfig {
@@ -914,6 +944,7 @@ public class PurpurWorldConfig {
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
@@ -1441,7 +1441,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -922,12 +953,14 @@ public class PurpurWorldConfig {
@@ -927,12 +958,14 @@ public class PurpurWorldConfig {
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing);
@@ -1456,7 +1456,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void endermiteSettings() {
endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable);
endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater);
@@ -938,6 +971,7 @@ public class PurpurWorldConfig {
@@ -943,6 +976,7 @@ public class PurpurWorldConfig {
set("mobs.endermite.attributes.max_health", oldValue);
}
endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
@@ -1464,7 +1464,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean evokerRidable = false;
@@ -945,6 +979,7 @@ public class PurpurWorldConfig {
@@ -950,6 +984,7 @@ public class PurpurWorldConfig {
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
public boolean evokerBypassMobGriefing = false;
@@ -1472,7 +1472,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -956,6 +991,7 @@ public class PurpurWorldConfig {
@@ -961,6 +996,7 @@ public class PurpurWorldConfig {
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing);
@@ -1480,7 +1480,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean foxRidable = false;
@@ -965,6 +1001,7 @@ public class PurpurWorldConfig {
@@ -970,6 +1006,7 @@ public class PurpurWorldConfig {
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
public boolean foxBypassMobGriefing = false;
@@ -1488,7 +1488,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -978,6 +1015,7 @@ public class PurpurWorldConfig {
@@ -983,6 +1020,7 @@ public class PurpurWorldConfig {
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing);
@@ -1496,7 +1496,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean frogRidable = false;
@@ -998,6 +1036,7 @@ public class PurpurWorldConfig {
@@ -1003,6 +1041,7 @@ public class PurpurWorldConfig {
public boolean ghastControllable = true;
public double ghastMaxY = 320D;
public double ghastMaxHealth = 10.0D;
@@ -1504,7 +1504,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void ghastSettings() {
ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable);
ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater);
@@ -1009,6 +1048,7 @@ public class PurpurWorldConfig {
@@ -1014,6 +1053,7 @@ public class PurpurWorldConfig {
set("mobs.ghast.attributes.max_health", oldValue);
}
ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
@@ -1512,7 +1512,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean giantRidable = false;
@@ -1021,6 +1061,7 @@ public class PurpurWorldConfig {
@@ -1026,6 +1066,7 @@ public class PurpurWorldConfig {
public float giantJumpHeight = 1.0F;
public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false;
@@ -1520,7 +1520,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -1041,17 +1082,20 @@ public class PurpurWorldConfig {
@@ -1046,17 +1087,20 @@ public class PurpurWorldConfig {
giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight);
giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI);
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
@@ -1541,7 +1541,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean goatRidable = false;
@@ -1059,17 +1103,20 @@ public class PurpurWorldConfig {
@@ -1064,17 +1108,20 @@ public class PurpurWorldConfig {
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
public int goatBreedingTicks = 6000;
@@ -1562,7 +1562,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void guardianSettings() {
guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable);
guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable);
@@ -1079,6 +1126,7 @@ public class PurpurWorldConfig {
@@ -1084,6 +1131,7 @@ public class PurpurWorldConfig {
set("mobs.guardian.attributes.max_health", oldValue);
}
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
@@ -1570,7 +1570,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean hoglinRidable = false;
@@ -1086,6 +1134,7 @@ public class PurpurWorldConfig {
@@ -1091,6 +1139,7 @@ public class PurpurWorldConfig {
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
public int hoglinBreedingTicks = 6000;
@@ -1578,7 +1578,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -1097,6 +1146,7 @@ public class PurpurWorldConfig {
@@ -1102,6 +1151,7 @@ public class PurpurWorldConfig {
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
@@ -1586,7 +1586,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean horseRidableInWater = false;
@@ -1107,6 +1157,7 @@ public class PurpurWorldConfig {
@@ -1112,6 +1162,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
public int horseBreedingTicks = 6000;
@@ -1594,7 +1594,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1123,6 +1174,7 @@ public class PurpurWorldConfig {
@@ -1128,6 +1179,7 @@ public class PurpurWorldConfig {
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
@@ -1602,7 +1602,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean huskRidable = false;
@@ -1133,6 +1185,7 @@ public class PurpurWorldConfig {
@@ -1138,6 +1190,7 @@ public class PurpurWorldConfig {
public boolean huskJockeyOnlyBaby = true;
public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true;
@@ -1610,7 +1610,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -1147,6 +1200,7 @@ public class PurpurWorldConfig {
@@ -1152,6 +1205,7 @@ public class PurpurWorldConfig {
huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby);
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
@@ -1618,7 +1618,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean illusionerRidable = false;
@@ -1155,6 +1209,7 @@ public class PurpurWorldConfig {
@@ -1160,6 +1214,7 @@ public class PurpurWorldConfig {
public double illusionerMovementSpeed = 0.5D;
public double illusionerFollowRange = 18.0D;
public double illusionerMaxHealth = 32.0D;
@@ -1626,7 +1626,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void illusionerSettings() {
illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable);
illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater);
@@ -1171,6 +1226,7 @@ public class PurpurWorldConfig {
@@ -1176,6 +1231,7 @@ public class PurpurWorldConfig {
set("mobs.illusioner.attributes.max_health", oldValue);
}
illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
@@ -1634,7 +1634,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean ironGolemRidable = false;
@@ -1178,6 +1234,7 @@ public class PurpurWorldConfig {
@@ -1183,6 +1239,7 @@ public class PurpurWorldConfig {
public boolean ironGolemControllable = true;
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
@@ -1642,7 +1642,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1189,6 +1246,7 @@ public class PurpurWorldConfig {
@@ -1194,6 +1251,7 @@ public class PurpurWorldConfig {
set("mobs.iron_golem.attributes.max_health", oldValue);
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
@@ -1650,7 +1650,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean llamaRidable = false;
@@ -1201,6 +1259,7 @@ public class PurpurWorldConfig {
@@ -1206,6 +1264,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
@@ -1658,7 +1658,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1219,6 +1278,7 @@ public class PurpurWorldConfig {
@@ -1224,6 +1283,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
@@ -1666,7 +1666,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean magmaCubeRidable = false;
@@ -1228,6 +1288,7 @@ public class PurpurWorldConfig {
@@ -1233,6 +1293,7 @@ public class PurpurWorldConfig {
public String magmaCubeAttackDamage = "size";
public Map<Integer, Double> magmaCubeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> magmaCubeAttackDamageCache = new HashMap<>();
@@ -1674,7 +1674,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void magmaCubeSettings() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@@ -1241,6 +1302,7 @@ public class PurpurWorldConfig {
@@ -1246,6 +1307,7 @@ public class PurpurWorldConfig {
magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage);
magmaCubeMaxHealthCache.clear();
magmaCubeAttackDamageCache.clear();
@@ -1682,7 +1682,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean mooshroomRidable = false;
@@ -1248,6 +1310,7 @@ public class PurpurWorldConfig {
@@ -1253,6 +1315,7 @@ public class PurpurWorldConfig {
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
public int mooshroomBreedingTicks = 6000;
@@ -1690,7 +1690,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1259,6 +1322,7 @@ public class PurpurWorldConfig {
@@ -1264,6 +1327,7 @@ public class PurpurWorldConfig {
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
@@ -1698,7 +1698,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean muleRidableInWater = false;
@@ -1269,6 +1333,7 @@ public class PurpurWorldConfig {
@@ -1274,6 +1338,7 @@ public class PurpurWorldConfig {
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
public int muleBreedingTicks = 6000;
@@ -1706,7 +1706,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1285,6 +1350,7 @@ public class PurpurWorldConfig {
@@ -1290,6 +1355,7 @@ public class PurpurWorldConfig {
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
@@ -1714,7 +1714,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean ocelotRidable = false;
@@ -1292,6 +1358,7 @@ public class PurpurWorldConfig {
@@ -1297,6 +1363,7 @@ public class PurpurWorldConfig {
public boolean ocelotControllable = true;
public double ocelotMaxHealth = 10.0D;
public int ocelotBreedingTicks = 6000;
@@ -1722,7 +1722,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1303,6 +1370,7 @@ public class PurpurWorldConfig {
@@ -1308,6 +1375,7 @@ public class PurpurWorldConfig {
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
@@ -1730,7 +1730,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean pandaRidable = false;
@@ -1310,6 +1378,7 @@ public class PurpurWorldConfig {
@@ -1315,6 +1383,7 @@ public class PurpurWorldConfig {
public boolean pandaControllable = true;
public double pandaMaxHealth = 20.0D;
public int pandaBreedingTicks = 6000;
@@ -1738,7 +1738,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1321,6 +1390,7 @@ public class PurpurWorldConfig {
@@ -1326,6 +1395,7 @@ public class PurpurWorldConfig {
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
@@ -1746,7 +1746,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean parrotRidable = false;
@@ -1328,6 +1398,7 @@ public class PurpurWorldConfig {
@@ -1333,6 +1403,7 @@ public class PurpurWorldConfig {
public boolean parrotControllable = true;
public double parrotMaxY = 320D;
public double parrotMaxHealth = 6.0D;
@@ -1754,7 +1754,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1339,6 +1410,7 @@ public class PurpurWorldConfig {
@@ -1344,6 +1415,7 @@ public class PurpurWorldConfig {
set("mobs.parrot.attributes.max_health", oldValue);
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
@@ -1762,7 +1762,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean phantomRidable = false;
@@ -1365,6 +1437,7 @@ public class PurpurWorldConfig {
@@ -1370,6 +1442,7 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
@@ -1770,7 +1770,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1399,6 +1472,7 @@ public class PurpurWorldConfig {
@@ -1404,6 +1477,7 @@ public class PurpurWorldConfig {
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
@@ -1778,7 +1778,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean pigRidable = false;
@@ -1407,6 +1481,7 @@ public class PurpurWorldConfig {
@@ -1412,6 +1486,7 @@ public class PurpurWorldConfig {
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000;
@@ -1786,7 +1786,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1419,6 +1494,7 @@ public class PurpurWorldConfig {
@@ -1424,6 +1499,7 @@ public class PurpurWorldConfig {
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
@@ -1794,7 +1794,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean piglinRidable = false;
@@ -1426,6 +1502,7 @@ public class PurpurWorldConfig {
@@ -1431,6 +1507,7 @@ public class PurpurWorldConfig {
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = false;
@@ -1802,7 +1802,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1437,12 +1514,14 @@ public class PurpurWorldConfig {
@@ -1442,12 +1519,14 @@ public class PurpurWorldConfig {
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
@@ -1817,7 +1817,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void piglinBruteSettings() {
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
@@ -1453,6 +1532,7 @@ public class PurpurWorldConfig {
@@ -1458,6 +1537,7 @@ public class PurpurWorldConfig {
set("mobs.piglin_brute.attributes.max_health", oldValue);
}
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
@@ -1825,7 +1825,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean pillagerRidable = false;
@@ -1460,6 +1540,7 @@ public class PurpurWorldConfig {
@@ -1465,6 +1545,7 @@ public class PurpurWorldConfig {
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
public boolean pillagerBypassMobGriefing = false;
@@ -1833,7 +1833,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1471,6 +1552,7 @@ public class PurpurWorldConfig {
@@ -1476,6 +1557,7 @@ public class PurpurWorldConfig {
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
@@ -1841,7 +1841,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean polarBearRidable = false;
@@ -1480,6 +1562,7 @@ public class PurpurWorldConfig {
@@ -1485,6 +1567,7 @@ public class PurpurWorldConfig {
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
@@ -1849,7 +1849,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1494,11 +1577,13 @@ public class PurpurWorldConfig {
@@ -1499,11 +1582,13 @@ public class PurpurWorldConfig {
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
@@ -1863,7 +1863,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void pufferfishSettings() {
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable);
@@ -1508,6 +1593,7 @@ public class PurpurWorldConfig {
@@ -1513,6 +1598,7 @@ public class PurpurWorldConfig {
set("mobs.pufferfish.attributes.max_health", oldValue);
}
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
@@ -1871,7 +1871,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean rabbitRidable = false;
@@ -1518,6 +1604,7 @@ public class PurpurWorldConfig {
@@ -1523,6 +1609,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false;
@@ -1879,7 +1879,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1532,6 +1619,7 @@ public class PurpurWorldConfig {
@@ -1537,6 +1624,7 @@ public class PurpurWorldConfig {
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
@@ -1887,7 +1887,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean ravagerRidable = false;
@@ -1539,6 +1627,7 @@ public class PurpurWorldConfig {
@@ -1544,6 +1632,7 @@ public class PurpurWorldConfig {
public boolean ravagerControllable = true;
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
@@ -1895,7 +1895,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1550,11 +1639,13 @@ public class PurpurWorldConfig {
@@ -1555,11 +1644,13 @@ public class PurpurWorldConfig {
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
@@ -1909,7 +1909,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void salmonSettings() {
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable);
@@ -1564,6 +1655,7 @@ public class PurpurWorldConfig {
@@ -1569,6 +1660,7 @@ public class PurpurWorldConfig {
set("mobs.salmon.attributes.max_health", oldValue);
}
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
@@ -1917,7 +1917,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean sheepRidable = false;
@@ -1572,6 +1664,7 @@ public class PurpurWorldConfig {
@@ -1577,6 +1669,7 @@ public class PurpurWorldConfig {
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false;
@@ -1925,7 +1925,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1584,12 +1677,14 @@ public class PurpurWorldConfig {
@@ -1589,12 +1682,14 @@ public class PurpurWorldConfig {
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
@@ -1940,7 +1940,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1600,6 +1695,7 @@ public class PurpurWorldConfig {
@@ -1605,6 +1700,7 @@ public class PurpurWorldConfig {
set("mobs.shulker.attributes.max_health", oldValue);
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
@@ -1948,7 +1948,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean silverfishRidable = false;
@@ -1607,6 +1703,7 @@ public class PurpurWorldConfig {
@@ -1612,6 +1708,7 @@ public class PurpurWorldConfig {
public boolean silverfishControllable = true;
public double silverfishMaxHealth = 8.0D;
public boolean silverfishBypassMobGriefing = false;
@@ -1956,7 +1956,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1618,12 +1715,14 @@ public class PurpurWorldConfig {
@@ -1623,12 +1720,14 @@ public class PurpurWorldConfig {
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
@@ -1971,7 +1971,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -1634,6 +1733,7 @@ public class PurpurWorldConfig {
@@ -1639,6 +1738,7 @@ public class PurpurWorldConfig {
set("mobs.skeleton.attributes.max_health", oldValue);
}
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
@@ -1979,7 +1979,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean skeletonHorseRidableInWater = true;
@@ -1644,6 +1744,7 @@ public class PurpurWorldConfig {
@@ -1649,6 +1749,7 @@ public class PurpurWorldConfig {
public double skeletonHorseJumpStrengthMax = 1.0D;
public double skeletonHorseMovementSpeedMin = 0.2D;
public double skeletonHorseMovementSpeedMax = 0.2D;
@@ -1987,7 +1987,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void skeletonHorseSettings() {
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
@@ -1659,6 +1760,7 @@ public class PurpurWorldConfig {
@@ -1664,6 +1765,7 @@ public class PurpurWorldConfig {
skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax);
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
@@ -1995,7 +1995,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean slimeRidable = false;
@@ -1668,6 +1770,7 @@ public class PurpurWorldConfig {
@@ -1673,6 +1775,7 @@ public class PurpurWorldConfig {
public String slimeAttackDamage = "size";
public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> slimeAttackDamageCache = new HashMap<>();
@@ -2003,7 +2003,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void slimeSettings() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@@ -1681,6 +1784,7 @@ public class PurpurWorldConfig {
@@ -1686,6 +1789,7 @@ public class PurpurWorldConfig {
slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage);
slimeMaxHealthCache.clear();
slimeAttackDamageCache.clear();
@@ -2011,7 +2011,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean snowGolemRidable = false;
@@ -1695,6 +1799,7 @@ public class PurpurWorldConfig {
@@ -1700,6 +1804,7 @@ public class PurpurWorldConfig {
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
@@ -2019,7 +2019,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1713,6 +1818,7 @@ public class PurpurWorldConfig {
@@ -1718,6 +1823,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
@@ -2027,7 +2027,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean snifferRidable = false;
@@ -1734,6 +1840,7 @@ public class PurpurWorldConfig {
@@ -1739,6 +1845,7 @@ public class PurpurWorldConfig {
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false;
@@ -2035,7 +2035,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1746,12 +1853,14 @@ public class PurpurWorldConfig {
@@ -1751,12 +1858,14 @@ public class PurpurWorldConfig {
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
@@ -2050,7 +2050,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -1762,12 +1871,14 @@ public class PurpurWorldConfig {
@@ -1767,12 +1876,14 @@ public class PurpurWorldConfig {
set("mobs.spider.attributes.max_health", oldValue);
}
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
@@ -2065,7 +2065,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void straySettings() {
strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
@@ -1778,6 +1889,7 @@ public class PurpurWorldConfig {
@@ -1783,6 +1894,7 @@ public class PurpurWorldConfig {
set("mobs.stray.attributes.max_health", oldValue);
}
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
@@ -2073,7 +2073,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean striderRidable = false;
@@ -1786,6 +1898,7 @@ public class PurpurWorldConfig {
@@ -1791,6 +1903,7 @@ public class PurpurWorldConfig {
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
@@ -2081,7 +2081,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1798,6 +1911,7 @@ public class PurpurWorldConfig {
@@ -1803,6 +1916,7 @@ public class PurpurWorldConfig {
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
@@ -2089,7 +2089,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean tadpoleRidable = false;
@@ -1819,6 +1933,7 @@ public class PurpurWorldConfig {
@@ -1824,6 +1938,7 @@ public class PurpurWorldConfig {
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
public int traderLlamaBreedingTicks = 6000;
@@ -2097,7 +2097,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1837,11 +1952,13 @@ public class PurpurWorldConfig {
@@ -1842,11 +1957,13 @@ public class PurpurWorldConfig {
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
@@ -2111,7 +2111,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void tropicalFishSettings() {
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable);
@@ -1851,6 +1968,7 @@ public class PurpurWorldConfig {
@@ -1856,6 +1973,7 @@ public class PurpurWorldConfig {
set("mobs.tropical_fish.attributes.max_health", oldValue);
}
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
@@ -2119,7 +2119,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean turtleRidable = false;
@@ -1858,6 +1976,7 @@ public class PurpurWorldConfig {
@@ -1863,6 +1981,7 @@ public class PurpurWorldConfig {
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
public int turtleBreedingTicks = 6000;
@@ -2127,7 +2127,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1869,6 +1988,7 @@ public class PurpurWorldConfig {
@@ -1874,6 +1993,7 @@ public class PurpurWorldConfig {
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
@@ -2135,7 +2135,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean vexRidable = false;
@@ -1876,6 +1996,7 @@ public class PurpurWorldConfig {
@@ -1881,6 +2001,7 @@ public class PurpurWorldConfig {
public boolean vexControllable = true;
public double vexMaxY = 320D;
public double vexMaxHealth = 14.0D;
@@ -2143,7 +2143,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void vexSettings() {
vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
@@ -1887,6 +2008,7 @@ public class PurpurWorldConfig {
@@ -1892,6 +2013,7 @@ public class PurpurWorldConfig {
set("mobs.vex.attributes.max_health", oldValue);
}
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
@@ -2151,7 +2151,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean villagerRidable = false;
@@ -1900,6 +2022,7 @@ public class PurpurWorldConfig {
@@ -1905,6 +2027,7 @@ public class PurpurWorldConfig {
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
@@ -2159,7 +2159,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1917,6 +2040,7 @@ public class PurpurWorldConfig {
@@ -1922,6 +2045,7 @@ public class PurpurWorldConfig {
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
@@ -2167,7 +2167,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean vindicatorRidable = false;
@@ -1924,6 +2048,7 @@ public class PurpurWorldConfig {
@@ -1929,6 +2053,7 @@ public class PurpurWorldConfig {
public boolean vindicatorControllable = true;
public double vindicatorMaxHealth = 24.0D;
public double vindicatorJohnnySpawnChance = 0D;
@@ -2175,7 +2175,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1935,6 +2060,7 @@ public class PurpurWorldConfig {
@@ -1940,6 +2065,7 @@ public class PurpurWorldConfig {
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
@@ -2183,7 +2183,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean wanderingTraderRidable = false;
@@ -1943,6 +2069,7 @@ public class PurpurWorldConfig {
@@ -1948,6 +2074,7 @@ public class PurpurWorldConfig {
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
@@ -2191,7 +2191,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1955,6 +2082,7 @@ public class PurpurWorldConfig {
@@ -1960,6 +2087,7 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
@@ -2199,7 +2199,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean wardenRidable = false;
@@ -1970,6 +2098,7 @@ public class PurpurWorldConfig {
@@ -1975,6 +2103,7 @@ public class PurpurWorldConfig {
public boolean witchRidableInWater = true;
public boolean witchControllable = true;
public double witchMaxHealth = 26.0D;
@@ -2207,7 +2207,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -1980,6 +2109,7 @@ public class PurpurWorldConfig {
@@ -1985,6 +2114,7 @@ public class PurpurWorldConfig {
set("mobs.witch.attributes.max_health", oldValue);
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
@@ -2215,7 +2215,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean witherRidable = false;
@@ -1990,6 +2120,7 @@ public class PurpurWorldConfig {
@@ -1995,6 +2125,7 @@ public class PurpurWorldConfig {
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
@@ -2223,7 +2223,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2008,12 +2139,14 @@ public class PurpurWorldConfig {
@@ -2013,12 +2144,14 @@ public class PurpurWorldConfig {
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
@@ -2238,7 +2238,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2024,6 +2157,7 @@ public class PurpurWorldConfig {
@@ -2029,6 +2162,7 @@ public class PurpurWorldConfig {
set("mobs.wither_skeleton.attributes.max_health", oldValue);
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
@@ -2246,7 +2246,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean wolfRidable = false;
@@ -2034,6 +2168,7 @@ public class PurpurWorldConfig {
@@ -2039,6 +2173,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2254,7 +2254,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2052,12 +2187,14 @@ public class PurpurWorldConfig {
@@ -2057,12 +2192,14 @@ public class PurpurWorldConfig {
wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies);
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
@@ -2269,7 +2269,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2068,6 +2205,7 @@ public class PurpurWorldConfig {
@@ -2073,6 +2210,7 @@ public class PurpurWorldConfig {
set("mobs.zoglin.attributes.max_health", oldValue);
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
@@ -2277,7 +2277,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean zombieRidable = false;
@@ -2080,6 +2218,7 @@ public class PurpurWorldConfig {
@@ -2085,6 +2223,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
@@ -2285,7 +2285,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2096,6 +2235,7 @@ public class PurpurWorldConfig {
@@ -2101,6 +2240,7 @@ public class PurpurWorldConfig {
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
@@ -2293,7 +2293,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean zombieHorseRidableInWater = false;
@@ -2107,6 +2247,7 @@ public class PurpurWorldConfig {
@@ -2112,6 +2252,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
@@ -2301,7 +2301,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -2123,6 +2264,7 @@ public class PurpurWorldConfig {
@@ -2128,6 +2269,7 @@ public class PurpurWorldConfig {
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
@@ -2309,7 +2309,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean zombieVillagerRidable = false;
@@ -2133,6 +2275,7 @@ public class PurpurWorldConfig {
@@ -2138,6 +2280,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
@@ -2317,7 +2317,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2147,6 +2290,7 @@ public class PurpurWorldConfig {
@@ -2152,6 +2295,7 @@ public class PurpurWorldConfig {
zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby);
zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance);
zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens);
@@ -2325,7 +2325,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
}
public boolean zombifiedPiglinRidable = false;
@@ -2158,6 +2302,7 @@ public class PurpurWorldConfig {
@@ -2163,6 +2307,7 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
@@ -2333,7 +2333,7 @@ index 1cb4be76d5903cf85103a248c0ff0720c75aaef5..d29226c0e285b4ea786dac500526a9c3
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2173,5 +2318,6 @@ public class PurpurWorldConfig {
@@ -2178,5 +2323,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);

View File

@@ -29,10 +29,10 @@ index 94027ef3f833c7170a99a8437740b7f99f30ab81..1f9a57c4fd251e2969b49a883ee12d3c
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ac588fffe20588255a4131e12f9cd74747639ed3..620a96042a6ac67e551f096f6a454a9876915b86 100644
index 69d1f510eb78cd026c8e3d7d43221a0d5eed713f..a431bb3163e06a1416c22f405cf4ad6f62940ce9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -951,6 +951,7 @@ public class PurpurWorldConfig {
@@ -956,6 +956,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@@ -40,7 +40,7 @@ index ac588fffe20588255a4131e12f9cd74747639ed3..620a96042a6ac67e551f096f6a454a98
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -969,6 +970,7 @@ public class PurpurWorldConfig {
@@ -974,6 +975,7 @@ public class PurpurWorldConfig {
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater);
@@ -48,7 +48,7 @@ index ac588fffe20588255a4131e12f9cd74747639ed3..620a96042a6ac67e551f096f6a454a98
}
public boolean endermanRidable = false;
@@ -2160,6 +2162,7 @@ public class PurpurWorldConfig {
@@ -2165,6 +2167,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index ac588fffe20588255a4131e12f9cd74747639ed3..620a96042a6ac67e551f096f6a454a98
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2179,6 +2182,7 @@ public class PurpurWorldConfig {
@@ -2184,6 +2187,7 @@ public class PurpurWorldConfig {
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 002ea677568e4d4a13509bb5c880341a742dac83..1e544c8fa21d028f7c3ac66d66c2362c01326a54 100644
index 2c59a40a1c9f898c859063919659e91628131af1..f579a092670b3e076008dc8c588ec2de0c2337b6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -128,7 +128,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -18,10 +18,10 @@ index 002ea677568e4d4a13509bb5c880341a742dac83..1e544c8fa21d028f7c3ac66d66c2362c
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ea13c885b9dd48590d32d2bd41aa0cba21b406a0..d8c011df48dea4aa70614c60ff544b21b790582e 100644
index 81f179cec1f11b7f49cc55940ad91ab021dd47fa..45575c52a4cf2cacb07096729bb8e1df47fcdb96 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1001,6 +1001,8 @@ public class PurpurWorldConfig {
@@ -1006,6 +1006,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index ea13c885b9dd48590d32d2bd41aa0cba21b406a0..d8c011df48dea4aa70614c60ff544b21
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1010,11 +1012,17 @@ public class PurpurWorldConfig {
@@ -1015,11 +1017,17 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -20,10 +20,10 @@ index f579a092670b3e076008dc8c588ec2de0c2337b6..1c8e2813ee24a73a8f83c74b90dc5f6e
} else {
Vec3 vec3d = player.getViewVector(1.0F).normalize();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d8c011df48dea4aa70614c60ff544b21b790582e..06234cbb2a947fd6b98fad1ec4e457cac6e050c9 100644
index 45575c52a4cf2cacb07096729bb8e1df47fcdb96..2b92fffbcbf9688f70bca18b961a63c4b024d056 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1003,6 +1003,8 @@ public class PurpurWorldConfig {
@@ -1008,6 +1008,8 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -32,7 +32,7 @@ index d8c011df48dea4aa70614c60ff544b21b790582e..06234cbb2a947fd6b98fad1ec4e457ca
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1023,6 +1025,8 @@ public class PurpurWorldConfig {
@@ -1028,6 +1030,8 @@ public class PurpurWorldConfig {
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);

View File

@@ -32,10 +32,10 @@ index 2c5f4ead1141269a029176140c4df848c75b9620..26ed1eef3b38e643dfc6738e4b7880c9
this.caravanHead.caravanTail = this;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cf3ed3017aeda398475df8eda20d99d42cc0c852..59f09c8fb3b138a7b14f0c897788469076588b16 100644
index b9fda8094038a03bbd30fb9e30d4392847bf1f3b..29ae4732979f6cdc0a4a0afc76a79f2e447830d3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1335,6 +1335,7 @@ public class PurpurWorldConfig {
@@ -1340,6 +1340,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index cf3ed3017aeda398475df8eda20d99d42cc0c852..59f09c8fb3b138a7b14f0c8977884690
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1354,6 +1355,7 @@ public class PurpurWorldConfig {
@@ -1359,6 +1360,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);

View File

@@ -50,10 +50,10 @@ index 6e80ea775596c5804b674234b7d59f4c941a49dc..ed5b0ec4c9616691c383067f8d949e63
private void spawnLingeringCloud() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 59f09c8fb3b138a7b14f0c897788469076588b16..ac2f0bcbc80bc10ddf51a74e68436f9dd4693119 100644
index 29ae4732979f6cdc0a4a0afc76a79f2e447830d3..9a4afd9d31b9c4a8801428170ddc4771cba673af 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -855,6 +855,7 @@ public class PurpurWorldConfig {
@@ -860,6 +860,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index 59f09c8fb3b138a7b14f0c897788469076588b16..ac2f0bcbc80bc10ddf51a74e68436f9d
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -869,6 +870,7 @@ public class PurpurWorldConfig {
@@ -874,6 +875,7 @@ public class PurpurWorldConfig {
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);

View File

@@ -31,10 +31,10 @@ index cf7007cabe4ba7505f2728e79e4c56e2d1bc878b..c431ec19212821ba7722c073e5ee6ad7
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ac2f0bcbc80bc10ddf51a74e68436f9dd4693119..be9dcd118cc5a7f105589e5dc2f0fb5e2b80b2bd 100644
index 9a4afd9d31b9c4a8801428170ddc4771cba673af..8821f2b7ce51309c2c8497486ffde19ddbce6cfb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1707,6 +1707,7 @@ public class PurpurWorldConfig {
@@ -1712,6 +1712,7 @@ public class PurpurWorldConfig {
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index ac2f0bcbc80bc10ddf51a74e68436f9dd4693119..be9dcd118cc5a7f105589e5dc2f0fb5e
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1719,6 +1720,23 @@ public class PurpurWorldConfig {
@@ -1724,6 +1725,23 @@ public class PurpurWorldConfig {
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);

View File

@@ -31,10 +31,10 @@ index e2a9179bb7a5ecbc31d98a2410a09f5e2107234b..8fd8778e918566504666213a102a7ee2
this.openTradingScreen(player, this.getDisplayName(), 1);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2c83ed4bec42d5d463c152a03213517615e6d622..c1b28f0a964b83a3f887c78c7f0b75c3c79e8734 100644
index f26edadaad8d5fdb902e9ec09479c238f3aebbaa..6ff3f95ab4f36c0beda89f5c86f0f78a5476a407 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2127,6 +2127,7 @@ public class PurpurWorldConfig {
@@ -2132,6 +2132,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 2c83ed4bec42d5d463c152a03213517615e6d622..c1b28f0a964b83a3f887c78c7f0b75c3
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2145,6 +2146,7 @@ public class PurpurWorldConfig {
@@ -2150,6 +2151,7 @@ public class PurpurWorldConfig {
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
@@ -50,7 +50,7 @@ index 2c83ed4bec42d5d463c152a03213517615e6d622..c1b28f0a964b83a3f887c78c7f0b75c3
}
public boolean vindicatorRidable = false;
@@ -2174,6 +2176,7 @@ public class PurpurWorldConfig {
@@ -2179,6 +2181,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
@@ -58,7 +58,7 @@ index 2c83ed4bec42d5d463c152a03213517615e6d622..c1b28f0a964b83a3f887c78c7f0b75c3
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2187,6 +2190,7 @@ public class PurpurWorldConfig {
@@ -2192,6 +2195,7 @@ public class PurpurWorldConfig {
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);

View File

@@ -31,10 +31,10 @@ index 2c085c4a154cb0f8a1d38453f43474a764398784..589b437e7c97c846410f293e2f014bdc
pos = pos.below();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0c9f89ec15a6c4d6109b5f302732dbecdfdd200b..800c4ebc66397f6ddf523d122c106660e1b8495b 100644
index 79d0caef548271c829b9239b5b1795894d705662..e2c97b4a056939b409f0b440031deef72f866803 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1651,6 +1651,7 @@ public class PurpurWorldConfig {
@@ -1656,6 +1656,7 @@ public class PurpurWorldConfig {
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 0c9f89ec15a6c4d6109b5f302732dbecdfdd200b..800c4ebc66397f6ddf523d122c106660
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1663,6 +1664,7 @@ public class PurpurWorldConfig {
@@ -1668,6 +1669,7 @@ public class PurpurWorldConfig {
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 80b86d5dd68c3d288a1a61ea8aa1cba9d899aa1c..7847915fb90e45e44ba514957193fa7b
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 800c4ebc66397f6ddf523d122c106660e1b8495b..9b13e03c2f4e627c48b673cde25e486f28bb7e57 100644
index e2c97b4a056939b409f0b440031deef72f866803..d7b86fd73448abbaf18c0193f968c7615f1546b4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2294,6 +2294,7 @@ public class PurpurWorldConfig {
@@ -2299,6 +2299,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index 800c4ebc66397f6ddf523d122c106660e1b8495b..9b13e03c2f4e627c48b673cde25e486f
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2314,6 +2315,7 @@ public class PurpurWorldConfig {
@@ -2319,6 +2320,7 @@ public class PurpurWorldConfig {
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);

View File

@@ -21,10 +21,10 @@ index ed5b0ec4c9616691c383067f8d949e63cb7c4497..45a9496d9d6109b5ad844113dfd43177
if (!event.isCancelled()) {
this.dead = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 892cde0d154ddd52fd573f86171a484c0c2a8791..6b4f6866d075d52ca9a8fe024b070a6183591cdd 100644
index 3b4107a8e6d1ba0f964b26700a91d784c4a48261..4170bc71a32e531504a5ce34122c7a301ea71fcf 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -947,6 +947,7 @@ public class PurpurWorldConfig {
@@ -952,6 +952,7 @@ public class PurpurWorldConfig {
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false;
@@ -32,7 +32,7 @@ index 892cde0d154ddd52fd573f86171a484c0c2a8791..6b4f6866d075d52ca9a8fe024b070a61
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -962,6 +963,7 @@ public class PurpurWorldConfig {
@@ -967,6 +968,7 @@ public class PurpurWorldConfig {
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);

View File

@@ -25,10 +25,10 @@ index 58539d29b8e2a8c0676cc574f64e7d61613e1451..1ffb8e1c386fc85796432281ac407a93
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6b4f6866d075d52ca9a8fe024b070a6183591cdd..e93a619dcd06a2cb65c0d6c4bb4ef36a8d9dbeed 100644
index 4170bc71a32e531504a5ce34122c7a301ea71fcf..3e26db21c3a7211ec53d3bd7f1da028b736f8dd1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1405,6 +1405,8 @@ public class PurpurWorldConfig {
@@ -1410,6 +1410,8 @@ public class PurpurWorldConfig {
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
public boolean ironGolemTakeDamageFromWater = false;
@@ -37,7 +37,7 @@ index 6b4f6866d075d52ca9a8fe024b070a6183591cdd..e93a619dcd06a2cb65c0d6c4bb4ef36a
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1417,6 +1419,8 @@ public class PurpurWorldConfig {
@@ -1422,6 +1424,8 @@ public class PurpurWorldConfig {
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);

View File

@@ -50,10 +50,10 @@ index 08935a1f2c4a3f43483719686e5baab5063cdfce..bfae3b94ab035e1c27c988cfcc3b449c
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e93a619dcd06a2cb65c0d6c4bb4ef36a8d9dbeed..f00418ed387fc9ccfbfd4dea545529d742ea2d53 100644
index 3e26db21c3a7211ec53d3bd7f1da028b736f8dd1..323a2298c526eb75d9e4d65bd35d97e9e3f1e664 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1575,6 +1575,7 @@ public class PurpurWorldConfig {
@@ -1580,6 +1580,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 320D;
public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index e93a619dcd06a2cb65c0d6c4bb4ef36a8d9dbeed..f00418ed387fc9ccfbfd4dea545529d7
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1587,6 +1588,7 @@ public class PurpurWorldConfig {
@@ -1592,6 +1593,7 @@ public class PurpurWorldConfig {
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);

View File

@@ -68,10 +68,10 @@ index 88e1c2431d51d8cdc3d555b711e506648225d289..ac8735cc9d127fc1f867b40d4000c033
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c27b6e0a1456b68a3684207f7469c8a916a4a550..68bc10a805e7cda64b777028093a1f1e084f1245 100644
index 7d0ccbbbba28703f7b8aea92369c1603d4c7ee42..8b51a2b244ddfec03041c213e51366f5b8534d1e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1945,6 +1945,11 @@ public class PurpurWorldConfig {
@@ -1950,6 +1950,11 @@ public class PurpurWorldConfig {
public boolean shulkerControllable = true;
public double shulkerMaxHealth = 30.0D;
public boolean shulkerTakeDamageFromWater = false;
@@ -83,7 +83,7 @@ index c27b6e0a1456b68a3684207f7469c8a916a4a550..68bc10a805e7cda64b777028093a1f1e
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1956,6 +1961,11 @@ public class PurpurWorldConfig {
@@ -1961,6 +1966,11 @@ public class PurpurWorldConfig {
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);

View File

@@ -34,10 +34,10 @@ index 902f831ea001145f73691b96f2fca8245a4fc05a..9346d634dd2b8cb3d89aa7ccf12fec6f
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2e9b39fd38881abc55be2de8403931a001ef6d1b..d6f61b469d04b26af6ab5620389764b5e356cebb 100644
index 2793653f46d5505f44a396174bb51a94637b7c39..b092bdb83276309c92908dfc88c51257b7b5e854 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1091,6 +1091,7 @@ public class PurpurWorldConfig {
@@ -1096,6 +1096,7 @@ public class PurpurWorldConfig {
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
@@ -45,7 +45,7 @@ index 2e9b39fd38881abc55be2de8403931a001ef6d1b..d6f61b469d04b26af6ab5620389764b5
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1106,6 +1107,7 @@ public class PurpurWorldConfig {
@@ -1111,6 +1112,7 @@ public class PurpurWorldConfig {
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 31ec6022b305df0ae02364c916ecf18425a0bc36..e54af9ff2a786e919b8261aa27509be9
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d6f61b469d04b26af6ab5620389764b5e356cebb..5aea41d8c95b9c6980525a732e971fa8f762be87 100644
index b092bdb83276309c92908dfc88c51257b7b5e854..d2735707d070b9e2c38bae18ece07eadbc56f447 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2602,4 +2602,9 @@ public class PurpurWorldConfig {
@@ -2607,4 +2607,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 4dae2a98070affd84bc4523a927dc9cbfe7379c6..51faa4cfda3d36f2e3bc7cbc47cacf57
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ce26e3f6373f8419769b019e3ac56cfd8294bfb4..9b032cbaaed2aae94e84d2d9e06b3455164b26b4 100644
index 4e84330a39bbcb8e04996b667b02c85a8bee4ae3..1b2c79655b7c2a1b42a8a96f763115c134a88253 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -730,6 +730,11 @@ public class PurpurWorldConfig {
@@ -39,7 +39,7 @@ index ce26e3f6373f8419769b019e3ac56cfd8294bfb4..9b032cbaaed2aae94e84d2d9e06b3455
public boolean chestOpenWithBlockOnTop = false;
private void chestSettings() {
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
@@ -2771,3 +2776,4 @@ public class PurpurWorldConfig {
@@ -2776,3 +2781,4 @@ public class PurpurWorldConfig {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config to disable Enderman teleport on projectile hit
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 6f7dc1f55d52a0957dc0f3b19644e3dce33ccb0f..f9bc9e2d57111b6260b5303fa2dbc405ef9835a2 100644
index 1c8e2813ee24a73a8f83c74b90dc5f6eafe3689d..8db82eaa2355b15aa78fc9500368acf2c7f75ffc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -438,6 +438,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -17,10 +17,10 @@ index 6f7dc1f55d52a0957dc0f3b19644e3dce33ccb0f..f9bc9e2d57111b6260b5303fa2dbc405
for (int i = 0; i < 64; ++i) {
if (this.teleport()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b3766564233d294599caaa543593f0f22d246a50..18cc6560ced4147ad845d871be312688b5d53cdd 100644
index 022d9f52ce7203a4e06f2b14fc10cdacf22649f3..4f4d7769692b1dee23c74dfd34a6ef138da8076d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1354,6 +1354,7 @@ public class PurpurWorldConfig {
@@ -1359,6 +1359,7 @@ public class PurpurWorldConfig {
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
public boolean endermanIgnorePlayerDragonHead = false;
public boolean endermanDisableStareAggro = false;
@@ -28,7 +28,7 @@ index b3766564233d294599caaa543593f0f22d246a50..18cc6560ced4147ad845d871be312688
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1376,6 +1377,7 @@ public class PurpurWorldConfig {
@@ -1381,6 +1382,7 @@ public class PurpurWorldConfig {
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);
endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead);
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);

View File

@@ -18,10 +18,10 @@ index c3f220a85b91a25662c943b5ee4508cd7a18c75d..40b3498c57c62f8bdaac50546ca47f49
return InteractionResult.SUCCESS;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8a781f2fc40bd99d51e713d1d18de8b86a5c88e6..9f3e8ab0504012426fadf95175fa58133fea179f 100644
index 275c7d60d919949453683c6594472c6361ece4f5..555c8d554f0ec370336c4035e5a443ca7343612b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2755,6 +2755,8 @@ public class PurpurWorldConfig {
@@ -2760,6 +2760,8 @@ public class PurpurWorldConfig {
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
public boolean zombieVillagerTakeDamageFromWater = false;
@@ -30,7 +30,7 @@ index 8a781f2fc40bd99d51e713d1d18de8b86a5c88e6..9f3e8ab0504012426fadf95175fa5813
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2770,6 +2772,8 @@ public class PurpurWorldConfig {
@@ -2775,6 +2777,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 24fc4934f2193806fa38c8c3b0ad4cbfc53650a6..bd38dad0a38a60a0421ee62e52ef7009
// this.level().globalLevelEvent(1023, new BlockPosition(this), 0);
int viewDistance = ((ServerLevel) this.level()).getCraftServer().getViewDistance() * 16;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 480e30570b31a1c9eeea6dde352080791eea9751..8342a2fc2f19f9020c0be7a6178267fd39f42ee2 100644
index 2e3200a9f6907161d8cf6fbac391ee0b42004bdf..9b337acfc4fe43e7ba795a0103ce49659f0420cb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2600,6 +2600,7 @@ public class PurpurWorldConfig {
@@ -2605,6 +2605,7 @@ public class PurpurWorldConfig {
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
@@ -29,7 +29,7 @@ index 480e30570b31a1c9eeea6dde352080791eea9751..8342a2fc2f19f9020c0be7a6178267fd
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2621,6 +2622,7 @@ public class PurpurWorldConfig {
@@ -2626,6 +2627,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

@@ -77,10 +77,10 @@ index 963a596154091b79ca139af6274aa323518ad1ad..4dcac3899a500d8586580bcfd5b4516e
});
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 60bd1cd6016763d65ee13c232ff596b07ac46f63..ab7ccccf2b5d6fdb87cc08f822d9099528354f8c 100644
index e2c408e8675b097bf3075589ad5666b13a31edba..951fca41deaa997937a0488c3dbab6a1613d7fe7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2819,5 +2819,28 @@ public class PurpurWorldConfig {
@@ -2824,5 +2824,28 @@ public class PurpurWorldConfig {
private void hungerSettings() {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}

View File

@@ -47,10 +47,10 @@ index e978132e51cde52f7ff1ba31ad521fc2cb4f0dce..60a95c42a333d68d9fd14539e0051c08
if (dripChance < f1) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ab7ccccf2b5d6fdb87cc08f822d9099528354f8c..ff21ad8815cf4fa2b34a5b6a1a564ef97930ace7 100644
index 951fca41deaa997937a0488c3dbab6a1613d7fe7..6416a9da03aabccdb358d00934cdc13e9fcf37b0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2842,5 +2842,16 @@ public class PurpurWorldConfig {
@@ -2847,5 +2847,16 @@ public class PurpurWorldConfig {
});
conduitBlocks = conduitBlockList.toArray(Block[]::new);
}

View File

@@ -47,10 +47,10 @@ index 48fcfef45ab149328573f4e80c8f0289f9eebbe8..fbafb9e2ea9dfd237560d34f9cd6f295
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0420ced926622a4c385a94c7d40e7348ca455192..b7cb860fde71c5be95b1c758ddbb0bd32350baa0 100644
index d5370c0912ed14f7a9ba030f28358c664a86dbf5..c61e98ca29066a3f70a69af4bd1ae03cab8d2478 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2162,6 +2162,7 @@ public class PurpurWorldConfig {
@@ -2167,6 +2167,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 0420ced926622a4c385a94c7d40e7348ca455192..b7cb860fde71c5be95b1c758ddbb0bd3
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2178,6 +2179,7 @@ public class PurpurWorldConfig {
@@ -2183,6 +2184,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

@@ -48,10 +48,10 @@ index 6006b9c996a8070336c4471f2a915d70c6371c76..3755ffc395ec4644a2263c59cdacfdba
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a8544e65700025cd326fe62edbaf7558432165ec..997a5ed8246b4238a2b2a8f60eaac9f56ceb0178 100644
index 2062901fd6deadd8cc5daa62572e49a651a6b524..70acca2c55d406d50ce4925dc2bb6da4aed0ae8a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1260,6 +1260,7 @@ public class PurpurWorldConfig {
@@ -1265,6 +1265,7 @@ public class PurpurWorldConfig {
public double dolphinMaxHealth = 10.0D;
public boolean dolphinDisableTreasureSearching = false;
public boolean dolphinTakeDamageFromWater = false;
@@ -59,7 +59,7 @@ index a8544e65700025cd326fe62edbaf7558432165ec..997a5ed8246b4238a2b2a8f60eaac9f5
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -1274,6 +1275,7 @@ public class PurpurWorldConfig {
@@ -1279,6 +1280,7 @@ public class PurpurWorldConfig {
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);

View File

@@ -57,10 +57,10 @@ index c6e5278641fb4a246a8df988fdf5068a044e2c4e..30e87b71ad237d76ec5adb4976edeca9
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 997a5ed8246b4238a2b2a8f60eaac9f56ceb0178..7627dd8a681ab55e31ada4e3aae2e834f6c46b14 100644
index 70acca2c55d406d50ce4925dc2bb6da4aed0ae8a..80865dc6f91fa07502816d4df3e6f3a801a96269 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1209,7 +1209,14 @@ public class PurpurWorldConfig {
@@ -1214,7 +1214,14 @@ public class PurpurWorldConfig {
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
public boolean cowTakeDamageFromWater = false;
@@ -75,7 +75,7 @@ index 997a5ed8246b4238a2b2a8f60eaac9f56ceb0178..7627dd8a681ab55e31ada4e3aae2e834
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
cowControllable = getBoolean("mobs.cow.controllable", cowControllable);
@@ -1222,6 +1229,8 @@ public class PurpurWorldConfig {
@@ -1227,6 +1234,8 @@ public class PurpurWorldConfig {
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater);

View File

@@ -60,10 +60,10 @@ index 0bc90b6d5c5a3cb3477d41336a9bb1130ff32fa1..a8d2f8654ee370e98bb1c4e7e1111deb
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 792ea367b1b8985a137b0fdbac748b24d0f7bc26..fc48db0138c0dc772033b4a7adcda76eb0c2f681 100644
index ffef86a59b422293c589e322d720d9d7f9f94102..845f8ae49a8d551b4231224478f45ee9c22df6f2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1602,6 +1602,13 @@ public class PurpurWorldConfig {
@@ -1607,6 +1607,13 @@ public class PurpurWorldConfig {
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
}

View File

@@ -18,10 +18,10 @@ index 40b3498c57c62f8bdaac50546ca47f4927db7bfa..b8e0ae0714fd2b77831fb714b1bad901
itemstack.shrink(1);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e8a2971f43ed2dd0e88290e55cbcf08a96d92424..fa509358979179bcffe6634b53d171887aeb165d 100644
index e59b76615211d50c497bca0708cdafbfc617127c..f00659487ee6f4106735df9e61832686be9802b6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2819,6 +2819,7 @@ public class PurpurWorldConfig {
@@ -2824,6 +2824,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerTakeDamageFromWater = false;
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
@@ -29,7 +29,7 @@ index e8a2971f43ed2dd0e88290e55cbcf08a96d92424..fa509358979179bcffe6634b53d17188
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2836,6 +2837,7 @@ public class PurpurWorldConfig {
@@ -2841,6 +2842,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);

File diff suppressed because it is too large Load Diff

View File

@@ -18,10 +18,10 @@ index a1b323ecba25910e97f154e487acc94943117e0c..62d8ae4c689170420c7850fbbb402be8
if (entityitem != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9a949eb3a05eb947e3afda04e65fd27f810e93b2..33a6e9c584c33d42364c25d76efb3fb478053121 100644
index 8071da9b2bc3e7c5e3ae061755648b023283b6eb..4127e830c91b5aa830d38ca8978411b04868617a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2286,6 +2286,7 @@ public class PurpurWorldConfig {
@@ -2291,6 +2291,7 @@ public class PurpurWorldConfig {
public boolean sheepBypassMobGriefing = false;
public boolean sheepTakeDamageFromWater = false;
public boolean sheepAlwaysDropExp = false;
@@ -29,7 +29,7 @@ index 9a949eb3a05eb947e3afda04e65fd27f810e93b2..33a6e9c584c33d42364c25d76efb3fb4
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -2300,6 +2301,7 @@ public class PurpurWorldConfig {
@@ -2305,6 +2306,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 7a35d45f8449a8399cb417357f0f0a6419bfbe3a..39ee6fbc6ce17b61abf88deba69b0adecb294417 100644
index 48fa05e80483e470572ecc8b2f7feb58e2f36dd0..fd276495ddcf160660a725c721d3c3f1d6bdd72b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1042,9 +1042,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -32,10 +32,10 @@ index 7a35d45f8449a8399cb417357f0f0a6419bfbe3a..39ee6fbc6ce17b61abf88deba69b0ade
// 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 f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2449a6482 100644
index 86c94849b066d83a48957f74eba1e83842784b8f..40d30a9fe7b4823945feb342c40e005a450d51ae 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1288,6 +1288,7 @@ public class PurpurWorldConfig {
@@ -1293,6 +1293,7 @@ public class PurpurWorldConfig {
public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
@@ -43,7 +43,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1305,6 +1306,7 @@ public class PurpurWorldConfig {
@@ -1310,6 +1311,7 @@ public class PurpurWorldConfig {
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
@@ -51,7 +51,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
}
public boolean dolphinRidable = false;
@@ -2091,6 +2093,7 @@ public class PurpurWorldConfig {
@@ -2096,6 +2098,7 @@ public class PurpurWorldConfig {
public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000;
public boolean piglinAlwaysDropExp = false;
@@ -59,7 +59,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -2105,6 +2108,7 @@ public class PurpurWorldConfig {
@@ -2110,6 +2113,7 @@ public class PurpurWorldConfig {
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
@@ -67,7 +67,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
}
public boolean piglinBruteRidable = false;
@@ -2366,6 +2370,7 @@ public class PurpurWorldConfig {
@@ -2371,6 +2375,7 @@ public class PurpurWorldConfig {
public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
@@ -75,7 +75,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2378,6 +2383,7 @@ public class PurpurWorldConfig {
@@ -2383,6 +2388,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);
@@ -83,7 +83,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
}
public boolean skeletonHorseRidableInWater = true;
@@ -2912,6 +2918,7 @@ public class PurpurWorldConfig {
@@ -2917,6 +2923,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
@@ -91,7 +91,7 @@ index f6ff629afaa70fd4a1f689fc92ca061887e5be87..953c796e72650c300f6d9f591fd167c2
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2930,6 +2937,7 @@ public class PurpurWorldConfig {
@@ -2935,6 +2942,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 f71cbaabfff370f019f124203fb947ea7a817d95..17638b9d3340c86528a8ae597712c759
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e6f22da99c0f74c8d880ec76d7370c37c8812882..35a82eea6df8c06b2ee89f093d408b2d3c02b73f 100644
index 72ad8283244d5db4d2abe980f55b89619354cb40..0e066619c16f3f5e6ed4dee8faba7cb2930ff44a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2031,6 +2031,8 @@ public class PurpurWorldConfig {
@@ -2036,6 +2036,8 @@ public class PurpurWorldConfig {
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
public boolean phantomAlwaysDropExp = false;
@@ -34,7 +34,7 @@ index e6f22da99c0f74c8d880ec76d7370c37c8812882..35a82eea6df8c06b2ee89f093d408b2d
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -2067,6 +2069,13 @@ public class PurpurWorldConfig {
@@ -2072,6 +2074,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 28bdcb14cb5b458d3c990fcf343ef97f08e4f3c6..48167334162443365bb8a6d082a51b2c
public ItemStack assemble() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 35a82eea6df8c06b2ee89f093d408b2d3c02b73f..a1c94a54d17f442467dda8cceb16b4824d54ef1e 100644
index 0e066619c16f3f5e6ed4dee8faba7cb2930ff44a..10c7556d3e20fbaf2a269712be477d5435f57595 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2714,6 +2714,7 @@ public class PurpurWorldConfig {
@@ -2719,6 +2719,7 @@ public class PurpurWorldConfig {
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index 35a82eea6df8c06b2ee89f093d408b2d3c02b73f..a1c94a54d17f442467dda8cceb16b482
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2734,6 +2735,7 @@ public class PurpurWorldConfig {
@@ -2739,6 +2740,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);

View File

@@ -105,10 +105,10 @@ index e986767316a717bdbdff7a9ccaaeba068ab2a6d8..4d0b37957eb02b5d48beb76295ebc7c4
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a1c94a54d17f442467dda8cceb16b4824d54ef1e..9367f0ccaa5fdbdc0695e0fbb0af87875fa18af2 100644
index 10c7556d3e20fbaf2a269712be477d5435f57595..186a6f9223b859ab8ec4636ea0d8868424ef5bfc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2715,6 +2715,8 @@ public class PurpurWorldConfig {
@@ -2720,6 +2720,8 @@ public class PurpurWorldConfig {
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
public int villagerMinimumDemand = 0;
@@ -117,7 +117,7 @@ index a1c94a54d17f442467dda8cceb16b4824d54ef1e..9367f0ccaa5fdbdc0695e0fbb0af8787
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2736,6 +2738,17 @@ public class PurpurWorldConfig {
@@ -2741,6 +2743,17 @@ public class PurpurWorldConfig {
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);
villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand);

View File

@@ -17,10 +17,10 @@ index 050be72c815010bf3f4b72427e2052b00420e8ee..8a213205f57c8dcd2226d7194d74b1b1
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9367f0ccaa5fdbdc0695e0fbb0af87875fa18af2..6de6dfba352c6f305363bf2fa0a2b0bf393e48b7 100644
index 186a6f9223b859ab8ec4636ea0d8868424ef5bfc..4ccc6242ad185168707dc5007e68b3f486a4ba77 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2717,6 +2717,7 @@ public class PurpurWorldConfig {
@@ -2722,6 +2722,7 @@ public class PurpurWorldConfig {
public int villagerMinimumDemand = 0;
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100;
@@ -28,7 +28,7 @@ index 9367f0ccaa5fdbdc0695e0fbb0af87875fa18af2..6de6dfba352c6f305363bf2fa0a2b0bf
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2749,6 +2750,7 @@ public class PurpurWorldConfig {
@@ -2754,6 +2755,7 @@ public class PurpurWorldConfig {
}
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);

View File

@@ -18,10 +18,10 @@ index 43afded0ddd88094971ace2dd02d2aca6c3e86ae..25bf930258065b6cc6d6c3a790835ddf
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
List<Villager> list = world.getEntitiesOfClass(Villager.class, axisalignedbb);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e4786e4cf59354ab43d6afbfd0317936ea04e7e8..3d45424694c11f54519dd31c3aa9465a491706f4 100644
index a7aef390278897b9a0e3c4d6a86f1eebb2fde32c..501b4f9adf8233dcf2be6500be16818a9e83dad5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2728,6 +2728,8 @@ public class PurpurWorldConfig {
@@ -2733,6 +2733,8 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerDisplayTradeItem = true;
@@ -30,7 +30,7 @@ index e4786e4cf59354ab43d6afbfd0317936ea04e7e8..3d45424694c11f54519dd31c3aa9465a
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2761,6 +2763,8 @@ public class PurpurWorldConfig {
@@ -2766,6 +2768,8 @@ public class PurpurWorldConfig {
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);

View File

@@ -94,10 +94,10 @@ index 9b43150a00d7fac85aa69f5a2dbffd0dfdae4b86..f4a47ac2c86cc95178922cce7320ba1e
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ef0fa2aed5a193228cdb15a14b0b44af1f7dcae9..5b01497069b8aa523cef28baf29bbf59fbe3b30c 100644
index c60ef8455e4d5f96253bfcdc672cad924541d3de..8ec3d1287fc845d4c2d7588c66be46d25f46a462 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2412,6 +2412,7 @@ public class PurpurWorldConfig {
@@ -2417,6 +2417,7 @@ public class PurpurWorldConfig {
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
@@ -105,7 +105,7 @@ index ef0fa2aed5a193228cdb15a14b0b44af1f7dcae9..5b01497069b8aa523cef28baf29bbf59
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2425,6 +2426,7 @@ public class PurpurWorldConfig {
@@ -2430,6 +2431,7 @@ public class PurpurWorldConfig {
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);

View File

@@ -146,10 +146,10 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5b01497069b8aa523cef28baf29bbf59fbe3b30c..7da851ced9c534198739de69582b79bec0b8b280 100644
index 8ec3d1287fc845d4c2d7588c66be46d25f46a462..c8e60d6fd8e52d27b127c91a00b169be9932abd6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1447,6 +1447,11 @@ public class PurpurWorldConfig {
@@ -1452,6 +1452,11 @@ public class PurpurWorldConfig {
elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp);
}

View File

@@ -1486,10 +1486,10 @@ index ec49c2af2fb09b8ead5529d0ec5cf59d2ab70e6b..a8cb79c25d49ef4f99de2b290ef5e60f
Optional<Integer> optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS);
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index d560bb344fefdfb2e8393dc1c5d96ef6d9dbf0e5..42c571c154ebdd24fabc5354618e6be064d17f05 100644
index 8073a3a0df7d75a29419303c85d7dadd9f94be99..9f19ebfa6392a080672c472e08f755379e9776b4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -157,13 +157,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
@@ -161,13 +161,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
@Override
protected void customServerAiStep() {

View File

@@ -18,10 +18,10 @@ index 41376b705748e14c1c4174e07732ce09ad8e581f..dd84433a988712da9d799cbda2487a90
org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper
if (event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b8cbd4960f1c1a93ccdafb08d862fc253412c5a8..9c29305e24186a35999765784d46768d9b4459cf 100644
index 30a18d6d555212e07209723f66dbee0c980ba343..c8ed7d81fed0f1513294efbc75fa6e3e9f317a5d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2432,6 +2432,8 @@ public class PurpurWorldConfig {
@@ -2437,6 +2437,8 @@ public class PurpurWorldConfig {
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
public int skeletonFeedWitherRoses = 0;
@@ -30,7 +30,7 @@ index b8cbd4960f1c1a93ccdafb08d862fc253412c5a8..9c29305e24186a35999765784d46768d
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2446,6 +2448,18 @@ public class PurpurWorldConfig {
@@ -2451,6 +2453,18 @@ public class PurpurWorldConfig {
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);
skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses);

View File

@@ -40,10 +40,10 @@ index 43cdda0cb26c5d5cc9025199eb71673d71c2abea..83660fad1e4c0ce5800f6e62f915ccd8
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c89c3855902f2e7f4c7b4c56a3dfab238e68f85f..f59cdfe77b447de8f7112b15c673dbf8c0ff9b9b 100644
index 338b9434156157bb7d1641f2b5c91e757486e2bf..98b8c5b901feb5cc907456c6669a21f6ea0b1791 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1684,6 +1684,7 @@ public class PurpurWorldConfig {
@@ -1689,6 +1689,7 @@ public class PurpurWorldConfig {
public boolean glowSquidsCanFly = false;
public boolean glowSquidTakeDamageFromWater = false;
public boolean glowSquidAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index c89c3855902f2e7f4c7b4c56a3dfab238e68f85f..f59cdfe77b447de8f7112b15c673dbf8
private void glowSquidSettings() {
glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable);
glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable);
@@ -1691,6 +1692,7 @@ public class PurpurWorldConfig {
@@ -1696,6 +1697,7 @@ public class PurpurWorldConfig {
glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly);
glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater);
glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp);

View File

@@ -24,10 +24,10 @@ index e241ae250f4f04a17ef2c583d00b065a4ca56a4c..7b99c3446b50939241d3e220d93e0564
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 32057f0069b441e154cae25086e247106ff695d6..7b45e714bbeecb3c6eb5505ff6b02df9a9a202cc 100644
index db583b03b2f986288468fa812c2e3e860cc4f371..58b1e0b55c21275ecd49bfb71317bc867652910e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1340,6 +1340,7 @@ public class PurpurWorldConfig {
@@ -1345,6 +1345,7 @@ public class PurpurWorldConfig {
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
public double creeperHeadVisibilityPercent = 0.5D;
@@ -35,7 +35,7 @@ index 32057f0069b441e154cae25086e247106ff695d6..7b45e714bbeecb3c6eb5505ff6b02df9
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1358,6 +1359,7 @@ public class PurpurWorldConfig {
@@ -1363,6 +1364,7 @@ public class PurpurWorldConfig {
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent);

View File

@@ -1,2 +0,0 @@
* make sure that all mobs are in entity attributes and ridables (some from previous updates weren't added to attributes)
* merge pufferfish fixes into one