From d6c8559304142f859508ba8e4d20dfbcce5f8da4 Mon Sep 17 00:00:00 2001 From: granny Date: Sun, 29 Jun 2025 14:06:06 -0700 Subject: [PATCH] all feature patches applied with no issues \o/ --- .../0001-Ridables.patch | 34 +++++++++---------- ...-Configurable-entity-base-attributes.patch | 20 +++++------ .../0003-Barrels-and-enderchests-6-rows.patch | 8 ++--- .../0004-Giants-AI-settings.patch | 0 .../0005-Chickens-can-retaliate.patch | 0 ...-Minecart-settings-and-WASD-controls.patch | 4 +-- ...0007-Villagers-follow-emerald-blocks.patch | 8 ++--- .../0008-Implement-elytra-settings.patch | 2 +- .../0009-Configurable-jockey-options.patch | 0 ...ed-to-crystals-and-crystals-shoot-ph.patch | 0 .../0011-Phantoms-burn-in-light.patch | 0 ...e-entity-breeding-times-configurable.patch | 4 +-- ...mes-from-item-forms-of-entities-to-e.patch | 2 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 6 ++-- ...fing-override-to-everything-affected.patch | 2 +- ...0016-Add-EntityTeleportHinderedEvent.patch | 0 ...oggle-for-water-sensitive-mob-damage.patch | 16 ++++----- ...018-API-for-any-mob-to-burn-daylight.patch | 4 +-- ...turally-aggressive-to-players-chance.patch | 0 .../0020-Mobs-always-drop-experience.patch | 16 ++++----- 20 files changed, 63 insertions(+), 63 deletions(-) rename purpur-server/minecraft-patches/{unapplied-features => features}/0001-Ridables.patch (99%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0002-Configurable-entity-base-attributes.patch (99%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0003-Barrels-and-enderchests-6-rows.patch (97%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0004-Giants-AI-settings.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0005-Chickens-can-retaliate.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0006-Minecart-settings-and-WASD-controls.patch (98%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0007-Villagers-follow-emerald-blocks.patch (96%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0008-Implement-elytra-settings.patch (98%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0009-Configurable-jockey-options.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0010-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0011-Phantoms-burn-in-light.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0012-Make-entity-breeding-times-configurable.patch (99%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch (98%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch (98%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0015-Add-mobGriefing-override-to-everything-affected.patch (99%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0016-Add-EntityTeleportHinderedEvent.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0017-Toggle-for-water-sensitive-mob-damage.patch (98%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0018-API-for-any-mob-to-burn-daylight.patch (99%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0019-Cows-naturally-aggressive-to-players-chance.patch (100%) rename purpur-server/minecraft-patches/{unapplied-features => features}/0020-Mobs-always-drop-experience.patch (98%) diff --git a/purpur-server/minecraft-patches/unapplied-features/0001-Ridables.patch b/purpur-server/minecraft-patches/features/0001-Ridables.patch similarity index 99% rename from purpur-server/minecraft-patches/unapplied-features/0001-Ridables.patch rename to purpur-server/minecraft-patches/features/0001-Ridables.patch index c0b8f4757..1cf5bdf85 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0001-Ridables.patch +++ b/purpur-server/minecraft-patches/features/0001-Ridables.patch @@ -42,10 +42,10 @@ index 83eff33884bffddfafc85eeb4a2900104a396e2e..3c7159d0981c948e71a5612ba4083acc @Override public @Nullable LevelChunk getChunkIfLoaded(int x, int z) { diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index 63ef4690ff76df961fcc51dabd0f4f3d7de09fe9..7adb3d1f75896f1e31747e3356b124948a1c77c0 100644 +index 982836b811289eee0f4f5481c7c8796a89a3ef74..a249567d9cd2dfb552748ab4112709c0c0d2009b 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java -@@ -861,6 +861,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc +@@ -795,6 +795,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc this.trackEnteredOrExitedLavaOnVehicle(); this.updatePlayerAttributes(); this.advancements.flushDirty(this, true); @@ -62,10 +62,10 @@ index 63ef4690ff76df961fcc51dabd0f4f3d7de09fe9..7adb3d1f75896f1e31747e3356b12494 private void updatePlayerAttributes() { diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8a04052908fa53028b7d5a4619908d12b1e10766..79c3baf041cb7f10753d8a01ec03e95d5564f21b 100644 +index eb0ca5cc1ea9e5a7d78a7ec601770c2b35b95517..71c82b5b19f34d05fe944706db2818ee7a147139 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2844,6 +2844,8 @@ public class ServerGamePacketListenerImpl +@@ -2842,6 +2842,8 @@ public class ServerGamePacketListenerImpl ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -75,7 +75,7 @@ index 8a04052908fa53028b7d5a4619908d12b1e10766..79c3baf041cb7f10753d8a01ec03e95d if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) { target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 1d8ba25d542c49a687414a8b6d1d2fa16ca695d5..34e0fbef06b0c7aededf27fe9dc64f3f6f33e3ae 100644 +index 1e8fcceaa609f79cc1e70ac73511fdf7d79196bc..4bf841dae4d1f95836365f339dd87c102f1355b0 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -3303,6 +3303,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -177,7 +177,7 @@ index f0c452ddc4b299a930de261722cc41a89aa78eeb..8e8ddab59de508c84c4182e105a11554 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 96e47e6145a4cce8c154a05f9b155c1ba74bfa6a..d272f5e789cb6c03ede0bece14fc3fe976a02ff3 100644 +index 65cb0a0cfa3d75e4d1083b7e6b22ca1b2682dc49..e78d30d8fdfcb1a530bf3380251fabd0c9a18f46 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -238,9 +238,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -1077,10 +1077,10 @@ index 354c7a41407fc6518965d09bfe3089676b6da794..a81ada76bfd6c4b49d1552f48e2009bc } } diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java -index 24fdfda487bf5348c32707022719ec9907debc80..80517d5c7f074b62555d0991b0ad0678f585834f 100644 +index 272f57aca640e045efca64dd018b221335c667ee..b425f43eb15abdfd6e10b5443acc3d5a68d63a70 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java -@@ -120,6 +120,13 @@ public class HappyGhast extends Animal { +@@ -126,6 +126,13 @@ public class HappyGhast extends Animal { this.removeAllGoals(goal -> true); } @@ -4055,7 +4055,7 @@ index 2b9a72b8742bf13c69df5ce0c905d47a92b9d8bc..b67ac487ce4a7fd8b2f62452ab0b87f4 this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0); } else { diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java -index ff16e0dd78687f4c9a0bce5ede4eda30e2a06263..f37ba04ae0277152d93e3e585973d46c25e52395 100644 +index 4a4c72b0c265289f5b0dfbdc2f7fc08f9f112d8f..c19258a6dade5b7605d97eca7140a7b30e00cb8b 100644 --- a/net/minecraft/world/entity/monster/Shulker.java +++ b/net/minecraft/world/entity/monster/Shulker.java @@ -109,12 +109,31 @@ public class Shulker extends AbstractGolem implements Enemy { @@ -4512,10 +4512,10 @@ index a621e08fe4f88fcfa8da83bc44b23fc2ffaa5918..543913b7e9e92ac43c2e557213a48714 Vec3 deltaMovement = Vex.this.getDeltaMovement(); Vex.this.setYRot(-((float)Mth.atan2(deltaMovement.x, deltaMovement.z)) * (180.0F / (float)Math.PI)); diff --git a/net/minecraft/world/entity/monster/Vindicator.java b/net/minecraft/world/entity/monster/Vindicator.java -index 86886889f4a2859eaf35c57b5130b2b10143a368..f908db6eeff5ee5a1ab2783d8e8bbb1598c3ace3 100644 +index 71d84306788be023bc949400d30966548d968c86..8e5bf153a457026808e2ea670e874e66ca0d5e98 100644 --- a/net/minecraft/world/entity/monster/Vindicator.java +++ b/net/minecraft/world/entity/monster/Vindicator.java -@@ -57,15 +57,34 @@ public class Vindicator extends AbstractIllager { +@@ -56,15 +56,34 @@ public class Vindicator extends AbstractIllager { super(entityType, level); } @@ -4969,10 +4969,10 @@ index 4a4cc7f9c95d4f4b6ad4948e3ed3504efbbcef15..f8a6aba7d6f0f357c72602f4ac6c2537 && this.level() == entity.level() && EntitySelector.NO_CREATIVE_OR_SPECTATOR.test(entity) diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java -index ff4b73b83e96e0ac0b63922e6f72445cd96d2305..098dfbcf406040939e53ec212d3b433ab3b41291 100644 +index 98303277236f2205f20e3db29f17f576ba2a7938..b1cad9a37d8d1f053add366699c5277c4fd84f6b 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java -@@ -250,6 +250,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -249,6 +249,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } // Purpur end - Lobotomize stuck villagers @@ -5001,7 +5001,7 @@ index ff4b73b83e96e0ac0b63922e6f72445cd96d2305..098dfbcf406040939e53ec212d3b433a @Override public Brain getBrain() { return (Brain)super.getBrain(); -@@ -359,7 +381,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -358,7 +380,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } // Purpur end - Lobotomize stuck villagers // Pufferfish start @@ -5010,7 +5010,7 @@ index ff4b73b83e96e0ac0b63922e6f72445cd96d2305..098dfbcf406040939e53ec212d3b433a this.getBrain().tick(level, this); // Paper - EAR 2 } else if (this.isLobotomized && shouldRestock()) restock(); // Purpur - Lobotomize stuck villagers -@@ -419,7 +441,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -418,7 +440,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return super.mobInteract(player, hand); } else if (this.isBaby()) { this.setUnhappy(); @@ -5019,7 +5019,7 @@ index ff4b73b83e96e0ac0b63922e6f72445cd96d2305..098dfbcf406040939e53ec212d3b433a } else { if (!this.level().isClientSide) { boolean isEmpty = this.getOffers().isEmpty(); -@@ -432,9 +454,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -431,9 +453,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } if (isEmpty) { @@ -5072,7 +5072,7 @@ index 93ed977260f369677028bbd8396862f344dfeaa3..e5d6d8bd30876832e6219969849e8260 if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading this.setTradingPlayer(player); diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index cc29c094f81f16e6b4d74877e31fabd4a0e62435..65d981d26c729d63aa9bad1bbe90cef35207e832 100644 +index aba0104c4953ef514118ee8af76d029100081fc4..c421cc7dc6c401a19eaf193abd970f21e910f927 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -239,6 +239,19 @@ public abstract class Player extends LivingEntity { diff --git a/purpur-server/minecraft-patches/unapplied-features/0002-Configurable-entity-base-attributes.patch b/purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch similarity index 99% rename from purpur-server/minecraft-patches/unapplied-features/0002-Configurable-entity-base-attributes.patch rename to purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch index e4676be04..b1bfd2056 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0002-Configurable-entity-base-attributes.patch +++ b/purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch @@ -23,7 +23,7 @@ index 8e8ddab59de508c84c4182e105a11554387dcce0..1896f91e10a5e17332836d5354813a18 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index d272f5e789cb6c03ede0bece14fc3fe976a02ff3..41b6b18130d89b3c3c31bbb2d184fa735a8cd99c 100644 +index e78d30d8fdfcb1a530bf3380251fabd0c9a18f46..ae0c2f41c522656bde37d4f31699ee6172b5a79d 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -202,10 +202,10 @@ index a81ada76bfd6c4b49d1552f48e2009bc7d8c71d2..869a0154c81593db8933f9daa6a7d3a9 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 80517d5c7f074b62555d0991b0ad0678f585834f..6c80c12313147fb022d1bb0c8694fcf85174ae7c 100644 +index b425f43eb15abdfd6e10b5443acc3d5a68d63a70..3bdfd064ba3985e7f3d1c537d60908568678ec78 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java -@@ -127,6 +127,19 @@ public class HappyGhast extends Animal { +@@ -133,6 +133,19 @@ public class HappyGhast extends Animal { } // Purpur end - Ridables @@ -225,7 +225,7 @@ index 80517d5c7f074b62555d0991b0ad0678f585834f..6c80c12313147fb022d1bb0c8694fcf8 @Override protected void ageBoundaryReached() { if (this.isBaby()) { -@@ -150,7 +163,7 @@ public class HappyGhast extends Animal { +@@ -156,7 +169,7 @@ public class HappyGhast extends Animal { @Override protected float sanitizeScale(float scale) { @@ -1222,7 +1222,7 @@ index 0335e85f196363c06597812149e9a93cba57fa9e..5b0794bd87423715cada1f860b4141fd 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 304a1ce41071e5597859b1235fa014f966ff5cfb..c45786fa6b9c7834b73fa0266ad4f37dfdfb8937 100644 +index bb2649001f0b31676a51378745818d5c5b15c443..6311261d71aa062ba497a73cd22cb5dbdf2a4cdb 100644 --- a/net/minecraft/world/entity/monster/Illusioner.java +++ b/net/minecraft/world/entity/monster/Illusioner.java @@ -74,6 +74,16 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -1354,7 +1354,7 @@ index b67ac487ce4a7fd8b2f62452ab0b87f4a55006f2..9e7b07f353fb8f0650b8805014c37136 protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java -index f37ba04ae0277152d93e3e585973d46c25e52395..1782b1c8e03447d3d4e542f7066cb1af8acd8246 100644 +index c19258a6dade5b7605d97eca7140a7b30e00cb8b..5bd06e2128dfbd58d1d6308e93fb6a086185d346 100644 --- a/net/minecraft/world/entity/monster/Shulker.java +++ b/net/minecraft/world/entity/monster/Shulker.java @@ -126,6 +126,14 @@ public class Shulker extends AbstractGolem implements Enemy { @@ -1552,10 +1552,10 @@ index 543913b7e9e92ac43c2e557213a487140326a69e..48e193182861d5e5b5364b226493c665 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 f908db6eeff5ee5a1ab2783d8e8bbb1598c3ace3..0abc1da5154bef4c7aa03d44f651af39b289c187 100644 +index 8e5bf153a457026808e2ea670e874e66ca0d5e98..1f66c8d5194ee5b3794ea86a951ae553aa375422 100644 --- a/net/minecraft/world/entity/monster/Vindicator.java +++ b/net/minecraft/world/entity/monster/Vindicator.java -@@ -74,6 +74,14 @@ public class Vindicator extends AbstractIllager { +@@ -73,6 +73,14 @@ public class Vindicator extends AbstractIllager { } // Purpur end - Ridables @@ -1783,10 +1783,10 @@ index 4c8e49ba064241ec7ac505fa6f5df6d7f9c009b6..f52aba35ee7e202074cda8fb4dfd6a7d 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 098dfbcf406040939e53ec212d3b433ab3b41291..76f9abb9dbb11e1b5d404cd7a398c0e8ee103150 100644 +index b1cad9a37d8d1f053add366699c5277c4fd84f6b..eefc5c1f494f1053f93559e8c666065f561dec10 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java -@@ -272,6 +272,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -271,6 +271,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } // Purpur end - Ridables diff --git a/purpur-server/minecraft-patches/unapplied-features/0003-Barrels-and-enderchests-6-rows.patch b/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch similarity index 97% rename from purpur-server/minecraft-patches/unapplied-features/0003-Barrels-and-enderchests-6-rows.patch rename to purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch index d83757e95..37f418bae 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0003-Barrels-and-enderchests-6-rows.patch +++ b/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index cc26f97e1e72eb077dc60691dadbcd5a52235c0d..1f03fb4c45f0cc97492d3821245cc4c758d258e1 100644 +index 56faf055cfbe1d646db24510092b9ab86950dda4..b5c770317f7d3c5c7857201c7fbb056183161eba 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -1037,6 +1037,27 @@ public abstract class PlayerList { +@@ -1004,6 +1004,27 @@ public abstract class PlayerList { player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); } // Paper - Add sendOpLevel API @@ -35,9 +35,9 @@ index cc26f97e1e72eb077dc60691dadbcd5a52235c0d..1f03fb4c45f0cc97492d3821245cc4c7 + // Purpur end - Barrels and enderchests 6 rows } - public boolean isWhiteListed(GameProfile profile) { + // Paper start - whitelist verify event / login event diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java -index 65d981d26c729d63aa9bad1bbe90cef35207e832..97b104679bb2b9e466caa10d7b022ee6d597e7e5 100644 +index c421cc7dc6c401a19eaf193abd970f21e910f927..acb53dba83fe9481508fa4d4704203a08f575450 100644 --- a/net/minecraft/world/entity/player/Player.java +++ b/net/minecraft/world/entity/player/Player.java @@ -221,6 +221,7 @@ public abstract class Player extends LivingEntity { diff --git a/purpur-server/minecraft-patches/unapplied-features/0004-Giants-AI-settings.patch b/purpur-server/minecraft-patches/features/0004-Giants-AI-settings.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0004-Giants-AI-settings.patch rename to purpur-server/minecraft-patches/features/0004-Giants-AI-settings.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0005-Chickens-can-retaliate.patch b/purpur-server/minecraft-patches/features/0005-Chickens-can-retaliate.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0005-Chickens-can-retaliate.patch rename to purpur-server/minecraft-patches/features/0005-Chickens-can-retaliate.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0006-Minecart-settings-and-WASD-controls.patch b/purpur-server/minecraft-patches/features/0006-Minecart-settings-and-WASD-controls.patch similarity index 98% rename from purpur-server/minecraft-patches/unapplied-features/0006-Minecart-settings-and-WASD-controls.patch rename to purpur-server/minecraft-patches/features/0006-Minecart-settings-and-WASD-controls.patch index e75ec1e8a..62b314a41 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0006-Minecart-settings-and-WASD-controls.patch +++ b/purpur-server/minecraft-patches/features/0006-Minecart-settings-and-WASD-controls.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index 7adb3d1f75896f1e31747e3356b124948a1c77c0..a8d3db032f9a808419b4c3a3790c65a63a31ab9d 100644 +index a249567d9cd2dfb552748ab4112709c0c0d2009b..f047ba2070ffe733a97a944b02fdb5f62046f657 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java -@@ -1270,6 +1270,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc +@@ -1204,6 +1204,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc } else { // Purpur start - Add boat fall damage config if (damageSource.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) { diff --git a/purpur-server/minecraft-patches/unapplied-features/0007-Villagers-follow-emerald-blocks.patch b/purpur-server/minecraft-patches/features/0007-Villagers-follow-emerald-blocks.patch similarity index 96% rename from purpur-server/minecraft-patches/unapplied-features/0007-Villagers-follow-emerald-blocks.patch rename to purpur-server/minecraft-patches/features/0007-Villagers-follow-emerald-blocks.patch index 612d28fa9..88cdc38e7 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0007-Villagers-follow-emerald-blocks.patch +++ b/purpur-server/minecraft-patches/features/0007-Villagers-follow-emerald-blocks.patch @@ -43,10 +43,10 @@ index f8782cdcf3015cad2693663a3c222bd60822f45b..d1a77544df7bcaa5f1dbca3139324107 public static final int VILLAGER_SLOT_OFFSET = 300; private static final int VILLAGER_INVENTORY_SIZE = 8; diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java -index b91c7bdfa4df80bf52ed714efc877a30cdcb3f36..4a68a8124716a57801f2d42a87e4d68c99d2f348 100644 +index eefc5c1f494f1053f93559e8c666065f561dec10..835c80828f831c9bc0f8c7cdf451f268bb36e5ad 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java -@@ -269,6 +269,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -268,6 +268,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); @@ -54,7 +54,7 @@ index b91c7bdfa4df80bf52ed714efc877a30cdcb3f36..4a68a8124716a57801f2d42a87e4d68c } // Purpur end - Ridables -@@ -277,6 +278,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -276,6 +277,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth); this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale); @@ -62,7 +62,7 @@ index b91c7bdfa4df80bf52ed714efc877a30cdcb3f36..4a68a8124716a57801f2d42a87e4d68c } // Purpur end - Configurable entity base attributes -@@ -345,7 +347,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -344,7 +346,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } public static AttributeSupplier.Builder createAttributes() { diff --git a/purpur-server/minecraft-patches/unapplied-features/0008-Implement-elytra-settings.patch b/purpur-server/minecraft-patches/features/0008-Implement-elytra-settings.patch similarity index 98% rename from purpur-server/minecraft-patches/unapplied-features/0008-Implement-elytra-settings.patch rename to purpur-server/minecraft-patches/features/0008-Implement-elytra-settings.patch index 436e1a581..946aaa76c 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0008-Implement-elytra-settings.patch +++ b/purpur-server/minecraft-patches/features/0008-Implement-elytra-settings.patch @@ -51,7 +51,7 @@ index 83cfe63b0245f79d0873477ab3aae75f690ecb68..f32370217735b5e9556a0df7652682d8 itemInHand.shrink(1); // Moved up from below } else { diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java -index 52aaa325476af53eca97fc14ad5f82fbb9193c80..d512ee6b1039b80b908816b625ef1aa9cd50461c 100644 +index 7041e93158ffab707f14ff6e48c3977bebf275a9..b95acf4c688a9113a34e9be2639536245c66c83e 100644 --- a/net/minecraft/world/item/ItemStack.java +++ b/net/minecraft/world/item/ItemStack.java @@ -700,6 +700,14 @@ public final class ItemStack implements DataComponentHolder { diff --git a/purpur-server/minecraft-patches/unapplied-features/0009-Configurable-jockey-options.patch b/purpur-server/minecraft-patches/features/0009-Configurable-jockey-options.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0009-Configurable-jockey-options.patch rename to purpur-server/minecraft-patches/features/0009-Configurable-jockey-options.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0010-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/purpur-server/minecraft-patches/features/0010-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0010-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to purpur-server/minecraft-patches/features/0010-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0011-Phantoms-burn-in-light.patch b/purpur-server/minecraft-patches/features/0011-Phantoms-burn-in-light.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0011-Phantoms-burn-in-light.patch rename to purpur-server/minecraft-patches/features/0011-Phantoms-burn-in-light.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0012-Make-entity-breeding-times-configurable.patch b/purpur-server/minecraft-patches/features/0012-Make-entity-breeding-times-configurable.patch similarity index 99% rename from purpur-server/minecraft-patches/unapplied-features/0012-Make-entity-breeding-times-configurable.patch rename to purpur-server/minecraft-patches/features/0012-Make-entity-breeding-times-configurable.patch index ba379b430..38c5a4791 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0012-Make-entity-breeding-times-configurable.patch +++ b/purpur-server/minecraft-patches/features/0012-Make-entity-breeding-times-configurable.patch @@ -150,10 +150,10 @@ index 869a0154c81593db8933f9daa6a7d3a9d02facc5..37b6bfa8dc1fd4ed0006f6531d2056bc this.partner.resetLove(); serverLevel.addFreshEntityWithPassengers(fox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java -index 801fc7e1a6ec56a6cde5b787daebe3c8c008cc93..50a64a312cb6af0f39117993553b66de1f095150 100644 +index 3bdfd064ba3985e7f3d1c537d60908568678ec78..9b101015f7add4821fb863255294ba2171f5405f 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java -@@ -140,6 +140,13 @@ public class HappyGhast extends Animal { +@@ -146,6 +146,13 @@ public class HappyGhast extends Animal { } // Purpur end - Configurable entity base attributes diff --git a/purpur-server/minecraft-patches/unapplied-features/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch b/purpur-server/minecraft-patches/features/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch similarity index 98% rename from purpur-server/minecraft-patches/unapplied-features/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch rename to purpur-server/minecraft-patches/features/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch index 26a4c805e..570d86d86 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/purpur-server/minecraft-patches/features/0013-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Apply display names from item forms of entities to entities diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java -index 5dfd78a0e00cae85feff8acd785cdfdf23433ba6..e6813da9d002b90acd44db1435f5fa9bf1bbed47 100644 +index e2ffc9b4a95a7684a28b47ad93644c95f9eb5ec8..f145925a8215a501c8013045947de996e3c85532 100644 --- a/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/net/minecraft/world/entity/decoration/ArmorStand.java @@ -450,6 +450,7 @@ public class ArmorStand extends LivingEntity { diff --git a/purpur-server/minecraft-patches/unapplied-features/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/purpur-server/minecraft-patches/features/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch similarity index 98% rename from purpur-server/minecraft-patches/unapplied-features/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch rename to purpur-server/minecraft-patches/features/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index a2f749d85..851fe58ad 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/purpur-server/minecraft-patches/features/0014-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -135,10 +135,10 @@ index f0583076ef62189508a392a76c3fb6b741bbdde9..dc4a9ddb8479e9d0c4895b19d7d677cd brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); } else { diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java -index 4a68a8124716a57801f2d42a87e4d68c99d2f348..3b78e25de462a6fc393175f7992b9a1d4d08c64b 100644 +index 835c80828f831c9bc0f8c7cdf451f268bb36e5ad..d4c4856dccb56e2108f174a37e88ad2268967c8a 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java -@@ -315,7 +315,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -314,7 +314,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler villagerBrain.setSchedule(Schedule.VILLAGER_DEFAULT); villagerBrain.addActivityWithConditions( Activity.WORK, @@ -147,7 +147,7 @@ index 4a68a8124716a57801f2d42a87e4d68c99d2f348..3b78e25de462a6fc393175f7992b9a1d ImmutableSet.of(Pair.of(MemoryModuleType.JOB_SITE, MemoryStatus.VALUE_PRESENT)) ); } -@@ -966,7 +966,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -965,7 +965,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } public boolean hasFarmSeeds() { diff --git a/purpur-server/minecraft-patches/unapplied-features/0015-Add-mobGriefing-override-to-everything-affected.patch b/purpur-server/minecraft-patches/features/0015-Add-mobGriefing-override-to-everything-affected.patch similarity index 99% rename from purpur-server/minecraft-patches/unapplied-features/0015-Add-mobGriefing-override-to-everything-affected.patch rename to purpur-server/minecraft-patches/features/0015-Add-mobGriefing-override-to-everything-affected.patch index d484b34f9..428252ba3 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0015-Add-mobGriefing-override-to-everything-affected.patch +++ b/purpur-server/minecraft-patches/features/0015-Add-mobGriefing-override-to-everything-affected.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing override to everything affected diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index c7071efb54381976890b28d99b15391130217f31..70808e9f092953a3edf7001b318c91228844f73c 100644 +index 4f149e5e17d2d2f2964e2f6626e20f52121e72d9..a70fddd19b24bb25edde63e4fda4685ee6997eba 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -1936,7 +1936,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin diff --git a/purpur-server/minecraft-patches/unapplied-features/0016-Add-EntityTeleportHinderedEvent.patch b/purpur-server/minecraft-patches/features/0016-Add-EntityTeleportHinderedEvent.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0016-Add-EntityTeleportHinderedEvent.patch rename to purpur-server/minecraft-patches/features/0016-Add-EntityTeleportHinderedEvent.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0017-Toggle-for-water-sensitive-mob-damage.patch b/purpur-server/minecraft-patches/features/0017-Toggle-for-water-sensitive-mob-damage.patch similarity index 98% rename from purpur-server/minecraft-patches/unapplied-features/0017-Toggle-for-water-sensitive-mob-damage.patch rename to purpur-server/minecraft-patches/features/0017-Toggle-for-water-sensitive-mob-damage.patch index 00d5670f6..2d34dd1b3 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0017-Toggle-for-water-sensitive-mob-damage.patch +++ b/purpur-server/minecraft-patches/features/0017-Toggle-for-water-sensitive-mob-damage.patch @@ -176,10 +176,10 @@ index 07767c9d649e7ef2b8fd8e3ac62d99ce13271fe4..23e119ce82c3a0541b40249b20f133e3 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 136b918f053cacbc4fa60b0ed434619c5e07adf5..60073e503d6e52160e6d4e037b128bdeb6d56073 100644 +index 9b101015f7add4821fb863255294ba2171f5405f..57d691d4bdb63d20ee582f28c475b5eaca128269 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java -@@ -147,6 +147,13 @@ public class HappyGhast extends Animal { +@@ -153,6 +153,13 @@ public class HappyGhast extends Animal { } // Purpur end - Make entity breeding times configurable @@ -899,7 +899,7 @@ index 75cb1db5584c04e442583ab2f50a26132ed48bfb..9baec22561093d64157d93449e84c23b 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 c45786fa6b9c7834b73fa0266ad4f37dfdfb8937..b2e59058c71eb0b05670be8dcddfff073ae2d0db 100644 +index 6311261d71aa062ba497a73cd22cb5dbdf2a4cdb..4b68c0e999c37b3a3b62b522e2fcc805d2483943 100644 --- a/net/minecraft/world/entity/monster/Illusioner.java +++ b/net/minecraft/world/entity/monster/Illusioner.java @@ -84,6 +84,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -989,7 +989,7 @@ index 23b6d3c9746e1ee641d8b19ec50805cb271a9cc9..d75df6de50f9830efeea826d0ebdac17 protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java -index 1782b1c8e03447d3d4e542f7066cb1af8acd8246..9f6b05671c973e1262cbd6673aac7f1d3a74e2e3 100644 +index 5bd06e2128dfbd58d1d6308e93fb6a086185d346..dae9752d8f45a067b952885b25df3990504c077e 100644 --- a/net/minecraft/world/entity/monster/Shulker.java +++ b/net/minecraft/world/entity/monster/Shulker.java @@ -134,6 +134,13 @@ public class Shulker extends AbstractGolem implements Enemy { @@ -1137,10 +1137,10 @@ index 48e193182861d5e5b5364b226493c665957bcc2f..30bd8a1b75376e6c74847ec338cc7f89 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 0abc1da5154bef4c7aa03d44f651af39b289c187..9f4d93308adc49d7ae83796a8dc43db16e7992b6 100644 +index 1f66c8d5194ee5b3794ea86a951ae553aa375422..28fc1cd1e8721e2a87b5aa610d27afa8df3f4074 100644 --- a/net/minecraft/world/entity/monster/Vindicator.java +++ b/net/minecraft/world/entity/monster/Vindicator.java -@@ -82,6 +82,13 @@ public class Vindicator extends AbstractIllager { +@@ -81,6 +81,13 @@ public class Vindicator extends AbstractIllager { } // Purpur end - Configurable entity base attributes @@ -1317,10 +1317,10 @@ index f52aba35ee7e202074cda8fb4dfd6a7d9ded1f09..f4893cc54d7f144025da0057beedb3a9 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 f46a105ac032d3c5a749e92cf004f6d74d0fb957..b71954a47e930bfc0c501c325697cd88166a190c 100644 +index d4c4856dccb56e2108f174a37e88ad2268967c8a..67732dbbad95791724901058615026a90ad05fc5 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java -@@ -282,6 +282,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -281,6 +281,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } // Purpur end - Configurable entity base attributes diff --git a/purpur-server/minecraft-patches/unapplied-features/0018-API-for-any-mob-to-burn-daylight.patch b/purpur-server/minecraft-patches/features/0018-API-for-any-mob-to-burn-daylight.patch similarity index 99% rename from purpur-server/minecraft-patches/unapplied-features/0018-API-for-any-mob-to-burn-daylight.patch rename to purpur-server/minecraft-patches/features/0018-API-for-any-mob-to-burn-daylight.patch index 82914d436..e68b30dc2 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0018-API-for-any-mob-to-burn-daylight.patch +++ b/purpur-server/minecraft-patches/features/0018-API-for-any-mob-to-burn-daylight.patch @@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 34e0fbef06b0c7aededf27fe9dc64f3f6f33e3ae..ce3e5ec505ac37c820436bcf7c7d6452ff015f70 100644 +index 4bf841dae4d1f95836365f339dd87c102f1355b0..4c18fc20a49cc3680c6215725890679b50bb2d5a 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -542,6 +542,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -35,7 +35,7 @@ index 34e0fbef06b0c7aededf27fe9dc64f3f6f33e3ae..ce3e5ec505ac37c820436bcf7c7d6452 this.type = entityType; this.level = level; diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 70808e9f092953a3edf7001b318c91228844f73c..98096df5f83196a6fee8d26637a1816807952f3f 100644 +index a70fddd19b24bb25edde63e4fda4685ee6997eba..eabee40979ab8a1611b2d4eff04414f303b672f1 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin diff --git a/purpur-server/minecraft-patches/unapplied-features/0019-Cows-naturally-aggressive-to-players-chance.patch b/purpur-server/minecraft-patches/features/0019-Cows-naturally-aggressive-to-players-chance.patch similarity index 100% rename from purpur-server/minecraft-patches/unapplied-features/0019-Cows-naturally-aggressive-to-players-chance.patch rename to purpur-server/minecraft-patches/features/0019-Cows-naturally-aggressive-to-players-chance.patch diff --git a/purpur-server/minecraft-patches/unapplied-features/0020-Mobs-always-drop-experience.patch b/purpur-server/minecraft-patches/features/0020-Mobs-always-drop-experience.patch similarity index 98% rename from purpur-server/minecraft-patches/unapplied-features/0020-Mobs-always-drop-experience.patch rename to purpur-server/minecraft-patches/features/0020-Mobs-always-drop-experience.patch index cb13ab943..84d08f12e 100644 --- a/purpur-server/minecraft-patches/unapplied-features/0020-Mobs-always-drop-experience.patch +++ b/purpur-server/minecraft-patches/features/0020-Mobs-always-drop-experience.patch @@ -167,10 +167,10 @@ index 23e119ce82c3a0541b40249b20f133e39fac6858..8964bb5098c0dc36741af3656af6bc0b 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 60073e503d6e52160e6d4e037b128bdeb6d56073..b187c9db564e8fabc34aa1bfe428a00fafb27fec 100644 +index 57d691d4bdb63d20ee582f28c475b5eaca128269..fb37669b4d66bb853eabf2d15a369d7ad5a2dbb9 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java -@@ -154,6 +154,13 @@ public class HappyGhast extends Animal { +@@ -160,6 +160,13 @@ public class HappyGhast extends Animal { } // Purpur end - Toggle for water sensitive mob damage @@ -869,7 +869,7 @@ index 3f331215ef49c52fa3a53bcf744159d2221111f5..a4ce65911a5d778f60bcedb3acd9fe59 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 b2e59058c71eb0b05670be8dcddfff073ae2d0db..93eaafe260312f26840a2afee8375b8a95d97ba2 100644 +index 4b68c0e999c37b3a3b62b522e2fcc805d2483943..2ea8c8480dcc15eb5b4bc9686554ec912ef1f3f4 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 { @@ -959,7 +959,7 @@ index d75df6de50f9830efeea826d0ebdac17f56d4c4b..2b85cedf235e673d6030c2a649abf60b protected void registerGoals() { super.registerGoals(); diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java -index 9f6b05671c973e1262cbd6673aac7f1d3a74e2e3..a46ca09f661a4f8f3ede6550d613e0c704a9389b 100644 +index dae9752d8f45a067b952885b25df3990504c077e..881a6f340d8e72eb0d9b36e0f658aeef8210889b 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 { @@ -1103,10 +1103,10 @@ index 30bd8a1b75376e6c74847ec338cc7f8988d6ca8a..ab320cf5a8c68fd239e81172a2f3909a 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 9f4d93308adc49d7ae83796a8dc43db16e7992b6..df95c6be4469eeefa248e5ef18cfaba3d4cdeea6 100644 +index 28fc1cd1e8721e2a87b5aa610d27afa8df3f4074..7f70b2387842f65da4632f1a27669a02d4e0402d 100644 --- a/net/minecraft/world/entity/monster/Vindicator.java +++ b/net/minecraft/world/entity/monster/Vindicator.java -@@ -89,6 +89,13 @@ public class Vindicator extends AbstractIllager { +@@ -88,6 +88,13 @@ public class Vindicator extends AbstractIllager { } // Purpur end - Toggle for water sensitive mob damage @@ -1283,10 +1283,10 @@ index f4893cc54d7f144025da0057beedb3a974c80dc1..70ee15527fa6f30783d6a58bb767b181 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 b71954a47e930bfc0c501c325697cd88166a190c..630ef56b5543b1d7a3d0526c132c19b93b217b16 100644 +index 67732dbbad95791724901058615026a90ad05fc5..edef9b959200008dda8c5036319e29c5e2d92dae 100644 --- a/net/minecraft/world/entity/npc/Villager.java +++ b/net/minecraft/world/entity/npc/Villager.java -@@ -289,6 +289,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -288,6 +288,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler } // Purpur end - Toggle for water sensitive mob damage