From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath 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 ca7225e80e1612120ac9b197e0188a06df8049a7..02fc6bb52419b75f04092b33e15e0ab1ea7a7b1a 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 8d49f4c9d5d9a0f4dc4a1c1dcdcc7bfc678d8de3..108c8b0d25ae9432a54b9bca4cae7297f303ca81 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 d7ddb71ae59ab0a0e10717e5c678ef5e5476aba4..d4b2e6715479c485258fdec9497a0da40e5df3ef 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 90e48fed68fab8e5e9f43bbeffd3a42a2ee51807..1c112e79a97648219022dc4586bfa5202fdcecab 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 = level.purpurConfig.cowNaturallyAggressiveToPlayersChance > 0.0D && random.nextDouble() <= level.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 ce86a56da5aaf65a34352eab1da20e4340175248..55ea2944582ae12bfdf188a8cdc2285e4b60499e 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 5442baf10ca180b104bf1fd9cbcc12bb7a6146fc..3bfa7ed23d659899cccad5eb4caad6997ae2b419 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 b84376598527b7081808ee0c60fcd911c32ce7e7..83906fbb59d678451f93e6335aa674a7ff6bc9b1 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 3ee87e888b048dd3272a633b40b5987276b30155..9e47e6e546af5e5d5c8fefa885742cfbd9a64cba 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 b7e2ed08864f5bde346faebf9498254dc9794ce6..d87a3434cbac31ef652e4dda08c280a5da51142e 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 9a0c450da922b0cdfd304795702df506113402ed..307634db13045413b47e2a18e614a15f325b8d3c 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 801e9919dbb197549372afb1b380cdb5f0c9290d..f7221565b51aa35218919a2efea9f83de4b1f786 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -113,6 +113,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 425a2cab66ce456b8e034b008d2cb82ecba62004..fee9d1eaadcee7d5bbdacceab5f6e25a30c7e5f2 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 a8a1ae1689f03d9fb78395e3786d1bd7f5fcd569..130c83e7161a555ba34270a45be38cad5e8e4e5d 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 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 9582332f8fb211b41110d0fcda97521c2035ebb3..90c2e4ccc7191a43722c876c3804a829d98e8713 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 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 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 429c960ef287e71974be5567374e44a44be09c88..e68fbe7cdaefedb1e59d2e96c6e0755180695a27 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 729eb8a30b35ef5c70be30b3141b9da5c74388f6..876964a73109bba22584d120fdfd0089bbadc975 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 53513758072a117e2938ba9735b99247abf874d8..14ca49e3bb0942b11e1e8bde14b7d37a61627891 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 2ed3df59dbbb811a1b2c13c4a6eff9c602371149..f0905d83cd47ee4dbb076515e2a90c97027ed3e9 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 5ac9a41daee27b305a68a91b13a20a1a3f5264ab..dd41783a84876840d8d545bf6b527165b3c5b5ee 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 a28fad8627e5b95afe2b1ddb320e99f0b57ff158..63b147826766dc12b093196f2f946a473dc24022 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 bc9acfdb90b6ee2fbb948df98fb0ececfc8fa980..c528e2b9f9bb2879f54658bd459722890b1a215d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1021,12 +1021,14 @@ public class PurpurWorldConfig { 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 magmaCubeMaxHealthCache = new HashMap<>(); public Map 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 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 slimeMaxHealthCache = new HashMap<>(); public Map 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;