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/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java index 626463a20f49c807eae86b30fe38c514311abd88..237408b7dc923b04addba1d671ad07fb3e18cdda 100644 --- a/net/minecraft/world/entity/ambient/Bat.java +++ b/net/minecraft/world/entity/ambient/Bat.java @@ -116,6 +116,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/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java index 523358fb9bfb393dde41fb90fed40ab8a54ba107..57b34d61c972123a2871da5abba851fbe656ff75 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -161,6 +161,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(final BlockPos pos, final LevelReader level) { return 0.0F; diff --git a/net/minecraft/world/entity/animal/bee/Bee.java b/net/minecraft/world/entity/animal/bee/Bee.java index b3a47763c4dcb84cd5fc1003268582184fd595c2..f4483f893c301e338595cc2e79e9fe9915b7bedd 100644 --- a/net/minecraft/world/entity/animal/bee/Bee.java +++ b/net/minecraft/world/entity/animal/bee/Bee.java @@ -499,6 +499,13 @@ public class Bee 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.beeAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public long getPersistentAngerEndTime() { return this.entityData.get(DATA_ANGER_END_TIME); diff --git a/net/minecraft/world/entity/animal/chicken/Chicken.java b/net/minecraft/world/entity/animal/chicken/Chicken.java index 71db913c66ae1efa9d335d45ab70c63ddfae3a91..31dda8f31967e1e02c2a9e32cc0586afa9c416e1 100644 --- a/net/minecraft/world/entity/animal/chicken/Chicken.java +++ b/net/minecraft/world/entity/animal/chicken/Chicken.java @@ -125,6 +125,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/cow/Cow.java b/net/minecraft/world/entity/animal/cow/Cow.java index 70edf30006f3042974a90f6f737d249675b47d16..b084e914bc473aa739be988a03b98085d0a795a7 100644 --- a/net/minecraft/world/entity/animal/cow/Cow.java +++ b/net/minecraft/world/entity/animal/cow/Cow.java @@ -84,6 +84,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/cow/MushroomCow.java b/net/minecraft/world/entity/animal/cow/MushroomCow.java index fdc5cc7fe6c3955ae04b184d189f1156b6f2af9a..b95e6f21b1cfaeae1ca4340c7fe0d6cb2a0804c7 100644 --- a/net/minecraft/world/entity/animal/cow/MushroomCow.java +++ b/net/minecraft/world/entity/animal/cow/MushroomCow.java @@ -107,6 +107,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(final BlockPos pos, final LevelReader level) { return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos); diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java index 68c59f9b7048c9e523c3d33d0ab444d430e491ef..d363e9da76a292c5d388f4b8a81e54f1322f5bd7 100644 --- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java +++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java @@ -176,6 +176,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 + @Override public @Nullable SpawnGroupData finalizeSpawn( final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, final @Nullable SpawnGroupData groupData diff --git a/net/minecraft/world/entity/animal/equine/Donkey.java b/net/minecraft/world/entity/animal/equine/Donkey.java index a74124c9910c121c834eb7510f3e6a54557c8c07..13998bb4fa18e2ed14070b4eadc003f845faa462 100644 --- a/net/minecraft/world/entity/animal/equine/Donkey.java +++ b/net/minecraft/world/entity/animal/equine/Donkey.java @@ -55,6 +55,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/equine/Horse.java b/net/minecraft/world/entity/animal/equine/Horse.java index 187f72ab0fa2fa623e4b7ea825a640f1b1d42d72..3350900b8b5824048d5d25ff216c86274b195ebc 100644 --- a/net/minecraft/world/entity/animal/equine/Horse.java +++ b/net/minecraft/world/entity/animal/equine/Horse.java @@ -87,6 +87,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(final RandomSource random) { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt)); diff --git a/net/minecraft/world/entity/animal/equine/Llama.java b/net/minecraft/world/entity/animal/equine/Llama.java index 75eb96b3a62fcb07b93edbf629965fe75d385c38..2e29ad25c1ca442de5e5b0dc6108682f943a2aa3 100644 --- a/net/minecraft/world/entity/animal/equine/Llama.java +++ b/net/minecraft/world/entity/animal/equine/Llama.java @@ -166,6 +166,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/equine/Mule.java b/net/minecraft/world/entity/animal/equine/Mule.java index c54a7033d40e973b7c93de5276d20451306b48bc..096315eef536b8d240ea9a61bee499d4c30d8ddc 100644 --- a/net/minecraft/world/entity/animal/equine/Mule.java +++ b/net/minecraft/world/entity/animal/equine/Mule.java @@ -54,6 +54,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/equine/SkeletonHorse.java b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java index a5a2923dbc0b4a090c29de16bd564bfd78ca8f9c..7df95f57044a29d51af9d898535f1794941d3f31 100644 --- a/net/minecraft/world/entity/animal/equine/SkeletonHorse.java +++ b/net/minecraft/world/entity/animal/equine/SkeletonHorse.java @@ -82,6 +82,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/equine/TraderLlama.java b/net/minecraft/world/entity/animal/equine/TraderLlama.java index e9bd6334f0713d8fab91d1cfddfb8d4580faaa5b..492d19954258ce6a18b01aaa486c6e53f0377db5 100644 --- a/net/minecraft/world/entity/animal/equine/TraderLlama.java +++ b/net/minecraft/world/entity/animal/equine/TraderLlama.java @@ -85,6 +85,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/equine/ZombieHorse.java b/net/minecraft/world/entity/animal/equine/ZombieHorse.java index 9c8ce7eee6bf462478a0755b074e229133eee1c3..ad73c42d6c375595f2143c5b966c011dd5d1dc0e 100644 --- a/net/minecraft/world/entity/animal/equine/ZombieHorse.java +++ b/net/minecraft/world/entity/animal/equine/ZombieHorse.java @@ -94,6 +94,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, 25.0); } diff --git a/net/minecraft/world/entity/animal/feline/Cat.java b/net/minecraft/world/entity/animal/feline/Cat.java index 3e8ba2867b37b9171375c81ece0d534692c9ac68..ad93261cdbe93487ea2168ae3bd3f937cee0eb53 100644 --- a/net/minecraft/world/entity/animal/feline/Cat.java +++ b/net/minecraft/world/entity/animal/feline/Cat.java @@ -149,6 +149,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, i -> i.is(ItemTags.CAT_FOOD), true); diff --git a/net/minecraft/world/entity/animal/feline/Ocelot.java b/net/minecraft/world/entity/animal/feline/Ocelot.java index 528341355817ae603eed895beb67814ef4fc12f2..c56715a81f3a65b370d85574a1b57f60284df55e 100644 --- a/net/minecraft/world/entity/animal/feline/Ocelot.java +++ b/net/minecraft/world/entity/animal/feline/Ocelot.java @@ -112,6 +112,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/fish/Cod.java b/net/minecraft/world/entity/animal/fish/Cod.java index f44214eaa47c2021f7ca9c84a7b89be15fecb5bc..7d4bfca8b2608c18fc96e14f1ef9121230e27a53 100644 --- a/net/minecraft/world/entity/animal/fish/Cod.java +++ b/net/minecraft/world/entity/animal/fish/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/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java index 60f2b9411bf7acf02a66e91377b6042b421b56ab..44fcb7dc3f8d85ae468f9ef7208d2ca089e871d6 100644 --- a/net/minecraft/world/entity/animal/fish/Pufferfish.java +++ b/net/minecraft/world/entity/animal/fish/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(final SynchedEntityData.Builder entityData) { super.defineSynchedData(entityData); diff --git a/net/minecraft/world/entity/animal/fish/Salmon.java b/net/minecraft/world/entity/animal/fish/Salmon.java index 53f24f3f22c41d4a3a401c3da92867d5ac96febd..a001040061a12a4c8c86eb377893e33c584996b9 100644 --- a/net/minecraft/world/entity/animal/fish/Salmon.java +++ b/net/minecraft/world/entity/animal/fish/Salmon.java @@ -67,6 +67,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/fish/TropicalFish.java b/net/minecraft/world/entity/animal/fish/TropicalFish.java index dc2800dd2f4c9f71c79d9f012be17398263d033d..adb530b59ce6080e281aad21e2165fd1cea5b561 100644 --- a/net/minecraft/world/entity/animal/fish/TropicalFish.java +++ b/net/minecraft/world/entity/animal/fish/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(final int index) { return "entity.minecraft.tropical_fish.predefined." + index; } diff --git a/net/minecraft/world/entity/animal/fox/Fox.java b/net/minecraft/world/entity/animal/fox/Fox.java index f5ee70d674fea7975aa1bfd206fb303907362c59..a5c8c4cd7fb80ee0fb87eba85b6a3095223b849c 100644 --- a/net/minecraft/world/entity/animal/fox/Fox.java +++ b/net/minecraft/world/entity/animal/fox/Fox.java @@ -221,6 +221,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(final SynchedEntityData.Builder entityData) { super.defineSynchedData(entityData); diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java index 9744d757ae7dcc31291db469539ebd58db7b08a2..363a6f9e8d13312f93562cf3a2b1668bc53adc66 100644 --- a/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java @@ -137,6 +137,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 makeBrain(final Brain.Packed packedBrain) { return BRAIN_PROVIDER.makeBrain(this, packedBrain); diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java index 31053ae3e64c3cbcfafd8d33a692022b8f2f821e..55bf908402a01f0f93538f2707d60dd1f59013bd 100644 --- a/net/minecraft/world/entity/animal/golem/CopperGolem.java +++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java @@ -151,6 +151,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/golem/IronGolem.java b/net/minecraft/world/entity/animal/golem/IronGolem.java index 0d47b1d7ffb09a883edde3c5c0a8e6eadec08642..e7114a76761bc89c76871868c8ed9d6dbf141a67 100644 --- a/net/minecraft/world/entity/animal/golem/IronGolem.java +++ b/net/minecraft/world/entity/animal/golem/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/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java index 4aa522299a3194c569e8f7660fb44606931026da..11a89fe92567c9c7074ee53ecbd58e66530401f8 100644 --- a/net/minecraft/world/entity/animal/golem/SnowGolem.java +++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java @@ -87,6 +87,13 @@ public class SnowGolem extends AbstractGolem implements RangedAttackMob, Shearab } // 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/happyghast/HappyGhast.java b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java index f37773ac8ec943744a8989b443e913710e13230b..0c56a19f0de0fa811a61b24a998fe2efce56d78a 100644 --- a/net/minecraft/world/entity/animal/happyghast/HappyGhast.java +++ b/net/minecraft/world/entity/animal/happyghast/HappyGhast.java @@ -171,6 +171,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/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java index d173ceba9629f7a0dca31aefc9df0bfa70d75738..1584f5a505ecf91897ed9105acf12add21510c0d 100644 --- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java +++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java @@ -55,6 +55,13 @@ public class Nautilus extends AbstractNautilus { } // Purpur end - Make entity breeding times configurable + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.nautilusAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override protected Brain makeBrain(final Brain.Packed packedBrain) { return BRAIN_PROVIDER.makeBrain(this, packedBrain); diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java index da60906faaca79efbfd29ed05b01a0c07978bab2..9aed9eb7a7c3b3fb653d6fed5f8d79f7c32b2b94 100644 --- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java +++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java @@ -67,6 +67,13 @@ public class ZombieNautilus extends AbstractNautilus { } // Purpur end - Make entity breeding times configurable + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.zombieNautilusAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + public static AttributeSupplier.Builder createAttributes() { return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F); } diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java index 70d1e64f50c86c6ece9ecb8f3237a925068e76c5..b1f680ffb815d57e717c59b0c44a2e0b27f5a94e 100644 --- a/net/minecraft/world/entity/animal/panda/Panda.java +++ b/net/minecraft/world/entity/animal/panda/Panda.java @@ -161,6 +161,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(final EquipmentSlot slot) { return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot(); diff --git a/net/minecraft/world/entity/animal/parrot/Parrot.java b/net/minecraft/world/entity/animal/parrot/Parrot.java index d6ea604c3cc557d42afeb4fef7bcc7b06a60b475..3d80a83e7cfba3403cc1007734035e07d63e9de1 100644 --- a/net/minecraft/world/entity/animal/parrot/Parrot.java +++ b/net/minecraft/world/entity/animal/parrot/Parrot.java @@ -221,6 +221,13 @@ public class Parrot extends ShoulderRidingEntity { } // 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 + @Override public @Nullable SpawnGroupData finalizeSpawn( final ServerLevelAccessor level, final DifficultyInstance difficulty, final EntitySpawnReason spawnReason, @Nullable SpawnGroupData groupData diff --git a/net/minecraft/world/entity/animal/pig/Pig.java b/net/minecraft/world/entity/animal/pig/Pig.java index 9463a70aec69af7d680caf35cbab7ee4b975b6ea..0bb58d534d3966bbd4760f1b909e3497a7f7ac06 100644 --- a/net/minecraft/world/entity/animal/pig/Pig.java +++ b/net/minecraft/world/entity/animal/pig/Pig.java @@ -115,6 +115,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/PolarBear.java b/net/minecraft/world/entity/animal/polarbear/PolarBear.java index c47640ebcf2db48bb27b671c907f3270eac3c126..46276e32dcc7884758e333c45f65ce03133c04fe 100644 --- a/net/minecraft/world/entity/animal/polarbear/PolarBear.java +++ b/net/minecraft/world/entity/animal/polarbear/PolarBear.java @@ -146,6 +146,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 + @Override public @Nullable AgeableMob getBreedOffspring(final ServerLevel level, final AgeableMob partner) { return EntityTypes.POLAR_BEAR.create(level, EntitySpawnReason.BREEDING); diff --git a/net/minecraft/world/entity/animal/rabbit/Rabbit.java b/net/minecraft/world/entity/animal/rabbit/Rabbit.java index 4d5870acc631e18a070cfb12f8b2d4b5b06619ee..e48446be1ba64a46232966efcd9e5d1e90d7938a 100644 --- a/net/minecraft/world/entity/animal/rabbit/Rabbit.java +++ b/net/minecraft/world/entity/animal/rabbit/Rabbit.java @@ -185,6 +185,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 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java index d9f17420cc8e291896d51484d0f12473735a5f43..146003f7429be6668366e85955fff259b06781b3 100644 --- a/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java @@ -110,6 +110,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/squid/GlowSquid.java b/net/minecraft/world/entity/animal/squid/GlowSquid.java index e11e4e9134db7e59bd7f3112605206ad1f36cab6..079d7dfd726670a5e3ed2811813190badfba696c 100644 --- a/net/minecraft/world/entity/animal/squid/GlowSquid.java +++ b/net/minecraft/world/entity/animal/squid/GlowSquid.java @@ -65,6 +65,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/animal/squid/Squid.java b/net/minecraft/world/entity/animal/squid/Squid.java index cd8ef74ec5662b01b295f41a33834b65d51b7fd5..dcb597337bc69be21f0924dda89a5299aa8d0f21 100644 --- a/net/minecraft/world/entity/animal/squid/Squid.java +++ b/net/minecraft/world/entity/animal/squid/Squid.java @@ -111,6 +111,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/turtle/Turtle.java b/net/minecraft/world/entity/animal/turtle/Turtle.java index 5cf4449f48c9f46cc277ce080992c8acaead4173..779ae828cee17430bfa5f469d88c69a8f121eb4e 100644 --- a/net/minecraft/world/entity/animal/turtle/Turtle.java +++ b/net/minecraft/world/entity/animal/turtle/Turtle.java @@ -127,6 +127,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(final BlockPos pos) { this.homePos = pos; } diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java index cdc12cabee85c7090ff317068a98b0acc973fdbe..af82e593ac58eaa0e7e8b4abd0d152cfb58d5c13 100644 --- a/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java @@ -234,6 +234,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 874d347797b1aea439dc5cde2d5da679479cc352..cc17c8d1615e6f5a0cf164e05abad566722444bd 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(final 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 7f0e76437798f1bab7956722382e1517f8f71121..257563b578762837cbea855fa42831f34fa4e7ba 100644 --- a/net/minecraft/world/entity/monster/Blaze.java +++ b/net/minecraft/world/entity/monster/Blaze.java @@ -84,6 +84,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/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java index 5b188b7121c62dc5c6ded6128e8f3b6a4d930fb0..9d8b9e3e21ee721f5ea9339143839eeaebd341ae 100644 --- a/net/minecraft/world/entity/monster/Creeper.java +++ b/net/minecraft/world/entity/monster/Creeper.java @@ -272,6 +272,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(final DamageSource source) { return SoundEvents.CREEPER_HURT; diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java index 68922bcf87052d7b13a78fd6f8daddcdec6b8614..bc3374274d0c204131d8baf3e1c1263d705adb2e 100644 --- a/net/minecraft/world/entity/monster/ElderGuardian.java +++ b/net/minecraft/world/entity/monster/ElderGuardian.java @@ -59,6 +59,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 2b02becb39f89ca02e42cf9e3df6cbfa8eba800f..d1903b7804880c4b3b2ccf6a6dbc85a62975deb1 100644 --- a/net/minecraft/world/entity/monster/EnderMan.java +++ b/net/minecraft/world/entity/monster/EnderMan.java @@ -114,6 +114,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 099476663f734f00b4979de7c2d0f13da5bf4909..3729137f6fa1bc2c8b886a02e8604918bd961e72 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/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java index 3b514d9102946166534e404181af287865655c32..bf5e977d395d2dbe0203d8b2488d7cb5ff0c08d3 100644 --- a/net/minecraft/world/entity/monster/Ghast.java +++ b/net/minecraft/world/entity/monster/Ghast.java @@ -90,6 +90,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 43ebfe06ce2a8c15787d72a8ef54cd6c7cac2bfc..07dfe0e6fd431b8417fc7f823962e4d4ad13cac5 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 6487f78d08d33dbbe325c148470850401b01d662..4e09d4f219a47de116e10821e79afaae66d01b4a 100644 --- a/net/minecraft/world/entity/monster/Guardian.java +++ b/net/minecraft/world/entity/monster/Guardian.java @@ -104,6 +104,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 goal = new MoveTowardsRestrictionGoal(this, 1.0); diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java index 9d646f3d924d3c2fdb2b396e4501111912fba043..c6eecc3928664672d3e191b621d3daec735e70c9 100644 --- a/net/minecraft/world/entity/monster/Phantom.java +++ b/net/minecraft/world/entity/monster/Phantom.java @@ -136,6 +136,13 @@ public class Phantom 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.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/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java index 9afb9be57a6223cc262a9357a42cd7d19953bef5..663deb587323fe10c7fca63d5c5196d00c30be3a 100644 --- a/net/minecraft/world/entity/monster/Ravager.java +++ b/net/minecraft/world/entity/monster/Ravager.java @@ -109,6 +109,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 bfef619b3b21ee2071fd74c82b1b658f239cd402..3f4bad4bb552da43d6ed037b0595808203da4660 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 d8f696287021d3f20949002f5229d1caf40c9d4f..16c23d984bebe489d75695ce0c1b3d2ce8f2d38c 100644 --- a/net/minecraft/world/entity/monster/Silverfish.java +++ b/net/minecraft/world/entity/monster/Silverfish.java @@ -72,6 +72,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/Strider.java b/net/minecraft/world/entity/monster/Strider.java index 584aee58a1319da937eeb78d3015bc48e705bd64..929bd327f01ed28462c4ce4e7d2f3e1886aa4157 100644 --- a/net/minecraft/world/entity/monster/Strider.java +++ b/net/minecraft/world/entity/monster/Strider.java @@ -131,6 +131,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( final EntityType ignoredType, final LevelAccessor level, diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java index 59c643c01c83a082710fc418768f3812a19c0fdb..942adc01489e9f6864c77ed57cd8eeafb731c856 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, OwnableEntity { } // 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/Witch.java b/net/minecraft/world/entity/monster/Witch.java index 847363cd327e52b5d67d07510618dd0f6a7fc8a4..0b9f0b3d5376522a2106eca92c7b1d5aae7fa367 100644 --- a/net/minecraft/world/entity/monster/Witch.java +++ b/net/minecraft/world/entity/monster/Witch.java @@ -90,6 +90,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/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java index dec8f0ab0fd8f33dbc4b18d38e43ff1531963b07..35da647c8dad5da274ab8de857636d28e8cc8520 100644 --- a/net/minecraft/world/entity/monster/Zoglin.java +++ b/net/minecraft/world/entity/monster/Zoglin.java @@ -116,6 +116,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 makeBrain(final Brain.Packed packedBrain) { return BRAIN_PROVIDER.makeBrain(this, packedBrain); diff --git a/net/minecraft/world/entity/monster/cubemob/MagmaCube.java b/net/minecraft/world/entity/monster/cubemob/MagmaCube.java index 44e8dd9667663e971c65613baef25f4d7ddf4a79..fd48929cb583662a76912f450aa4bf74abb05541 100644 --- a/net/minecraft/world/entity/monster/cubemob/MagmaCube.java +++ b/net/minecraft/world/entity/monster/cubemob/MagmaCube.java @@ -97,6 +97,13 @@ public class MagmaCube extends AbstractCubeMob implements Enemy { } // 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/cubemob/Slime.java b/net/minecraft/world/entity/monster/cubemob/Slime.java index 3c09f472ba54f8929782ac6a080ceabf10f09699..1faab89a0c6febdbbb15c8f1345fbd8e71f3af6e 100644 --- a/net/minecraft/world/entity/monster/cubemob/Slime.java +++ b/net/minecraft/world/entity/monster/cubemob/Slime.java @@ -108,6 +108,13 @@ public class Slime extends AbstractCubeMob 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 public SoundEvent getHurtSound(final DamageSource source) { return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT; diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java index 076a0ab563dd3b7e41eb6c7d229634a3b3016a15..ac302c326ea5dfa5826ff85197f147123b8a83bf 100644 --- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java +++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java @@ -172,6 +172,13 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable } // Purpur end - Toggle for water sensitive mob damage + // Purpur start - Mobs always drop experience + @Override + protected boolean isAlwaysExperienceDropper() { + return this.level().purpurConfig.sulfurCubeAlwaysDropExp; + } + // Purpur end - Mobs always drop experience + @Override public boolean fromBucket() { return this.entityData.get(FROM_BUCKET); diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java index 03686024f7a870079dc1c379c5e88f92d8f904fe..103d7ac2e3fdb4629d94902c0b4080a7622ae744 100644 --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -120,6 +120,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(final int timeInOverworld) { this.timeInOverworld = timeInOverworld; diff --git a/net/minecraft/world/entity/monster/illager/Evoker.java b/net/minecraft/world/entity/monster/illager/Evoker.java index fead174f8a56ea9611aa4f20ff870df32048037f..c1d4c40260f4b002ed6c6eb49ca3cc33a0b9b2eb 100644 --- a/net/minecraft/world/entity/monster/illager/Evoker.java +++ b/net/minecraft/world/entity/monster/illager/Evoker.java @@ -82,6 +82,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/illager/Illusioner.java b/net/minecraft/world/entity/monster/illager/Illusioner.java index bfd1a61d43fcc1293592a6199d7bab0346f40c7f..05c0a84a2eb41ab9c19fd95e6745037d36aefc70 100644 --- a/net/minecraft/world/entity/monster/illager/Illusioner.java +++ b/net/minecraft/world/entity/monster/illager/Illusioner.java @@ -93,6 +93,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/illager/Pillager.java b/net/minecraft/world/entity/monster/illager/Pillager.java index 20881d924a4e69a2419b76e902f6e708bd2ac235..b0a79d1c96362e2a50d4b3215f7449a7a5fb6e04 100644 --- a/net/minecraft/world/entity/monster/illager/Pillager.java +++ b/net/minecraft/world/entity/monster/illager/Pillager.java @@ -97,6 +97,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/illager/Vindicator.java b/net/minecraft/world/entity/monster/illager/Vindicator.java index db2ca5e6f5c5a0968e1fb76369ad2efdee57e480..d42afe275f7a917d5784da2838972dff73f1476a 100644 --- a/net/minecraft/world/entity/monster/illager/Vindicator.java +++ b/net/minecraft/world/entity/monster/illager/Vindicator.java @@ -89,6 +89,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/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java index c9bbbaaaf21f5e08b5cf3f6befb03cbf79595ad3..e3ceb6f928fa428f80c6b2680564c8124b8e888d 100644 --- a/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -141,6 +141,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(final 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 5f25162930b7d18385d84715f4f72962c1efa93d..ee1a87f7811d22b5b33b3ae6b22fc5332b57322b 100644 --- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -82,6 +82,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/monster/skeleton/Skeleton.java b/net/minecraft/world/entity/monster/skeleton/Skeleton.java index cd9bbc34fa32629065170154eee303a7db8e8ab8..f7fe246c39f8588037171f16b6cd80be87b21547 100644 --- a/net/minecraft/world/entity/monster/skeleton/Skeleton.java +++ b/net/minecraft/world/entity/monster/skeleton/Skeleton.java @@ -58,6 +58,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(final SynchedEntityData.Builder entityData) { super.defineSynchedData(entityData); diff --git a/net/minecraft/world/entity/monster/skeleton/Stray.java b/net/minecraft/world/entity/monster/skeleton/Stray.java index 60aae5ecbd5d1243c63b304a7ffbfd729ad093c0..19ed23a4fc07f3a47f64ceefe1081b3641dfdccb 100644 --- a/net/minecraft/world/entity/monster/skeleton/Stray.java +++ b/net/minecraft/world/entity/monster/skeleton/Stray.java @@ -54,6 +54,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( final EntityType type, final ServerLevelAccessor level, final EntitySpawnReason spawnReason, final BlockPos pos, final RandomSource random ) { diff --git a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java b/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java index 2ec114406a6d207676739bf6b7eeb3b218442edd..5b057a367198f1b39e3e5ade7d48eb04a2a4b324 100644 --- a/net/minecraft/world/entity/monster/skeleton/WitherSkeleton.java +++ b/net/minecraft/world/entity/monster/skeleton/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/spider/CaveSpider.java b/net/minecraft/world/entity/monster/spider/CaveSpider.java index cb4d092e7365a978c16b620dfe05cbca56a0e1f0..b3621772cca164c92a630ca96a80315645b33681 100644 --- a/net/minecraft/world/entity/monster/spider/CaveSpider.java +++ b/net/minecraft/world/entity/monster/spider/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(final ServerLevel level, final Entity target) { if (super.doHurtTarget(level, target)) { diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java index 4b406ba70824d3ab06883085204c0233c7ff0a0a..0db35d3e0c6be00dc8502331bbafc0e4e82adb9d 100644 --- a/net/minecraft/world/entity/monster/spider/Spider.java +++ b/net/minecraft/world/entity/monster/spider/Spider.java @@ -85,6 +85,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/zombie/Drowned.java b/net/minecraft/world/entity/monster/zombie/Drowned.java index a6ff55afa5987ddf3ff1e9a43e34392f1cede2b4..a823cca07465fa5804eb01759174cbef9becbcca 100644 --- a/net/minecraft/world/entity/monster/zombie/Drowned.java +++ b/net/minecraft/world/entity/monster/zombie/Drowned.java @@ -141,6 +141,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/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java index afca08cfa58a25a7fa257eebf66dd888ccc1c734..75b57de8caf55d795ce10e115d657998fb86b401 100644 --- a/net/minecraft/world/entity/monster/zombie/Husk.java +++ b/net/minecraft/world/entity/monster/zombie/Husk.java @@ -92,6 +92,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 + @Override public boolean isSunSensitive() { return this.shouldBurnInDay; // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java index 947cfa465063246dfea805b0bdee1bed582b38aa..d4b92e44f9c211378f332398e2fc4233b55acf2d 100644 --- a/net/minecraft/world/entity/monster/zombie/Zombie.java +++ b/net/minecraft/world/entity/monster/zombie/Zombie.java @@ -160,6 +160,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/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java index 72b8fd534aa4b3d62e5f063bf51692a97a91156e..e797ac2444e7ec5c880db0a747ad301be5d3a94e 100644 --- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java +++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java @@ -140,6 +140,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(final SynchedEntityData.Builder entityData) { super.defineSynchedData(entityData); diff --git a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java index 1233173bec21f780b25e7773788fd1fb003804af..2c0f08308430356a44a61d9b7a94609f340b454d 100644 --- a/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java +++ b/net/minecraft/world/entity/monster/zombie/ZombifiedPiglin.java @@ -117,6 +117,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 protected void addBehaviourGoals() { this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F)); diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java index dddbde704f3488b6bd7cbf126bc18ccb26d24d2c..64a6f4517f581f64a71382bdb302b71c68dc5396 100644 --- a/net/minecraft/world/entity/npc/villager/Villager.java +++ b/net/minecraft/world/entity/npc/villager/Villager.java @@ -282,6 +282,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re } // 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/WanderingTrader.java b/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java index 2f6fe59d812ccef104d7e3357483442c8f52e826..06f85792fea97e18b23f348728a772d5a2db65cc 100644 --- a/net/minecraft/world/entity/npc/wanderingtrader/WanderingTrader.java +++ b/net/minecraft/world/entity/npc/wanderingtrader/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));