Files
Purpur/patches/server/0244-Mobs-always-drop-experience.patch
Ben Kerllenevich dc4a29b567 Updated Upstream (Paper & Pufferfish)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@2033dba Updated Upstream (CraftBukkit)
PaperMC/Paper@a3ad720 Remove ChatColor usages (#7543)
PaperMC/Paper@8fc0999 Fix some nullability things (#7275)
PaperMC/Paper@fd069dd Remove incorrect throws javadoc in Team (#7869)
PaperMC/Paper@bed5cb2 Limit resolved selectors when enabled
PaperMC/Paper@4d83ed0 [ci skip] Changing the order of the rebase with autosquash command in the contributing.md (#6974)
PaperMC/Paper@071a4a2 throw exception if worlds are created while being ticked (#7653)
PaperMC/Paper@5b6397a Make leave messages for kicks the same as for quitting (#7874)
PaperMC/Paper@5befb55 Updated Upstream (Bukkit/CraftBukkit) (#7875)
PaperMC/Paper@b3deb25 Move some methods to RegionAccessor (#7635)
PaperMC/Paper@d8ef841 [DataConverter] Fix generator options parsing
PaperMC/Paper@4b27254 Fix treasure maps discovered settings (#7627)
PaperMC/Paper@276d830 Fix campfire walker in V1920

Pufferfish Changes:
pufferfish-gg/Pufferfish@671d68b Add Entity TTLs
pufferfish-gg/Pufferfish@aaca13d Updated Upstream (Paper)
2022-06-07 13:09:12 -04:00

2307 lines
122 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <blake.galbreath@gmail.com>
Date: Tue, 21 Dec 2021 20:40:42 -0600
Subject: [PATCH] Mobs always drop experience
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index e98176b7969589897ee784bfb83f6c3f40cecd68..5e5eaf7c20c3329f2e576c8672a6be918ab16d88 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -53,6 +53,11 @@ public class GlowSquid extends Squid {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.glowSquidTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.glowSquidAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index 4d39f68a0d0de84474ef96f10cb35e97db2fd9f8..30ecad8a2530c2f4eb0ff0ae43f22d3805baa6a6 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -107,6 +107,11 @@ public class Bat extends AmbientCreature {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.batTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.batAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index e090cdf99ab637117494b3e8820e6b40b2387018..266b220a8b4a15ea267804139462af210fb23077 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -228,6 +228,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.beeTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.beeAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 9edd8b89abaa9a41dd50d859878703c02e514fd3..94d830e6b5dca78a56547872811a85328e3f2fff 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -162,6 +162,11 @@ public class Cat extends TamableAnimal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.catTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.catAlwaysDropExp;
+ }
// Purpur end
public ResourceLocation getResourceLocation() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
index 439ce2e01cb861f2b3abb86090f49498e2a47142..df8e58ba17624089285abafe77753a02dd683ebc 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -85,6 +85,11 @@ public class Chicken extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.chickenTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.chickenAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cod.java b/src/main/java/net/minecraft/world/entity/animal/Cod.java
index 5b79d821e8b55c8876eadcbe811a2c0584e7e02b..de70208403ef6c6c9c82ca4c1fd3b641a40bb45c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cod.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cod.java
@@ -38,6 +38,11 @@ public class Cod extends AbstractSchoolingFish {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.codTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.codAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
index b5002526f20fb8ae52783a6ba95ccd2d4f9b7840..a79b4a90274d25d427214b96649cdf8561469a83 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -80,6 +80,11 @@ public class Cow extends Animal {
this.isNaturallyAggressiveToPlayers = world.getLevel().purpurConfig.cowNaturallyAggressiveToPlayersChance > 0.0D && random.nextDouble() <= world.getLevel().purpurConfig.cowNaturallyAggressiveToPlayersChance;
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.cowAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index a41ceccdf757ffbb87f972ef250b61734f3f3879..e6d00d7044eb16872455abf91dfaadcaeba6306b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -168,6 +168,11 @@ public class Dolphin extends WaterAnimal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.dolphinTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.dolphinAlwaysDropExp;
+ }
// Purpur end
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index d0e9f326e755f1e9e8a9f96f9effba5f80faab1e..1b4d3722e3c2218e8712f4275392f517369d5417 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -193,6 +193,11 @@ public class Fox extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.foxTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.foxAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 1f90c7e164848f08ff6c4aacf0a6154750cfe21d..5a74ef4baf5e22921fe54cc65e492b3b1c4d40d6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -105,6 +105,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
public void setSummoner(@Nullable UUID summoner) {
this.summoner = summoner;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.ironGolemAlwaysDropExp;
+ }
// Purpur end
@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 047404f4e38b9d796ceecb4e07740942eb137ae0..48459f6c9a9d7112ef335725e1989883a892c9d7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -94,6 +94,11 @@ public class MushroomCow extends Cow implements Shearable {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.mooshroomTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.mooshroomAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
index b0f133931815155f1dab02e2853bbcde5c96bac6..2680b4cc2e4b2deb40e15e7d5d0f9b8c87f5ca56 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
@@ -98,6 +98,11 @@ public class Ocelot extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.ocelotTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.ocelotAlwaysDropExp;
+ }
// Purpur end
public boolean isTrusting() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index 538d52c49ec35653ace723e25adf40217c7ed775..519adb77d5dc63ce8d1048c97caa7ebe2c6572ce 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -147,6 +147,11 @@ public class Panda extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.pandaTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.pandaAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index 661d8ce472a5f57107035ec32158aea30e1d181b..b10fc35fca9b1ef5f3cd4b622293d0410bf4e595 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -199,6 +199,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.parrotTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.parrotAlwaysDropExp;
+ }
// Purpur end
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
index a24dffe25615c9c9a4b641b291ce735e3f1dd6b7..91a0737ac4edf457d4bda604d30341954df283ca 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -94,6 +94,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.pigTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.pigAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
index 3fe05be69cada8df7553ee0fb9828e5ec593f54f..368306ea53daea82abe95e9d6c61ca25c7f7cca5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -128,6 +128,11 @@ public class PolarBear extends Animal implements NeutralMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.polarBearTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.polarBearAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
index 2a9af6af653dc62c99baff01ebea8ad64ff62fe0..bf9e6b6ca2b2bf8b2a2e96d10cd4fda9c59df1b8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
@@ -70,6 +70,11 @@ public class Pufferfish extends AbstractFish {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.pufferfishTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.pufferfishAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index dba2e1d677d7ac26517736cfbe2ee9d742fa4482..38e75142bbd2c28254a4634b852ca8eb5890758e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -151,6 +151,11 @@ public class Rabbit extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.rabbitTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.rabbitAlwaysDropExp;
+ }
// Purpur end
// CraftBukkit start - code from constructor
diff --git a/src/main/java/net/minecraft/world/entity/animal/Salmon.java b/src/main/java/net/minecraft/world/entity/animal/Salmon.java
index 16171814bab7fbc0c177323cc5f8b026c8ebbcd4..bd1e964c7899a54a2c39afe0691a7573cfe35fc1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Salmon.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Salmon.java
@@ -38,6 +38,11 @@ public class Salmon extends AbstractSchoolingFish {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.salmonTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.salmonAlwaysDropExp;
+ }
// Purpur end
@Override
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 4fa8e4a298a98b2a41ef7572d21ed50aa06e2c7e..17d1a0b43b2d155535cf2483af4ba9dd09700c83 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -146,6 +146,11 @@ public class Sheep extends Animal implements Shearable {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.sheepTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.sheepAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index c98e5b2cb54d4be5746d3bac0551ec743a656cbf..91fbfb0b1d1a01b7b644474014f621603415c225 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -84,6 +84,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
public void setSummoner(@Nullable java.util.UUID summoner) {
this.summoner = summoner;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.snowGolemAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 7a8f8be052dc3ee6dc56dd39017e11488af0a8ff..21f5304e01e0844f1bbf3e1b2f9d50c01f8bf8fd 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -100,6 +100,11 @@ public class Squid extends WaterAnimal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.squidTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.squidAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
index 206729081b8316ac76a808ec509a7aee4d6831f7..60ee899a7606fd9a7de3e4fad963a11816690b92 100644
--- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
@@ -74,6 +74,11 @@ public class TropicalFish extends AbstractSchoolingFish {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.tropicalFishTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.tropicalFishAlwaysDropExp;
+ }
// Purpur end
public static String getPredefinedName(int variant) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index 3c38345b32d106a169d1e6abcae54f282d08fe89..ddc69668c30e089df18858f697b6370d1931eed8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -114,6 +114,11 @@ public class Turtle extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.turtleTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.turtleAlwaysDropExp;
+ }
// Purpur end
public void setHomePos(BlockPos 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 303ac9f3941d6759b42ac1cae2586b4df3d9faaf..b5313e1c4a4be37bb7d129987a887b4697c75aa1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -212,6 +212,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.wolfTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.wolfAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index efc02d00f3b95f4f6b6204b91ce15e03b23a6e6b..780a83fb0cec9f2124d0b0978e5fe5f86672d76e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -134,6 +134,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.axolotlTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.axolotlAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 02146c9b5d64ed84869f946638f639d3cd176e5e..521fca2ae3297604e4a5a2579889ab564cfe97e5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -99,6 +99,11 @@ public class Goat extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.goatTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.goatAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
index c888516a1e4b7283fdb2cb15bc9a13900e901e53..645ff6433a299ef3ad8b2ea37c6c46e60a610d48 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -45,6 +45,11 @@ public class Donkey extends AbstractChestedHorse {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.donkeyTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.donkeyAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
index 16755249c4700fa59f704b7c88e3490d2ce3fc48..17a6ddaaa474ee4ac9dd77c19a471bfb91486207 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
@@ -69,6 +69,11 @@ public class Horse extends AbstractHorse {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.horseTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.horseAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 68f28835905c018428d848c1fc9ffe7dabcac0d3..ce6efd1d26ad9fcaf0dd1557702c16b164baec08 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -141,6 +141,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.llamaTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.llamaAlwaysDropExp;
+ }
// Purpur end
public boolean isTraderLlama() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
index 610282c7be7355f0800c1265cc8b19dd557d065a..7c52b316c24c8cf55bf4a68337dd70515b270a1a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
@@ -44,6 +44,11 @@ public class Mule extends AbstractChestedHorse {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.muleTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.muleAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 5683136ec1ebf6671092a635f026decfc6d7733d..2b8c7458775363813eb6f996a008284f59e0ea40 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -60,6 +60,11 @@ public class SkeletonHorse extends AbstractHorse {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.skeletonHorseTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.skeletonHorseAlwaysDropExp;
+ }
// Purpur end
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
index b3d9ab9c40fff58cdcb64e1499ee70d5442d121d..4e2fa045449783824adeeeca260c83ae81abd9f4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -72,6 +72,11 @@ public class TraderLlama extends Llama {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.traderLlamaTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.traderLlamaAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 88da7a365c28e2d097d0a7bff30ea1acd4c7d5dc..74de599bfe2ee696848b3f74392b696fdbd42c5f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -57,6 +57,11 @@ public class ZombieHorse extends AbstractHorse {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.zombieHorseTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.zombieHorseAlwaysDropExp;
+ }
// Purpur end
public static AttributeSupplier.Builder createAttributes() {
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 3e8f13020f56ce232518a6520d16e90744217938..75f4749c35a4cc35bc8617b1ba5c74ef198a423c 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
@@ -237,6 +237,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
public void setSummoner(@Nullable java.util.UUID summoner) {
this.summoner = summoner;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.witherAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
index 081f9ff6edf17a1588649cc69f48b2f577ce809f..d91b24400c31a2824320ba89369a9851040a867f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
@@ -77,6 +77,11 @@ public class Blaze extends Monster {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.blazeMaxHealth);
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.blazeAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
index 5347ba12f2a07601c9f044081e5e6ce6472c4a2a..0ac5264a16c9121c0f6233e83c426199784fe4c9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
@@ -53,6 +53,11 @@ public class CaveSpider extends Spider {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.caveSpiderTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.caveSpiderAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 09d41e2adef76a4d3fb68b3a3002572144c9044c..4e5dc1e30f981a6bc33344a18af56a09ac5d6230 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -165,6 +165,11 @@ public class Creeper extends Monster implements PowerableMob {
}
return super.dropAllDeathLoot(damagesource);
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.creeperAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 7e9c38d595c83bf482c701423d66c26a1ea1ea05..93b94077fe2d817ed3dd8c01cfaa2e45bb72a216 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -114,6 +114,11 @@ public class Drowned extends Zombie implements RangedAttackMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.drownedTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.drownedAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
index 2800594fea055d75268531d8ad3fef99721e5ca1..fc2b6dc1818d439905e90dc6d738c3cf19f632cd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -55,6 +55,11 @@ public class ElderGuardian extends Guardian {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.elderGuardianTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.elderGuardianAlwaysDropExp;
+ }
// Purpur end
public static AttributeSupplier.Builder createAttributes() {
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 4e3926f190f3d8d2bd27a649496cfa7ca5b47b68..6a4214b6110119215154fee48d000bc1051ea626 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -107,6 +107,11 @@ public class EnderMan extends Monster implements NeutralMob {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.endermanMaxHealth);
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.endermanAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
index c644acd4402e41ec1eab919f35e378a8285b9b08..54015c50364e522b68c2546d4f28fff09776e8d6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -71,6 +71,11 @@ public class Endermite extends Monster {
public void setPlayerSpawned(boolean playerSpawned) {
this.isPlayerSpawned = playerSpawned;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.endermiteAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
index 912c594c2a5df21663b26da81cc3d78b37055a6a..7b655fdcee79da60d48e886b3be0dd7c4284a820 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
@@ -73,6 +73,11 @@ public class Evoker extends SpellcasterIllager {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.evokerTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.evokerAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
index a79a7b178e0bb3aed1522d4f837bdc76ed1a3b8f..b0c9f34973e43f2e29d7d5e201a9d75f530a8089 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
@@ -86,6 +86,11 @@ public class Ghast extends FlyingMob implements Enemy {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.ghastTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.ghastAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
index dd7ad09e8b154347290126fe8f7e195c1b348ec9..5cd408392e8afbbb58a4b808af92631c59ab9339 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
@@ -112,6 +112,11 @@ public class Giant extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.giantTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.giantAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
index 070c707132929c2a68acca44e7c7f3ae3eb1f984..69ce21cae8e097a6028eba7b842d325784f457af 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
@@ -102,6 +102,11 @@ public class Guardian extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.guardianTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.guardianAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index e394b6427329f48a85a277eeb8336b12499525ee..ec9f8d5d4b1a7f1aa995cb69ac6169935e6b95e0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -68,6 +68,11 @@ public class Husk extends Zombie {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.huskTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.huskAlwaysDropExp;
+ }
// Purpur end
public static boolean checkHuskSpawnRules(EntityType<Husk> type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
index 5b6a61fb2b44ea4dec4767958a2abe57d758646e..4d50e9d2b9b06cae0fe135cc91a90919e82a26cb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
@@ -86,6 +86,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.illusionerTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.illusionerAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
index b7b4e5173e0f6da888746f1d1679cbde43905bf0..86352b81d2c0be479fe96882c9a01972c9cf341c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
@@ -72,6 +72,11 @@ public class MagmaCube extends Slime {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.magmaCubeTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.magmaCubeAlwaysDropExp;
+ }
// Purpur end
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 42919b2267eed71e29830a96afdd3be19d6b6f68..bc5d6300c2e5f6cf8fbad73096e8a6e5d279a873 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -157,6 +157,11 @@ public class Phantom extends FlyingMob implements Enemy {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.phantomTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.phantomAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
index 37c88972668a4102701c868cc9f7b18b89f5db14..0d2e4e1a459d350ac2ee377206c163d8f46cebf7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
@@ -88,6 +88,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
public boolean isSensitiveToWater() {
return this.level.purpurConfig.pillagerTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.pillagerAlwaysDropExp;
+ }
// Purpur end
@Override
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 a2893e4a64c339af31641e9d8150b163fb79962c..c306852f78c6e8fdda54e63d6e6d8bc79a70760a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -100,6 +100,11 @@ public class Ravager extends Raider {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.ravagerTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.ravagerAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index e63a27abef4b9aab0c2afbb92da994e8a11ac14a..f4cbe31de73fbc3828e0b57cefd969e200d600cb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -134,6 +134,11 @@ public class Shulker extends AbstractGolem implements Enemy {
}
return super.mobInteract(player, hand);
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.shulkerAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
index e207d70a031131217874837198a30d04b9640409..11d0195fb234f6d000efadeeaf48962c81fe701e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
@@ -67,6 +67,11 @@ public class Silverfish extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.silverfishTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.silverfishAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index 8ce46cc00a01a678270e906078097aa717abdc41..51c548cd84bd83624fbff3f853a8050dc1e71ecd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -50,6 +50,11 @@ public class Skeleton extends AbstractSkeleton {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.skeletonTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.skeletonAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 8cf06d7e4537ff93fee4377ad4988e78084ff4a8..29b56001fdb44bc5267d2d2ae8e9bafc61b3fe79 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -140,6 +140,11 @@ public class Slime extends Mob implements Enemy {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.slimeTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.slimeAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index c66e85d865d0bd1018529636f0ef41d8a5aad890..177f9fe0d0a10e5d3644805751f2050fe984fde7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -76,6 +76,11 @@ public class Spider extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.spiderTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.spiderAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Stray.java b/src/main/java/net/minecraft/world/entity/monster/Stray.java
index 4888502f99e0a9db246f9714a4d7534839bc5487..6f497991cfbb60462a9499d2c43260c6073e99e5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Stray.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Stray.java
@@ -46,6 +46,11 @@ public class Stray extends AbstractSkeleton {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.strayTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.strayAlwaysDropExp;
+ }
// Purpur end
public static boolean checkStraySpawnRules(EntityType<Stray> type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
index 5ff3373c9c73691d7f21c05b0f044c198b2bab2d..a7669b3daa4a58a3a6a931de3d86a4fbf937e609 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -121,6 +121,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
public int getPurpurBreedTime() {
return this.level.purpurConfig.striderBreedingTicks;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.striderAlwaysDropExp;
+ }
// Purpur end
public static boolean checkStriderSpawnRules(EntityType<Strider> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java
index dfcaaa245d229328d4227969bf747fd150c02f10..9fefedaa35d8ee63318b8c668f37f57a4ceb20c8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vex.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java
@@ -110,6 +110,11 @@ public class Vex extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.vexTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.vexAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 5308f5d1dd226e2c73df69e729d93bf593ee467d..97657a05a27612d98049681efa6fda8b33a8a989 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -84,6 +84,11 @@ public class Vindicator extends AbstractIllager {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.vindicatorTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.vindicatorAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
index 801355c7c3a4acfb3c45b0d5bc3218e948f72e10..7a59a1834cf07933215bdee56dda9a94ddd8bd85 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
@@ -84,6 +84,11 @@ public class Witch extends Raider implements RangedAttackMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.witchTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.witchAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index b2f1784e8a1b6afe4ba2a67f6d567869e96d4c3e..e26a1954593cf8de44421e4d3a6cc5680e828766 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -59,6 +59,11 @@ public class WitherSkeleton extends AbstractSkeleton {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.witherSkeletonTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.witherSkeletonAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
index 9928af5318c1cc4676c5cf215840ce0f8baf9024..b99419b712b9af385988f1a1271b28f41e5a05a0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
@@ -93,6 +93,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.zoglinTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.zoglinAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index d47e0050475449cc3e7cf5620b39d16629997d66..436e98e4332def352bb47d51c503a0285fde27fc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -142,6 +142,11 @@ public class Zombie extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.zombieTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.zombieAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index 43b8015579d747b45b5ba8483ab13deffc80ccc2..ac41660b8d3763ff9db320b998480a025ea94740 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -124,6 +124,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.zombieVillagerTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.zombieVillagerAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 918cd5c51849e3de4915016a76bbd4b66c3b8b42..202d5da8bd1345d04a98ac6bc9bbc13fda16dc3e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -99,6 +99,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.zombifiedPiglinTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.zombifiedPiglinAlwaysDropExp;
+ }
// Purpur end
@Override
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 7a7508dcf15a3cb932944240816d63640aa8be61..10712e3900c57b6d1645472158fe2e818c24af46 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -97,6 +97,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.hoglinTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.hoglinAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index d5388ea5d88b2fb6e6f499e9e7f05f176136d023..a24cf405b5ab298cf1a6f30b09897c235d04e796 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -121,6 +121,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
public boolean isSensitiveToWater() {
return this.level.purpurConfig.piglinTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.piglinAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
index e0be095bdff6a9316812715f26772ef4e6e77495..faef3d8204d5d421a55c5dc40677eb9c12dc6774 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
@@ -65,6 +65,11 @@ public class PiglinBrute extends AbstractPiglin {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.piglinBruteTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.piglinBruteAlwaysDropExp;
+ }
// Purpur end
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 8a4a18e87f5770addf4316ab9262895780396ba5..6d43867d149b9ce5356d5ad1fbe119de1af212df 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -193,6 +193,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
public boolean isSensitiveToWater() {
return this.level.purpurConfig.villagerTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.villagerAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 8d6930868a42b9fc98d7672bff433ec50d36999e..53bebecd30fee7613af73901b3aa9961982153e2 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -96,6 +96,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
public boolean isSensitiveToWater() {
return this.level.purpurConfig.wanderingTraderTakeDamageFromWater;
}
+
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level.purpurConfig.wanderingTraderAlwaysDropExp;
+ }
// Purpur end
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4943e9c500514036203d870c09f62595ec8c6d73..d28424cc74068904f0a3479789307f9529b03efa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1021,12 +1021,14 @@ public class PurpurWorldConfig {
public boolean axolotlControllable = true;
public double axolotlMaxHealth = 14.0D;
public int axolotlBreedingTicks = 6000;
+ public boolean axolotlAlwaysDropExp = false;
private void axolotlSettings() {
axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable);
axolotlControllable = getBoolean("mobs.axolotl.controllable", axolotlControllable);
axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth);
axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks);
axolotlTakeDamageFromWater = getBoolean("mobs.axolotl.takes-damage-from-water", axolotlTakeDamageFromWater);
+ axolotlAlwaysDropExp = getBoolean("mobs.axolotl.always-drop-exp", axolotlAlwaysDropExp);
}
public boolean batRidable = false;
@@ -1042,6 +1044,7 @@ public class PurpurWorldConfig {
public double batArmorToughness = 0.0D;
public double batAttackKnockback = 0.0D;
public boolean batTakeDamageFromWater = false;
+ public boolean batAlwaysDropExp = false;
private void batSettings() {
batRidable = getBoolean("mobs.bat.ridable", batRidable);
batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater);
@@ -1054,6 +1057,7 @@ public class PurpurWorldConfig {
}
batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth);
batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater);
+ batAlwaysDropExp = getBoolean("mobs.bat.always-drop-exp", batAlwaysDropExp);
}
public boolean beeRidable = false;
@@ -1065,6 +1069,7 @@ public class PurpurWorldConfig {
public boolean beeTakeDamageFromWater = false;
public boolean beeCanWorkAtNight = false;
public boolean beeCanWorkInRain = false;
+ public boolean beeAlwaysDropExp = false;
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -1080,6 +1085,7 @@ public class PurpurWorldConfig {
beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);
beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
+ beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp);
}
public boolean blazeRidable = false;
@@ -1088,6 +1094,7 @@ public class PurpurWorldConfig {
public double blazeMaxY = 320D;
public double blazeMaxHealth = 20.0D;
public boolean blazeTakeDamageFromWater = true;
+ public boolean blazeAlwaysDropExp = false;
private void blazeSettings() {
blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable);
blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater);
@@ -1100,6 +1107,7 @@ public class PurpurWorldConfig {
}
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater);
+ blazeAlwaysDropExp = getBoolean("mobs.blaze.always-drop-exp", blazeAlwaysDropExp);
}
public boolean catRidable = false;
@@ -1112,6 +1120,7 @@ public class PurpurWorldConfig {
public int catBreedingTicks = 6000;
public DyeColor catDefaultCollarColor = DyeColor.RED;
public boolean catTakeDamageFromWater = false;
+ public boolean catAlwaysDropExp = false;
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -1132,6 +1141,7 @@ public class PurpurWorldConfig {
catDefaultCollarColor = DyeColor.RED;
}
catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater);
+ catAlwaysDropExp = getBoolean("mobs.cat.always-drop-exp", catAlwaysDropExp);
}
public boolean caveSpiderRidable = false;
@@ -1139,6 +1149,7 @@ public class PurpurWorldConfig {
public boolean caveSpiderControllable = true;
public double caveSpiderMaxHealth = 12.0D;
public boolean caveSpiderTakeDamageFromWater = false;
+ public boolean caveSpiderAlwaysDropExp = false;
private void caveSpiderSettings() {
caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable);
caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater);
@@ -1150,6 +1161,7 @@ public class PurpurWorldConfig {
}
caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth);
caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater);
+ caveSpiderAlwaysDropExp = getBoolean("mobs.cave_spider.always-drop-exp", caveSpiderAlwaysDropExp);
}
public boolean chickenRidable = false;
@@ -1159,6 +1171,7 @@ public class PurpurWorldConfig {
public boolean chickenRetaliate = false;
public int chickenBreedingTicks = 6000;
public boolean chickenTakeDamageFromWater = false;
+ public boolean chickenAlwaysDropExp = false;
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -1172,12 +1185,14 @@ public class PurpurWorldConfig {
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater);
+ chickenAlwaysDropExp = getBoolean("mobs.chicken.always-drop-exp", chickenAlwaysDropExp);
}
public boolean codRidable = false;
public boolean codControllable = true;
public double codMaxHealth = 3.0D;
public boolean codTakeDamageFromWater = false;
+ public boolean codAlwaysDropExp = false;
private void codSettings() {
codRidable = getBoolean("mobs.cod.ridable", codRidable);
codControllable = getBoolean("mobs.cod.controllable", codControllable);
@@ -1188,6 +1203,7 @@ public class PurpurWorldConfig {
}
codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth);
codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater);
+ codAlwaysDropExp = getBoolean("mobs.cod.always-drop-exp", codAlwaysDropExp);
}
public boolean cowRidable = false;
@@ -1199,6 +1215,7 @@ public class PurpurWorldConfig {
public boolean cowTakeDamageFromWater = false;
public double cowNaturallyAggressiveToPlayersChance = 0.0D;
public double cowNaturallyAggressiveToPlayersDamage = 2.0D;
+ public boolean cowAlwaysDropExp = false;
private void cowSettings() {
if (PurpurConfig.version < 22) {
double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance);
@@ -1219,6 +1236,7 @@ public class PurpurWorldConfig {
cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater);
cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance);
cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage);
+ cowAlwaysDropExp = getBoolean("mobs.cow.always-drop-exp", cowAlwaysDropExp);
}
public boolean creeperRidable = false;
@@ -1231,6 +1249,7 @@ public class PurpurWorldConfig {
public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false;
+ public boolean creeperAlwaysDropExp = false;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1247,6 +1266,7 @@ public class PurpurWorldConfig {
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
+ creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
}
public boolean dolphinRidable = false;
@@ -1258,6 +1278,7 @@ public class PurpurWorldConfig {
public boolean dolphinDisableTreasureSearching = false;
public boolean dolphinTakeDamageFromWater = false;
public double dolphinNaturallyAggressiveToPlayersChance = 0.0D;
+ public boolean dolphinAlwaysDropExp = false;
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -1273,6 +1294,7 @@ public class PurpurWorldConfig {
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);
dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance);
+ dolphinAlwaysDropExp = getBoolean("mobs.dolphin.always-drop-exp", dolphinAlwaysDropExp);
}
public boolean donkeyRidableInWater = false;
@@ -1284,6 +1306,7 @@ public class PurpurWorldConfig {
public double donkeyMovementSpeedMax = 0.175D;
public int donkeyBreedingTicks = 6000;
public boolean donkeyTakeDamageFromWater = false;
+ public boolean donkeyAlwaysDropExp = false;
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1301,6 +1324,7 @@ public class PurpurWorldConfig {
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater);
+ donkeyAlwaysDropExp = getBoolean("mobs.donkey.always-drop-exp", donkeyAlwaysDropExp);
}
public boolean drownedRidable = false;
@@ -1313,6 +1337,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
public boolean drownedBreakDoors = false;
+ public boolean drownedAlwaysDropExp = false;
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1329,12 +1354,14 @@ public class PurpurWorldConfig {
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);
drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors);
+ drownedAlwaysDropExp = getBoolean("mobs.drowned.always-drop-exp", drownedAlwaysDropExp);
}
public boolean elderGuardianRidable = false;
public boolean elderGuardianControllable = true;
public double elderGuardianMaxHealth = 80.0D;
public boolean elderGuardianTakeDamageFromWater = false;
+ public boolean elderGuardianAlwaysDropExp = false;
private void elderGuardianSettings() {
elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable);
elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable);
@@ -1345,6 +1372,7 @@ public class PurpurWorldConfig {
}
elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth);
elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater);
+ elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp);
}
public boolean enderDragonRidable = false;
@@ -1390,6 +1418,7 @@ public class PurpurWorldConfig {
public boolean endermanIgnorePlayerDragonHead = false;
public boolean endermanDisableStareAggro = false;
public boolean endermanIgnoreProjectiles = false;
+ public boolean endermanAlwaysDropExp = false;
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1413,6 +1442,7 @@ public class PurpurWorldConfig {
endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead);
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);
endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles);
+ endermanAlwaysDropExp = getBoolean("mobs.enderman.always-drop-exp", endermanAlwaysDropExp);
}
public boolean endermiteRidable = false;
@@ -1420,6 +1450,7 @@ public class PurpurWorldConfig {
public boolean endermiteControllable = true;
public double endermiteMaxHealth = 8.0D;
public boolean endermiteTakeDamageFromWater = false;
+ public boolean endermiteAlwaysDropExp = false;
private void endermiteSettings() {
endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable);
endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater);
@@ -1431,6 +1462,7 @@ public class PurpurWorldConfig {
}
endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth);
endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater);
+ endermiteAlwaysDropExp = getBoolean("mobs.endermite.always-drop-exp", endermiteAlwaysDropExp);
}
public boolean evokerRidable = false;
@@ -1439,6 +1471,7 @@ public class PurpurWorldConfig {
public double evokerMaxHealth = 24.0D;
public boolean evokerBypassMobGriefing = false;
public boolean evokerTakeDamageFromWater = false;
+ public boolean evokerAlwaysDropExp = false;
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -1451,6 +1484,7 @@ public class PurpurWorldConfig {
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing);
evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater);
+ evokerAlwaysDropExp = getBoolean("mobs.evoker.always-drop-exp", evokerAlwaysDropExp);
}
public boolean foxRidable = false;
@@ -1461,6 +1495,7 @@ public class PurpurWorldConfig {
public int foxBreedingTicks = 6000;
public boolean foxBypassMobGriefing = false;
public boolean foxTakeDamageFromWater = false;
+ public boolean foxAlwaysDropExp = false;
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -1475,6 +1510,7 @@ public class PurpurWorldConfig {
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing);
foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater);
+ foxAlwaysDropExp = getBoolean("mobs.fox.always-drop-exp", foxAlwaysDropExp);
}
public boolean ghastRidable = false;
@@ -1483,6 +1519,7 @@ public class PurpurWorldConfig {
public double ghastMaxY = 320D;
public double ghastMaxHealth = 10.0D;
public boolean ghastTakeDamageFromWater = false;
+ public boolean ghastAlwaysDropExp = false;
private void ghastSettings() {
ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable);
ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater);
@@ -1495,6 +1532,7 @@ public class PurpurWorldConfig {
}
ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth);
ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater);
+ ghastAlwaysDropExp = getBoolean("mobs.ghast.always-drop-exp", ghastAlwaysDropExp);
}
public boolean giantRidable = false;
@@ -1508,6 +1546,7 @@ public class PurpurWorldConfig {
public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false;
public boolean giantTakeDamageFromWater = false;
+ public boolean giantAlwaysDropExp = false;
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -1529,6 +1568,7 @@ public class PurpurWorldConfig {
giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI);
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater);
+ giantAlwaysDropExp = getBoolean("mobs.giant.always-drop-exp", giantAlwaysDropExp);
}
public boolean glowSquidRidable = false;
@@ -1536,12 +1576,14 @@ public class PurpurWorldConfig {
public double glowSquidMaxHealth = 10.0D;
public boolean glowSquidsCanFly = false;
public boolean glowSquidTakeDamageFromWater = false;
+ public boolean glowSquidAlwaysDropExp = false;
private void glowSquidSettings() {
glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable);
glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable);
glowSquidMaxHealth = getDouble("mobs.glow_squid.attributes.max_health", glowSquidMaxHealth);
glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly);
glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater);
+ glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp);
}
public boolean goatRidable = false;
@@ -1550,6 +1592,7 @@ public class PurpurWorldConfig {
public double goatMaxHealth = 10.0D;
public int goatBreedingTicks = 6000;
public boolean goatTakeDamageFromWater = false;
+ public boolean goatAlwaysDropExp = false;
private void goatSettings() {
goatRidable = getBoolean("mobs.goat.ridable", goatRidable);
goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater);
@@ -1557,12 +1600,14 @@ public class PurpurWorldConfig {
goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth);
goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks);
goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater);
+ goatAlwaysDropExp = getBoolean("mobs.goat.always-drop-exp", goatAlwaysDropExp);
}
public boolean guardianRidable = false;
public boolean guardianControllable = true;
public double guardianMaxHealth = 30.0D;
public boolean guardianTakeDamageFromWater = false;
+ public boolean guardianAlwaysDropExp = false;
private void guardianSettings() {
guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable);
guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable);
@@ -1573,6 +1618,7 @@ public class PurpurWorldConfig {
}
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
+ guardianAlwaysDropExp = getBoolean("mobs.guardian.always-drop-exp", guardianAlwaysDropExp);
}
public boolean forceHalloweenSeason = false;
@@ -1588,6 +1634,7 @@ public class PurpurWorldConfig {
public double hoglinMaxHealth = 40.0D;
public int hoglinBreedingTicks = 6000;
public boolean hoglinTakeDamageFromWater = false;
+ public boolean hoglinAlwaysDropExp = false;
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -1600,6 +1647,7 @@ public class PurpurWorldConfig {
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater);
+ hoglinAlwaysDropExp = getBoolean("mobs.hoglin.always-drop-exp", hoglinAlwaysDropExp);
}
public boolean horseRidableInWater = false;
@@ -1612,6 +1660,7 @@ public class PurpurWorldConfig {
public int horseBreedingTicks = 6000;
public boolean horseTakeDamageFromWater = false;
public boolean horseStandWithRider = true;
+ public boolean horseAlwaysDropExp = false;
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1630,6 +1679,7 @@ public class PurpurWorldConfig {
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater);
horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider);
+ horseAlwaysDropExp = getBoolean("mobs.horse.always-drop-exp", horseAlwaysDropExp);
}
public boolean huskRidable = false;
@@ -1641,6 +1691,7 @@ public class PurpurWorldConfig {
public double huskJockeyChance = 0.05D;
public boolean huskJockeyTryExistingChickens = true;
public boolean huskTakeDamageFromWater = false;
+ public boolean huskAlwaysDropExp = false;
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -1656,6 +1707,7 @@ public class PurpurWorldConfig {
huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance);
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater);
+ huskAlwaysDropExp = getBoolean("mobs.husk.always-drop-exp", huskAlwaysDropExp);
}
public boolean illusionerRidable = false;
@@ -1665,6 +1717,7 @@ public class PurpurWorldConfig {
public double illusionerFollowRange = 18.0D;
public double illusionerMaxHealth = 32.0D;
public boolean illusionerTakeDamageFromWater = false;
+ public boolean illusionerAlwaysDropExp = false;
private void illusionerSettings() {
illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable);
illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater);
@@ -1682,6 +1735,7 @@ public class PurpurWorldConfig {
}
illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth);
illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater);
+ illusionerAlwaysDropExp = getBoolean("mobs.illusioner.always-drop-exp", illusionerAlwaysDropExp);
}
public boolean ironGolemRidable = false;
@@ -1692,6 +1746,7 @@ public class PurpurWorldConfig {
public boolean ironGolemTakeDamageFromWater = false;
public boolean ironGolemPoppyCalm = false;
public boolean ironGolemHealCalm = false;
+ public boolean ironGolemAlwaysDropExp = false;
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1706,6 +1761,7 @@ public class PurpurWorldConfig {
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm);
ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm);
+ ironGolemAlwaysDropExp = getBoolean("mobs.iron_golem.always-drop-exp", ironGolemAlwaysDropExp);
}
public boolean llamaRidable = false;
@@ -1720,6 +1776,7 @@ public class PurpurWorldConfig {
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
public boolean llamaJoinCaravans = true;
+ public boolean llamaAlwaysDropExp = false;
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1740,6 +1797,7 @@ public class PurpurWorldConfig {
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);
llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans);
+ llamaAlwaysDropExp = getBoolean("mobs.llama.always-drop-exp", llamaAlwaysDropExp);
}
public boolean magmaCubeRidable = false;
@@ -1750,6 +1808,7 @@ public class PurpurWorldConfig {
public Map<Integer, Double> magmaCubeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> magmaCubeAttackDamageCache = new HashMap<>();
public boolean magmaCubeTakeDamageFromWater = false;
+ public boolean magmaCubeAlwaysDropExp = false;
private void magmaCubeSettings() {
magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable);
magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater);
@@ -1764,6 +1823,7 @@ public class PurpurWorldConfig {
magmaCubeMaxHealthCache.clear();
magmaCubeAttackDamageCache.clear();
magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater);
+ magmaCubeAlwaysDropExp = getBoolean("mobs.magma_cube.always-drop-exp", magmaCubeAlwaysDropExp);
}
public boolean mooshroomRidable = false;
@@ -1772,6 +1832,7 @@ public class PurpurWorldConfig {
public double mooshroomMaxHealth = 10.0D;
public int mooshroomBreedingTicks = 6000;
public boolean mooshroomTakeDamageFromWater = false;
+ public boolean mooshroomAlwaysDropExp = false;
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1784,6 +1845,7 @@ public class PurpurWorldConfig {
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater);
+ mooshroomAlwaysDropExp = getBoolean("mobs.mooshroom.always-drop-exp", mooshroomAlwaysDropExp);
}
public boolean muleRidableInWater = false;
@@ -1795,6 +1857,7 @@ public class PurpurWorldConfig {
public double muleMovementSpeedMax = 0.175D;
public int muleBreedingTicks = 6000;
public boolean muleTakeDamageFromWater = false;
+ public boolean muleAlwaysDropExp = false;
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1812,6 +1875,7 @@ public class PurpurWorldConfig {
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater);
+ muleAlwaysDropExp = getBoolean("mobs.mule.always-drop-exp", muleAlwaysDropExp);
}
public boolean ocelotRidable = false;
@@ -1820,6 +1884,7 @@ public class PurpurWorldConfig {
public double ocelotMaxHealth = 10.0D;
public int ocelotBreedingTicks = 6000;
public boolean ocelotTakeDamageFromWater = false;
+ public boolean ocelotAlwaysDropExp = false;
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1832,6 +1897,7 @@ public class PurpurWorldConfig {
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
+ ocelotAlwaysDropExp = getBoolean("mobs.ocelot.always-drop-exp", ocelotAlwaysDropExp);
}
public boolean pandaRidable = false;
@@ -1840,6 +1906,7 @@ public class PurpurWorldConfig {
public double pandaMaxHealth = 20.0D;
public int pandaBreedingTicks = 6000;
public boolean pandaTakeDamageFromWater = false;
+ public boolean pandaAlwaysDropExp = false;
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1852,6 +1919,7 @@ public class PurpurWorldConfig {
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater);
+ pandaAlwaysDropExp = getBoolean("mobs.panda.always-drop-exp", pandaAlwaysDropExp);
}
public boolean parrotRidable = false;
@@ -1861,6 +1929,7 @@ public class PurpurWorldConfig {
public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false;
public boolean parrotBreedable = false;
+ public boolean parrotAlwaysDropExp = false;
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1874,6 +1943,7 @@ public class PurpurWorldConfig {
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);
parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable);
+ parrotAlwaysDropExp = getBoolean("mobs.parrot.always-drop-exp", parrotAlwaysDropExp);
}
public boolean phantomRidable = false;
@@ -1907,6 +1977,7 @@ public class PurpurWorldConfig {
public boolean phantomBurnInDaylight = true;
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
+ public boolean phantomAlwaysDropExp = false;
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1948,6 +2019,7 @@ public class PurpurWorldConfig {
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
+ phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp);
}
public boolean pigRidable = false;
@@ -1957,6 +2029,7 @@ public class PurpurWorldConfig {
public boolean pigGiveSaddleBack = false;
public int pigBreedingTicks = 6000;
public boolean pigTakeDamageFromWater = false;
+ public boolean pigAlwaysDropExp = false;
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1970,6 +2043,7 @@ public class PurpurWorldConfig {
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater);
+ pigAlwaysDropExp = getBoolean("mobs.pig.always-drop-exp", pigAlwaysDropExp);
}
public boolean piglinRidable = false;
@@ -1979,6 +2053,7 @@ public class PurpurWorldConfig {
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000;
+ public boolean piglinAlwaysDropExp = false;
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1992,6 +2067,7 @@ public class PurpurWorldConfig {
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
+ piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
}
public boolean piglinBruteRidable = false;
@@ -1999,6 +2075,7 @@ public class PurpurWorldConfig {
public boolean piglinBruteControllable = true;
public double piglinBruteMaxHealth = 50.0D;
public boolean piglinBruteTakeDamageFromWater = false;
+ public boolean piglinBruteAlwaysDropExp = false;
private void piglinBruteSettings() {
piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable);
piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater);
@@ -2010,6 +2087,7 @@ public class PurpurWorldConfig {
}
piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth);
piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater);
+ piglinBruteAlwaysDropExp = getBoolean("mobs.piglin_brute.always-drop-exp", piglinBruteAlwaysDropExp);
}
public boolean pillagerRidable = false;
@@ -2018,6 +2096,7 @@ public class PurpurWorldConfig {
public double pillagerMaxHealth = 24.0D;
public boolean pillagerBypassMobGriefing = false;
public boolean pillagerTakeDamageFromWater = false;
+ public boolean pillagerAlwaysDropExp = false;
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -2030,6 +2109,7 @@ public class PurpurWorldConfig {
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing);
pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater);
+ pillagerAlwaysDropExp = getBoolean("mobs.pillager.always-drop-exp", pillagerAlwaysDropExp);
}
public boolean polarBearRidable = false;
@@ -2040,6 +2120,7 @@ public class PurpurWorldConfig {
public Item polarBearBreedableItem = null;
public int polarBearBreedingTicks = 6000;
public boolean polarBearTakeDamageFromWater = false;
+ public boolean polarBearAlwaysDropExp = false;
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -2055,12 +2136,14 @@ public class PurpurWorldConfig {
if (item != Items.AIR) polarBearBreedableItem = item;
polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater);
+ polarBearAlwaysDropExp = getBoolean("mobs.polar_bear.always-drop-exp", polarBearAlwaysDropExp);
}
public boolean pufferfishRidable = false;
public boolean pufferfishControllable = true;
public double pufferfishMaxHealth = 3.0D;
public boolean pufferfishTakeDamageFromWater = false;
+ public boolean pufferfishAlwaysDropExp = false;
private void pufferfishSettings() {
pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable);
pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable);
@@ -2071,6 +2154,7 @@ public class PurpurWorldConfig {
}
pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth);
pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater);
+ pufferfishAlwaysDropExp = getBoolean("mobs.pufferfish.always-drop-exp", pufferfishAlwaysDropExp);
}
public boolean rabbitRidable = false;
@@ -2082,6 +2166,7 @@ public class PurpurWorldConfig {
public int rabbitBreedingTicks = 6000;
public boolean rabbitBypassMobGriefing = false;
public boolean rabbitTakeDamageFromWater = false;
+ public boolean rabbitAlwaysDropExp = false;
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -2097,6 +2182,7 @@ public class PurpurWorldConfig {
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing);
rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater);
+ rabbitAlwaysDropExp = getBoolean("mobs.rabbit.always-drop-exp", rabbitAlwaysDropExp);
}
public boolean ravagerRidable = false;
@@ -2106,6 +2192,7 @@ public class PurpurWorldConfig {
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
public List<Block> ravagerGriefableBlocks = new ArrayList<>();
+ public boolean ravagerAlwaysDropExp = false;
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -2135,12 +2222,14 @@ public class PurpurWorldConfig {
ravagerGriefableBlocks.add(block);
}
});
+ ravagerAlwaysDropExp = getBoolean("mobs.ravager.always-drop-exp", ravagerAlwaysDropExp);
}
public boolean salmonRidable = false;
public boolean salmonControllable = true;
public double salmonMaxHealth = 3.0D;
public boolean salmonTakeDamageFromWater = false;
+ public boolean salmonAlwaysDropExp = false;
private void salmonSettings() {
salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable);
salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable);
@@ -2151,6 +2240,7 @@ public class PurpurWorldConfig {
}
salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth);
salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater);
+ salmonAlwaysDropExp = getBoolean("mobs.salmon.always-drop-exp", salmonAlwaysDropExp);
}
public boolean sheepRidable = false;
@@ -2160,6 +2250,7 @@ public class PurpurWorldConfig {
public int sheepBreedingTicks = 6000;
public boolean sheepBypassMobGriefing = false;
public boolean sheepTakeDamageFromWater = false;
+ public boolean sheepAlwaysDropExp = false;
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -2173,6 +2264,7 @@ public class PurpurWorldConfig {
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater);
+ sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp);
}
public boolean shulkerRidable = false;
@@ -2186,6 +2278,7 @@ public class PurpurWorldConfig {
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false;
public boolean shulkerChangeColorWithDye = false;
+ public boolean shulkerAlwaysDropExp = false;
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2203,6 +2296,7 @@ public class PurpurWorldConfig {
shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation);
shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor);
shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye);
+ shulkerAlwaysDropExp = getBoolean("mobs.shulker.always-drop-exp", shulkerAlwaysDropExp);
}
public boolean silverfishRidable = false;
@@ -2211,6 +2305,7 @@ public class PurpurWorldConfig {
public double silverfishMaxHealth = 8.0D;
public boolean silverfishBypassMobGriefing = false;
public boolean silverfishTakeDamageFromWater = false;
+ public boolean silverfishAlwaysDropExp = false;
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -2223,6 +2318,7 @@ public class PurpurWorldConfig {
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing);
silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater);
+ silverfishAlwaysDropExp = getBoolean("mobs.silverfish.always-drop-exp", silverfishAlwaysDropExp);
}
public boolean skeletonRidable = false;
@@ -2230,6 +2326,7 @@ public class PurpurWorldConfig {
public boolean skeletonControllable = true;
public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false;
+ public boolean skeletonAlwaysDropExp = false;
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2241,6 +2338,7 @@ public class PurpurWorldConfig {
}
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
+ skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
}
public boolean skeletonHorseRidableInWater = true;
@@ -2252,6 +2350,7 @@ public class PurpurWorldConfig {
public double skeletonHorseMovementSpeedMin = 0.2D;
public double skeletonHorseMovementSpeedMax = 0.2D;
public boolean skeletonHorseTakeDamageFromWater = false;
+ public boolean skeletonHorseAlwaysDropExp = false;
private void skeletonHorseSettings() {
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
@@ -2268,6 +2367,7 @@ public class PurpurWorldConfig {
skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin);
skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax);
skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater);
+ skeletonHorseAlwaysDropExp = getBoolean("mobs.skeleton_horse.always-drop-exp", skeletonHorseAlwaysDropExp);
}
public boolean slimeRidable = false;
@@ -2278,6 +2378,7 @@ public class PurpurWorldConfig {
public Map<Integer, Double> slimeMaxHealthCache = new HashMap<>();
public Map<Integer, Double> slimeAttackDamageCache = new HashMap<>();
public boolean slimeTakeDamageFromWater = false;
+ public boolean slimeAlwaysDropExp = false;
private void slimeSettings() {
slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable);
slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater);
@@ -2292,6 +2393,7 @@ public class PurpurWorldConfig {
slimeMaxHealthCache.clear();
slimeAttackDamageCache.clear();
slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater);
+ slimeAlwaysDropExp = getBoolean("mobs.slime.always-drop-exp", slimeAlwaysDropExp);
}
public boolean snowGolemRidable = false;
@@ -2307,6 +2409,7 @@ public class PurpurWorldConfig {
public double snowGolemAttackDistance = 1.25D;
public boolean snowGolemBypassMobGriefing = false;
public boolean snowGolemTakeDamageFromWater = true;
+ public boolean snowGolemAlwaysDropExp = false;
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -2326,6 +2429,7 @@ public class PurpurWorldConfig {
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing);
snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater);
+ snowGolemAlwaysDropExp = getBoolean("mobs.snow_golem.always-drop-exp", snowGolemAlwaysDropExp);
}
public boolean squidRidable = false;
@@ -2335,6 +2439,7 @@ public class PurpurWorldConfig {
public double squidOffsetWaterCheck = 0.0D;
public boolean squidsCanFly = false;
public boolean squidTakeDamageFromWater = false;
+ public boolean squidAlwaysDropExp = false;
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -2348,6 +2453,7 @@ public class PurpurWorldConfig {
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);
squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly);
squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater);
+ squidAlwaysDropExp = getBoolean("mobs.squid.always-drop-exp", squidAlwaysDropExp);
}
public boolean spiderRidable = false;
@@ -2355,6 +2461,7 @@ public class PurpurWorldConfig {
public boolean spiderControllable = true;
public double spiderMaxHealth = 16.0D;
public boolean spiderTakeDamageFromWater = false;
+ public boolean spiderAlwaysDropExp = false;
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -2366,6 +2473,7 @@ public class PurpurWorldConfig {
}
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
+ spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp);
}
public boolean strayRidable = false;
@@ -2373,6 +2481,7 @@ public class PurpurWorldConfig {
public boolean strayControllable = true;
public double strayMaxHealth = 20.0D;
public boolean strayTakeDamageFromWater = false;
+ public boolean strayAlwaysDropExp = false;
private void straySettings() {
strayRidable = getBoolean("mobs.stray.ridable", strayRidable);
strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater);
@@ -2384,6 +2493,7 @@ public class PurpurWorldConfig {
}
strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth);
strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater);
+ strayAlwaysDropExp = getBoolean("mobs.stray.always-drop-exp", strayAlwaysDropExp);
}
public boolean striderRidable = false;
@@ -2393,6 +2503,7 @@ public class PurpurWorldConfig {
public int striderBreedingTicks = 6000;
public boolean striderGiveSaddleBack = false;
public boolean striderTakeDamageFromWater = true;
+ public boolean striderAlwaysDropExp = false;
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -2406,6 +2517,7 @@ public class PurpurWorldConfig {
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack);
striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater);
+ striderAlwaysDropExp = getBoolean("mobs.strider.always-drop-exp", striderAlwaysDropExp);
}
public boolean traderLlamaRidable = false;
@@ -2419,6 +2531,7 @@ public class PurpurWorldConfig {
public double traderLlamaMovementSpeedMax = 0.175D;
public int traderLlamaBreedingTicks = 6000;
public boolean traderLlamaTakeDamageFromWater = false;
+ public boolean traderLlamaAlwaysDropExp = false;
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -2438,12 +2551,14 @@ public class PurpurWorldConfig {
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater);
+ traderLlamaAlwaysDropExp = getBoolean("mobs.trader_llama.always-drop-exp", traderLlamaAlwaysDropExp);
}
public boolean tropicalFishRidable = false;
public boolean tropicalFishControllable = true;
public double tropicalFishMaxHealth = 3.0D;
public boolean tropicalFishTakeDamageFromWater = false;
+ public boolean tropicalFishAlwaysDropExp = false;
private void tropicalFishSettings() {
tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable);
tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable);
@@ -2454,6 +2569,7 @@ public class PurpurWorldConfig {
}
tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth);
tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater);
+ tropicalFishAlwaysDropExp = getBoolean("mobs.tropical_fish.always-drop-exp", tropicalFishAlwaysDropExp);
}
public boolean turtleRidable = false;
@@ -2462,6 +2578,7 @@ public class PurpurWorldConfig {
public double turtleMaxHealth = 30.0D;
public int turtleBreedingTicks = 6000;
public boolean turtleTakeDamageFromWater = false;
+ public boolean turtleAlwaysDropExp = false;
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -2474,6 +2591,7 @@ public class PurpurWorldConfig {
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater);
+ turtleAlwaysDropExp = getBoolean("mobs.turtle.always-drop-exp", turtleAlwaysDropExp);
}
public boolean vexRidable = false;
@@ -2482,6 +2600,7 @@ public class PurpurWorldConfig {
public double vexMaxY = 320D;
public double vexMaxHealth = 14.0D;
public boolean vexTakeDamageFromWater = false;
+ public boolean vexAlwaysDropExp = false;
private void vexSettings() {
vexRidable = getBoolean("mobs.vex.ridable", vexRidable);
vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater);
@@ -2494,6 +2613,7 @@ public class PurpurWorldConfig {
}
vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth);
vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater);
+ vexAlwaysDropExp = getBoolean("mobs.vex.always-drop-exp", vexAlwaysDropExp);
}
public boolean villagerRidable = false;
@@ -2513,6 +2633,7 @@ public class PurpurWorldConfig {
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
+ public boolean villagerAlwaysDropExp = false;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2536,6 +2657,7 @@ public class PurpurWorldConfig {
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
+ villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);
}
public boolean vindicatorRidable = false;
@@ -2544,6 +2666,7 @@ public class PurpurWorldConfig {
public double vindicatorMaxHealth = 24.0D;
public double vindicatorJohnnySpawnChance = 0D;
public boolean vindicatorTakeDamageFromWater = false;
+ public boolean vindicatorAlwaysDropExp = false;
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -2556,6 +2679,7 @@ public class PurpurWorldConfig {
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater);
+ vindicatorAlwaysDropExp = getBoolean("mobs.vindicator.always-drop-exp", vindicatorAlwaysDropExp);
}
public boolean wanderingTraderRidable = false;
@@ -2566,6 +2690,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
public boolean wanderingTraderAllowTrading = true;
+ public boolean wanderingTraderAlwaysDropExp = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2580,6 +2705,7 @@ public class PurpurWorldConfig {
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
+ wanderingTraderAlwaysDropExp = getBoolean("mobs.wandering_trader.always-drop-exp", wanderingTraderAlwaysDropExp);
}
public boolean witchRidable = false;
@@ -2587,6 +2713,7 @@ public class PurpurWorldConfig {
public boolean witchControllable = true;
public double witchMaxHealth = 26.0D;
public boolean witchTakeDamageFromWater = false;
+ public boolean witchAlwaysDropExp = false;
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -2598,6 +2725,7 @@ public class PurpurWorldConfig {
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater);
+ witchAlwaysDropExp = getBoolean("mobs.witch.always-drop-exp", witchAlwaysDropExp);
}
public boolean witherRidable = false;
@@ -2612,6 +2740,7 @@ public class PurpurWorldConfig {
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
public boolean witherPlaySpawnSound = true;
+ public boolean witherAlwaysDropExp = false;
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2634,6 +2763,7 @@ public class PurpurWorldConfig {
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);
witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius);
witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound);
+ witherAlwaysDropExp = getBoolean("mobs.wither.always-drop-exp", witherAlwaysDropExp);
}
public boolean witherSkeletonRidable = false;
@@ -2641,6 +2771,7 @@ public class PurpurWorldConfig {
public boolean witherSkeletonControllable = true;
public double witherSkeletonMaxHealth = 20.0D;
public boolean witherSkeletonTakeDamageFromWater = false;
+ public boolean witherSkeletonAlwaysDropExp = false;
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2652,6 +2783,7 @@ public class PurpurWorldConfig {
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater);
+ witherSkeletonAlwaysDropExp = getBoolean("mobs.wither_skeleton.always-drop-exp", witherSkeletonAlwaysDropExp);
}
public boolean wolfRidable = false;
@@ -2663,6 +2795,7 @@ public class PurpurWorldConfig {
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
public boolean wolfTakeDamageFromWater = false;
+ public boolean wolfAlwaysDropExp = false;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2682,6 +2815,7 @@ public class PurpurWorldConfig {
wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid);
wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater);
+ wolfAlwaysDropExp = getBoolean("mobs.wolf.always-drop-exp", wolfAlwaysDropExp);
}
public boolean zoglinRidable = false;
@@ -2689,6 +2823,7 @@ public class PurpurWorldConfig {
public boolean zoglinControllable = true;
public double zoglinMaxHealth = 40.0D;
public boolean zoglinTakeDamageFromWater = false;
+ public boolean zoglinAlwaysDropExp = false;
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2700,6 +2835,7 @@ public class PurpurWorldConfig {
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater);
+ zoglinAlwaysDropExp = getBoolean("mobs.zoglin.always-drop-exp", zoglinAlwaysDropExp);
}
public boolean zombieRidable = false;
@@ -2713,6 +2849,7 @@ public class PurpurWorldConfig {
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
+ public boolean zombieAlwaysDropExp = false;
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2730,6 +2867,7 @@ public class PurpurWorldConfig {
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
+ zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);
}
public boolean zombieHorseRidableInWater = false;
@@ -2742,6 +2880,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
public boolean zombieHorseTakeDamageFromWater = false;
+ public boolean zombieHorseAlwaysDropExp = false;
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -2759,6 +2898,7 @@ public class PurpurWorldConfig {
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);
zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance);
zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater);
+ zombieHorseAlwaysDropExp = getBoolean("mobs.zombie_horse.always-drop-exp", zombieHorseAlwaysDropExp);
}
public boolean zombieVillagerRidable = false;
@@ -2773,6 +2913,7 @@ public class PurpurWorldConfig {
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
public boolean zombieVillagerCureEnabled = true;
+ public boolean zombieVillagerAlwaysDropExp = false;
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2791,6 +2932,7 @@ public class PurpurWorldConfig {
zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin);
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled);
+ zombieVillagerAlwaysDropExp = getBoolean("mobs.zombie_villager.always-drop-exp", zombieVillagerAlwaysDropExp);
}
public boolean zombifiedPiglinRidable = false;
@@ -2803,6 +2945,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
public boolean zombifiedPiglinTakeDamageFromWater = false;
+ public boolean zombifiedPiglinAlwaysDropExp = false;
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2819,6 +2962,7 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
+ zombifiedPiglinAlwaysDropExp = getBoolean("mobs.zombified_piglin.always-drop-exp", zombifiedPiglinAlwaysDropExp);
}
public float hungerStarvationDamage = 1.0F;