Add Ridable and Attribute options for Creaking mob (#1613)

This commit is contained in:
Nebojsa Majic
2024-11-26 12:59:33 +01:00
committed by GitHub
parent 0601f870d4
commit 06dde9dea0
79 changed files with 697 additions and 604 deletions

View File

@@ -22,7 +22,7 @@ index f58a94efafbc01d402cd03a108bb90f60930a316..21ea63da99c5b3e2e1ab9cc1049c903b
super(x, y, z);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 663b4ecd520e82aa108d44f2d5c2a20cfc7bc01f..1c1ce108840c522d5db49846ad3cac08916a7911 100644
index c26e3a239441376f2694782d4f07943538677c71..5cd3d7b30a8dea820d0e9569219cbc5858c80f6c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1855,6 +1855,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -4750,6 +4750,58 @@ index 03e3cbe73119ca76417d4dd192e1560bdfc373ec..aa4160892b9ba2486806b5a54bc1465a
@Override
public void setPersistentAngerTarget(@Nullable UUID angryAt) {
this.persistentAngerTarget = angryAt;
diff --git a/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java b/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java
index 7b5f9284972b3a6bd8125891b23f73438e875c08..f935d475fd1aca407bde420e9ba8002002ea55f6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java
+++ b/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java
@@ -63,6 +63,29 @@ public class Creaking extends Monster {
this.xpReward = 0;
}
+ // Purpur start
+ @Override
+ public boolean isRidable() {
+ return level().purpurConfig.creakingRidable;
+ }
+
+ @Override
+ public boolean dismountsUnderwater() {
+ return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.creakingRidableInWater;
+ }
+
+ @Override
+ public boolean isControllable() {
+ return level().purpurConfig.creakingControllable;
+ }
+
+ @Override
+ protected void registerGoals() {
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
+ this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
+ }
+ // Purpur end
+
@Override
protected BodyRotationControl createBodyControl() {
return new Creaking.CreakingBodyRotationControl(this);
@@ -296,7 +319,7 @@ public class Creaking extends Monster {
}
}
- class CreakingLookControl extends LookControl {
+ class CreakingLookControl extends org.purpurmc.purpur.controller.LookControllerWASD { // Purpur
public CreakingLookControl(final Creaking creaking) {
super(creaking);
}
@@ -309,7 +332,7 @@ public class Creaking extends Monster {
}
}
- class CreakingMoveControl extends MoveControl {
+ class CreakingMoveControl extends org.purpurmc.purpur.controller.MoveControllerWASD { // Purpur
public CreakingMoveControl(final Creaking creaking) {
super(creaking);
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 6ea90e54759dbeab025e0a1896ee834ea9986427..b92c65703dfc4ed95de97534b1e8195c627aa212 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -5154,10 +5206,10 @@ index ceb45f313869ac3a0f650a4ee43ecff782c1be5f..09e7a11a241b6e306d5043fe66f14fd4
+ }
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 42e502cfcb8d2e775cbf738773caf1a087d2f3f4..2e35e494134e5294fd67a0bf9abbe3f68d5faea5 100644
index 42e502cfcb8d2e775cbf738773caf1a087d2f3f4..5004e86747306cc8d4bbed6f10d3a6e9047cb5f4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -90,4 +90,744 @@ public class PurpurWorldConfig {
@@ -90,4 +90,753 @@ public class PurpurWorldConfig {
final Map<String, Object> value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null);
return value.isEmpty() ? fallback : value;
}
@@ -5288,6 +5340,15 @@ index 42e502cfcb8d2e775cbf738773caf1a087d2f3f4..2e35e494134e5294fd67a0bf9abbe3f6
+ cowControllable = getBoolean("mobs.cow.controllable", cowControllable);
+ }
+
+ public boolean creakingRidable = false;
+ public boolean creakingRidableInWater = true;
+ public boolean creakingControllable = true;
+ private void creakingSettings() {
+ creakingRidable = getBoolean("mobs.creaking.ridable", creakingRidable);
+ creakingRidableInWater = getBoolean("mobs.creaking.ridable-in-water", creakingRidableInWater);
+ creakingControllable = getBoolean("mobs.creaking.controllable", creakingControllable);
+ }
+
+ public boolean creeperRidable = false;
+ public boolean creeperRidableInWater = true;
+ public boolean creeperControllable = true;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 5263f97db83626096b1c4fef415a2fbf41bc9ce7..0360d3a4e7f291e3528a0debe4909e774e8c8b91 100644
index 697c8c8fd0cdca4bb8bc3db62f7de8999785ec1e..90a51b05c80d079af07133a3e509aada57927a26 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -177,7 +177,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,7 +34,7 @@ index 7c11b5e73d4f3c0be7c467f7522c2d974ab330f3..27aee968718af1ae78e2076ddc890114
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index b8303404f8a81e2b446a9a40861787ca786aad47..5eb5976a0fbe1959f9015734cc0b31503604649d 100644
index b027633d6c854f481fbd4a2e4b89ace4b9d7a398..f4cc9ff863079f5546cce1bfa0f1dcab022bb293 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -326,6 +326,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -214,7 +214,7 @@ index 9d82fec6f5969816095dbd5a11325c79002dbb61..500109364b4741fc310eb22c151754a1
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index d554c62b89f382018c5be872077cccf1425c8e35..358f8d6650ed9820e7378d29f993b71504e779f3 100644
index ba8d47111cf80c8e9a0b47793f125ca91f5f906e..0005cd7156e46ae790d629d7a985cdace1cc5577 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -82,6 +82,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -377,7 +377,7 @@ index 18e5d9787590dbb2c78087326652558565a6b1f4..9ec3479b0db1f42493db127081e341fa
public int getMaxSchoolSize() {
return 5;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index b5f559181f82a7afeb035ea3cbd539dd5aa4d1c8..bc975266fbf0348723dc04e29fd6bf8231b9cb87 100644
index e19a0f7b805b6292c2b4c68981b3484645129dba..38799a817742b1bbaf921f1e24cf2fc44ab52050 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -108,6 +108,12 @@ public class Sheep extends Animal implements Shearable {
@@ -461,7 +461,7 @@ index a9aae028195c0646d1692f55d2ebfe58747c37b6..500676a78aedc525aca989ccd0380cd2
this.entityData.set(Turtle.HOME_POS, pos);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 6eadd5064148a7b75a1946274c25ff90fa49096a..d082ca3ed17e8bbb27c1a971259720d43246b47f 100644
index 04b6cb63bac767b386b8f67cf80a4d75df9d7fe5..40a766e20d1a2111d561cc05aa49e2ac50187d19 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -146,6 +146,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -881,7 +881,7 @@ index 86c56940e0bbd3a9bfdd9d7617f27bbc4b0841f4..e719859160c35fcdffeff7c2a1d6aa2d
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
diff --git a/src/main/java/net/minecraft/world/entity/monster/Bogged.java b/src/main/java/net/minecraft/world/entity/monster/Bogged.java
index 4e3d535d7c6facb5e5544545343973173ed90d45..52993da6868161105450491a81f5c32356fa17aa 100644
index d96f6eb4fc881bf0cb2e7fdb46805f169297d923..ca63ab37bc6b5b4cb5abf2848dae476b5d937f2a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Bogged.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Bogged.java
@@ -59,6 +59,12 @@ public class Bogged extends AbstractSkeleton implements Shearable {
@@ -1550,6 +1550,25 @@ index aa4160892b9ba2486806b5a54bc1465a4e273370..ba1ce7e0ed888bd47312e9d7da5426f5
}
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java b/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java
index f935d475fd1aca407bde420e9ba8002002ea55f6..9bf251915c8a126ba480f44ea203f1a48e1ecde3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java
+++ b/src/main/java/net/minecraft/world/entity/monster/creaking/Creaking.java
@@ -208,6 +208,14 @@ public class Creaking extends Monster {
return this.isActive() ? null : SoundEvents.CREAKING_AMBIENT;
}
+ // Purpur start
+ @Override
+ public void initAttributes() {
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.creakingMaxHealth);
+ this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.creakingScale);
+ }
+ // Purpur end
+
@Override
protected SoundEvent getHurtSound(DamageSource source) {
return SoundEvents.CREAKING_SWAY;
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index b92c65703dfc4ed95de97534b1e8195c627aa212..08c4a32b1195820eb574cdf4a499107565a551d6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -1635,10 +1654,10 @@ index f39a69294317e90c8198efc0680f451a8add7908..f741aca818bc983b034b3ac9864c1d71
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 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66be5c84a0d 100644
index 5004e86747306cc8d4bbed6f10d3a6e9047cb5f4..ee9bcb7d011f20575cbbbe2e0ded1e53087aba7a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -105,125 +105,248 @@ public class PurpurWorldConfig {
@@ -105,134 +105,261 @@ public class PurpurWorldConfig {
public boolean allayRidable = false;
public boolean allayRidableInWater = true;
public boolean allayControllable = true;
@@ -1868,6 +1887,19 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
+ cowScale = Mth.clamp(getDouble("mobs.cow.attributes.scale", cowScale), 0.0625D, 16.0D);
}
public boolean creakingRidable = false;
public boolean creakingRidableInWater = true;
public boolean creakingControllable = true;
+ public double creakingMaxHealth = 1.0D;
+ public double creakingScale = 1.0D;
private void creakingSettings() {
creakingRidable = getBoolean("mobs.creaking.ridable", creakingRidable);
creakingRidableInWater = getBoolean("mobs.creaking.ridable-in-water", creakingRidableInWater);
creakingControllable = getBoolean("mobs.creaking.controllable", creakingControllable);
+ creakingMaxHealth = getDouble("mobs.creaking.attributes.max_health", creakingMaxHealth);
+ creakingScale = Mth.clamp(getDouble("mobs.creaking.attributes.scale", creakingScale), 0.0625D, 16.0D);
}
public boolean creeperRidable = false;
public boolean creeperRidableInWater = true;
public boolean creeperControllable = true;
@@ -1887,7 +1919,7 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
}
public boolean dolphinRidable = false;
@@ -231,80 +354,175 @@ public class PurpurWorldConfig {
@@ -240,80 +367,175 @@ public class PurpurWorldConfig {
public int dolphinSpitCooldown = 20;
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
@@ -2063,7 +2095,7 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
}
public boolean frogRidable = false;
@@ -322,147 +540,342 @@ public class PurpurWorldConfig {
@@ -331,147 +553,342 @@ public class PurpurWorldConfig {
public boolean ghastRidableInWater = true;
public boolean ghastControllable = true;
public double ghastMaxY = 320D;
@@ -2406,7 +2438,7 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
}
public boolean phantomRidable = false;
@@ -472,6 +885,10 @@ public class PurpurWorldConfig {
@@ -481,6 +898,10 @@ public class PurpurWorldConfig {
public float phantomFlameDamage = 1.0F;
public int phantomFlameFireTime = 8;
public boolean phantomAllowGriefing = false;
@@ -2417,7 +2449,7 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -480,191 +897,405 @@ public class PurpurWorldConfig {
@@ -489,191 +910,405 @@ 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);
@@ -2823,7 +2855,7 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
}
public boolean tadpoleRidable = false;
@@ -679,64 +1310,137 @@ public class PurpurWorldConfig {
@@ -688,64 +1323,137 @@ public class PurpurWorldConfig {
public boolean traderLlamaRidable = false;
public boolean traderLlamaRidableInWater = false;
public boolean traderLlamaControllable = true;
@@ -2961,7 +2993,7 @@ index 2e35e494134e5294fd67a0bf9abbe3f68d5faea5..65cbd35892ab48fccda9bccf2b4dd66b
}
public boolean wardenRidable = false;
@@ -751,83 +1455,183 @@ public class PurpurWorldConfig {
@@ -760,83 +1468,183 @@ public class PurpurWorldConfig {
public boolean witchRidable = false;
public boolean witchRidableInWater = true;
public boolean witchControllable = true;

View File

@@ -71,10 +71,10 @@ index 48035556b0743f7641d77ec3a42c860f1e1ee6c3..642342592788226999efcb453542f55a
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d23aba01ce2b109fd011130e2847107b26266b7f..0fe6b4e57a57388df51893f22c8e8cb1be633623 100644
index f6186c65468953756da9c381c6ee712115a244f7..3c3df7767bc97882f53f32de1b4a350f73b16f23 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -622,6 +622,10 @@ public class PurpurWorldConfig {
@@ -635,6 +635,10 @@ public class PurpurWorldConfig {
public double giantAttackDamage = 50.0D;
public double giantMaxHealth = 100.0D;
public double giantScale = 1.0D;
@@ -85,7 +85,7 @@ index d23aba01ce2b109fd011130e2847107b26266b7f..0fe6b4e57a57388df51893f22c8e8cb1
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -639,6 +643,10 @@ public class PurpurWorldConfig {
@@ -652,6 +656,10 @@ public class PurpurWorldConfig {
}
giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth);
giantScale = Mth.clamp(getDouble("mobs.giant.attributes.scale", giantScale), 0.0625D, 16.0D);

View File

@@ -30,10 +30,10 @@ index 32339a18345feddb49cffe5ed1f18a2bfaf931ba..a0ff876d951f62eb172ee3763a9bc7ba
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 0fe6b4e57a57388df51893f22c8e8cb1be633623..80eb2df74d226f7419354e73b6350f5444c8ae0b 100644
index 3c3df7767bc97882f53f32de1b4a350f73b16f23..7c7fce74431a52de80a29c0e4ca87b45e2ce892c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1644,6 +1644,7 @@ public class PurpurWorldConfig {
@@ -1657,6 +1657,7 @@ public class PurpurWorldConfig {
public double zombieHorseJumpStrengthMax = 1.0D;
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
@@ -41,7 +41,7 @@ index 0fe6b4e57a57388df51893f22c8e8cb1be633623..80eb2df74d226f7419354e73b6350f54
private void zombieHorseSettings() {
zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable);
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
@@ -1660,6 +1661,7 @@ public class PurpurWorldConfig {
@@ -1673,6 +1674,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 3ea4763a34447761e73d8643dce8c386fa7501c3..e95afb70fa13f7f2617cbd42b7f5d17b
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 80eb2df74d226f7419354e73b6350f5444c8ae0b..d56ac793066bca186614e93204bf41fa6aa15719 100644
index 7c7fce74431a52de80a29c0e4ca87b45e2ce892c..3ec1852cc481572e87204ca800edae94e6890e05 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -395,6 +395,7 @@ public class PurpurWorldConfig {
@@ -408,6 +408,7 @@ public class PurpurWorldConfig {
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
public double creeperScale = 1.0D;
@@ -35,7 +35,7 @@ index 80eb2df74d226f7419354e73b6350f5444c8ae0b..d56ac793066bca186614e93204bf41fa
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -406,6 +407,7 @@ public class PurpurWorldConfig {
@@ -419,6 +420,7 @@ public class PurpurWorldConfig {
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperScale = Mth.clamp(getDouble("mobs.creeper.attributes.scale", creeperScale), 0.0625D, 16.0D);

View File

@@ -33,10 +33,10 @@ index 6f3fdf72dd4e8d7399b205818c863e754c898101..b0cdc25f6592d44a3ad3fdf4d461e958
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 6722c1bd54c28844c853d477180692a85732e631..141c96566773d4cce0423e186d346043c8f65fad 100644
index 3ec1852cc481572e87204ca800edae94e6890e05..0ba770af96809403dd93317dcf5120c7d87bf587 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1092,6 +1092,8 @@ public class PurpurWorldConfig {
@@ -1105,6 +1105,8 @@ public class PurpurWorldConfig {
public boolean rabbitControllable = true;
public double rabbitMaxHealth = 3.0D;
public double rabbitScale = 1.0D;
@@ -45,7 +45,7 @@ index 6722c1bd54c28844c853d477180692a85732e631..141c96566773d4cce0423e186d346043
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1103,6 +1105,8 @@ public class PurpurWorldConfig {
@@ -1116,6 +1118,8 @@ public class PurpurWorldConfig {
}
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
rabbitScale = Mth.clamp(getDouble("mobs.rabbit.attributes.scale", rabbitScale), 0.0625D, 16.0D);

View File

@@ -59,10 +59,10 @@ index bb98caa1e5ca711293e50ac82a5cad2fa5972db9..355965d88d5ef008111cc72f39e4f8d3
// Paper start - Cancellable death event
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(ServerLevel world, DamageSource damageSource) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ec1b35ed76b365c76366e147c2d8b68690c1c5ff..78316af29f238ec61c73e0a82b677ae91feaa623 100644
index 0ba770af96809403dd93317dcf5120c7d87bf587..37f89fabc286ea07bf6438df7ed7c8d6bcb76d48 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -573,6 +573,7 @@ public class PurpurWorldConfig {
@@ -586,6 +586,7 @@ public class PurpurWorldConfig {
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
public double foxScale = 1.0D;
@@ -70,7 +70,7 @@ index ec1b35ed76b365c76366e147c2d8b68690c1c5ff..78316af29f238ec61c73e0a82b677ae9
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -584,6 +585,7 @@ public class PurpurWorldConfig {
@@ -597,6 +598,7 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxScale = Mth.clamp(getDouble("mobs.fox.attributes.scale", foxScale), 0.0625D, 16.0D);

View File

@@ -59,10 +59,10 @@ index f2e205b05213f137ce84b9c5185118f437eec6ff..511d0559743655ed7b43a948fccc2621
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0));
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 78316af29f238ec61c73e0a82b677ae91feaa623..ab11497337ff25ddd6c87dd7a842adea039aa75e 100644
index 37f89fabc286ea07bf6438df7ed7c8d6bcb76d48..efa453fdde735158b4c6324546ca83bdd2935746 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1060,6 +1060,8 @@ public class PurpurWorldConfig {
@@ -1073,6 +1073,8 @@ public class PurpurWorldConfig {
public boolean polarBearControllable = true;
public double polarBearMaxHealth = 30.0D;
public double polarBearScale = 1.0D;
@@ -71,7 +71,7 @@ index 78316af29f238ec61c73e0a82b677ae91feaa623..ab11497337ff25ddd6c87dd7a842adea
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1071,6 +1073,9 @@ public class PurpurWorldConfig {
@@ -1084,6 +1086,9 @@ public class PurpurWorldConfig {
}
polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth);
polarBearScale = Mth.clamp(getDouble("mobs.polar_bear.attributes.scale", polarBearScale), 0.0625D, 16.0D);

View File

@@ -96,7 +96,7 @@ index 8229a99d4454df64def52bbf686183284d62c900..e6fa66a8c88d4f20a7383e8fd5b3df44
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 026593b70b3311c8427d8157225dbc0988b82d4c..15e730fd73a9ceb25a4635a59c0b7b35c99a2da7 100644
index 2f76feed632f4b637bf2bfa792683f5d09b001b7..a64d4b1f839f7b5c457ad4bd5295ff8222b24643 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -390,6 +390,7 @@ public class PurpurWorldConfig {
@@ -114,4 +114,4 @@ index 026593b70b3311c8427d8157225dbc0988b82d4c..15e730fd73a9ceb25a4635a59c0b7b35
+ cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
}
public boolean creeperRidable = false;
public boolean creakingRidable = false;

View File

@@ -27,10 +27,10 @@ index 8b9318713764f8429221b4f6fb162018408f5e1e..294545914dec0a06eadb6c2f139222b3
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 4d85d928c05d488b5fc6efa96e65a5e31455d261..b5f30231f2b163271e677eaba38154b0e5cfa7ed 100644
index 6eb25a9b4bb634e57f6de015c9a9f2fc78d0b86f..419ebb012056d131d6d1b10c8bd72511a1c4df74 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1003,6 +1003,7 @@ public class PurpurWorldConfig {
@@ -1016,6 +1016,7 @@ public class PurpurWorldConfig {
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
public double pigScale = 1.0D;
@@ -38,7 +38,7 @@ index 4d85d928c05d488b5fc6efa96e65a5e31455d261..b5f30231f2b163271e677eaba38154b0
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1014,6 +1015,7 @@ public class PurpurWorldConfig {
@@ -1027,6 +1028,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigScale = Mth.clamp(getDouble("mobs.pig.attributes.scale", pigScale), 0.0625D, 16.0D);

View File

@@ -24,10 +24,10 @@ index 607c6c5fa38892d8c1d1f9fffc9ccc8617d2140d..bfdb0c52db44e7cc4f37fd42a22c8dae
return tryRide(player, hand); // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b5f30231f2b163271e677eaba38154b0e5cfa7ed..7c5b7e7df07117d7e6c3a1fdba8d0576d17f338f 100644
index 419ebb012056d131d6d1b10c8bd72511a1c4df74..1fa34a6517b4b834354234471f9ed3bcaaf1ee03 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1298,6 +1298,7 @@ public class PurpurWorldConfig {
@@ -1311,6 +1311,7 @@ public class PurpurWorldConfig {
public boolean snowGolemLeaveTrailWhenRidden = false;
public double snowGolemMaxHealth = 4.0D;
public double snowGolemScale = 1.0D;
@@ -35,7 +35,7 @@ index b5f30231f2b163271e677eaba38154b0e5cfa7ed..7c5b7e7df07117d7e6c3a1fdba8d0576
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1310,6 +1311,7 @@ public class PurpurWorldConfig {
@@ -1323,6 +1324,7 @@ public class PurpurWorldConfig {
}
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemScale = Mth.clamp(getDouble("mobs.snow_golem.attributes.scale", snowGolemScale), 0.0625D, 16.0D);

View File

@@ -18,10 +18,10 @@ index 0faae8faeba4300a44b8dadedc73c9f1a4022e4f..f356110850dd71d066243ec29853f547
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7c5b7e7df07117d7e6c3a1fdba8d0576d17f338f..89cfedcbb45cd9a3ff9e795828bbc5ae8efa7d6d 100644
index 1fa34a6517b4b834354234471f9ed3bcaaf1ee03..a21ced5b26dd176863d26c90c5aa083e64f3cd6a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -512,6 +512,7 @@ public class PurpurWorldConfig {
@@ -525,6 +525,7 @@ public class PurpurWorldConfig {
public boolean enderDragonControllable = true;
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
@@ -29,7 +29,7 @@ index 7c5b7e7df07117d7e6c3a1fdba8d0576d17f338f..89cfedcbb45cd9a3ff9e795828bbc5ae
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -527,6 +528,7 @@ public class PurpurWorldConfig {
@@ -540,6 +541,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 4265dc40f7337e565d236eb3c04847a87494fc86..a356e7ac34aca1d14cb922565206304d
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dd2a46697e8d85adcb5382c47f469cad2b420da2..df21a5f89b1c659bc0dfea8f42362ef09b368d81 100644
index bdf391eda89bc061353c0fd72ab5a9c5fe85e55e..b33ab2fc455c212284ef50cfecc778000741ead5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -487,6 +487,7 @@ public class PurpurWorldConfig {
@@ -500,6 +500,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperScale = 1.0D;
public double creeperChargedChance = 0.0D;
@@ -49,7 +49,7 @@ index dd2a46697e8d85adcb5382c47f469cad2b420da2..df21a5f89b1c659bc0dfea8f42362ef0
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -499,6 +500,7 @@ public class PurpurWorldConfig {
@@ -512,6 +513,7 @@ public class PurpurWorldConfig {
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperScale = Mth.clamp(getDouble("mobs.creeper.attributes.scale", creeperScale), 0.0625D, 16.0D);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
@@ -57,7 +57,7 @@ index dd2a46697e8d85adcb5382c47f469cad2b420da2..df21a5f89b1c659bc0dfea8f42362ef0
}
public boolean dolphinRidable = false;
@@ -612,6 +614,7 @@ public class PurpurWorldConfig {
@@ -625,6 +627,7 @@ public class PurpurWorldConfig {
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
public double endermanScale = 1.0D;
@@ -65,7 +65,7 @@ index dd2a46697e8d85adcb5382c47f469cad2b420da2..df21a5f89b1c659bc0dfea8f42362ef0
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -623,6 +626,7 @@ public class PurpurWorldConfig {
@@ -636,6 +639,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanScale = Mth.clamp(getDouble("mobs.enderman.attributes.scale", endermanScale), 0.0625D, 16.0D);

View File

@@ -100,10 +100,10 @@ index f741aca818bc983b034b3ac9864c1d71c714f9b4..a821a7bc7de7458ceb8afdb61bde32f7
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 df21a5f89b1c659bc0dfea8f42362ef09b368d81..a36fd98b7acaa8bf9107f5f1a7091437eb2ea829 100644
index b33ab2fc455c212284ef50cfecc778000741ead5..b81790ec5a7e4b73fbef52229844506b072dfa0d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1575,6 +1575,8 @@ public class PurpurWorldConfig {
@@ -1588,6 +1588,8 @@ public class PurpurWorldConfig {
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
public double villagerScale = 1.0D;
@@ -112,7 +112,7 @@ index df21a5f89b1c659bc0dfea8f42362ef09b368d81..a36fd98b7acaa8bf9107f5f1a7091437
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1586,6 +1588,8 @@ public class PurpurWorldConfig {
@@ -1599,6 +1601,8 @@ public class PurpurWorldConfig {
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
@@ -121,7 +121,7 @@ index df21a5f89b1c659bc0dfea8f42362ef09b368d81..a36fd98b7acaa8bf9107f5f1a7091437
}
public boolean vindicatorRidable = false;
@@ -1611,6 +1615,8 @@ public class PurpurWorldConfig {
@@ -1624,6 +1628,8 @@ public class PurpurWorldConfig {
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
public double wanderingTraderScale = 1.0D;
@@ -130,7 +130,7 @@ index df21a5f89b1c659bc0dfea8f42362ef09b368d81..a36fd98b7acaa8bf9107f5f1a7091437
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1622,6 +1628,8 @@ public class PurpurWorldConfig {
@@ -1635,6 +1641,8 @@ public class PurpurWorldConfig {
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);

View File

@@ -49,10 +49,10 @@ index a821a7bc7de7458ceb8afdb61bde32f74534f012..738df68a988a8ba428bf2c74a12cb8d9
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a36fd98b7acaa8bf9107f5f1a7091437eb2ea829..daf3b319422d22cb33a945033aa45e55a0f4e116 100644
index b81790ec5a7e4b73fbef52229844506b072dfa0d..1b96a84a1c81c075aa5f7308b89d396a4578be33 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1577,6 +1577,7 @@ public class PurpurWorldConfig {
@@ -1590,6 +1590,7 @@ public class PurpurWorldConfig {
public double villagerScale = 1.0D;
public boolean villagerFollowEmeraldBlock = false;
public double villagerTemptRange = 10.0D;
@@ -60,7 +60,7 @@ index a36fd98b7acaa8bf9107f5f1a7091437eb2ea829..daf3b319422d22cb33a945033aa45e55
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1590,6 +1591,7 @@ public class PurpurWorldConfig {
@@ -1603,6 +1604,7 @@ public class PurpurWorldConfig {
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
@@ -68,7 +68,7 @@ index a36fd98b7acaa8bf9107f5f1a7091437eb2ea829..daf3b319422d22cb33a945033aa45e55
}
public boolean vindicatorRidable = false;
@@ -1617,6 +1619,7 @@ public class PurpurWorldConfig {
@@ -1630,6 +1632,7 @@ public class PurpurWorldConfig {
public double wanderingTraderScale = 1.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public double wanderingTraderTemptRange = 10.0D;
@@ -76,7 +76,7 @@ index a36fd98b7acaa8bf9107f5f1a7091437eb2ea829..daf3b319422d22cb33a945033aa45e55
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1630,6 +1633,7 @@ public class PurpurWorldConfig {
@@ -1643,6 +1646,7 @@ public class PurpurWorldConfig {
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);

View File

@@ -167,10 +167,10 @@ index ba1ce7e0ed888bd47312e9d7da5426f5c1015d07..650f9e1ca3a5ddec5123133c9604f331
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 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53b520ae01 100644
index a750c73519b43f28b0fea69e6056e2752d2eed35..bb8aa3d4e33e2d8ed4bf3fd668577ea901410783 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -636,6 +636,9 @@ public class PurpurWorldConfig {
@@ -649,6 +649,9 @@ public class PurpurWorldConfig {
public double drownedMaxHealth = 20.0D;
public double drownedScale = 1.0D;
public double drownedSpawnReinforcements = 0.1D;
@@ -180,7 +180,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -648,6 +651,9 @@ public class PurpurWorldConfig {
@@ -661,6 +664,9 @@ public class PurpurWorldConfig {
drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth);
drownedScale = Mth.clamp(getDouble("mobs.drowned.attributes.scale", drownedScale), 0.0625D, 16.0D);
drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements);
@@ -190,7 +190,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
}
public boolean elderGuardianRidable = false;
@@ -919,6 +925,9 @@ public class PurpurWorldConfig {
@@ -932,6 +938,9 @@ public class PurpurWorldConfig {
public double huskMaxHealth = 20.0D;
public double huskScale = 1.0D;
public double huskSpawnReinforcements = 0.1D;
@@ -200,7 +200,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -931,6 +940,9 @@ public class PurpurWorldConfig {
@@ -944,6 +953,9 @@ public class PurpurWorldConfig {
huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth);
huskScale = Mth.clamp(getDouble("mobs.husk.attributes.scale", huskScale), 0.0625D, 16.0D);
huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements);
@@ -210,7 +210,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
}
public boolean illusionerRidable = false;
@@ -1828,6 +1840,9 @@ public class PurpurWorldConfig {
@@ -1841,6 +1853,9 @@ public class PurpurWorldConfig {
public double zombieMaxHealth = 20.0D;
public double zombieScale = 1.0D;
public double zombieSpawnReinforcements = 0.1D;
@@ -220,7 +220,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1840,6 +1855,9 @@ public class PurpurWorldConfig {
@@ -1853,6 +1868,9 @@ public class PurpurWorldConfig {
zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth);
zombieScale = Mth.clamp(getDouble("mobs.zombie.attributes.scale", zombieScale), 0.0625D, 16.0D);
zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
@@ -230,7 +230,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
}
public boolean zombieHorseRidable = false;
@@ -1877,6 +1895,9 @@ public class PurpurWorldConfig {
@@ -1890,6 +1908,9 @@ public class PurpurWorldConfig {
public double zombieVillagerMaxHealth = 20.0D;
public double zombieVillagerScale = 1.0D;
public double zombieVillagerSpawnReinforcements = 0.1D;
@@ -240,7 +240,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1889,6 +1910,9 @@ public class PurpurWorldConfig {
@@ -1902,6 +1923,9 @@ public class PurpurWorldConfig {
zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
zombieVillagerScale = Mth.clamp(getDouble("mobs.zombie_villager.attributes.scale", zombieVillagerScale), 0.0625D, 16.0D);
zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
@@ -250,7 +250,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
}
public boolean zombifiedPiglinRidable = false;
@@ -1897,6 +1921,9 @@ public class PurpurWorldConfig {
@@ -1910,6 +1934,9 @@ public class PurpurWorldConfig {
public double zombifiedPiglinMaxHealth = 20.0D;
public double zombifiedPiglinScale = 1.0D;
public double zombifiedPiglinSpawnReinforcements = 0.0D;
@@ -260,7 +260,7 @@ index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1909,5 +1936,8 @@ public class PurpurWorldConfig {
@@ -1922,5 +1949,8 @@ public class PurpurWorldConfig {
zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
zombifiedPiglinScale = Mth.clamp(getDouble("mobs.zombified_piglin.attributes.scale", zombifiedPiglinScale), 0.0625D, 16.0D);
zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);

View File

@@ -256,10 +256,10 @@ index e44d6d02ceaf1f133705efcd58b94e36014389ec..bd1c23d849269df504c94da9d0ca0a68
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 7c1f903c41839251a69d38ba58fb4a7038f8901a..50db395f519db1d25174e2bdb930e11a05167603 100644
index bb8aa3d4e33e2d8ed4bf3fd668577ea901410783..429c0bd678cb726b761e32d4b22b33c630f28097 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1150,6 +1150,9 @@ public class PurpurWorldConfig {
@@ -1163,6 +1163,9 @@ public class PurpurWorldConfig {
public String phantomAttackDamage = "6 + size";
public Map<Integer, Double> phantomMaxHealthCache = new HashMap<>();
public Map<Integer, Double> phantomAttackDamageCache = new HashMap<>();
@@ -269,7 +269,7 @@ index 7c1f903c41839251a69d38ba58fb4a7038f8901a..50db395f519db1d25174e2bdb930e11a
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1171,6 +1174,9 @@ public class PurpurWorldConfig {
@@ -1184,6 +1187,9 @@ public class PurpurWorldConfig {
phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage);
phantomMaxHealthCache.clear();
phantomAttackDamageCache.clear();

View File

@@ -40,10 +40,10 @@ index 021221da5d0315f6e371380a705ac6b3f6ac18d3..27eb9a365006884c85603dc6d9dd8eee
for (int l = 0; l < k; ++l) {
// Paper start - PhantomPreSpawnEvent
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 50db395f519db1d25174e2bdb930e11a05167603..862e65def7fd59810ca9bf206298556d900aa28d 100644
index 429c0bd678cb726b761e32d4b22b33c630f28097..8aebaf667907aa61355ae3a0846b4ee67f204382 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1153,6 +1153,12 @@ public class PurpurWorldConfig {
@@ -1166,6 +1166,12 @@ public class PurpurWorldConfig {
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;
@@ -56,7 +56,7 @@ index 50db395f519db1d25174e2bdb930e11a05167603..862e65def7fd59810ca9bf206298556d
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1177,6 +1183,12 @@ public class PurpurWorldConfig {
@@ -1190,6 +1196,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 89151a9538e22941ad55aab1807d6871a852364c..30c0c6d582069c6a01b033bb9707f4fa1c82f4e9 100644
index b5d714f137257810ced4b4457bd5bb01123d3452..0d4eaa2933d2b6501eeb64a0d95b2d4d67fb5523 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1573,6 +1573,7 @@ public class PurpurWorldConfig {
@@ -1586,6 +1586,7 @@ public class PurpurWorldConfig {
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
public double squidScale = 1.0D;
@@ -16,7 +16,7 @@ index 89151a9538e22941ad55aab1807d6871a852364c..30c0c6d582069c6a01b033bb9707f4fa
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1583,6 +1584,7 @@ public class PurpurWorldConfig {
@@ -1596,6 +1597,7 @@ public class PurpurWorldConfig {
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidScale = Mth.clamp(getDouble("mobs.squid.attributes.scale", squidScale), 0.0625D, 16.0D);
@@ -25,7 +25,7 @@ index 89151a9538e22941ad55aab1807d6871a852364c..30c0c6d582069c6a01b033bb9707f4fa
public boolean spiderRidable = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 2812fa381a2d91a4638583a43556a7eef2b3d298..e047c0a4a8638588b4ac0d47c4c96899fac4abb7 100644
index 24d7eca3f0b06602a1026eda3432f0a4255d8b01..9d8d0a99f0b2a8e3452c4c86e6c53c66d58c5b3d 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -378,6 +378,7 @@ public class ActivationRange

View File

@@ -51,10 +51,10 @@ index bd1c23d849269df504c94da9d0ca0a6846b22c41..987b860f85a1be3159233fb329177379
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 30c0c6d582069c6a01b033bb9707f4fa1c82f4e9..feddf1aeb817e5bf3fbde76943c36da6bd4c1133 100644
index 0d4eaa2933d2b6501eeb64a0d95b2d4d67fb5523..4fc86678e3c6459d88a0f7114dd858c6850290df 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1208,6 +1208,9 @@ public class PurpurWorldConfig {
@@ -1221,6 +1221,9 @@ public class PurpurWorldConfig {
public double phantomSpawnLocalDifficultyChance = 3.0D;
public int phantomSpawnMinPerAttempt = 1;
public int phantomSpawnMaxPerAttempt = -1;
@@ -64,7 +64,7 @@ index 30c0c6d582069c6a01b033bb9707f4fa1c82f4e9..feddf1aeb817e5bf3fbde76943c36da6
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1238,6 +1241,9 @@ public class PurpurWorldConfig {
@@ -1251,6 +1254,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 329db0049e0792b2c066349849ebd7c26a9178d7..c50cfa8225d5098f978da42cdf6c6860
private boolean hungry() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 296285cd96f0b1a96216608474c78ef5333ae110..1510a14f18851c6906a0ae9249f0fbf8b0edc750 100644
index 4fc86678e3c6459d88a0f7114dd858c6850290df..83af43e5f1d3e80170104771b2d38526d1ab3e3a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1746,6 +1746,7 @@ public class PurpurWorldConfig {
@@ -1759,6 +1759,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public double villagerTemptRange = 10.0D;
public boolean villagerCanBeLeashed = false;
@@ -29,7 +29,7 @@ index 296285cd96f0b1a96216608474c78ef5333ae110..1510a14f18851c6906a0ae9249f0fbf8
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1760,6 +1761,7 @@ public class PurpurWorldConfig {
@@ -1773,6 +1774,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);

View File

@@ -21,10 +21,10 @@ index 2bfce82bee8f3a16a33bd937eb610d9df1b6ceeb..2f7da09e14787395e95211acadd5c693
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ff2c7696bc1988d40a3db83e8071d767615a5bd0..e462e34f33adaba50af7b0ff60356e1153f6f4ac 100644
index 35ce3c0385f72feea1a0741ee055994f5cf0190a..a4c20f7b679150425b192a9e4411fa987aed8e1f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1776,6 +1776,7 @@ public class PurpurWorldConfig {
@@ -1789,6 +1789,7 @@ public class PurpurWorldConfig {
public boolean vindicatorControllable = true;
public double vindicatorMaxHealth = 24.0D;
public double vindicatorScale = 1.0D;
@@ -32,7 +32,7 @@ index ff2c7696bc1988d40a3db83e8071d767615a5bd0..e462e34f33adaba50af7b0ff60356e11
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1787,6 +1788,7 @@ public class PurpurWorldConfig {
@@ -1800,6 +1801,7 @@ public class PurpurWorldConfig {
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorScale = Mth.clamp(getDouble("mobs.vindicator.attributes.scale", vindicatorScale), 0.0625D, 16.0D);

View File

@@ -17,10 +17,10 @@ index a5a23c7f733d49c20c870f819eec2607781dccbf..be74a5732bc24eb3c909d28b4ef46d51
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1264d6e7304db19e8e10bace19d750fcf51fc995..f57bdfe69273a62dda9839b1725625aa969b2b78 100644
index 7a7b8725f7a0b1a193b4e19510c386b46604f006..109c2d5ba677eee65f44cd93b0fdcee22d04d17b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -656,6 +656,7 @@ public class PurpurWorldConfig {
@@ -669,6 +669,7 @@ public class PurpurWorldConfig {
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
public double dolphinScale = 1.0D;
@@ -28,7 +28,7 @@ index 1264d6e7304db19e8e10bace19d750fcf51fc995..f57bdfe69273a62dda9839b1725625aa
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -669,6 +670,7 @@ public class PurpurWorldConfig {
@@ -682,6 +683,7 @@ public class PurpurWorldConfig {
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinScale = Mth.clamp(getDouble("mobs.dolphin.attributes.scale", dolphinScale), 0.0625D, 16.0D);

View File

@@ -54,10 +54,10 @@ index 6cf6d4ec7b9e43c7b2b4c0e2fb080964ff588130..e74866e5195a5eeae7666ad7be750eda
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 32c8a0bd5aa71676dcabebe7395be381722accb9..ff41df1aefb9c0062af302251e97fad101a7cef3 100644
index 109c2d5ba677eee65f44cd93b0fdcee22d04d17b..b04c1c2534bec8f2eee873b43969843f54644dca 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1598,6 +1598,7 @@ public class PurpurWorldConfig {
@@ -1611,6 +1611,7 @@ public class PurpurWorldConfig {
public double squidMaxHealth = 10.0D;
public double squidScale = 1.0D;
public boolean squidImmuneToEAR = true;
@@ -65,7 +65,7 @@ index 32c8a0bd5aa71676dcabebe7395be381722accb9..ff41df1aefb9c0062af302251e97fad1
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1609,6 +1610,7 @@ public class PurpurWorldConfig {
@@ -1622,6 +1623,7 @@ public class PurpurWorldConfig {
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidScale = Mth.clamp(getDouble("mobs.squid.attributes.scale", squidScale), 0.0625D, 16.0D);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);

View File

@@ -23,10 +23,10 @@ index f55842cf85dec8e5c26cd5ac52c63599f3b19cf3..2ec12ec298446b556132785d4d376130
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 ba1bf7fe6ffe74b832a0d247a82f510b02597a12..9698423ff57ff7aac8d7e222230059c5984afc59 100644
index a28548332baf610521a308a560a858b3fc737b60..e323914f8694043e7b08a2518169695f582bc1a8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1863,6 +1863,8 @@ public class PurpurWorldConfig {
@@ -1876,6 +1876,8 @@ public class PurpurWorldConfig {
public double witherMaxY = 320D;
public double witherMaxHealth = 300.0D;
public double witherScale = 1.0D;
@@ -35,7 +35,7 @@ index ba1bf7fe6ffe74b832a0d247a82f510b02597a12..9698423ff57ff7aac8d7e222230059c5
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1879,6 +1881,8 @@ public class PurpurWorldConfig {
@@ -1892,6 +1894,8 @@ public class PurpurWorldConfig {
}
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherScale = Mth.clamp(getDouble("mobs.wither.attributes.scale", witherScale), 0.0625D, 16.0D);

View File

@@ -70,10 +70,10 @@ index cb5cf34781de4e87074a70a447fd463280147bdc..e6fb53b828c1a2e76d398e88449260f6
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 f47fff5e410eaba7113a795dd362057ea091c172..337aabd13f1062a351e19a55212313002cc51a87 100644
index 0e7473973fe06f51e28bb8651856ed52a9a51d92..f6771afafe3e9e672059f504982e90449492449c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1971,6 +1971,7 @@ public class PurpurWorldConfig {
@@ -1984,6 +1984,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@@ -81,7 +81,7 @@ index f47fff5e410eaba7113a795dd362057ea091c172..337aabd13f1062a351e19a5521231300
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1986,6 +1987,7 @@ public class PurpurWorldConfig {
@@ -1999,6 +2000,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 7891d015d2f8dadcff8f457145574ea8ba48fe8d..4d2992a16865fa60dd38d0ff6dc341f9
this.squid.movementVector = new Vec3(
(double)(Mth.cos(f) * 0.2F), (double)(-0.1F + this.squid.getRandom().nextFloat() * 0.2F), (double)(Mth.sin(f) * 0.2F)
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3c185f89b6f90720620f1fa93e13da60a944613e..32ceab27543b01a0340796255b6f48bc2834de9d 100644
index f6771afafe3e9e672059f504982e90449492449c..fea279b9fbd7f989bf26f0fc1254b1ecb8ac4342 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -933,11 +933,13 @@ public class PurpurWorldConfig {
@@ -946,11 +946,13 @@ public class PurpurWorldConfig {
public boolean glowSquidControllable = true;
public double glowSquidMaxHealth = 10.0D;
public double glowSquidScale = 1.0D;
@@ -75,7 +75,7 @@ index 3c185f89b6f90720620f1fa93e13da60a944613e..32ceab27543b01a0340796255b6f48bc
}
public boolean goatRidable = false;
@@ -1624,6 +1626,7 @@ public class PurpurWorldConfig {
@@ -1637,6 +1639,7 @@ public class PurpurWorldConfig {
public double squidScale = 1.0D;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
@@ -83,7 +83,7 @@ index 3c185f89b6f90720620f1fa93e13da60a944613e..32ceab27543b01a0340796255b6f48bc
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1636,6 +1639,7 @@ public class PurpurWorldConfig {
@@ -1649,6 +1652,7 @@ public class PurpurWorldConfig {
squidScale = Mth.clamp(getDouble("mobs.squid.attributes.scale", squidScale), 0.0625D, 16.0D);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);

View File

@@ -538,7 +538,7 @@ index 08c4a32b1195820eb574cdf4a499107565a551d6..0220fb517d99e8c9629d191eb554799a
public boolean canBeLeashed() {
return true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc808cf6477 100644
index 6805a2f2803bb4e859afba5369308dd4d2ac5165..e363a93bdfcef7408ecdd5618b63c345ab9525b4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -463,23 +463,27 @@ public class PurpurWorldConfig {
@@ -648,8 +648,8 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
+ cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
}
public boolean creeperRidable = false;
@@ -737,6 +751,7 @@ public class PurpurWorldConfig {
public boolean creakingRidable = false;
@@ -750,6 +764,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@@ -657,7 +657,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -752,6 +767,7 @@ public class PurpurWorldConfig {
@@ -765,6 +780,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);
@@ -665,7 +665,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean drownedRidable = false;
@@ -882,6 +898,7 @@ public class PurpurWorldConfig {
@@ -895,6 +911,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public double foxScale = 1.0D;
public boolean foxTypeChangesWithTulips = false;
@@ -673,7 +673,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -894,17 +911,20 @@ public class PurpurWorldConfig {
@@ -907,17 +924,20 @@ public class PurpurWorldConfig {
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxScale = Mth.clamp(getDouble("mobs.fox.attributes.scale", foxScale), 0.0625D, 16.0D);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@@ -694,7 +694,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean ghastRidable = false;
@@ -979,12 +999,14 @@ public class PurpurWorldConfig {
@@ -992,12 +1012,14 @@ public class PurpurWorldConfig {
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
public double goatScale = 1.0D;
@@ -709,7 +709,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean guardianRidable = false;
@@ -1008,6 +1030,7 @@ public class PurpurWorldConfig {
@@ -1021,6 +1043,7 @@ public class PurpurWorldConfig {
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
public double hoglinScale = 1.0D;
@@ -717,7 +717,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -1019,6 +1042,7 @@ public class PurpurWorldConfig {
@@ -1032,6 +1055,7 @@ public class PurpurWorldConfig {
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinScale = Mth.clamp(getDouble("mobs.hoglin.attributes.scale", hoglinScale), 0.0625D, 16.0D);
@@ -725,7 +725,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean horseRidableInWater = false;
@@ -1028,6 +1052,7 @@ public class PurpurWorldConfig {
@@ -1041,6 +1065,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@@ -733,7 +733,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1043,6 +1068,7 @@ public class PurpurWorldConfig {
@@ -1056,6 +1081,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);
@@ -741,7 +741,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean huskRidable = false;
@@ -1126,6 +1152,7 @@ public class PurpurWorldConfig {
@@ -1139,6 +1165,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@@ -749,7 +749,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1143,6 +1170,7 @@ public class PurpurWorldConfig {
@@ -1156,6 +1183,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);
@@ -757,7 +757,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean magmaCubeRidable = false;
@@ -1172,6 +1200,7 @@ public class PurpurWorldConfig {
@@ -1185,6 +1213,7 @@ public class PurpurWorldConfig {
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
public double mooshroomScale = 1.0D;
@@ -765,7 +765,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1183,6 +1212,7 @@ public class PurpurWorldConfig {
@@ -1196,6 +1225,7 @@ public class PurpurWorldConfig {
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomScale = Mth.clamp(getDouble("mobs.mooshroom.attributes.scale", mooshroomScale), 0.0625D, 16.0D);
@@ -773,7 +773,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean muleRidableInWater = false;
@@ -1192,6 +1222,7 @@ public class PurpurWorldConfig {
@@ -1205,6 +1235,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@@ -781,7 +781,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1207,6 +1238,7 @@ public class PurpurWorldConfig {
@@ -1220,6 +1251,7 @@ 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);
@@ -789,7 +789,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean ocelotRidable = false;
@@ -1214,6 +1246,7 @@ public class PurpurWorldConfig {
@@ -1227,6 +1259,7 @@ public class PurpurWorldConfig {
public boolean ocelotControllable = true;
public double ocelotMaxHealth = 10.0D;
public double ocelotScale = 1.0D;
@@ -797,7 +797,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1225,6 +1258,7 @@ public class PurpurWorldConfig {
@@ -1238,6 +1271,7 @@ public class PurpurWorldConfig {
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotScale = Mth.clamp(getDouble("mobs.ocelot.attributes.scale", ocelotScale), 0.0625D, 16.0D);
@@ -805,7 +805,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean pandaRidable = false;
@@ -1232,6 +1266,7 @@ public class PurpurWorldConfig {
@@ -1245,6 +1279,7 @@ public class PurpurWorldConfig {
public boolean pandaControllable = true;
public double pandaMaxHealth = 20.0D;
public double pandaScale = 1.0D;
@@ -813,7 +813,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1243,6 +1278,7 @@ public class PurpurWorldConfig {
@@ -1256,6 +1291,7 @@ public class PurpurWorldConfig {
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaScale = Mth.clamp(getDouble("mobs.panda.attributes.scale", pandaScale), 0.0625D, 16.0D);
@@ -821,7 +821,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean parrotRidable = false;
@@ -1329,6 +1365,7 @@ public class PurpurWorldConfig {
@@ -1342,6 +1378,7 @@ public class PurpurWorldConfig {
public double pigMaxHealth = 10.0D;
public double pigScale = 1.0D;
public boolean pigGiveSaddleBack = false;
@@ -829,7 +829,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1341,6 +1378,7 @@ public class PurpurWorldConfig {
@@ -1354,6 +1391,7 @@ public class PurpurWorldConfig {
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigScale = Mth.clamp(getDouble("mobs.pig.attributes.scale", pigScale), 0.0625D, 16.0D);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@@ -837,7 +837,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean piglinRidable = false;
@@ -1404,6 +1442,7 @@ public class PurpurWorldConfig {
@@ -1417,6 +1455,7 @@ public class PurpurWorldConfig {
public double polarBearScale = 1.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@@ -845,7 +845,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1418,6 +1457,7 @@ public class PurpurWorldConfig {
@@ -1431,6 +1470,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = BuiltInRegistries.ITEM.getValue(ResourceLocation.parse(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
@@ -853,7 +853,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean pufferfishRidable = false;
@@ -1443,6 +1483,7 @@ public class PurpurWorldConfig {
@@ -1456,6 +1496,7 @@ public class PurpurWorldConfig {
public double rabbitScale = 1.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@@ -861,7 +861,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1456,6 +1497,7 @@ public class PurpurWorldConfig {
@@ -1469,6 +1510,7 @@ public class PurpurWorldConfig {
rabbitScale = Mth.clamp(getDouble("mobs.rabbit.attributes.scale", rabbitScale), 0.0625D, 16.0D);
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
@@ -869,7 +869,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean ravagerRidable = false;
@@ -1497,6 +1539,7 @@ public class PurpurWorldConfig {
@@ -1510,6 +1552,7 @@ public class PurpurWorldConfig {
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
public double sheepScale = 1.0D;
@@ -877,7 +877,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1508,6 +1551,7 @@ public class PurpurWorldConfig {
@@ -1521,6 +1564,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepScale = Mth.clamp(getDouble("mobs.sheep.attributes.scale", sheepScale), 0.0625D, 16.0D);
@@ -885,7 +885,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean shulkerRidable = false;
@@ -1644,12 +1688,14 @@ public class PurpurWorldConfig {
@@ -1657,12 +1701,14 @@ public class PurpurWorldConfig {
public boolean snifferControllable = true;
public double snifferMaxHealth = 14.0D;
public double snifferScale = 1.0D;
@@ -900,7 +900,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean squidRidable = false;
@@ -1715,6 +1761,7 @@ public class PurpurWorldConfig {
@@ -1728,6 +1774,7 @@ public class PurpurWorldConfig {
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
public double striderScale = 1.0D;
@@ -908,7 +908,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1726,6 +1773,7 @@ public class PurpurWorldConfig {
@@ -1739,6 +1786,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderScale = Mth.clamp(getDouble("mobs.strider.attributes.scale", striderScale), 0.0625D, 16.0D);
@@ -916,7 +916,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean tadpoleRidable = false;
@@ -1746,6 +1794,7 @@ public class PurpurWorldConfig {
@@ -1759,6 +1807,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -924,7 +924,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1763,6 +1812,7 @@ public class PurpurWorldConfig {
@@ -1776,6 +1825,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);
@@ -932,7 +932,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean tropicalFishRidable = false;
@@ -1786,6 +1836,7 @@ public class PurpurWorldConfig {
@@ -1799,6 +1849,7 @@ public class PurpurWorldConfig {
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
public double turtleScale = 1.0D;
@@ -940,7 +940,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1797,6 +1848,7 @@ public class PurpurWorldConfig {
@@ -1810,6 +1861,7 @@ public class PurpurWorldConfig {
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleScale = Mth.clamp(getDouble("mobs.turtle.attributes.scale", turtleScale), 0.0625D, 16.0D);
@@ -948,7 +948,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean vexRidable = false;
@@ -1828,6 +1880,7 @@ public class PurpurWorldConfig {
@@ -1841,6 +1893,7 @@ public class PurpurWorldConfig {
public double villagerTemptRange = 10.0D;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
@@ -956,7 +956,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1843,6 +1896,7 @@ public class PurpurWorldConfig {
@@ -1856,6 +1909,7 @@ public class PurpurWorldConfig {
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
@@ -964,7 +964,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
}
public boolean vindicatorRidable = false;
@@ -1967,6 +2021,7 @@ public class PurpurWorldConfig {
@@ -1980,6 +2034,7 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -972,7 +972,7 @@ index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc8
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1978,6 +2033,7 @@ public class PurpurWorldConfig {
@@ -1991,6 +2046,7 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -21,10 +21,10 @@ index 8933b1f16617f0373cc99f93254533cc7d1e923f..02336ee7a002a620cd76570c84d1d531
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 07e997fd9adb318820e6acafc781a8bfa9d2d0d8..5e3240a67fac56631b5611176d9bf8fd426ad97b 100644
index c6f4b6e14616aed688269c56aa9ddf11f097abaf..cdcc44e381dee9189f951e3f1984272b0f0f60b0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -849,6 +849,7 @@ public class PurpurWorldConfig {
@@ -862,6 +862,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public double endermanScale = 1.0D;
public boolean endermanAllowGriefing = true;
@@ -32,7 +32,7 @@ index 07e997fd9adb318820e6acafc781a8bfa9d2d0d8..5e3240a67fac56631b5611176d9bf8fd
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -861,6 +862,7 @@ public class PurpurWorldConfig {
@@ -874,6 +875,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanScale = Mth.clamp(getDouble("mobs.enderman.attributes.scale", endermanScale), 0.0625D, 16.0D);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -23,10 +23,10 @@ index bfdb0c52db44e7cc4f37fd42a22c8dae2cc28fac..3f97118c8ce4f4e9a5f2a2fc3acdc68a
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 db63c982a19e8e95f4601dadc17cd5f52f29253a..60c89f3e4cbf5b02479dacd21ebe61ef41bc3478 100644
index 3bd6931d3b19bd9687cdaee2b245cd3f2e9df0bc..dec46168df0ca009bcc0a1abe3ff6f47f3d7a66e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1686,6 +1686,10 @@ public class PurpurWorldConfig {
@@ -1699,6 +1699,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public double snowGolemScale = 1.0D;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index db63c982a19e8e95f4601dadc17cd5f52f29253a..60c89f3e4cbf5b02479dacd21ebe61ef
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1699,6 +1703,10 @@ public class PurpurWorldConfig {
@@ -1712,6 +1716,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemScale = Mth.clamp(getDouble("mobs.snow_golem.attributes.scale", snowGolemScale), 0.0625D, 16.0D);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -174,10 +174,10 @@ index 8734ab1bd8299bbf43906d81a349c2a13e0981a7..3ca83269311cbc18c9ef3ce62cff6a2d
"farmer",
PoiTypes.FARMER,
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b1f596596407a3b448d3e02fc929fca64644e6e2..35341a19536fbc1456e7a81d6d768a2d7abfae9c 100644
index dec46168df0ca009bcc0a1abe3ff6f47f3d7a66e..53a740b2d85afc1fc09f91037aaff8b7e1caf5ea 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1907,6 +1907,8 @@ public class PurpurWorldConfig {
@@ -1920,6 +1920,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -186,7 +186,7 @@ index b1f596596407a3b448d3e02fc929fca64644e6e2..35341a19536fbc1456e7a81d6d768a2d
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1923,6 +1925,8 @@ public class PurpurWorldConfig {
@@ -1936,6 +1938,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 650f9e1ca3a5ddec5123133c9604f33140e948a8..cb47b15d197b1167dcbac1b989903bbf
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 35341a19536fbc1456e7a81d6d768a2d7abfae9c..a68eacc7e5c6a16e4c7f3ab084c097b02294616e 100644
index 53a740b2d85afc1fc09f91037aaff8b7e1caf5ea..09bf59c95f57f5beb718e74d99a6399317cf1222 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2176,6 +2176,7 @@ public class PurpurWorldConfig {
@@ -2189,6 +2189,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index 35341a19536fbc1456e7a81d6d768a2d7abfae9c..a68eacc7e5c6a16e4c7f3ab084c097b0
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2191,5 +2192,6 @@ public class PurpurWorldConfig {
@@ -2204,5 +2205,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

@@ -182,10 +182,10 @@ index ecd33b4add46acbe4e4f8879c0601220423d66ca..1506a8c0fa490726eb4a4ae14f3aa194
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a68eacc7e5c6a16e4c7f3ab084c097b02294616e..c39156bd01e030b06ce1eff68808a97f0371a02c 100644
index 09bf59c95f57f5beb718e74d99a6399317cf1222..ece3de874b4ad6dd9f17190281dcad2eab6a3097 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2051,6 +2051,8 @@ public class PurpurWorldConfig {
@@ -2064,6 +2064,8 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -194,7 +194,7 @@ index a68eacc7e5c6a16e4c7f3ab084c097b02294616e..c39156bd01e030b06ce1eff68808a97f
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -2063,6 +2065,8 @@ public class PurpurWorldConfig {
@@ -2076,6 +2078,8 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -43,7 +43,7 @@ index 34ca92be146bec3d2f6e46f473c3e68b0a97b168..89566a88a98af2e4ec2b062ed12d4828
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 c39156bd01e030b06ce1eff68808a97f0371a02c..434310452cb21a83fc6ed03047fc3ac1f897bf46 100644
index ece3de874b4ad6dd9f17190281dcad2eab6a3097..8caef74b83984c6351f7366376b64be50b50a41c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -619,6 +619,7 @@ public class PurpurWorldConfig {
@@ -66,7 +66,7 @@ index c39156bd01e030b06ce1eff68808a97f0371a02c..434310452cb21a83fc6ed03047fc3ac1
}
public boolean caveSpiderRidable = false;
@@ -2051,6 +2057,7 @@ public class PurpurWorldConfig {
@@ -2064,6 +2070,7 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -74,7 +74,7 @@ index c39156bd01e030b06ce1eff68808a97f0371a02c..434310452cb21a83fc6ed03047fc3ac1
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2065,6 +2072,11 @@ public class PurpurWorldConfig {
@@ -2078,6 +2085,11 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -17,10 +17,10 @@ index 987b860f85a1be3159233fb3291773792d291348..39ae23d4942178ce95d4c06e676545aa
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 57a5631a139251ae23592c10b082ab738f5cbb0b..7e32f0ec92b9309ca61a0c773d75b996768d3b74 100644
index 8caef74b83984c6351f7366376b64be50b50a41c..739402d4e7b2b99ced75f62df33e4f4b4b9bdd6c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1348,6 +1348,7 @@ public class PurpurWorldConfig {
@@ -1361,6 +1361,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index 57a5631a139251ae23592c10b082ab738f5cbb0b..7e32f0ec92b9309ca61a0c773d75b996
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1381,6 +1382,7 @@ public class PurpurWorldConfig {
@@ -1394,6 +1395,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 0cc49b0a600a5e6fb4fc21e698e3a5fef5996df1..bb2283fa9a21d7fc609f0a914cdb8b13
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 bae2bb894cc068cbf738849b9e46ce8d8b78f919..cd61cf137bfe39633414c59beaf7e4fb303fa2f1 100644
index 012bdd66052eb30a185804a36e4cbde323bb1d68..c0b9a7a7cd1e4acf151b12d308627d4ff2202018 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1801,6 +1801,7 @@ public class PurpurWorldConfig {
@@ -1814,6 +1814,7 @@ public class PurpurWorldConfig {
public double striderMaxHealth = 20.0D;
public double striderScale = 1.0D;
public int striderBreedingTicks = 6000;
@@ -40,7 +40,7 @@ index bae2bb894cc068cbf738849b9e46ce8d8b78f919..cd61cf137bfe39633414c59beaf7e4fb
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1813,6 +1814,7 @@ public class PurpurWorldConfig {
@@ -1826,6 +1827,7 @@ public class PurpurWorldConfig {
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderScale = Mth.clamp(getDouble("mobs.strider.attributes.scale", striderScale), 0.0625D, 16.0D);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -382,7 +382,7 @@ index bae4931fff0db56aa125248e17b29f7c2557221f..a265c5bf1a4d6f3c84cad20f9b3c285d
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee17184288 100644
index 19c6572a82de81b5a3aacad4bd77878d6c21ddc8..4f31d65962618a29b0a52ec7c51fba2267d63a05 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -121,6 +121,9 @@ public class PurpurWorldConfig {
@@ -442,7 +442,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public int waterInfiniteRequiredSources = 2;
@@ -745,6 +760,7 @@ public class PurpurWorldConfig {
@@ -758,6 +773,7 @@ public class PurpurWorldConfig {
public double creeperScale = 1.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -450,7 +450,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -758,6 +774,7 @@ public class PurpurWorldConfig {
@@ -771,6 +787,7 @@ public class PurpurWorldConfig {
creeperScale = Mth.clamp(getDouble("mobs.creeper.attributes.scale", creeperScale), 0.0625D, 16.0D);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -458,7 +458,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean dolphinRidable = false;
@@ -858,6 +875,7 @@ public class PurpurWorldConfig {
@@ -871,6 +888,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@@ -466,7 +466,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -874,6 +892,7 @@ public class PurpurWorldConfig {
@@ -887,6 +905,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -474,7 +474,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean endermanRidable = false;
@@ -883,6 +902,7 @@ public class PurpurWorldConfig {
@@ -896,6 +915,7 @@ public class PurpurWorldConfig {
public double endermanScale = 1.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -482,7 +482,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -896,6 +916,7 @@ public class PurpurWorldConfig {
@@ -909,6 +929,7 @@ public class PurpurWorldConfig {
endermanScale = Mth.clamp(getDouble("mobs.enderman.attributes.scale", endermanScale), 0.0625D, 16.0D);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -490,7 +490,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean endermiteRidable = false;
@@ -921,6 +942,7 @@ public class PurpurWorldConfig {
@@ -934,6 +955,7 @@ public class PurpurWorldConfig {
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
public double evokerScale = 1.0D;
@@ -498,7 +498,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -932,6 +954,7 @@ public class PurpurWorldConfig {
@@ -945,6 +967,7 @@ public class PurpurWorldConfig {
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerScale = Mth.clamp(getDouble("mobs.evoker.attributes.scale", evokerScale), 0.0625D, 16.0D);
@@ -506,7 +506,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean foxRidable = false;
@@ -941,6 +964,7 @@ public class PurpurWorldConfig {
@@ -954,6 +977,7 @@ public class PurpurWorldConfig {
public double foxScale = 1.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -514,7 +514,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -954,6 +978,7 @@ public class PurpurWorldConfig {
@@ -967,6 +991,7 @@ public class PurpurWorldConfig {
foxScale = Mth.clamp(getDouble("mobs.fox.attributes.scale", foxScale), 0.0625D, 16.0D);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
@@ -522,7 +522,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean frogRidable = false;
@@ -1430,6 +1455,7 @@ public class PurpurWorldConfig {
@@ -1443,6 +1468,7 @@ public class PurpurWorldConfig {
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
public double piglinScale = 1.0D;
@@ -530,7 +530,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1441,6 +1467,7 @@ public class PurpurWorldConfig {
@@ -1454,6 +1480,7 @@ public class PurpurWorldConfig {
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinScale = Mth.clamp(getDouble("mobs.piglin.attributes.scale", piglinScale), 0.0625D, 16.0D);
@@ -538,7 +538,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean piglinBruteRidable = false;
@@ -1466,6 +1493,7 @@ public class PurpurWorldConfig {
@@ -1479,6 +1506,7 @@ public class PurpurWorldConfig {
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
public double pillagerScale = 1.0D;
@@ -546,7 +546,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1477,6 +1505,7 @@ public class PurpurWorldConfig {
@@ -1490,6 +1518,7 @@ public class PurpurWorldConfig {
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerScale = Mth.clamp(getDouble("mobs.pillager.attributes.scale", pillagerScale), 0.0625D, 16.0D);
@@ -554,7 +554,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean polarBearRidable = false;
@@ -1528,6 +1557,7 @@ public class PurpurWorldConfig {
@@ -1541,6 +1570,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -562,7 +562,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1542,6 +1572,7 @@ public class PurpurWorldConfig {
@@ -1555,6 +1585,7 @@ 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);
@@ -570,7 +570,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean ravagerRidable = false;
@@ -1549,6 +1580,7 @@ public class PurpurWorldConfig {
@@ -1562,6 +1593,7 @@ public class PurpurWorldConfig {
public boolean ravagerControllable = true;
public double ravagerMaxHealth = 100.0D;
public double ravagerScale = 1.0D;
@@ -578,7 +578,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1560,6 +1592,7 @@ public class PurpurWorldConfig {
@@ -1573,6 +1605,7 @@ public class PurpurWorldConfig {
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerScale = Mth.clamp(getDouble("mobs.ravager.attributes.scale", ravagerScale), 0.0625D, 16.0D);
@@ -586,7 +586,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean salmonRidable = false;
@@ -1584,6 +1617,7 @@ public class PurpurWorldConfig {
@@ -1597,6 +1630,7 @@ public class PurpurWorldConfig {
public double sheepMaxHealth = 8.0D;
public double sheepScale = 1.0D;
public int sheepBreedingTicks = 6000;
@@ -594,7 +594,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1596,6 +1630,7 @@ public class PurpurWorldConfig {
@@ -1609,6 +1643,7 @@ public class PurpurWorldConfig {
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepScale = Mth.clamp(getDouble("mobs.sheep.attributes.scale", sheepScale), 0.0625D, 16.0D);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -602,7 +602,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean shulkerRidable = false;
@@ -1623,6 +1658,7 @@ public class PurpurWorldConfig {
@@ -1636,6 +1671,7 @@ public class PurpurWorldConfig {
public double silverfishScale = 1.0D;
public double silverfishMovementSpeed = 0.25D;
public double silverfishAttackDamage = 1.0D;
@@ -610,7 +610,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1636,6 +1672,7 @@ public class PurpurWorldConfig {
@@ -1649,6 +1685,7 @@ public class PurpurWorldConfig {
silverfishScale = Mth.clamp(getDouble("mobs.silverfish.attributes.scale", silverfishScale), 0.0625D, 16.0D);
silverfishMovementSpeed = getDouble("mobs.silverfish.attributes.movement_speed", silverfishMovementSpeed);
silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage);
@@ -618,7 +618,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean skeletonRidable = false;
@@ -1716,6 +1753,7 @@ public class PurpurWorldConfig {
@@ -1729,6 +1766,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -626,7 +626,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1733,6 +1771,7 @@ public class PurpurWorldConfig {
@@ -1746,6 +1784,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);
@@ -634,7 +634,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean snifferRidable = false;
@@ -1937,6 +1976,7 @@ public class PurpurWorldConfig {
@@ -1950,6 +1989,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -642,7 +642,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1955,6 +1995,7 @@ public class PurpurWorldConfig {
@@ -1968,6 +2008,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);
@@ -650,7 +650,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean vindicatorRidable = false;
@@ -2036,6 +2077,7 @@ public class PurpurWorldConfig {
@@ -2049,6 +2090,7 @@ public class PurpurWorldConfig {
public double witherScale = 1.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -658,7 +658,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2054,6 +2096,7 @@ public class PurpurWorldConfig {
@@ -2067,6 +2109,7 @@ public class PurpurWorldConfig {
witherScale = Mth.clamp(getDouble("mobs.wither.attributes.scale", witherScale), 0.0625D, 16.0D);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -666,7 +666,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
}
public boolean witherSkeletonRidable = false;
@@ -2132,6 +2175,7 @@ public class PurpurWorldConfig {
@@ -2145,6 +2188,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -674,7 +674,7 @@ index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2148,6 +2192,7 @@ public class PurpurWorldConfig {
@@ -2161,6 +2205,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

@@ -5,7 +5,7 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 5f642aba559290011f2426858e2966352da1e6f4..e0e76b5abdb9650c3c50a3c8b49336977982fe67 100644
index 9aeee3b61bb33d378d7ace77c1cb02bbb081790a..c9e3bb91ff506a35551a58f469ad2849e6058668 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -1155,6 +1155,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -17,7 +17,7 @@ index 5f642aba559290011f2426858e2966352da1e6f4..e0e76b5abdb9650c3c50a3c8b4933697
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 1f9d7c85f2ee5f6653e11457e19c03e6fa0419d9..8ecb72f6cd12d1e12f5ae9b240ccd6d9e4f6c248 100644
index 6124c72380f2a95ad70b453a1e4f1b416bc8bfe6..d211339a43c38d6298fc2c5d40a9f8324e7cca51 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -729,6 +729,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -29,10 +29,10 @@ index 1f9d7c85f2ee5f6653e11457e19c03e6fa0419d9..8ecb72f6cd12d1e12f5ae9b240ccd6d9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a4a913b089a4867cbfe6786f1eaa9682dde9ca98..12c74e91648779ec12d1ffd31ce2da478b970640 100644
index 5b9ca029c3dd765fe52a31e4c796b28e3c22302a..f0d75a5f4f9d1fc9e8e33be1412ef4c8c96573b7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -966,6 +966,7 @@ public class PurpurWorldConfig {
@@ -979,6 +979,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@@ -40,7 +40,7 @@ index a4a913b089a4867cbfe6786f1eaa9682dde9ca98..12c74e91648779ec12d1ffd31ce2da47
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -984,6 +985,7 @@ public class PurpurWorldConfig {
@@ -997,6 +998,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 a4a913b089a4867cbfe6786f1eaa9682dde9ca98..12c74e91648779ec12d1ffd31ce2da47
}
public boolean endermanRidable = false;
@@ -2270,6 +2272,7 @@ public class PurpurWorldConfig {
@@ -2283,6 +2285,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index a4a913b089a4867cbfe6786f1eaa9682dde9ca98..12c74e91648779ec12d1ffd31ce2da47
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2290,6 +2293,7 @@ public class PurpurWorldConfig {
@@ -2303,6 +2306,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 491d63bd648c0f0a82c2e9f8a899b352b553a697..a3cf68f3a43fb525112eaa669f2766b562bda535 100644
index 6d437ddf91444a4dc1bbbfa0d02783d023047497..7eb57c02515045dbc569c6b1da412c9fb398bd28 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -132,7 +132,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -18,10 +18,10 @@ index 491d63bd648c0f0a82c2e9f8a899b352b553a697..a3cf68f3a43fb525112eaa669f2766b5
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3397c9fbdad9e7c6023c013d38e5061663b4434a..27d10afc896600b0e4f3a696367d66821eddc033 100644
index dea04d8f0e6142b529a79791325472f4a5e98c48..6e199b1948fa7f4ba79fe21586aac94eabe189d7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1017,6 +1017,8 @@ public class PurpurWorldConfig {
@@ -1030,6 +1030,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index 3397c9fbdad9e7c6023c013d38e5061663b4434a..27d10afc896600b0e4f3a696367d6682
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1026,12 +1028,18 @@ public class PurpurWorldConfig {
@@ -1039,12 +1041,18 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra
Adds functionality to a useless item!
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 a3cf68f3a43fb525112eaa669f2766b562bda535..737c3367faee2286984c8e7d161b128d7b6632a5 100644
index 7eb57c02515045dbc569c6b1da412c9fb398bd28..6f3ccd2d437bacf7a7e828b62b51533eebc82b02 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -260,7 +260,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -20,10 +20,10 @@ index a3cf68f3a43fb525112eaa669f2766b562bda535..737c3367faee2286984c8e7d161b128d
event.setCancelled(!shouldAttack);
return event.callEvent();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 27d10afc896600b0e4f3a696367d66821eddc033..55b3b2c781215c1c6e3caab72fa7e31706a046d4 100644
index 6e199b1948fa7f4ba79fe21586aac94eabe189d7..a5bf37a0e9e5b818b1213bfe5e54bd3e4f08644d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1019,6 +1019,7 @@ public class PurpurWorldConfig {
@@ -1032,6 +1032,7 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -31,7 +31,7 @@ index 27d10afc896600b0e4f3a696367d66821eddc033..55b3b2c781215c1c6e3caab72fa7e317
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1040,6 +1041,7 @@ public class PurpurWorldConfig {
@@ -1053,6 +1054,7 @@ 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 0b81415233df20fe7143c87ee964a6a1f490476f..227638f369a6581f37e892fa457e2d67
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 28853730bd4df2978b840a7aaa891c8a9cc96189..661c2ed59e1ce1d25122c64bb8cf91bd896d859c 100644
index 418aa977435ac32b0d4777ea75a1ec3aea52411c..66c5250d3a4d838e5437af829f4adf67d149652c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1373,6 +1373,7 @@ public class PurpurWorldConfig {
@@ -1386,6 +1386,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index 28853730bd4df2978b840a7aaa891c8a9cc96189..661c2ed59e1ce1d25122c64bb8cf91bd
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1392,6 +1393,7 @@ public class PurpurWorldConfig {
@@ -1405,6 +1406,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

@@ -51,10 +51,10 @@ index 78da4454fb6eccb1d17d1f0cb19013883437a23e..0bce10c1cbf9f1788817a2834ec0efa0
private void spawnLingeringCloud() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 661c2ed59e1ce1d25122c64bb8cf91bd896d859c..c31d4deff4e91057fc1b5d93bfd1b59c012ce6e7 100644
index 66c5250d3a4d838e5437af829f4adf67d149652c..062b2805f55e77eb3d451332a4a2f902fd144a29 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -862,6 +862,7 @@ public class PurpurWorldConfig {
@@ -875,6 +875,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
@@ -62,7 +62,7 @@ index 661c2ed59e1ce1d25122c64bb8cf91bd896d859c..c31d4deff4e91057fc1b5d93bfd1b59c
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -877,6 +878,7 @@ public class PurpurWorldConfig {
@@ -890,6 +891,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 49484773e67eb84e7dadc993406edd6da568dcd5..3f7440eb164ea7593844de6c496ee1a9
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 33c679619ddb73642d546367debbe1bf13f0d716..27a5c78f37b46582402741f5943acd8d807655f2 100644
index 062b2805f55e77eb3d451332a4a2f902fd144a29..a80f8bc0da3accf15062a1291fc23bdb8fe6eb11 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1768,6 +1768,7 @@ public class PurpurWorldConfig {
@@ -1781,6 +1781,7 @@ public class PurpurWorldConfig {
public double ravagerScale = 1.0D;
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 33c679619ddb73642d546367debbe1bf13f0d716..27a5c78f37b46582402741f5943acd8d
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1781,6 +1782,23 @@ public class PurpurWorldConfig {
@@ -1794,6 +1795,23 @@ public class PurpurWorldConfig {
ravagerScale = Mth.clamp(getDouble("mobs.ravager.attributes.scale", ravagerScale), 0.0625D, 16.0D);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);

View File

@@ -32,10 +32,10 @@ index 116f47c7342dade1eaf0fabc62fb0ba2edd4c578..ba7856973d22c031910df4ec2a84d101
return InteractionResult.SUCCESS;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5e7636ba4ff1dec83567c21ece380d593cf0fbf6..961b4e5348abe34a333f842defd00b707a8227bc 100644
index 4ba1bda0efc475954ba281665179fab0ab0da8b7..7691c703e96165e1a670bd8ac4131c7dd075c517 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2223,6 +2223,7 @@ public class PurpurWorldConfig {
@@ -2236,6 +2236,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index 5e7636ba4ff1dec83567c21ece380d593cf0fbf6..961b4e5348abe34a333f842defd00b70
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2243,6 +2244,7 @@ public class PurpurWorldConfig {
@@ -2256,6 +2257,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);
@@ -51,7 +51,7 @@ index 5e7636ba4ff1dec83567c21ece380d593cf0fbf6..961b4e5348abe34a333f842defd00b70
}
public boolean vindicatorRidable = false;
@@ -2276,6 +2278,7 @@ public class PurpurWorldConfig {
@@ -2289,6 +2291,7 @@ public class PurpurWorldConfig {
public double wanderingTraderTemptRange = 10.0D;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
@@ -59,7 +59,7 @@ index 5e7636ba4ff1dec83567c21ece380d593cf0fbf6..961b4e5348abe34a333f842defd00b70
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2291,6 +2294,7 @@ public class PurpurWorldConfig {
@@ -2304,6 +2307,7 @@ public class PurpurWorldConfig {
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
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 c00b13482ce3f603f1d85b9a5ad36b768de5a9f8..10e747edebd6463cdfcea592cec1c232
pos = pos.below();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f4fcc5a1a3419f0d0e9046ad070e1a81f257855b..fa3a059698ebb4d0e2bda13159c064f281753152 100644
index d2fe41f8068fc0b5ecbca0cba8c9d3b2f34dd4c8..b002734db82852d8c2676c81980a5a1ab4795ac4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1700,6 +1700,7 @@ public class PurpurWorldConfig {
@@ -1713,6 +1713,7 @@ public class PurpurWorldConfig {
public double piglinScale = 1.0D;
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index f4fcc5a1a3419f0d0e9046ad070e1a81f257855b..fa3a059698ebb4d0e2bda13159c064f2
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1713,6 +1714,7 @@ public class PurpurWorldConfig {
@@ -1726,6 +1727,7 @@ public class PurpurWorldConfig {
piglinScale = Mth.clamp(getDouble("mobs.piglin.attributes.scale", piglinScale), 0.0625D, 16.0D);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index e0f25b057b7b908a10038d9e9695a500aa883c75..e63b408594b5d2673148e39c1deafc85
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 96de3a3d240c90905e25c9b7d851baf24ab30dbf..c3b837fc40c859098ef68bc8ff2b500b3d9dba92 100644
index b002734db82852d8c2676c81980a5a1ab4795ac4..9520dba81ec967319056cfff911c2aa48d9260a2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2401,6 +2401,7 @@ public class PurpurWorldConfig {
@@ -2414,6 +2414,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index 96de3a3d240c90905e25c9b7d851baf24ab30dbf..c3b837fc40c859098ef68bc8ff2b500b
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2422,6 +2423,7 @@ public class PurpurWorldConfig {
@@ -2435,6 +2436,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 0bce10c1cbf9f1788817a2834ec0efa04dd17752..d2de324f024d0a83790e2b86dc765b01
// CraftBukkit end
this.dead = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6b8ef2126bc99855c3e3b59422d3368b2b2bdfa7..38acafae81a2db5169da413271c46077e8321855 100644
index 39eeaa8797bc8afb627fe60e7bd2905aaf0b8ff0..886b692454c244ba97c3bb5447651059429ecf66 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -939,6 +939,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 6b8ef2126bc99855c3e3b59422d3368b2b2bdfa7..38acafae81a2db5169da413271c46077
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -955,6 +956,7 @@ public class PurpurWorldConfig {
@@ -968,6 +969,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 6396d31a14815fbe4f9f51dc610af317566bf522..db8420f6d1356d400699bd09e67e5805
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 38acafae81a2db5169da413271c46077e8321855..22b0b817737ae6e72b268a2063f6903e56f477ed 100644
index 886b692454c244ba97c3bb5447651059429ecf66..9e683fd8a18d63c201339a651462b8111b046a5e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1427,6 +1427,8 @@ public class PurpurWorldConfig {
@@ -1440,6 +1440,8 @@ public class PurpurWorldConfig {
public double ironGolemMaxHealth = 100.0D;
public double ironGolemScale = 1.0D;
public boolean ironGolemTakeDamageFromWater = false;
@@ -37,7 +37,7 @@ index 38acafae81a2db5169da413271c46077e8321855..22b0b817737ae6e72b268a2063f6903e
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1440,6 +1442,8 @@ public class PurpurWorldConfig {
@@ -1453,6 +1455,8 @@ public class PurpurWorldConfig {
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemScale = Mth.clamp(getDouble("mobs.iron_golem.attributes.scale", ironGolemScale), 0.0625D, 16.0D);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);

View File

@@ -50,10 +50,10 @@ index 9c7e29307b811d859a0d743b232463e18391b5f0..00759f484cab0d7c8d4e8914dd9f2706
@Nullable
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 22b0b817737ae6e72b268a2063f6903e56f477ed..9049750b5213eecf5086db9032403e1fa21bf3bd 100644
index 9e683fd8a18d63c201339a651462b8111b046a5e..e6de1d1bd422d9bf03456f88ef95e2587f4e5ad1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1605,6 +1605,7 @@ public class PurpurWorldConfig {
@@ -1618,6 +1618,7 @@ public class PurpurWorldConfig {
public double parrotMaxHealth = 6.0D;
public double parrotScale = 1.0D;
public boolean parrotTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index 22b0b817737ae6e72b268a2063f6903e56f477ed..9049750b5213eecf5086db9032403e1f
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1618,6 +1619,7 @@ public class PurpurWorldConfig {
@@ -1631,6 +1632,7 @@ public class PurpurWorldConfig {
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotScale = Mth.clamp(getDouble("mobs.parrot.attributes.scale", parrotScale), 0.0625D, 16.0D);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);

View File

@@ -68,10 +68,10 @@ index 79dc7cf5bfe92b4df21d164f39726dfe618331e4..6721432f9cdd11c9658c34f0ac407be2
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8f075735eaefe238cd776e0bb8ee848f2f2b78d4..adb3a868bac580e65a72560c863f0d948bc6e5b5 100644
index 6bbde7e866410de77eabc0295518e89be45ca825..7b076c637f85107883c889d1b5e2639d58a91cd8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1978,6 +1978,11 @@ public class PurpurWorldConfig {
@@ -1991,6 +1991,11 @@ public class PurpurWorldConfig {
public double shulkerMaxHealth = 30.0D;
public double shulkerScale = 1.0D;
public boolean shulkerTakeDamageFromWater = false;
@@ -83,7 +83,7 @@ index 8f075735eaefe238cd776e0bb8ee848f2f2b78d4..adb3a868bac580e65a72560c863f0d94
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1990,6 +1995,11 @@ public class PurpurWorldConfig {
@@ -2003,6 +2008,11 @@ public class PurpurWorldConfig {
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerScale = Mth.clamp(getDouble("mobs.shulker.attributes.scale", shulkerScale), 0.0625D, Shulker.MAX_SCALE);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);

View File

@@ -17,10 +17,10 @@ index 1f41e4a88fb41347b8b1ac6b3d1c454ad35ebfc4..ec00c6b2a8b6a5e0ef030d65f86d4a7d
this.targetSelector.addGoal(1, new HurtByTargetGoal(this, Drowned.class).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, (target, world) -> this.okTarget(target)));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 35f0bd3947ef9152ee0392d87a1d2abb64ca6d43..0a490f119ab9ca4fd2c1237b8bc0ee8edcbe1c4f 100644
index 46c953354b9c37de378408b18cddd8d1dbd44d7a..84f9031091bbdbd42247d4ecf10894e029bff141 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1068,6 +1068,7 @@ public class PurpurWorldConfig {
@@ -1081,6 +1081,7 @@ public class PurpurWorldConfig {
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
@@ -28,7 +28,7 @@ index 35f0bd3947ef9152ee0392d87a1d2abb64ca6d43..0a490f119ab9ca4fd2c1237b8bc0ee8e
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1084,6 +1085,7 @@ public class PurpurWorldConfig {
@@ -1097,6 +1098,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 4f8ee2e5db3352306f3c035052866d95630f4aaf..b8b0b89b7f0a21ecff4ab6286f8a114e
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 391a25d4dc008b8cf13d167648e5033d5f51d1ed..9a763200f34b1232f361cec421615dbfa23e7c05 100644
index 84f9031091bbdbd42247d4ecf10894e029bff141..60aa7a970cd43ce82a26b06e45f36a077acfa15b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2690,4 +2690,9 @@ public class PurpurWorldConfig {
@@ -2703,4 +2703,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

@@ -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 737c3367faee2286984c8e7d161b128d7b6632a5..b8fe9665bed428e8e97d1b8a6527cbefc9b9fbcb 100644
index 6f3ccd2d437bacf7a7e828b62b51533eebc82b02..dcc3b145aaaa208f4949d673333625928468717c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -424,6 +424,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -17,10 +17,10 @@ index 737c3367faee2286984c8e7d161b128d7b6632a5..b8fe9665bed428e8e97d1b8a6527cbef
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 e70f67fe1c038490983026fc21ccaed8b761d279..8858336b39b97329457f7ee5f23139f1cc796330 100644
index ef15b1c0502634da03ed239ee9bc12b395c58693..21841f15aae1816dab5a3fb81148e54877a3419c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1442,6 +1442,7 @@ public class PurpurWorldConfig {
@@ -1455,6 +1455,7 @@ public class PurpurWorldConfig {
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
public boolean endermanDisableStareAggro = false;
@@ -28,7 +28,7 @@ index e70f67fe1c038490983026fc21ccaed8b761d279..8858336b39b97329457f7ee5f23139f1
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1464,6 +1465,7 @@ public class PurpurWorldConfig {
@@ -1477,6 +1478,7 @@ public class PurpurWorldConfig {
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);

View File

@@ -18,10 +18,10 @@ index 7298ba35cb27269e778de6b265933baed3077b36..623e8ef53d6336b3e3c83fd37eda1324
return InteractionResult.SUCCESS_SERVER;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 753fdcd39fcb4696766070f8de2e414bd289cd95..0d94d2ed311b03cb13a5a4771c870dc1ee493357 100644
index 3aa4cc24ca6465c2cc475c9473548f0b6680d51f..e12bbc0974890eea0f5fbeebeeb0a713e8e698d2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2948,6 +2948,8 @@ public class PurpurWorldConfig {
@@ -2961,6 +2961,8 @@ public class PurpurWorldConfig {
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
public boolean zombieVillagerTakeDamageFromWater = false;
@@ -30,7 +30,7 @@ index 753fdcd39fcb4696766070f8de2e414bd289cd95..0d94d2ed311b03cb13a5a4771c870dc1
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2964,6 +2966,8 @@ public class PurpurWorldConfig {
@@ -2977,6 +2979,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

@@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for Wither's spawn sound
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 4e59cbd95d2ee1b69a38fc23015a6262d1a2c53b..1857e0899b32a078bd0e9e4b784ea60b97aa70ef 100644
index 780aa3e8580f9df24c56af1f2eb474d3ccf7a823..8f78d9a45770bd7114c6d08a4e818442e329eee4 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -424,7 +424,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -18,10 +18,10 @@ index 4e59cbd95d2ee1b69a38fc23015a6262d1a2c53b..1857e0899b32a078bd0e9e4b784ea60b
// worldserver.globalLevelEvent(1023, new BlockPosition(this), 0);
int viewDistance = world.getCraftServer().getViewDistance() * 16;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c4ddc1c2429857a5cb083613a26a35fdd07f7234..2a8ef714d2820c8b6ea360883326a09aa61ec51c 100644
index 89a4e9f78f71f2b3e853a555bb8d8284cf6a6cb0..9111f026f6499eeada8a7c22d3c433e41a72d869 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2783,6 +2783,7 @@ public class PurpurWorldConfig {
@@ -2796,6 +2796,7 @@ public class PurpurWorldConfig {
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
@@ -29,7 +29,7 @@ index c4ddc1c2429857a5cb083613a26a35fdd07f7234..2a8ef714d2820c8b6ea360883326a09a
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2805,6 +2806,7 @@ public class PurpurWorldConfig {
@@ -2818,6 +2819,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

@@ -97,10 +97,10 @@ index c1759aeb3e6ad0e4eb66cba3da1b120dd1dce812..1a91bc2e422db0eba65694ac046f1b36
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3c99a7d692215c4906f206052c6544164827ac7f..3cf070d9bb17c36d70df8f831c05a17f4b1b59ba 100644
index 915dcd176f058dd04ea980fd3790ac339ffd2de4..7161b90c101062bd9e30639c782c514aac15202c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3017,4 +3017,27 @@ public class PurpurWorldConfig {
@@ -3030,4 +3030,27 @@ public class PurpurWorldConfig {
private void hungerSettings() {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}

View File

@@ -47,10 +47,10 @@ index 53cea36ec931de89e0060613acf87beb51dc16ec..fd5489993dca0f940da69e9163f78e5c
if (dripChance < f1) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3cf070d9bb17c36d70df8f831c05a17f4b1b59ba..b40eee6cba9272c945a12c2964b33f172db94ce6 100644
index 7161b90c101062bd9e30639c782c514aac15202c..970954ee212526c767fe1dd84bbaaa459f071398 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3040,4 +3040,15 @@ public class PurpurWorldConfig {
@@ -3053,4 +3053,15 @@ public class PurpurWorldConfig {
});
conduitBlocks = conduitBlockList.toArray(Block[]::new);
}

View File

@@ -29,10 +29,10 @@ index 79bf3d04fa2c7bcadfff08dc9a464e589866f7db..131c7d7e85a3d9ac0e485fd8e56bd419
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 8392bed4344d6880b2e2a00e42e12b705095b3cd..cff0dfea430955ea4211d06ea2cff8db7ca4159a 100644
index a2e3f6781ec6af4874d5c08d387f3e57409418cb..c74d3cec817ebedd2cb4cdb0d8781510335c6963 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2305,6 +2305,7 @@ public class PurpurWorldConfig {
@@ -2318,6 +2318,7 @@ public class PurpurWorldConfig {
public double shulkerSpawnFromBulletNearbyRange = 8.0D;
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false;
@@ -40,7 +40,7 @@ index 8392bed4344d6880b2e2a00e42e12b705095b3cd..cff0dfea430955ea4211d06ea2cff8db
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2322,6 +2323,7 @@ public class PurpurWorldConfig {
@@ -2335,6 +2336,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 bcc6435c177189aa59a3fbe67795ae5092685133..fad0b8157a9c30a0e9b35fe32b6a9f2e
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 948712e75fe4f0083178a8f5bcd918e9fcabd8df..39663ab70587b62c52804955081af1c740cac429 100644
index 4075b1c719007965d487a6c033dc7198bc4cfc08..7fd68ad9c8506d45e000172f8cc97eca33c3af3a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1345,6 +1345,7 @@ public class PurpurWorldConfig {
@@ -1358,6 +1358,7 @@ public class PurpurWorldConfig {
public double dolphinScale = 1.0D;
public boolean dolphinDisableTreasureSearching = false;
public boolean dolphinTakeDamageFromWater = false;
@@ -59,7 +59,7 @@ index 948712e75fe4f0083178a8f5bcd918e9fcabd8df..39663ab70587b62c52804955081af1c7
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -1360,6 +1361,7 @@ public class PurpurWorldConfig {
@@ -1373,6 +1374,7 @@ public class PurpurWorldConfig {
dolphinScale = Mth.clamp(getDouble("mobs.dolphin.attributes.scale", dolphinScale), 0.0625D, 16.0D);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);

View File

@@ -61,7 +61,7 @@ index 4ad3571403ee8044d17f53987bd47b6c43d42f0e..380bd41336d8d24bffd4e10885e46c95
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 39663ab70587b62c52804955081af1c740cac429..4e4fda61d820a320215a64635421a804f6f63df5 100644
index f3029600ef5eb73166a220f405bf5f8b62933436..4a3b4711aa82149299fb88301d69a23ada34e116 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1290,7 +1290,14 @@ public class PurpurWorldConfig {
@@ -87,4 +87,4 @@ index 39663ab70587b62c52804955081af1c740cac429..4e4fda61d820a320215a64635421a804
+ cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage);
}
public boolean creeperRidable = false;
public boolean creakingRidable = false;

View File

@@ -64,10 +64,10 @@ index b34dec421adc3ce56c0720a839a43ce42faeefaf..98e7b57a45ae3cae704c65ec6db5f715
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 7e40f5790c243994d86cc8fdedc3ce7dcb94e24e..5226f3ad75ca94820c4b8de13b7cb8342268cbc9 100644
index 55574dcdf112a3310c23425060009b1394449c3a..0e698fa909db87571ed4985840517abba39ab668 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1708,6 +1708,13 @@ public class PurpurWorldConfig {
@@ -1721,6 +1721,13 @@ public class PurpurWorldConfig {
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
}

View File

@@ -18,10 +18,10 @@ index 623e8ef53d6336b3e3c83fd37eda13244a3b4ab6..3759f28c7f516a94ca8fe1b8f82230b9
if (!this.level().isClientSide) {
this.startConverting(player.getUUID(), this.random.nextInt(level().purpurConfig.zombieVillagerCuringTimeMax - level().purpurConfig.zombieVillagerCuringTimeMin + 1) + level().purpurConfig.zombieVillagerCuringTimeMin); // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 98cfcc83104905ef458d64128fc3e3126d133bbf..de881d36a6c1f48c8269cc14da194d2a01466c31 100644
index 6ff6604c23de222166a80db9a3f99acea8b8a62e..853eb6b8b03effd2df35b1dbd9526bc0b12c06d1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3014,6 +3014,7 @@ public class PurpurWorldConfig {
@@ -3027,6 +3027,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerTakeDamageFromWater = false;
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
@@ -29,7 +29,7 @@ index 98cfcc83104905ef458d64128fc3e3126d133bbf..de881d36a6c1f48c8269cc14da194d2a
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -3032,6 +3033,7 @@ public class PurpurWorldConfig {
@@ -3045,6 +3046,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

@@ -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 58be94a164c3413dad4b3a7bb1a1544edb88e9ba..b4dd7d602dc062cc96aff048688fd808db0e4b12 100644
index d3adb23808c110862cd7090229c459deb6a34fa2..ccde673f203ca17f726c67d009ea4cf4eb9040ac 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1069,9 +1069,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -32,10 +32,10 @@ index 58be94a164c3413dad4b3a7bb1a1544edb88e9ba..b4dd7d602dc062cc96aff048688fd808
// 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 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b746fe0930 100644
index 535f310811ae11878d3a6c5bd90c5b1ffd1097ca..516d20e07dba216e82cbbba6aea67a8b758de512 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1379,6 +1379,7 @@ public class PurpurWorldConfig {
@@ -1392,6 +1392,7 @@ public class PurpurWorldConfig {
public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
@@ -43,7 +43,7 @@ index 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1397,6 +1398,7 @@ public class PurpurWorldConfig {
@@ -1410,6 +1411,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 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
}
public boolean dolphinRidable = false;
@@ -2224,6 +2226,7 @@ public class PurpurWorldConfig {
@@ -2237,6 +2239,7 @@ public class PurpurWorldConfig {
public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000;
public boolean piglinAlwaysDropExp = false;
@@ -59,7 +59,7 @@ index 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -2239,6 +2242,7 @@ public class PurpurWorldConfig {
@@ -2252,6 +2255,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 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
}
public boolean piglinBruteRidable = false;
@@ -2523,6 +2527,7 @@ public class PurpurWorldConfig {
@@ -2536,6 +2540,7 @@ public class PurpurWorldConfig {
public double skeletonScale = 1.0D;
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
@@ -75,7 +75,7 @@ index 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2536,6 +2541,7 @@ public class PurpurWorldConfig {
@@ -2549,6 +2554,7 @@ public class PurpurWorldConfig {
skeletonScale = Mth.clamp(getDouble("mobs.skeleton.attributes.scale", skeletonScale), 0.0625D, 16.0D);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
@@ -83,7 +83,7 @@ index 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
}
public boolean skeletonHorseRidable = false;
@@ -3109,6 +3115,7 @@ public class PurpurWorldConfig {
@@ -3122,6 +3128,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
@@ -91,7 +91,7 @@ index 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b7
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -3128,6 +3135,7 @@ public class PurpurWorldConfig {
@@ -3141,6 +3148,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 1aba4ebc1ea3d6782098f2c9aebfb38363e7ab95..cda6cb5b10b895bab48d2212f259ba4c
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6c25a42aba24d09423ced12da0b581de7b075bce..9882be8d2a0c235b61dabfd31d7680a934f3ce81 100644
index c733010fba56772459651cfb89fc5ced231fb5ed..b16d7e3f76d05fd834a62c564b2b8688397c2832 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2161,6 +2161,8 @@ public class PurpurWorldConfig {
@@ -2174,6 +2174,8 @@ public class PurpurWorldConfig {
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
public boolean phantomAlwaysDropExp = false;
@@ -34,7 +34,7 @@ index 6c25a42aba24d09423ced12da0b581de7b075bce..9882be8d2a0c235b61dabfd31d7680a9
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -2197,6 +2199,13 @@ public class PurpurWorldConfig {
@@ -2210,6 +2212,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 0efc8d997b34302c3e0a5d7ec73a11a940dbeefe..af157881d440b34cfe79fbc9b03cc9ef
public ItemStack assemble() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ffd547eccd7356c29957a9621653ff04d5dc8b1b..97e8fc04a61f7c3844a74c99859c4f4b938b1810 100644
index b16d7e3f76d05fd834a62c564b2b8688397c2832..c49e93d6afd7fe6c7c8397154a9580ab023ed529 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2892,6 +2892,7 @@ public class PurpurWorldConfig {
@@ -2905,6 +2905,7 @@ public class PurpurWorldConfig {
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index ffd547eccd7356c29957a9621653ff04d5dc8b1b..97e8fc04a61f7c3844a74c99859c4f4b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2914,6 +2915,7 @@ public class PurpurWorldConfig {
@@ -2927,6 +2928,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

@@ -104,10 +104,10 @@ index 8e895d6f84f7d84b219f2424909dd42e5f08dec4..53dcce0701d713c5dd097340a91b8be4
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 97e8fc04a61f7c3844a74c99859c4f4b938b1810..d5dc045f2ca66af0f484fd9ed15bf12db02baeef 100644
index c49e93d6afd7fe6c7c8397154a9580ab023ed529..a1c3e7d57d716f785e9ba677c8f259ffe030a165 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2893,6 +2893,9 @@ public class PurpurWorldConfig {
@@ -2906,6 +2906,9 @@ public class PurpurWorldConfig {
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
public int villagerMinimumDemand = 0;
@@ -117,7 +117,7 @@ index 97e8fc04a61f7c3844a74c99859c4f4b938b1810..d5dc045f2ca66af0f484fd9ed15bf12d
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2916,6 +2919,18 @@ public class PurpurWorldConfig {
@@ -2929,6 +2932,18 @@ 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 18dad0825616c4167a0a7555689ee64910a87e09..6945992491027d43eca4f1ca697ad45c
&& this.lookTime > 0
&& entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d5dc045f2ca66af0f484fd9ed15bf12db02baeef..08025b965142096d8b9c8a3cb1d6813f4fed91bb 100644
index a1c3e7d57d716f785e9ba677c8f259ffe030a165..18874f9a5bc41d312059c553ae4d188c76b94936 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2896,6 +2896,7 @@ public class PurpurWorldConfig {
@@ -2909,6 +2909,7 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
@@ -28,7 +28,7 @@ index d5dc045f2ca66af0f484fd9ed15bf12db02baeef..08025b965142096d8b9c8a3cb1d6813f
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2931,6 +2932,7 @@ public class PurpurWorldConfig {
@@ -2944,6 +2945,7 @@ public class PurpurWorldConfig {
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);

View File

@@ -18,10 +18,10 @@ index f787aec8bfa291447b3bca297239f44a9fe342a7..38594d3f520b4d75db441cfdde121ac6
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 a81fdeb38abaf03eb7231ed2ba4e8b693e378a4f..d7789c4969e0c56322d411bfc5d0e9666e719fbc 100644
index e1fb914b6569d3061321cfe9a42b873b9aee247c..c57b4ed2f136c290ee5a323bd343ddc04bd7e60a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2907,6 +2907,8 @@ public class PurpurWorldConfig {
@@ -2920,6 +2920,8 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
public boolean villagerDisplayTradeItem = true;
@@ -30,7 +30,7 @@ index a81fdeb38abaf03eb7231ed2ba4e8b693e378a4f..d7789c4969e0c56322d411bfc5d0e966
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2943,6 +2945,8 @@ public class PurpurWorldConfig {
@@ -2956,6 +2958,8 @@ public class PurpurWorldConfig {
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);

View File

@@ -90,10 +90,10 @@ index 61b5f27c1125ed1b183dd3b86b44a10b7098f91c..3cbe4c1ed514936a00e0181cb1e647fb
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7ac4f4f07fc6a7421706526d940ed22c28c2cf8d..9cc8e514663a35747d8e96786e8a338248b7a1df 100644
index ec4ceb85458391697d348030ea7775f2cfa7caeb..61420c97c19eb7b72cb80d2b3c5170831f9c919a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2567,6 +2567,7 @@ public class PurpurWorldConfig {
@@ -2580,6 +2580,7 @@ public class PurpurWorldConfig {
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
@@ -101,7 +101,7 @@ index 7ac4f4f07fc6a7421706526d940ed22c28c2cf8d..9cc8e514663a35747d8e96786e8a3382
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2581,6 +2582,7 @@ public class PurpurWorldConfig {
@@ -2594,6 +2595,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

@@ -136,10 +136,10 @@ index 39aac959775afeaeea211f21d498cb0ddf0a3fcb..6349a342c023f378af431a73a62fb017
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9cc8e514663a35747d8e96786e8a338248b7a1df..9b777b356044241951fed1990e166735100ff1fb 100644
index 61420c97c19eb7b72cb80d2b3c5170831f9c919a..7cee836cbc33fcc604fbb864d38315be2e56ceb8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1543,6 +1543,11 @@ public class PurpurWorldConfig {
@@ -1556,6 +1556,11 @@ public class PurpurWorldConfig {
elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp);
}

View File

@@ -18,10 +18,10 @@ index 2cadbc0d56908ca978e1735eff07f5e634548606..39d02cf0e31832e30c4f034b0b5385e3
// CraftBukkit end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 92b5eecbb2474f5dbb4a9eca55bde27abced5680..28fdb5aaf7cd27cab1e3d04283f512b6786b19f6 100644
index 1a9fcd289a68c7f3d7d858eade65cc414880cd8d..f28ad02b026e25a560ed24f236627113a55066c1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2587,6 +2587,8 @@ public class PurpurWorldConfig {
@@ -2600,6 +2600,8 @@ public class PurpurWorldConfig {
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
public int skeletonFeedWitherRoses = 0;
@@ -30,7 +30,7 @@ index 92b5eecbb2474f5dbb4a9eca55bde27abced5680..28fdb5aaf7cd27cab1e3d04283f512b6
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2602,6 +2604,18 @@ public class PurpurWorldConfig {
@@ -2615,6 +2617,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

@@ -24,10 +24,10 @@ index 137ec75ee803789deb7b1ca93dd9369c9af362b9..ca95d25af3e9a0536868b0c7fd8e7d2f
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 76ed4f11372088b8c3ad04f215d3f6dc0e50594e..1b948280b0d92ec607d4c9dee0d2f1749e9fe8b5 100644
index 913efd04720e7321fafe75c0f9eceed03e91044e..d617a76d673370286c5a55e3a02f2ed4f5fdc9c3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1426,6 +1426,7 @@ public class PurpurWorldConfig {
@@ -1439,6 +1439,7 @@ public class PurpurWorldConfig {
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
public double creeperHeadVisibilityPercent = 0.5D;
@@ -35,7 +35,7 @@ index 76ed4f11372088b8c3ad04f215d3f6dc0e50594e..1b948280b0d92ec607d4c9dee0d2f174
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1445,6 +1446,7 @@ public class PurpurWorldConfig {
@@ -1458,6 +1459,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

@@ -44,10 +44,10 @@ index de87483600e55d88176fe25db621bbd3e464729f..287ba483614e79e78022e703ef891f59
+ // Purpur end - Shears can defuse TNT
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cdb67f9e73865d0cefa9ce34e43a7d1daa642f89..bb434b12c7400e6129addd5d6672ea9847c00c79 100644
index 869e6dc3dad0591af777762a4560c9b6e205feb4..9dc7eef416a0c97364d6db7f0a9e2fcadeb06a45 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3401,4 +3401,11 @@ public class PurpurWorldConfig {
@@ -3414,4 +3414,11 @@ public class PurpurWorldConfig {
cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance);
cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance);
}

View File

@@ -18,10 +18,10 @@ index 14634de26c218a3d26afd3e7e6ca89c1a0595178..dee59cb4b87845c940ee089aa932aa69
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7b78365741d0a6bcf6381debdf3f2e5896b4c679..ec20f5a874d51e0ceb82a865da235dec347c5d99 100644
index 9dc7eef416a0c97364d6db7f0a9e2fcadeb06a45..14bcd0038c9d16e9de9c16d0edbdde0c0e614d97 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2137,6 +2137,7 @@ public class PurpurWorldConfig {
@@ -2150,6 +2150,7 @@ public class PurpurWorldConfig {
public int ocelotBreedingTicks = 6000;
public boolean ocelotTakeDamageFromWater = false;
public boolean ocelotAlwaysDropExp = false;
@@ -29,7 +29,7 @@ index 7b78365741d0a6bcf6381debdf3f2e5896b4c679..ec20f5a874d51e0ceb82a865da235dec
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -2151,6 +2152,7 @@ public class PurpurWorldConfig {
@@ -2164,6 +2165,7 @@ public class PurpurWorldConfig {
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
ocelotAlwaysDropExp = getBoolean("mobs.ocelot.always-drop-exp", ocelotAlwaysDropExp);

View File

@@ -29,10 +29,10 @@ index e283b1296c1e831376bfe9491cbf02ed4b3fffe4..27a6de70530c2a1cbe2f77a7fb493038
piglin.getBrain().eraseMemory(MemoryModuleType.WALK_TARGET);
piglin.getNavigation().stop();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ec20f5a874d51e0ceb82a865da235dec347c5d99..80561650178b5cb3c49422fb2b0d30aeca55fdd0 100644
index 14bcd0038c9d16e9de9c16d0edbdde0c0e614d97..14346bf253cf1f420e024eb119ea26e45a7c9a59 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2314,6 +2314,7 @@ public class PurpurWorldConfig {
@@ -2327,6 +2327,7 @@ public class PurpurWorldConfig {
public int piglinPortalSpawnModifier = 2000;
public boolean piglinAlwaysDropExp = false;
public double piglinHeadVisibilityPercent = 0.5D;
@@ -40,7 +40,7 @@ index ec20f5a874d51e0ceb82a865da235dec347c5d99..80561650178b5cb3c49422fb2b0d30ae
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -2330,6 +2331,7 @@ public class PurpurWorldConfig {
@@ -2343,6 +2344,7 @@ public class PurpurWorldConfig {
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
piglinHeadVisibilityPercent = getDouble("mobs.piglin.head-visibility-percent", piglinHeadVisibilityPercent);

View File

@@ -31,10 +31,10 @@ index 92731b6b593289e9f583c9b705b219e81fcd8e73..9104d7010bda6f9f73b478c11490ef9c
// Paper end - optimise POI access
if (path != null && path.canReach()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 83dcd2f078a8caffeff2f5d7458dc85631fbd1ff..ac893384c2d6daf81dcc057ea6ef3a671e15a080 100644
index 77947debf981eb44cc116b6bb930a9f07ffaef16..e863b5cc35bbef332f430b6a7eaab53996b2d574 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2991,6 +2991,8 @@ public class PurpurWorldConfig {
@@ -3004,6 +3004,8 @@ public class PurpurWorldConfig {
public boolean villagerDisplayTradeItem = true;
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@@ -43,7 +43,7 @@ index 83dcd2f078a8caffeff2f5d7458dc85631fbd1ff..ac893384c2d6daf81dcc057ea6ef3a67
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -3029,6 +3031,8 @@ public class PurpurWorldConfig {
@@ -3042,6 +3044,8 @@ public class PurpurWorldConfig {
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] option to make ravagers afraid of rabbits
https://github.com/PurpurMC/Purpur/discussions/713
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 06aa58b0e036ce4e9615365d03060eb9d9a518b7..487f21c6e6ffc0dc9c0733241a8ded8c73a5ec8f 100644
index 1c8cb19a8b25593d16518006247bdf0e71e16ab1..98c1934b4895a86cd8748edf906aaa721a87a123 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -122,6 +122,7 @@ public class Ravager extends Raider {
@@ -18,10 +18,10 @@ index 06aa58b0e036ce4e9615365d03060eb9d9a518b7..487f21c6e6ffc0dc9c0733241a8ded8c
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 0.4D));
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 e10c7273130d3c4cf5e42b71d78df2621b1bab83..d39a0d455f10189054ebc894c55188c5cbc000d2 100644
index e863b5cc35bbef332f430b6a7eaab53996b2d574..b7743b7b37293fd458b56f5e17359d2383719c90 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2472,6 +2472,7 @@ public class PurpurWorldConfig {
@@ -2485,6 +2485,7 @@ public class PurpurWorldConfig {
public boolean ravagerTakeDamageFromWater = false;
public List<Block> ravagerGriefableBlocks = new ArrayList<>();
public boolean ravagerAlwaysDropExp = false;
@@ -29,7 +29,7 @@ index e10c7273130d3c4cf5e42b71d78df2621b1bab83..d39a0d455f10189054ebc894c55188c5
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -2503,6 +2504,7 @@ public class PurpurWorldConfig {
@@ -2516,6 +2517,7 @@ public class PurpurWorldConfig {
}
});
ravagerAlwaysDropExp = getBoolean("mobs.ravager.always-drop-exp", ravagerAlwaysDropExp);