diff --git a/purpur-server/minecraft-patches/features/0001-Ridables.patch b/purpur-server/minecraft-patches/features/0001-Ridables.patch index 45fa56968..f13921bc2 100644 --- a/purpur-server/minecraft-patches/features/0001-Ridables.patch +++ b/purpur-server/minecraft-patches/features/0001-Ridables.patch @@ -2918,7 +2918,7 @@ index 41200efbaa29ee487c0383b261122e0701413865..871adbd10f49a4d59820c089da149a47 protected void defineSynchedData(SynchedEntityData.Builder builder) { } diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java -index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e29ec35728 100644 +index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..5164a251c67bd3c1ccb8a49a2f1c1196a8a9764e 100644 --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -72,6 +72,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { @@ -2929,7 +2929,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2 private boolean canPortal = false; // Paper public final ServerBossEvent bossEvent = (ServerBossEvent)new ServerBossEvent( this.getDisplayName(), BossEvent.BossBarColor.PURPLE, BossEvent.BossBarOverlay.PROGRESS -@@ -81,9 +82,23 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -81,10 +82,23 @@ public class WitherBoss extends Monster implements RangedAttackMob { && entity.attackable(); private static final TargetingConditions TARGETING_CONDITIONS = TargetingConditions.forCombat().range(20.0).selector(LIVING_ENTITY_SELECTOR); private java.util.@Nullable UUID summoner; // Purpur - Summoner API @@ -2937,6 +2937,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2 public WitherBoss(EntityType type, Level level) { super(type, level); +- this.moveControl = new FlyingMoveControl(this, 10, false); + // Purpur start - Ridables + this.purpurController = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.1F); + this.moveControl = new FlyingMoveControl(this, 10, false) { @@ -2950,10 +2951,10 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2 + } + }; + // Purpur end - Ridables - this.moveControl = new FlyingMoveControl(this, 10, false); this.setHealth(this.getMaxHealth()); this.xpReward = 50; -@@ -99,6 +114,105 @@ public class WitherBoss extends Monster implements RangedAttackMob { + } +@@ -99,6 +113,105 @@ public class WitherBoss extends Monster implements RangedAttackMob { } // Purpur end - Summoner API @@ -3059,7 +3060,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2 @Override protected PathNavigation createNavigation(Level level) { FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level); -@@ -109,11 +223,13 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -109,11 +222,13 @@ public class WitherBoss extends Monster implements RangedAttackMob { @Override protected void registerGoals() { @@ -3073,7 +3074,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2 this.targetSelector.addGoal(1, new HurtByTargetGoal(this)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 0, false, false, LIVING_ENTITY_SELECTOR)); } -@@ -273,6 +389,15 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -273,6 +388,15 @@ public class WitherBoss extends Monster implements RangedAttackMob { @Override protected void customServerAiStep(ServerLevel level) { @@ -3089,7 +3090,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2 if (this.getInvulnerableTicks() > 0) { int i = this.getInvulnerableTicks() - 1; this.bossEvent.setProgress(1.0F - i / 220.0F); -@@ -579,11 +704,11 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -579,11 +703,11 @@ public class WitherBoss extends Monster implements RangedAttackMob { } public int getAlternativeTarget(int head) { diff --git a/purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch b/purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch index c0346feeb..89dd398bb 100644 --- a/purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch +++ b/purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 6e0a2741db06f93f31349515d1d13181b70e08ed..42dcad656dff5ba1e7fa8aced86628ac28f300af 100644 +index 23b51bcf8397a4fc9fdedbd4fcee379322477d39..82e11df2c44a19f9643e98d0be9b7000caadda48 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -295,6 +295,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -212,7 +212,7 @@ index 1a9f5f17e46af831bc6621c83c57e5436397dbc2..85ad44eb3e64232cf1ea326257078c46 public float getWalkTargetValue(BlockPos pos, LevelReader level) { return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos); diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java -index 656335a3bd021efc538ab407673c09a83178ed7c..94f92080de46f2af67e1d28753208691da534ddf 100644 +index 90ad3a0115c3cee36a310505d945afd13ae2c817..a5305e057d7f557bedca71962ebf19b0d7344abf 100644 --- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java +++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java @@ -152,6 +152,14 @@ public class Dolphin extends AgeableWaterCreature { @@ -543,7 +543,7 @@ index f73b3f5ae65f7793ff25145c72fb35e3daec8494..e00e623d7df9e179d8bb5ee481253857 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 1eaa5e5fb65b18e5042d69b5dbfea15a7271c0aa..b2932aeb6000a4e268db12cb7b05be746788569c 100644 +index aea7887cd88604ed7a36f414221035abf999489d..8bd92b3a28ffe70cb9753050c2128c2e744fb1ee 100644 --- a/net/minecraft/world/entity/animal/fish/Pufferfish.java +++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java @@ -59,6 +59,13 @@ public class Pufferfish extends AbstractFish { @@ -616,7 +616,7 @@ index bf00cf5e6fd8b9143e1b327ef7b90ae055d264ff..6819bcb15ad6c85f41a098a9fdb73ce5 protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java -index 4dc1ce5e07e23134cf3ed68e78a055c3b75fdc83..e3c5b6fe7d6cdb674fbf5ac22001c3d917bf91ec 100644 +index 27b9abe5a2d352bdba5822e840abdccdb995b0f7..b32932f1d7c9c0bbd4814eb145339a9a183ff9b9 100644 --- a/net/minecraft/world/entity/animal/golem/CopperGolem.java +++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java @@ -130,6 +130,16 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab @@ -656,7 +656,7 @@ index 363bf7781c8785bc6fdbc65941794a5a02f8a57a..677f584b38aeb6805db0bb867f62d561 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 d8a3b7d329757bb84ee4d53671c89f211e8581ab..ab44bc401438d589696d9f25ebaca0fc39648bed 100644 +index 9b5a531fe67cb17021d5aa1a036ffff36ecb48d5..aa53ee0586a85a64e8c6471735e29b2694f61b9d 100644 --- a/net/minecraft/world/entity/animal/golem/SnowGolem.java +++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java @@ -79,6 +79,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -974,7 +974,7 @@ index 44b650de646ea605e41f39f3d99d8f550c9a8e19..7bccee8b5dd689bbff18f34d3afac52b protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index b8ddcc460ff1ae1cbfde70d3d8c16486bb2d3f8c..844c989fc4e0d131d823bf8a59951f35f30b7641 100644 +index eae6f063a2148ac1ac1689d65d3f80bad79f1ae8..9a8da85462dd74eed8c158ea3343354a255d320d 100644 --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -163,6 +163,13 @@ public class EnderDragon extends Mob implements Enemy { @@ -1001,10 +1001,10 @@ index b8ddcc460ff1ae1cbfde70d3d8c16486bb2d3f8c..844c989fc4e0d131d823bf8a59951f35 // CraftBukkit start - SPIGOT-2420: Special case, the ender dragon drops 12000 xp for the first kill and 500 xp for every other kill and this over time. diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java -index dbf3c7049fae08dc5c4ac491a5fc8141ab177a22..612df8799b80f1793ab9781212442098633e9d65 100644 +index 5164a251c67bd3c1ccb8a49a2f1c1196a8a9764e..1f777f69e37291c9367969f52aef11fe270541b7 100644 --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -213,6 +213,14 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -212,6 +212,14 @@ public class WitherBoss extends Monster implements RangedAttackMob { } // Purpur end - Ridables @@ -1019,7 +1019,7 @@ index dbf3c7049fae08dc5c4ac491a5fc8141ab177a22..612df8799b80f1793ab9781212442098 @Override protected PathNavigation createNavigation(Level level) { FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level); -@@ -435,7 +443,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -434,7 +442,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { this.setInvulnerableTicks(i); if (this.tickCount % 10 == 0) { @@ -1105,7 +1105,7 @@ index bd78d8c3e8c1d9b581c751d336322fbfe20dacef..29570047bfc78a8993b0bbd7168cb4fe 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 844ba943a2a752f9b25506b644a4b4abc981b4cb..c6ae00f6ab83743b9ce43d9e55f04ba23b0de0f1 100644 +index 06687be7b218a2a3140924f5e7216199d85d35be..f92dfcf9e296714f3802264406d8ab627c9bf067 100644 --- a/net/minecraft/world/entity/monster/Endermite.java +++ b/net/minecraft/world/entity/monster/Endermite.java @@ -64,6 +64,14 @@ public class Endermite extends Monster { @@ -1303,7 +1303,7 @@ index 9647741b67e1b4b7bbff0df22fc1bf3fb26afa73..30f2503ebd045b05f5594cef28389a69 private void setVariant(Optional variant) { diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java -index cf305d4a0a71f91caa31757dcd8ca5be84fc3f03..1df006a0a49038f1e737194e7da8e0b27e6eeb95 100644 +index 99b1f5009a14dab2641c1f9096d819538545989e..6f708c041679c0926282241c637162b141d06f64 100644 --- a/net/minecraft/world/entity/monster/Silverfish.java +++ b/net/minecraft/world/entity/monster/Silverfish.java @@ -55,6 +55,16 @@ public class Silverfish extends Monster { @@ -1746,7 +1746,7 @@ index 03c801d5982eed73fd8f56f63ccab570e83b8a53..b5d3bfb68d8f167e5d6439d15024597d 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 f18ac33d31ae23db02654658840b89ba03736bf3..03270138e6fae7ee28f958cafee5b74b18dce355 100644 +index ee66242db5ada8e5f8ab7ddc452c2fa818ebef89..b498cdcb5b49a1e95e4c0f6215defec325e4d8d7 100644 --- a/net/minecraft/world/entity/monster/zombie/Husk.java +++ b/net/minecraft/world/entity/monster/zombie/Husk.java @@ -46,6 +46,18 @@ public class Husk extends Zombie { @@ -1769,7 +1769,7 @@ index f18ac33d31ae23db02654658840b89ba03736bf3..03270138e6fae7ee28f958cafee5b74b public boolean isSunSensitive() { return false; diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java -index b2d322bee9343079c0c21cc7b47493df9cfd861e..d873ca9873e95f3a5869cb63a93b0643a9c867dc 100644 +index 15f2e24e8b8ef367a134d88e7c47a3377beceaea..32b1202379d77b8360cc644885db6fe31f2c4a72 100644 --- a/net/minecraft/world/entity/monster/zombie/Zombie.java +++ b/net/minecraft/world/entity/monster/zombie/Zombie.java @@ -120,6 +120,14 @@ public class Zombie extends Monster { @@ -1797,7 +1797,7 @@ index b2d322bee9343079c0c21cc7b47493df9cfd861e..d873ca9873e95f3a5869cb63a93b0643 class ZombieAttackTurtleEggGoal extends RemoveBlockGoal { diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java -index d91a1aec302a93326a357311f1743fa87ec92fa3..0a02684ec00540b91a2a68e5787e51d15b3743a7 100644 +index 00c8d2cbc5acca9062d8a7029e84fdb575a9130b..1e533522f73fde5b0faf65353a9939ae90a55e8c 100644 --- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java +++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java @@ -102,6 +102,18 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { diff --git a/purpur-server/minecraft-patches/features/0015-Add-mobGriefing-override-to-everything-affected.patch b/purpur-server/minecraft-patches/features/0015-Add-mobGriefing-override-to-everything-affected.patch index 0ad6bdcd3..cda24caa1 100644 --- a/purpur-server/minecraft-patches/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 c4fa59a13be8affa28de7bc8f2da3e353515c821..e80cf370e3ea9fde8cd3dc7875bb4aa3ac7e78ab 100644 +index dc71ae07f2c7a7038e96caf8618dddc5d4932271..717e42ed210408c30f3fa2b6d786a2a51abfecc6 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java @@ -1973,7 +1973,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin @@ -18,7 +18,7 @@ index c4fa59a13be8affa28de7bc8f2da3e353515c821..e80cf370e3ea9fde8cd3dc7875bb4aa3 BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState(); if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) { diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java -index c519f3f501963bde3f1cadf24f88edd2a043215d..c94a1bd594bcd3b2f7525f1541d2e55897954623 100644 +index 94e7307c0d15fdef7f7dcb28473cb76661600b0e..01667b8d45653aa6b0f77d65599f7dc68979f9f1 100644 --- a/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java @@ -554,7 +554,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -44,7 +44,7 @@ index 83aac5dcc51fbc2cc9ee45c155fb2b5b67293a96..c68399986583a215da156b9057a61f22 } else if (!owner.getVillagerData().profession().is(VillagerProfession.FARMER) && !(level.purpurConfig.villagerClericsFarmWarts && owner.getVillagerData().profession().is(VillagerProfession.CLERIC))) { // Purpur - Option for Villager Clerics to farm Nether Wart return false; diff --git a/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java -index 3da917a428b9300d839df610e0e9dceb1d0f0668..a43c0d99458e8aff6a0b0a9eee60ed82b75ffdda 100644 +index 272335ec91615e2619ce95f47dbf228d180239c3..23ba4af0b6785057cfd2a996aebcbcf89697c12f 100644 --- a/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java +++ b/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java @@ -31,7 +31,7 @@ public class BreakDoorGoal extends DoorInteractGoal { @@ -105,7 +105,7 @@ index 3c2f5e711c013a6f51093e94bc4b5518263607a2..a0ed30e8ccd41729de8e0ff977a61fa6 if (blockState.is(Blocks.SWEET_BERRY_BUSH)) { this.pickSweetBerries(blockState); diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java -index ab44bc401438d589696d9f25ebaca0fc39648bed..f011369a67809d54230984a22a909bfea44f47f3 100644 +index aa53ee0586a85a64e8c6471735e29b2694f61b9d..fa941ba3151da7b965678be7e4c6a4194863cd0a 100644 --- a/net/minecraft/world/entity/animal/golem/SnowGolem.java +++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java @@ -135,7 +135,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -131,7 +131,7 @@ index 061418a25d359574c4ff44327082b08b4094ee1c..66fda64006c0a70ab4502f088637bb68 } diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 844c989fc4e0d131d823bf8a59951f35f30b7641..e14347ccc7b21213801e59fa2e0e47964bc943ad 100644 +index 9a8da85462dd74eed8c158ea3343354a255d320d..ecfd9f7b56aee3b701821339f41b60bd7bef0e97 100644 --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -542,7 +542,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -144,10 +144,10 @@ index 844c989fc4e0d131d823bf8a59951f35f30b7641..e14347ccc7b21213801e59fa2e0e4796 //flag1 = level.removeBlock(blockPos, false) || flag1; flag1 = true; diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 612df8799b80f1793ab9781212442098633e9d65..73dbc5ae28c5af00a36528e0397ad1c2eed14f2c 100644 +index 1f777f69e37291c9367969f52aef11fe270541b7..df608186f3e9ab5b56a209be67cd02717d3f9734 100644 --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -495,7 +495,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -494,7 +494,7 @@ public class WitherBoss extends Monster implements RangedAttackMob { if (this.destroyBlocksTick > 0) { this.destroyBlocksTick--; @@ -192,7 +192,7 @@ index 86c55955ff6c0a411cde34999c7bd6ad07be5d4e..7c69423eee05992b9c70321d528cc9d7 AABB aabb = this.getBoundingBox().inflate(0.2); diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java -index 1df006a0a49038f1e737194e7da8e0b27e6eeb95..3e8e3a6018120576b0773769db7b2037148fae96 100644 +index 6f708c041679c0926282241c637162b141d06f64..7f94e9749283f1e51b449b0ef84ca08e246a1cc9 100644 --- a/net/minecraft/world/entity/monster/Silverfish.java +++ b/net/minecraft/world/entity/monster/Silverfish.java @@ -168,7 +168,7 @@ public class Silverfish extends Monster { @@ -307,7 +307,7 @@ index ab94809c5cedc8ea7db6db45394bc9c65516da63..40984af1fc912a7b0367c530c68ee00d return true; } else if (this.mob.getCurrentRaid().isOver()) { diff --git a/net/minecraft/world/level/block/CropBlock.java b/net/minecraft/world/level/block/CropBlock.java -index 4ad9b4afeb6958cba98d8413b3371754730741e5..0b748fac353d6a8b5351ad67df7d239d3efa43b0 100644 +index 3983a5fa08f748ed26caa1d16e194676baa8028e..372559399ce8a4ce551f4403975879e365e1ad75 100644 --- a/net/minecraft/world/level/block/CropBlock.java +++ b/net/minecraft/world/level/block/CropBlock.java @@ -169,7 +169,7 @@ public class CropBlock extends VegetationBlock implements BonemealableBlock { @@ -320,7 +320,7 @@ index 4ad9b4afeb6958cba98d8413b3371754730741e5..0b748fac353d6a8b5351ad67df7d239d } diff --git a/net/minecraft/world/level/block/FarmBlock.java b/net/minecraft/world/level/block/FarmBlock.java -index cd90b5151cae59a63836e88c6457c2954e24a345..3fd6a259788503f2a6d33d29a9247796f75e719a 100644 +index 75b38812b538e0938bbbde62427fa9fd23d372a1..7ec5ef85dbface0ff194a7112d0c4b8e25cab6fe 100644 --- a/net/minecraft/world/level/block/FarmBlock.java +++ b/net/minecraft/world/level/block/FarmBlock.java @@ -114,7 +114,7 @@ public class FarmBlock extends Block { @@ -346,7 +346,7 @@ index f3a9117bd066861a1b447e8a13108ad212cc499f..b0165c839b145e82af38fe8f61bbd016 } // CraftBukkit end diff --git a/net/minecraft/world/level/block/TurtleEggBlock.java b/net/minecraft/world/level/block/TurtleEggBlock.java -index 4f399f227f9a70b8f23dd89cc4aca73c6e65d1c8..c99c625de05f7b40d1b7b184365c4bea642ee865 100644 +index 912c36c2e814cf763b4fa01d149979be9ef460de..733c6ed0ce655d9ff9e03fc1a87131aa8e72eca0 100644 --- a/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/net/minecraft/world/level/block/TurtleEggBlock.java @@ -214,7 +214,7 @@ public class TurtleEggBlock extends Block { diff --git a/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch b/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch index 3d05d0bdd..ba9816440 100644 --- a/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch +++ b/purpur-server/minecraft-patches/features/0016-Toggle-for-water-sensitive-mob-damage.patch @@ -122,7 +122,7 @@ index e2aa027dc7a39fa8a8868a7d153e838113fcf97b..a8e6e703a51130066547724dd08bdfe5 public float getWalkTargetValue(BlockPos pos, LevelReader level) { return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos); diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java -index 94f92080de46f2af67e1d28753208691da534ddf..d73789bb8ce0f65be94437484c3ed41e26cd7510 100644 +index a5305e057d7f557bedca71962ebf19b0d7344abf..e3646a05c6cb973fad36297cc18cf48587a6f5cd 100644 --- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java +++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java @@ -160,6 +160,13 @@ public class Dolphin extends AgeableWaterCreature { @@ -320,7 +320,7 @@ index e00e623d7df9e179d8bb5ee4812538578c5f4c08..8655aae805f239cbd049065232293854 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 b2932aeb6000a4e268db12cb7b05be746788569c..4d21718441b0272774ec69e9b72a180fe417cbb0 100644 +index 8bd92b3a28ffe70cb9753050c2128c2e744fb1ee..414d79f9d1fbd9857c8baeb2888017d45f34f02b 100644 --- a/net/minecraft/world/entity/animal/fish/Pufferfish.java +++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java @@ -66,6 +66,13 @@ public class Pufferfish extends AbstractFish { @@ -410,7 +410,7 @@ index 07ba57ae845024e0f2fa03a68e126ec79bfc6b15..e5f5bc2c4b4f36e0e911b2c5ef67ef6e protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java -index e3c5b6fe7d6cdb674fbf5ac22001c3d917bf91ec..2d0ce5d420f88a95eda34a3fe81c815999bde300 100644 +index b32932f1d7c9c0bbd4814eb145339a9a183ff9b9..e143db15040f8d5be5d07e04a41b7afaf42b4331 100644 --- a/net/minecraft/world/entity/animal/golem/CopperGolem.java +++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java @@ -140,6 +140,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab @@ -446,7 +446,7 @@ index 677f584b38aeb6805db0bb867f62d5617e309f5e..d31c1f1b681922ca8f1657ffa333e8a6 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 f011369a67809d54230984a22a909bfea44f47f3..0fe7f18390490ccf4e944ac3378150ebcc53991d 100644 +index fa941ba3151da7b965678be7e4c6a4194863cd0a..94d319a8fba3a437fb55aa7daaaba0c5c9acbb3b 100644 --- a/net/minecraft/world/entity/animal/golem/SnowGolem.java +++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java @@ -124,7 +124,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -657,7 +657,7 @@ index 08a1bafa0e45dbdbf8bdc4d5cb654d080590707d..20f945ee06bcdb4736e6d3a8b20a5cbd protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index e14347ccc7b21213801e59fa2e0e47964bc943ad..5efddef6e48bf28aa75041c291d954bbad527726 100644 +index ecfd9f7b56aee3b701821339f41b60bd7bef0e97..335bff0b9537ea4ea9717e76e824b07642d7dd8e 100644 --- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -170,6 +170,13 @@ public class EnderDragon extends Mob implements Enemy { @@ -675,10 +675,10 @@ index e14347ccc7b21213801e59fa2e0e47964bc943ad..5efddef6e48bf28aa75041c291d954bb return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0); } diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 73dbc5ae28c5af00a36528e0397ad1c2eed14f2c..ef6dcc8183d9963d1e683f2cc74fec6443d175a9 100644 +index df608186f3e9ab5b56a209be67cd02717d3f9734..4afa484099c7f813d5ae8c7cc8721a0d033c8e6e 100644 --- a/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -221,6 +221,13 @@ public class WitherBoss extends Monster implements RangedAttackMob { +@@ -220,6 +220,13 @@ public class WitherBoss extends Monster implements RangedAttackMob { } // Purpur end - Configurable entity base attributes @@ -773,7 +773,7 @@ index 79a1d8f67a22a8fa4a6c3b657e44bb9503687c27..47c621f01658f3392b58f3f5c1f31bd5 @Override diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java -index c6ae00f6ab83743b9ce43d9e55f04ba23b0de0f1..c79c689cb99ad2a6cab88cf8b583ff0f9e91b115 100644 +index f92dfcf9e296714f3802264406d8ab627c9bf067..b5e620d62702e3330f5ced19f1baeb82bdc801ec 100644 --- a/net/minecraft/world/entity/monster/Endermite.java +++ b/net/minecraft/world/entity/monster/Endermite.java @@ -72,6 +72,13 @@ public class Endermite extends Monster { @@ -917,7 +917,7 @@ index 30f2503ebd045b05f5594cef28389a694338d13a..0a5a6f23cd8e4317db4e7c0ba8883e99 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 3e8e3a6018120576b0773769db7b2037148fae96..1692e7c93234506e22039da071e9c8e8a8567495 100644 +index 7f94e9749283f1e51b449b0ef84ca08e246a1cc9..c64509a5027de1369bde610feba7a39aa5b404fd 100644 --- a/net/minecraft/world/entity/monster/Silverfish.java +++ b/net/minecraft/world/entity/monster/Silverfish.java @@ -65,6 +65,13 @@ public class Silverfish extends Monster { @@ -1263,7 +1263,7 @@ index 327086c972423e4f73402ea2e64519a355fa7b5a..ec36b854dccae7cef905aeb2fcd4ec17 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 d31145fee0f646d734e90199288b29f07854d066..928e2c95146bc3fc9b8c41c5b6c3970fc919bb15 100644 +index 583a1c5bc0add01419f8eb90c65b612db972844d..d2c205f88d3d4e722ab407903ea019f51a3dcdb7 100644 --- a/net/minecraft/world/entity/monster/zombie/Husk.java +++ b/net/minecraft/world/entity/monster/zombie/Husk.java @@ -75,6 +75,13 @@ public class Husk extends Zombie { @@ -1281,7 +1281,7 @@ index d31145fee0f646d734e90199288b29f07854d066..928e2c95146bc3fc9b8c41c5b6c3970f public boolean isSunSensitive() { return false; diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java -index 638642628c3dc9fa25d25c589029219c23d1e602..dfdf9ee98a25ec1f7a1f41326c98155131494d93 100644 +index 88143183167de665216c73b5e19064d7023778b0..b3c62374719e2a0461a587f1311b2e8d90cb892b 100644 --- a/net/minecraft/world/entity/monster/zombie/Zombie.java +++ b/net/minecraft/world/entity/monster/zombie/Zombie.java @@ -142,6 +142,13 @@ public class Zombie extends Monster { @@ -1299,7 +1299,7 @@ index 638642628c3dc9fa25d25c589029219c23d1e602..dfdf9ee98a25ec1f7a1f41326c981551 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 62f55763d95e496da8b8fcf7d95752777e323b48..3da4f757d879f8b855c5d36688f1f5dd50fc88a0 100644 +index 020a15431cca2186fef3f7f6101cef77dabad393..df9682cacc2913aaf51b3afbd86bbc080ab8bde0 100644 --- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java +++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java @@ -131,6 +131,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { diff --git a/purpur-server/minecraft-patches/features/0019-Mobs-always-drop-experience.patch b/purpur-server/minecraft-patches/features/0019-Mobs-always-drop-experience.patch index f4bd718ff..b36075fed 100644 --- a/purpur-server/minecraft-patches/features/0019-Mobs-always-drop-experience.patch +++ b/purpur-server/minecraft-patches/features/0019-Mobs-always-drop-experience.patch @@ -689,10 +689,10 @@ index 20f945ee06bcdb4736e6d3a8b20a5cbd3d79df0f..7fbe841818d08fd930f7ce405e84e5ed 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 ebbefa6ed794b73d7deef86894a81e2b6edbfbed..eb6dfc7e765616fd26f7a22843e646933f6e933b 100644 +index 4afa484099c7f813d5ae8c7cc8721a0d033c8e6e..c25ed738b088fb517d76c038a1ad47cae3f7ecbc 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 { +@@ -227,6 +227,13 @@ public class WitherBoss extends Monster implements RangedAttackMob { } // Purpur end - Toggle for water sensitive mob damage @@ -1265,7 +1265,7 @@ index ec36b854dccae7cef905aeb2fcd4ec177828139c..abafb96df26b3d987ce3ec3e1e96e8fc 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 31b91dbc3f3e1875fbe6750bb815514686d14f7f..ef289dd3fe0be980c200affb0b84a1066fe52232 100644 +index 6ee9369701b370fad3431c39e59dff1beb5752ea..44583271813ed98a591284d16767cc3411341084 100644 --- a/net/minecraft/world/entity/monster/zombie/Husk.java +++ b/net/minecraft/world/entity/monster/zombie/Husk.java @@ -83,6 +83,13 @@ public class Husk extends Zombie { @@ -1283,7 +1283,7 @@ index 31b91dbc3f3e1875fbe6750bb815514686d14f7f..ef289dd3fe0be980c200affb0b84a106 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 7a26b05c15d23eb84e34d02905b3d5c12958c034..d59cb41554c3b89736eab20623c0791e1cc57fb2 100644 +index 2d00d951d0baf3e2b66b237ac3327effea589932..2df9517011560cc730376e99eb0f1be78f431a0e 100644 --- a/net/minecraft/world/entity/monster/zombie/Zombie.java +++ b/net/minecraft/world/entity/monster/zombie/Zombie.java @@ -150,6 +150,13 @@ public class Zombie extends Monster {