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/net/minecraft/world/entity/GlowSquid.java b/net/minecraft/world/entity/GlowSquid.java index a10a1e26d0260968c6becd1e9d68436071da8411..0a29ed8b1347ce7c854bb787e0d003ffdcf44830 100644 --- a/net/minecraft/world/entity/GlowSquid.java +++ b/net/minecraft/world/entity/GlowSquid.java @@ -61,6 +61,13 @@ public class GlowSquid extends Squid { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.glowSquidAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java index 9dd4d9a10df973fbf4e4fc63a8a7b7041f21ede4..a764dec7a349273b31a994c38e2c7374c6a1adb6 100644 --- a/net/minecraft/world/entity/ambient/Bat.java +++ b/net/minecraft/world/entity/ambient/Bat.java @@ -118,6 +118,13 @@ public class Bat extends AmbientCreature { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.batAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public boolean isFlapping() { return !this.isResting() && this.tickCount % 10.0F == 0.0F; diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java index 234f02e0b75c6b9a8f52c440c680b539ee783f91..968ec5a7188cc4e4a60956e12e44c4b746cf78d1 100644 --- a/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java @@ -495,6 +495,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.beeAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public int getRemainingPersistentAngerTime() { return this.entityData.get(DATA_REMAINING_ANGER_TIME); diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java index 842c03df5a4ee67192f2850b89be45648024fd17..aff91b88efcb2e089d5d0faebb4fc8cb8a48accd 100644 --- a/net/minecraft/world/entity/animal/Cat.java +++ b/net/minecraft/world/entity/animal/Cat.java @@ -139,6 +139,13 @@ public class Cat extends TamableAnimal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.catAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true); diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java index dde117db5952784e385f242d388b062d0fa1d49d..c36d35bcef9eee3da3371fc3c06f3fca124c3d80 100644 --- a/net/minecraft/world/entity/animal/Chicken.java +++ b/net/minecraft/world/entity/animal/Chicken.java @@ -116,6 +116,13 @@ public class Chicken extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.chickenAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/Cod.java b/net/minecraft/world/entity/animal/Cod.java index f8fbba4ae8b0ecf9aec33f60b908a88fa2933713..50ebeabf494eab43b10394fa2fff312912df99b2 100644 --- a/net/minecraft/world/entity/animal/Cod.java +++ b/net/minecraft/world/entity/animal/Cod.java @@ -39,6 +39,13 @@ public class Cod extends AbstractSchoolingFish { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.codAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public ItemStack getBucketItemStack() { return new ItemStack(Items.COD_BUCKET); diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java index 150ba89fee07dcb67550165597203f572d901f04..c3d225f555b44d73196a3c34ca0b3a0c19434be5 100644 --- a/net/minecraft/world/entity/animal/Cow.java +++ b/net/minecraft/world/entity/animal/Cow.java @@ -71,6 +71,13 @@ public class Cow extends AbstractCow { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.cowAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java index aaeb8a787158171920993719afcacc58ffd0f5a2..c790233d6f254a77a42ec5628441345a506c37b0 100644 --- a/net/minecraft/world/entity/animal/Dolphin.java +++ b/net/minecraft/world/entity/animal/Dolphin.java @@ -166,6 +166,13 @@ public class Dolphin extends AgeableWaterCreature { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.dolphinAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Nullable @Override public SpawnGroupData finalizeSpawn( diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java index 22058c67eff5204202b71d2df9db3e59c2e5f916..a78af2629a9df93ea17b21c05f3d688692250920 100644 --- a/net/minecraft/world/entity/animal/Fox.java +++ b/net/minecraft/world/entity/animal/Fox.java @@ -202,6 +202,13 @@ public class Fox extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.foxAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java index dbc01564e23e7785e85b16f100925d36496ef51c..e85f17f362548f13a414a41f711900add788b2f7 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java @@ -159,6 +159,13 @@ public class HappyGhast extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.happyGhastAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void ageBoundaryReached() { if (this.isBaby()) { diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java index 4a7c6dedb23ac1057eda80de4a2cd54fe3e6f76f..1c96cd8e369507dfedd7d3495861e0e270ad0cd6 100644 --- a/net/minecraft/world/entity/animal/IronGolem.java +++ b/net/minecraft/world/entity/animal/IronGolem.java @@ -107,6 +107,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.ironGolemAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java index ddd763cc38e8c624db7ef207f244961bda0b5ae1..3b18ea446cc7e19295a9fa37b74c3a02be421e55 100644 --- a/net/minecraft/world/entity/animal/MushroomCow.java +++ b/net/minecraft/world/entity/animal/MushroomCow.java @@ -101,6 +101,13 @@ public class MushroomCow extends AbstractCow implements Shearable { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.mooshroomAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public float getWalkTargetValue(BlockPos pos, LevelReader level) { return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos); diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java index 125d324832623bb52ac1afd197862876a0f5f928..72cbb5bf9023272f6e169a2956d2035706dd8a57 100644 --- a/net/minecraft/world/entity/animal/Ocelot.java +++ b/net/minecraft/world/entity/animal/Ocelot.java @@ -103,6 +103,13 @@ public class Ocelot extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.ocelotAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public boolean isTrusting() { return this.entityData.get(DATA_TRUSTING); } diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java index 36ec50791543c4eabf7158aa8d6ba272b14f6cd6..c97ec93732d10197ee978477dc07c097d45bbe15 100644 --- a/net/minecraft/world/entity/animal/Panda.java +++ b/net/minecraft/world/entity/animal/Panda.java @@ -156,6 +156,13 @@ public class Panda extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.pandaAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) { return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot(); diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java index f5c98b277984249ec077c5742854a3cb444eb68c..17d3814887adbc62d7a2f6eccc6e05e61b30bb29 100644 --- a/net/minecraft/world/entity/animal/Parrot.java +++ b/net/minecraft/world/entity/animal/Parrot.java @@ -215,6 +215,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.parrotAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Nullable @Override public SpawnGroupData finalizeSpawn( diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java index 719317c3cd5fc0202ef5deb150e0304191b121b8..2b9342497a408248f24682f547d93125ce268d86 100644 --- a/net/minecraft/world/entity/animal/Pig.java +++ b/net/minecraft/world/entity/animal/Pig.java @@ -105,6 +105,13 @@ public class Pig extends Animal implements ItemSteerable { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.pigAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java index eda9e5965a6ff244288215188de8e05ebcb61f14..9ac8beb6075502e3b18064429cb71c5d5b1d8831 100644 --- a/net/minecraft/world/entity/animal/PolarBear.java +++ b/net/minecraft/world/entity/animal/PolarBear.java @@ -139,6 +139,13 @@ public class PolarBear extends Animal implements NeutralMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.polarBearAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Nullable @Override public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) { diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java index 49f1d08239e92aa4e8f18ee8054c13e54089ed82..6775cb8d78aaa7007077277b272825b7410877d4 100644 --- a/net/minecraft/world/entity/animal/Pufferfish.java +++ b/net/minecraft/world/entity/animal/Pufferfish.java @@ -73,6 +73,13 @@ public class Pufferfish extends AbstractFish { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.pufferfishAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java index fb773ac6f450f6632fd7af3d0c44af57075fdcce..f91e63d9bd382bf2ef76766def08342a91eae29c 100644 --- a/net/minecraft/world/entity/animal/Rabbit.java +++ b/net/minecraft/world/entity/animal/Rabbit.java @@ -167,6 +167,13 @@ public class Rabbit extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.rabbitAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/Salmon.java b/net/minecraft/world/entity/animal/Salmon.java index b9641e307d669ba20428843575a6bb39065df034..db3610b7a95effd9ad6fc782d254b9e2a4eb434f 100644 --- a/net/minecraft/world/entity/animal/Salmon.java +++ b/net/minecraft/world/entity/animal/Salmon.java @@ -65,6 +65,13 @@ public class Salmon extends AbstractSchoolingFish { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.salmonAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public int getMaxSchoolSize() { return 5; diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java index 6cb6ff86e3fd7b9dd2929669dc1b0d339af9a95a..03071650204193f1130e8e17f280ae6ad2cfad38 100644 --- a/net/minecraft/world/entity/animal/SnowGolem.java +++ b/net/minecraft/world/entity/animal/SnowGolem.java @@ -88,6 +88,13 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM } // Purpur end - Configurable entity base attributes + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.snowGolemAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java index 38a2d3f1344a8a826ceca645279779beb3a4dde7..7126ee1e2c950d37ec33204da1b6910bcb6e9e30 100644 --- a/net/minecraft/world/entity/animal/Squid.java +++ b/net/minecraft/world/entity/animal/Squid.java @@ -106,6 +106,13 @@ public class Squid extends AgeableWaterCreature { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.squidAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this)); diff --git a/net/minecraft/world/entity/animal/TropicalFish.java b/net/minecraft/world/entity/animal/TropicalFish.java index 22a75b6b1e6f130027e39051f04267fb436ae6de..64682d4cadcc15d6308f535591d130cfda244807 100644 --- a/net/minecraft/world/entity/animal/TropicalFish.java +++ b/net/minecraft/world/entity/animal/TropicalFish.java @@ -103,6 +103,13 @@ public class TropicalFish extends AbstractSchoolingFish { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.tropicalFishAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static String getPredefinedName(int variantId) { return "entity.minecraft.tropical_fish.predefined." + variantId; } diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java index e9b19fe300f9d5caebe8603d0347eae834408809..22401f6b05ab371568f76eb64af28bd762c21ce8 100644 --- a/net/minecraft/world/entity/animal/Turtle.java +++ b/net/minecraft/world/entity/animal/Turtle.java @@ -125,6 +125,13 @@ public class Turtle extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.turtleAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public void setHomePos(BlockPos homePos) { this.homePos = homePos; } diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java index c32a5f348e41d6ff733331b85baf32da839083fe..3cc8ee115e889ced4457596b9c5fce438157e980 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -160,6 +160,13 @@ public class Axolotl extends Animal implements Bucketable { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.axolotlAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public float getWalkTargetValue(BlockPos pos, LevelReader level) { return 0.0F; diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java index 5095ddcf1a2a4d4f5cff6dbaeec39a4e6e0d1d92..088b2cf28f56d60167b03bcce5fbd2c47fa2de9a 100644 --- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java +++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java @@ -148,6 +148,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.copperGolemAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0); } diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java index b048ca99370c65446855e3867eeb29ddb6ad51f6..6b6461a61a1738d64220f571b8cf7b46605327c0 100644 --- a/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java @@ -145,6 +145,13 @@ public class Goat extends Animal { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.goatAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/net/minecraft/world/entity/animal/horse/Donkey.java b/net/minecraft/world/entity/animal/horse/Donkey.java index 322ff19885fc2a982bc3c4bd7b5588cd2974e425..2e44d50b3a8b3e69602f96d45474d823403547c8 100644 --- a/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/net/minecraft/world/entity/animal/horse/Donkey.java @@ -54,6 +54,13 @@ public class Donkey extends AbstractChestedHorse { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.donkeyAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public SoundEvent getAmbientSound() { return SoundEvents.DONKEY_AMBIENT; diff --git a/net/minecraft/world/entity/animal/horse/Horse.java b/net/minecraft/world/entity/animal/horse/Horse.java index 4d8c6eac4d276dac7859bed1a1c83d45f1858b64..e437557688c9726222840c8a2dc94a2b40380b53 100644 --- a/net/minecraft/world/entity/animal/horse/Horse.java +++ b/net/minecraft/world/entity/animal/horse/Horse.java @@ -85,6 +85,13 @@ public class Horse extends AbstractHorse { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.horseAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void randomizeAttributes(RandomSource random) { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt)); diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java index 32ceec4a08010a2febaac47b6288673cbc71ac90..cd231252ad71334578943325d5f14982af778849 100644 --- a/net/minecraft/world/entity/animal/horse/Llama.java +++ b/net/minecraft/world/entity/animal/horse/Llama.java @@ -168,6 +168,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.llamaAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public boolean isTraderLlama() { return false; } diff --git a/net/minecraft/world/entity/animal/horse/Mule.java b/net/minecraft/world/entity/animal/horse/Mule.java index b1c320210e3116249043ef91feb621e1af5afabf..b7ff4f9838581479e773b03922f57f529b1e2ee9 100644 --- a/net/minecraft/world/entity/animal/horse/Mule.java +++ b/net/minecraft/world/entity/animal/horse/Mule.java @@ -53,6 +53,13 @@ public class Mule extends AbstractChestedHorse { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.muleAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public SoundEvent getAmbientSound() { return SoundEvents.MULE_AMBIENT; diff --git a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java index 9cd58494f090dd0d16787b3d739cbaa8bcd92370..986746435e837dd1de8ee86f7dcd796ef095d73b 100644 --- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java +++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java @@ -80,6 +80,13 @@ public class SkeletonHorse extends AbstractHorse { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.skeletonHorseAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F); } diff --git a/net/minecraft/world/entity/animal/horse/TraderLlama.java b/net/minecraft/world/entity/animal/horse/TraderLlama.java index 204dfdeb5c3bb650dbd6c990c6a2e1e4d14b8c77..be8b7e4f449183ce20138ffbdd0c856859455ce8 100644 --- a/net/minecraft/world/entity/animal/horse/TraderLlama.java +++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java @@ -84,6 +84,13 @@ public class TraderLlama extends Llama { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.traderLlamaAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public boolean isTraderLlama() { return true; diff --git a/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/net/minecraft/world/entity/animal/horse/ZombieHorse.java index fd8a512910c886af1ae4e66edbf7f8d6fe0bc4f3..384bb954ea633c8e8ac239539925948b9dde6168 100644 --- a/net/minecraft/world/entity/animal/horse/ZombieHorse.java +++ b/net/minecraft/world/entity/animal/horse/ZombieHorse.java @@ -76,6 +76,13 @@ public class ZombieHorse extends AbstractHorse { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.zombieHorseAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F); } diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java index e204b349615be98ea9a143ca2bb73a3a0a32baa4..21d66dd46650afae2091e236dfec760c096c34f8 100644 --- a/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java @@ -101,6 +101,13 @@ public class Sheep extends Animal implements Shearable { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.sheepAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.eatBlockGoal = new EatBlockGoal(this); diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java index 4b1c93cf2e17ae85d3b34a49c15e2926d8d1c81a..353507a7483afd6428fb10c461ff5c4162a97704 100644 --- a/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java @@ -230,6 +230,13 @@ public class Wolf extends TamableAnimal implements NeutralMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.wolfAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java index 37919a338630efeb87accb7e0a7d86fddc03e858..b2c0dc521f46fe3aaf82c70626917af4141a6615 100644 --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -228,6 +228,13 @@ public class WitherBoss extends Monster implements RangedAttackMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.witherAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected PathNavigation createNavigation(Level level) { FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level); diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java index e940633d5140bb19623cef9cc9d6acdae77ed392..354a4a10cce3fc3b7611ad99c0c7ed7d34f87b15 100644 --- a/net/minecraft/world/entity/monster/Blaze.java +++ b/net/minecraft/world/entity/monster/Blaze.java @@ -83,6 +83,13 @@ public class Blaze extends Monster { } // Purpur end - Configurable entity base attributes + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.blazeAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables diff --git a/net/minecraft/world/entity/monster/CaveSpider.java b/net/minecraft/world/entity/monster/CaveSpider.java index 239d855df83083e0eb875c430a165427f3a143de..994429d657e3f40b43b2c744112658e510be156c 100644 --- a/net/minecraft/world/entity/monster/CaveSpider.java +++ b/net/minecraft/world/entity/monster/CaveSpider.java @@ -58,6 +58,13 @@ public class CaveSpider extends Spider { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.caveSpiderAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public boolean doHurtTarget(ServerLevel level, Entity target) { if (super.doHurtTarget(level, target)) { diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java index 719c752270c3f1b2496184df0eb728e3c934a3d5..ff85af8c6f8a64e8472377decf47ab667f68a3f0 100644 --- a/net/minecraft/world/entity/monster/Creeper.java +++ b/net/minecraft/world/entity/monster/Creeper.java @@ -273,6 +273,13 @@ public class Creeper extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.creeperAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public SoundEvent getHurtSound(DamageSource damageSource) { return SoundEvents.CREEPER_HURT; diff --git a/net/minecraft/world/entity/monster/Drowned.java b/net/minecraft/world/entity/monster/Drowned.java index 6beaed7f1ce39bef190cfa7e1addc28b929c0747..5a947d7fbf1a08011d87f71b96a8f221130fb583 100644 --- a/net/minecraft/world/entity/monster/Drowned.java +++ b/net/minecraft/world/entity/monster/Drowned.java @@ -130,6 +130,13 @@ public class Drowned extends Zombie implements RangedAttackMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.drownedAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void addBehaviourGoals() { this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0)); diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java index 1ea323a17440abbe36c9528e80e169816267005b..abb7496c293175828fde54ae2b4991aa3ff6b30f 100644 --- a/net/minecraft/world/entity/monster/ElderGuardian.java +++ b/net/minecraft/world/entity/monster/ElderGuardian.java @@ -58,6 +58,13 @@ public class ElderGuardian extends Guardian { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.elderGuardianAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0); } diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java index 09cce24dcc6a57f02c020c7e035e7940ddf9a962..e4d6610c43a019e9e1e296703e80eecc4ffdd36c 100644 --- a/net/minecraft/world/entity/monster/EnderMan.java +++ b/net/minecraft/world/entity/monster/EnderMan.java @@ -115,6 +115,13 @@ public class EnderMan extends Monster implements NeutralMob { } // Purpur end - Configurable entity base attributes + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.endermanAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java index c79c689cb99ad2a6cab88cf8b583ff0f9e91b115..4a778ad22f92e3fd95665a9b40ae932b427bac16 100644 --- a/net/minecraft/world/entity/monster/Endermite.java +++ b/net/minecraft/world/entity/monster/Endermite.java @@ -79,6 +79,13 @@ public class Endermite extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.endermiteAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/monster/Evoker.java b/net/minecraft/world/entity/monster/Evoker.java index 9015643b47e2d20a5c75c5f4bf2ec66399d4a2e5..274a40f0edc4d928570cf75ee1c51d1d03dabb2f 100644 --- a/net/minecraft/world/entity/monster/Evoker.java +++ b/net/minecraft/world/entity/monster/Evoker.java @@ -80,6 +80,13 @@ public class Evoker extends SpellcasterIllager { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.evokerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java index f87e4b960fad01ceb62dc4c80ab80aaad5c7a986..2b3b893c6fa05727df0f24cac67f97cb890054fe 100644 --- a/net/minecraft/world/entity/monster/Ghast.java +++ b/net/minecraft/world/entity/monster/Ghast.java @@ -89,6 +89,13 @@ public class Ghast extends Mob implements Enemy { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.ghastAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java index 2204c729ce42e89a0b42b365e0060098afcf68f9..b7edb5db6621e982a6a529c5319ba68a07d2f6f0 100644 --- a/net/minecraft/world/entity/monster/Giant.java +++ b/net/minecraft/world/entity/monster/Giant.java @@ -69,6 +69,13 @@ public class Giant extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.giantAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return Monster.createMonsterAttributes() .add(Attributes.MAX_HEALTH, 100.0) diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java index 68eb628b5019c60df9f8bdfc7d47a6e68913fbd4..24f7af91a59d4e8975cf8aece3a934aa927972e9 100644 --- a/net/minecraft/world/entity/monster/Guardian.java +++ b/net/minecraft/world/entity/monster/Guardian.java @@ -105,6 +105,13 @@ public class Guardian extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.guardianAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0); diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java index 938c8e0708df47299a627b1c7f56793035dd219c..0bc9c1b235cd5ac771c7b0f200abe4fde38b7858 100644 --- a/net/minecraft/world/entity/monster/Husk.java +++ b/net/minecraft/world/entity/monster/Husk.java @@ -74,6 +74,13 @@ public class Husk extends Zombie { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.huskAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static boolean checkHuskSpawnRules( EntityType entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random ) { diff --git a/net/minecraft/world/entity/monster/Illusioner.java b/net/minecraft/world/entity/monster/Illusioner.java index ee5e0b20f65a5f7d7dc2cf8fea2eff56f8f56a41..e34c37a9a2eacc97f44fcb6d911cf215b07414a2 100644 --- a/net/minecraft/world/entity/monster/Illusioner.java +++ b/net/minecraft/world/entity/monster/Illusioner.java @@ -91,6 +91,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.illusionerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java index a5ca7a2f301cc8ae5878e583c2cf8aeef2085982..da80b17668e4268f02999f553e0e829f8fbb0d10 100644 --- a/net/minecraft/world/entity/monster/MagmaCube.java +++ b/net/minecraft/world/entity/monster/MagmaCube.java @@ -75,6 +75,13 @@ public class MagmaCube extends Slime { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.magmaCubeAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F); } diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java index c7d52c623d8616209ab742b69838beed156d80de..628fc869f5b4c33dfb2daf1e35db7c5df8aa28fd 100644 --- a/net/minecraft/world/entity/monster/Phantom.java +++ b/net/minecraft/world/entity/monster/Phantom.java @@ -147,6 +147,13 @@ public class Phantom extends Mob implements Enemy { public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } // Purpur end - API for any mob to burn daylight + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.phantomAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public boolean isFlapping() { return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0; diff --git a/net/minecraft/world/entity/monster/Pillager.java b/net/minecraft/world/entity/monster/Pillager.java index 1aa2f744b0d875fb874cf23a0601fee48ead66c2..8bc07bbf713ebd3afc8c0e62c92b5e11fb424307 100644 --- a/net/minecraft/world/entity/monster/Pillager.java +++ b/net/minecraft/world/entity/monster/Pillager.java @@ -96,6 +96,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.pillagerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java index 5d7f6825d7bff413cac0fbf3a1d613bccd5102d6..7e137ae1bf2d2c0eae37a5ea857d4ea51d4044b7 100644 --- a/net/minecraft/world/entity/monster/Ravager.java +++ b/net/minecraft/world/entity/monster/Ravager.java @@ -108,6 +108,13 @@ public class Ravager extends Raider { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.ravagerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java index 21b28d1ba59656b123aef95a7e18075dae9bc236..99589855c69e76ecdfa9bb21b62e59f175b24375 100644 --- a/net/minecraft/world/entity/monster/Shulker.java +++ b/net/minecraft/world/entity/monster/Shulker.java @@ -141,6 +141,13 @@ public class Shulker extends AbstractGolem implements Enemy { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.shulkerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java index 190312706c2e69bb0cf6e402e8e3ad7dd64b7b98..929ebc003b0dd7bea252e905fb9fa671dc54a252 100644 --- a/net/minecraft/world/entity/monster/Silverfish.java +++ b/net/minecraft/world/entity/monster/Silverfish.java @@ -73,6 +73,13 @@ public class Silverfish extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.silverfishAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this); diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java index 1ae787edeb2011afb373fb44702f8a5150ee95b1..717e34cbca2e70d80c2c9e2921d9a53cac1b3f8f 100644 --- a/net/minecraft/world/entity/monster/Skeleton.java +++ b/net/minecraft/world/entity/monster/Skeleton.java @@ -56,6 +56,13 @@ public class Skeleton extends AbstractSkeleton { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.skeletonAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java index f6e0ec18150f91d42f9a5b2f45e5a6e80c4ea031..97d15b759d65e32df4d780ec4850b986fcaf6ead 100644 --- a/net/minecraft/world/entity/monster/Slime.java +++ b/net/minecraft/world/entity/monster/Slime.java @@ -141,6 +141,13 @@ public class Slime extends Mob implements Enemy { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.slimeAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables diff --git a/net/minecraft/world/entity/monster/Spider.java b/net/minecraft/world/entity/monster/Spider.java index 5fa082b5a04d152c72f6053ca6bc4598899ca30c..ae72caa023d3df03b3458baf784dfade9e0b4ecb 100644 --- a/net/minecraft/world/entity/monster/Spider.java +++ b/net/minecraft/world/entity/monster/Spider.java @@ -82,6 +82,13 @@ public class Spider extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.spiderAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/monster/Stray.java b/net/minecraft/world/entity/monster/Stray.java index 1d99432da3df434394a746f0bf4d5cc62c90dcba..dff140efcc082d828b26f4f0cbb7084a414d9faf 100644 --- a/net/minecraft/world/entity/monster/Stray.java +++ b/net/minecraft/world/entity/monster/Stray.java @@ -53,6 +53,13 @@ public class Stray extends AbstractSkeleton { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.strayAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static boolean checkStraySpawnRules( EntityType entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random ) { diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java index 1004aaf885268d08e68e5d2465fae2b5566a4eff..da7644dd2b9e86ec8947250ff998fb554e881161 100644 --- a/net/minecraft/world/entity/monster/Strider.java +++ b/net/minecraft/world/entity/monster/Strider.java @@ -124,6 +124,13 @@ public class Strider extends Animal implements ItemSteerable { } // Purpur end - Make entity breeding times configurable + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.striderAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static boolean checkStriderSpawnRules( EntityType entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random ) { diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java index 75681ed441e5cbb4c01a433f9757795089af234b..39d164dbc8aac355987c1725411395919ce1685f 100644 --- a/net/minecraft/world/entity/monster/Vex.java +++ b/net/minecraft/world/entity/monster/Vex.java @@ -119,6 +119,13 @@ public class Vex extends Monster implements TraceableEntity { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.vexAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public boolean isFlapping() { return this.tickCount % TICKS_PER_FLAP == 0; diff --git a/net/minecraft/world/entity/monster/Vindicator.java b/net/minecraft/world/entity/monster/Vindicator.java index 33452593731c53f404059271b3fbb0407d75517c..e209b0ad1fa95d01387671b7dad4a347bb12ed4c 100644 --- a/net/minecraft/world/entity/monster/Vindicator.java +++ b/net/minecraft/world/entity/monster/Vindicator.java @@ -88,6 +88,13 @@ public class Vindicator extends AbstractIllager { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.vindicatorAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java index cafdebd0fa9a7458e5adaf109b3ebd4beed7a1ef..76e051fee759ce86b3d410c250ebee31a678f459 100644 --- a/net/minecraft/world/entity/monster/Witch.java +++ b/net/minecraft/world/entity/monster/Witch.java @@ -88,6 +88,13 @@ public class Witch extends Raider implements RangedAttackMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.witchAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/WitherSkeleton.java b/net/minecraft/world/entity/monster/WitherSkeleton.java index 778779c79c56e2ca438ecbb82fbb16d70d312524..51e2078912991266f2dac79775b1d5701e85fe79 100644 --- a/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/net/minecraft/world/entity/monster/WitherSkeleton.java @@ -66,6 +66,13 @@ public class WitherSkeleton extends AbstractSkeleton { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.witherSkeletonAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true)); diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java index 67998321b2c47d4aaf027c5fd17cb6d01e105b6f..2632dd89d2f5661137e2c09b8cd426fc40599f69 100644 --- a/net/minecraft/world/entity/monster/Zoglin.java +++ b/net/minecraft/world/entity/monster/Zoglin.java @@ -118,6 +118,13 @@ public class Zoglin extends Monster implements HoglinBase { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.zoglinAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java index 00e9383ad8251da600c84885c439a207c256c22a..7e13f2958f3935077fe25570567d2576f435028c 100644 --- a/net/minecraft/world/entity/monster/Zombie.java +++ b/net/minecraft/world/entity/monster/Zombie.java @@ -149,6 +149,13 @@ public class Zombie extends Monster { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.zombieAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java index 1693fbcd47cc06409ac1849475feda7b5c4e437a..ee6ce9ccace1f602772542670d02bb5a4c8a4766 100644 --- a/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/net/minecraft/world/entity/monster/ZombieVillager.java @@ -126,6 +126,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.zombieVillagerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java index d43e4d29a75dd66551eb432ceec1cc3fda738364..9ee3fcc538be14f2eea8ed97eeec93b05a9cb4f2 100644 --- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -113,6 +113,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.zombifiedPiglinAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public void setPersistentAngerTarget(@Nullable UUID target) { this.persistentAngerTarget = target; diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java index 660d1f56cc74bc2a8764094d16772aace1234c15..c5f7213b91d7a533ff56e4789514b47adb791777 100644 --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -134,6 +134,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.hoglinAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @VisibleForTesting public void setTimeInOverworld(int timeInOverworld) { this.timeInOverworld = timeInOverworld; diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java index 5bf58287dad04c96459982d55b5ac00646e37d53..dee71746e90f8a81e29ee35c3438219172509d6b 100644 --- a/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -168,6 +168,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.piglinAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void addAdditionalSaveData(ValueOutput output) { super.addAdditionalSaveData(output); diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java index e988a65cbd1f71f488fa8221ef11b6b1a05dc554..ebe1b4e0b841906684561151919a5b3f6e206b60 100644 --- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -97,6 +97,13 @@ public class PiglinBrute extends AbstractPiglin { } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.piglinBruteAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return Monster.createMonsterAttributes() .add(Attributes.MAX_HEALTH, 50.0) diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java index 810494826a7b600941f3087f114064e157ba88e6..0ab9ac120703285baa563391653323c17d05b20b 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java @@ -288,6 +288,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.villagerAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public Brain getBrain() { return (Brain)super.getBrain(); diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java index 6e5f5711b729b41f5221fb7e7d0c8dad57f790ca..75d8e6d3e89959785fb2c187ec804bb53dba72d1 100644 --- a/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/net/minecraft/world/entity/npc/WanderingTrader.java @@ -105,6 +105,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.wanderingTraderAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this));