From 70d2462a46f8469fbb0578f340c665eed78f0726 Mon Sep 17 00:00:00 2001 From: Ben Kerllenevich Date: Thu, 25 Nov 2021 07:12:14 -0500 Subject: [PATCH] thats a whole lot of patches --- .../0054-Configurable-TPS-Catchup.patch | 4 +-- ...low-loyalty-on-tridents-to-work-in-t.patch | 4 +-- ...derman-and-creeper-griefing-controls.patch | 12 ++++----- ...0057-Villagers-follow-emerald-blocks.patch | 10 +++---- .../0058-Allow-leashing-villagers.patch | 8 +++--- ...urable-search-radius-for-villagers-t.patch | 4 +-- ...Add-player-death-exp-control-options.patch | 4 +-- ...urable-void-damage-height-and-damage.patch | 8 +++--- .../0064-Add-canSaveToDisk-to-Entity.patch | 14 +++++----- ...ispenser-curse-of-binding-protection.patch | 12 ++++----- ...n-for-boats-to-eject-players-on-land.patch | 4 +-- ...g-mends-most-damages-equipment-first.patch | 12 ++++----- ...0068-Add-5-second-tps-average-in-tps.patch | 12 ++++----- .../0069-Implement-elytra-settings.patch | 10 +++---- .../server/0070-Item-entity-immunities.patch | 18 ++++++------- .../server/0071-Add-ping-command.patch | 4 +-- .../server/0072-Add-demo-command.patch | 4 +-- .../server/0073-Add-credits-command.patch | 4 +-- .../0074-Configurable-jockey-options.patch | 20 +++++++------- ...ed-to-crystals-and-crystals-shoot-ph.patch | 16 ++++++------ .../0076-Add-phantom-spawning-options.patch | 10 +++---- ...0077-Implement-bed-explosion-options.patch | 6 ++--- ...ent-respawn-anchor-explosion-options.patch | 2 +- ...-Add-allow-water-in-end-world-option.patch | 26 +++++++++---------- .../0080-Allow-color-codes-in-books.patch | 26 +++++++++---------- .../server/0081-Entity-lifespan.patch | 14 +++++----- ...leport-to-spawn-if-outside-world-bor.patch | 10 +++---- .../server/0083-Squid-EAR-immunity.patch | 2 +- .../server/0084-Phantoms-burn-in-light.patch | 22 ++++++++-------- .../0085-Configurable-villager-breeding.patch | 4 +-- .../0086-Redstone-deactivates-spawners.patch | 6 ++--- .../0087-Totems-work-in-inventory.patch | 4 +-- ...8-Add-vindicator-johnny-spawn-chance.patch | 2 +- ...ion-to-disable-certain-block-updates.patch | 10 +++---- .../0090-Dispensers-place-anvils-option.patch | 12 ++++----- 35 files changed, 170 insertions(+), 170 deletions(-) rename patches/{unapplied => }/server/0069-Implement-elytra-settings.patch (95%) rename patches/{unapplied => }/server/0070-Item-entity-immunities.patch (92%) rename patches/{unapplied => }/server/0071-Add-ping-command.patch (96%) rename patches/{unapplied => }/server/0072-Add-demo-command.patch (96%) rename patches/{unapplied => }/server/0073-Add-credits-command.patch (96%) rename patches/{unapplied => }/server/0074-Configurable-jockey-options.patch (94%) rename patches/{unapplied => }/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch (95%) rename patches/{unapplied => }/server/0076-Add-phantom-spawning-options.patch (95%) rename patches/{unapplied => }/server/0077-Implement-bed-explosion-options.patch (94%) rename patches/{unapplied => }/server/0078-Implement-respawn-anchor-explosion-options.patch (97%) rename patches/{unapplied => }/server/0079-Add-allow-water-in-end-world-option.patch (84%) rename patches/{unapplied => }/server/0080-Allow-color-codes-in-books.patch (74%) rename patches/{unapplied => }/server/0081-Entity-lifespan.patch (88%) rename patches/{unapplied => }/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch (91%) rename patches/{unapplied => }/server/0083-Squid-EAR-immunity.patch (95%) rename patches/{unapplied => }/server/0084-Phantoms-burn-in-light.patch (83%) rename patches/{unapplied => }/server/0085-Configurable-villager-breeding.patch (93%) rename patches/{unapplied => }/server/0086-Redstone-deactivates-spawners.patch (87%) rename patches/{unapplied => }/server/0087-Totems-work-in-inventory.patch (94%) rename patches/{unapplied => }/server/0088-Add-vindicator-johnny-spawn-chance.patch (96%) rename patches/{unapplied => }/server/0089-Add-option-to-disable-certain-block-updates.patch (96%) rename patches/{unapplied => }/server/0090-Dispensers-place-anvils-option.patch (88%) diff --git a/patches/server/0054-Configurable-TPS-Catchup.patch b/patches/server/0054-Configurable-TPS-Catchup.patch index 965b7c7bc..c071a8b9a 100644 --- a/patches/server/0054-Configurable-TPS-Catchup.patch +++ b/patches/server/0054-Configurable-TPS-Catchup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1049f5f40d07f0c0fde965b1ab927607651b3e38..d894903c3f5c8b12b759896d8dd315a0f4c69d19 100644 +index e6c6fe80e2fddceec4cd16b08cf7aab888c7fd9d..a98785ec0e51a242ff29a0a5ae3a6bbbdf16d7c9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1284,7 +1284,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= this.level.paperConfig.netherVoidTopDamageHeight)) { // Paper end diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 27a07aa2b1a85267b2012eb882acb36b04fded66..2553fe5fa89d353d4e41c04c178eb57174b2750a 100644 +index dfbb53ddf9255351b44259d0016b362a3a4625b3..2eea21644321fa07950b44cddfe72c4d8f329702 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2389,7 +2389,7 @@ public abstract class LivingEntity extends Entity { +@@ -2388,7 +2388,7 @@ public abstract class LivingEntity extends Entity { @Override protected void outOfWorld() { diff --git a/patches/server/0064-Add-canSaveToDisk-to-Entity.patch b/patches/server/0064-Add-canSaveToDisk-to-Entity.patch index 001dbee43..de5713391 100644 --- a/patches/server/0064-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0064-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5fb24a823e1aa5d761063f527736c68b7c373e15..87b9812c7c879403792c9a5a91366af7a63bc683 100644 +index 8b62f8ce2f75e6e82dafc770333ccf33f5f94ca8..0c1b9a69b9e90f68b466865a0cd8e6632ecd988a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4316,5 +4316,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -4240,5 +4240,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i public boolean processClick(InteractionHand hand) { return false; } @@ -19,10 +19,10 @@ index 5fb24a823e1aa5d761063f527736c68b7c373e15..87b9812c7c879403792c9a5a91366af7 // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 8a4440f766ea39857c1f1ededeed18313e0f38cb..43de1fa753e54ae09d43a9aef8dda22c27c67b81 100644 +index 8aa986e4fff1b74b95e59b9b2cbee1356411df7c..54ea9f591d31f3503a67b3b10f9f737843c03b79 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -192,6 +192,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -204,6 +204,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob // do not hit rider return target != rider && super.canHitEntity(target); } @@ -35,11 +35,11 @@ index 8a4440f766ea39857c1f1ededeed18313e0f38cb..43de1fa753e54ae09d43a9aef8dda22c skull.setPosRaw(headX, headY, headZ); level.addFreshEntity(skull); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 1c77959518039e4b4fb2ffa8b93f5f69e8587ade..ea27bf92ff04155990871109ebf1f5b9d3796f28 100644 +index bc46fdff45b174d9c266d1b6b546061a39b4997d..bc6d523d6d2449b7590ad318e299e770fe62931d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -@@ -109,6 +109,7 @@ public class EntityStorage implements EntityPersistentStorage { - +@@ -92,6 +92,7 @@ public class EntityStorage implements EntityPersistentStorage { + ListTag listTag = new ListTag(); final java.util.Map, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper dataList.getEntities().forEach((entity) -> { + if (!entity.canSaveToDisk()) return; // Purpur diff --git a/patches/server/0065-Dispenser-curse-of-binding-protection.patch b/patches/server/0065-Dispenser-curse-of-binding-protection.patch index bffe0c935..eec4700ed 100644 --- a/patches/server/0065-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0065-Dispenser-curse-of-binding-protection.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Dispenser curse of binding protection diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 91960c5777fc026053cde1b7487a82d407b69369..7be2798a1b190b44445e3abd55c0598e3432bf27 100644 +index 635af0bde7aca3431ab930be7d018a43f34a4bb3..d936cf11ece70d528e5a0d1176fdbafd9b8f9d93 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -62,6 +62,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; +@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.item.SwordItem; import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; - import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.GameRules; import net.minecraft.world.level.ItemLike; -@@ -1075,6 +1076,12 @@ public abstract class Mob extends LivingEntity { + import net.minecraft.world.level.Level; +@@ -1090,6 +1091,12 @@ public abstract class Mob extends LivingEntity { } @@ -30,10 +30,10 @@ index 91960c5777fc026053cde1b7487a82d407b69369..7be2798a1b190b44445e3abd55c0598e public static Item getEquipmentForSlot(EquipmentSlot equipmentSlot, int equipmentLevel) { switch (equipmentSlot) { diff --git a/src/main/java/net/minecraft/world/item/ArmorItem.java b/src/main/java/net/minecraft/world/item/ArmorItem.java -index e566a6ee8eda9d6e9bc7b0ce153d016ddc0b2797..043ea496bd04bbf4571ec9d16e5362257b3658c8 100644 +index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f532ff04962 100644 --- a/src/main/java/net/minecraft/world/item/ArmorItem.java +++ b/src/main/java/net/minecraft/world/item/ArmorItem.java -@@ -56,7 +56,7 @@ public class ArmorItem extends Item implements Wearable { +@@ -55,7 +55,7 @@ public class ArmorItem extends Item implements Wearable { return false; } else { LivingEntity entityliving = (LivingEntity) list.get(0); diff --git a/patches/server/0066-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0066-Add-option-for-boats-to-eject-players-on-land.patch index 5ae783c04..8bb6d0324 100644 --- a/patches/server/0066-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0066-Add-option-for-boats-to-eject-players-on-land.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option for boats to eject players on land diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 391454a58d18d7373b974e094fd62514ca0d0b6b..6acd2dc6ec9c3761fa330c74df8c7e7b19266f8e 100644 +index b967177cb10041f96831322c311579e409050e88..4b38f8186dcd9a98a5413a51c5563c496ff04d2c 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -@@ -520,6 +520,7 @@ public class Boat extends Entity { +@@ -519,6 +519,7 @@ public class Boat extends Entity { if (f > 0.0F) { this.landFriction = f; diff --git a/patches/server/0067-Mending-mends-most-damages-equipment-first.patch b/patches/server/0067-Mending-mends-most-damages-equipment-first.patch index b415f60d5..3348bdf68 100644 --- a/patches/server/0067-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0067-Mending-mends-most-damages-equipment-first.patch @@ -5,23 +5,23 @@ Subject: [PATCH] Mending mends most damages equipment first diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index ec7d011fa5df0b4775bedc01632ba549d3803693..bc2000c27395618d1816719a862aa9829128d863 100644 +index 8be7a3527018f9f6ecb91576c928c255b3089342..68072fae050fb83735725f3dc2525bfc9c0cc159 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java @@ -319,7 +319,7 @@ public class ExperienceOrb extends Entity { } private int repairPlayerItems(Player player, int amount) { -- Entry entry = EnchantmentHelper.getRandomItemWith(Enchantments.MENDING, (LivingEntity) player, ItemStack::isDamaged); -+ Entry entry = level.purpurConfig.useBetterMending ? EnchantmentHelper.getMostDamagedEquipment(Enchantments.MENDING, player) : EnchantmentHelper.getRandomItemWith(Enchantments.MENDING, (LivingEntity) player, ItemStack::isDamaged); // Purpur +- Entry entry = EnchantmentHelper.getRandomItemWith(Enchantments.MENDING, player, ItemStack::isDamaged); ++ Entry entry = level.purpurConfig.useBetterMending ? EnchantmentHelper.getMostDamagedEquipment(Enchantments.MENDING, player) : EnchantmentHelper.getRandomItemWith(Enchantments.MENDING, player, ItemStack::isDamaged); // Purpur if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 7695a5ec88023720d873f81fc36f78ad60fb9589..47b8b3df98eb775f7e642924fd36005d542a10c6 100644 +index 8f2f516b1f473ce18a07e9f130b49b795dd6b46e..8f0cdf883cdf6825ed53e856b9dc279f3bcd0e1d 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -513,6 +513,16 @@ public final class ItemStack { +@@ -515,6 +515,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -39,7 +39,7 @@ index 7695a5ec88023720d873f81fc36f78ad60fb9589..47b8b3df98eb775f7e642924fd36005d return this.tag == null ? 0 : this.tag.getInt("Damage"); } diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java -index d439e8ce87bf7da03683a336941c7673b8b166e4..955e482e4bc83f2b777cd2e4254c40beef08853b 100644 +index 7bc5aa35b52de0027cf58a6127a9903464ccaf47..f3ec99d2eae31ba7ce7d4b8e7399a56d59f19cad 100644 --- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java +++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java @@ -270,6 +270,29 @@ public class EnchantmentHelper { diff --git a/patches/server/0068-Add-5-second-tps-average-in-tps.patch b/patches/server/0068-Add-5-second-tps-average-in-tps.patch index 034e19f20..82569bec0 100644 --- a/patches/server/0068-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0068-Add-5-second-tps-average-in-tps.patch @@ -27,10 +27,10 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index d894903c3f5c8b12b759896d8dd315a0f4c69d19..688a80485ae28361b993a4de4019ae9794989982 100644 +index a98785ec0e51a242ff29a0a5ae3a6bbbdf16d7c9..5c1d9e9af0efe1b83edf2c47574c67ae8d3c064e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -305,7 +305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0) { @@ -66,7 +66,7 @@ index 47b8b3df98eb775f7e642924fd36005d542a10c6..3bd63474205bf7982af291d973a2a71a int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -596,6 +596,12 @@ public final class ItemStack { +@@ -598,6 +598,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -80,7 +80,7 @@ index 47b8b3df98eb775f7e642924fd36005d542a10c6..3bd63474205bf7982af291d973a2a71a if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) { org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this); diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 510ed67a7de2b503ab8b01db57ed09ee33b0d825..3f53dc8f250ad3f7616ce7ef0a2353caa0ab1879 100644 +index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d005be209 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java @@ -126,6 +126,14 @@ public class TridentItem extends Item implements Vanishable { diff --git a/patches/unapplied/server/0070-Item-entity-immunities.patch b/patches/server/0070-Item-entity-immunities.patch similarity index 92% rename from patches/unapplied/server/0070-Item-entity-immunities.patch rename to patches/server/0070-Item-entity-immunities.patch index 3dd4cf35c..374387a7f 100644 --- a/patches/unapplied/server/0070-Item-entity-immunities.patch +++ b/patches/server/0070-Item-entity-immunities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 7bb12a30d8b4a817f5a85969c6200306fd45a43d..cf94a78d15873f851bf7d79d8e846c66cf45d646 100644 +index 3947e1f2823e8d077350b7e781c04a4b46a83939..9656e8f0338568d317d81f0a54e3354652ec7353 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -2283,7 +2283,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2179,7 +2179,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public class TrackedEntity { @@ -18,10 +18,10 @@ index 7bb12a30d8b4a817f5a85969c6200306fd45a43d..cf94a78d15873f851bf7d79d8e846c66 private final int range; SectionPos lastSectionPos; diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index e158c9bf0fb527105da9dc3f28d88e0ba7337e65..47f5c6726e620072d76f1fa028d7ae51f79cccfb 100644 +index cc44994147e96e6b3f568921db5366a6ced25a1e..1472268e60159f5ada50ec3659268e82a7c22de0 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -68,7 +68,7 @@ public class ServerEntity { +@@ -67,7 +67,7 @@ public class ServerEntity { private boolean wasRiding; private boolean wasOnGround; // CraftBukkit start @@ -31,10 +31,10 @@ index e158c9bf0fb527105da9dc3f28d88e0ba7337e65..47f5c6726e620072d76f1fa028d7ae51 public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer> consumer, Set trackedPlayers) { this.trackedPlayers = trackedPlayers; diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 063f3e4c67e6716c9a03dbe4b72eafd32e4f0d53..f3e642e27dc1e122199088dd1e4b3de5fa13180d 100644 +index 0ac107d7a360a5812a43488c611498d12546eed9..c2b0add36da8ad1bfb3fbfdd180a8606f66b8478 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -53,6 +53,12 @@ public class ItemEntity extends Entity { +@@ -54,6 +54,12 @@ public class ItemEntity extends Entity { public final float bobOffs; private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit public boolean canMobPickup = true; // Paper @@ -47,7 +47,7 @@ index 063f3e4c67e6716c9a03dbe4b72eafd32e4f0d53..f3e642e27dc1e122199088dd1e4b3de5 public ItemEntity(EntityType type, Level world) { super(type, world); -@@ -322,6 +328,16 @@ public class ItemEntity extends Entity { +@@ -321,6 +327,16 @@ public class ItemEntity extends Entity { return false; } else if (!this.getItem().getItem().canBeHurtBy(source)) { return false; @@ -64,7 +64,7 @@ index 063f3e4c67e6716c9a03dbe4b72eafd32e4f0d53..f3e642e27dc1e122199088dd1e4b3de5 } else { // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, source, amount)) { -@@ -504,6 +520,12 @@ public class ItemEntity extends Entity { +@@ -503,6 +519,12 @@ public class ItemEntity extends Entity { com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit this.getEntityData().set(ItemEntity.DATA_ITEM, stack); this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty @@ -77,7 +77,7 @@ index 063f3e4c67e6716c9a03dbe4b72eafd32e4f0d53..f3e642e27dc1e122199088dd1e4b3de5 } @Override -@@ -594,4 +616,17 @@ public class ItemEntity extends Entity { +@@ -593,4 +615,17 @@ public class ItemEntity extends Entity { public SoundSource getSoundSource() { return SoundSource.AMBIENT; } diff --git a/patches/unapplied/server/0071-Add-ping-command.patch b/patches/server/0071-Add-ping-command.patch similarity index 96% rename from patches/unapplied/server/0071-Add-ping-command.patch rename to patches/server/0071-Add-ping-command.patch index 57b29daab..693df5da9 100644 --- a/patches/unapplied/server/0071-Add-ping-command.patch +++ b/patches/server/0071-Add-ping-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ping command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index dc0d785432b8e511a738bebb5c7335432b69427f..47ee3e70021ce17beea4ee6ac967c3180045b804 100644 +index 2474594f165aff55d4a08ccf0a602203cc908f65..2778f58a9b506247cbf9abe2b5fe9ab0f84502de 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -198,6 +198,7 @@ public class Commands { +@@ -205,6 +205,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); diff --git a/patches/unapplied/server/0072-Add-demo-command.patch b/patches/server/0072-Add-demo-command.patch similarity index 96% rename from patches/unapplied/server/0072-Add-demo-command.patch rename to patches/server/0072-Add-demo-command.patch index d3d04d2d8..f45e9ee90 100644 --- a/patches/unapplied/server/0072-Add-demo-command.patch +++ b/patches/server/0072-Add-demo-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add demo command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 47ee3e70021ce17beea4ee6ac967c3180045b804..376768b272f70d1eb45d483c51dec22d91c9d325 100644 +index 2778f58a9b506247cbf9abe2b5fe9ab0f84502de..eaa24bd6147f161e0a00df91a2375d7f259ce0d2 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -198,6 +198,7 @@ public class Commands { +@@ -205,6 +205,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); diff --git a/patches/unapplied/server/0073-Add-credits-command.patch b/patches/server/0073-Add-credits-command.patch similarity index 96% rename from patches/unapplied/server/0073-Add-credits-command.patch rename to patches/server/0073-Add-credits-command.patch index a3720f899..dcf33ec5a 100644 --- a/patches/unapplied/server/0073-Add-credits-command.patch +++ b/patches/server/0073-Add-credits-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add credits command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 376768b272f70d1eb45d483c51dec22d91c9d325..4308cf798c7f97532ee56369a11afe4dbf7a898f 100644 +index eaa24bd6147f161e0a00df91a2375d7f259ce0d2..d054bee8c7c6f6bf608252f21b2f5192b59c086c 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -198,6 +198,7 @@ public class Commands { +@@ -205,6 +205,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); diff --git a/patches/unapplied/server/0074-Configurable-jockey-options.patch b/patches/server/0074-Configurable-jockey-options.patch similarity index 94% rename from patches/unapplied/server/0074-Configurable-jockey-options.patch rename to patches/server/0074-Configurable-jockey-options.patch index d93ac0b6e..1a873e348 100644 --- a/patches/unapplied/server/0074-Configurable-jockey-options.patch +++ b/patches/server/0074-Configurable-jockey-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable jockey options diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 5c4e028d3a7620af1476f63a8ad000eb94ffb992..b2e3ad40cdc594b13eaf43e71e2e18edd1fbb1b7 100644 +index c0e1ed8c536a848c99d1a96038f627cc99c627e7..b321ca2b09d9aab8b1b6387774bcfda3b20bc65b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -89,6 +89,21 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -57,10 +57,10 @@ index 81a3f6c1774b187be96b412dae44be623ce7f6cb..7bb8ef0bb2de9a0b0d5048f8a4089835 public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index dc16331adb1d02265617af9d19638d9d1a28668d..1341377c6fd5ada85831d46d71a6066e8cc2e5cd 100644 +index e1e669bd992f105ba7f42312ba70a39f6d044500..f5551d121d4bd633ce8d667433e1def6e2fcbb8e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -122,6 +122,18 @@ public class Zombie extends Monster { +@@ -119,6 +119,18 @@ public class Zombie extends Monster { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.drownedMaxHealth); } @@ -79,7 +79,7 @@ index dc16331adb1d02265617af9d19638d9d1a28668d..1341377c6fd5ada85831d46d71a6066e // Purpur end @Override -@@ -528,19 +540,20 @@ public class Zombie extends Monster { +@@ -525,19 +537,20 @@ public class Zombie extends Monster { if (object instanceof Zombie.ZombieGroupData) { Zombie.ZombieGroupData entityzombie_groupdatazombie = (Zombie.ZombieGroupData) object; @@ -106,19 +106,19 @@ index dc16331adb1d02265617af9d19638d9d1a28668d..1341377c6fd5ada85831d46d71a6066e Chicken entitychicken1 = (Chicken) EntityType.CHICKEN.create(this.level); entitychicken1.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F); -@@ -548,6 +561,7 @@ public class Zombie extends Monster { +@@ -545,6 +558,7 @@ public class Zombie extends Monster { entitychicken1.setChickenJockey(true); this.startRiding(entitychicken1); - world.addEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit + world.addFreshEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit + } // Purpur } } } diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 9c60e3b3e62a29d6898c82a4110ffd4d1c7cb5f2..7fda07f5fa756077dab59de95f15b9197e09581a 100644 +index 2c93f08b0bb07b90512c317b5583d25c6ea05d82..eb8dc173468f205c7b47915942890fe711e10650 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -94,6 +94,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { +@@ -95,6 +95,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { protected void randomizeReinforcementsChance() { this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level.purpurConfig.zombieVillagerSpawnReinforcements); } @@ -141,10 +141,10 @@ index 9c60e3b3e62a29d6898c82a4110ffd4d1c7cb5f2..7fda07f5fa756077dab59de95f15b919 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index cc5bd132bbd40aba8c910695f25a896c5f4fe635..96e727cd703a1da5f60ab07e47b6bc5265b309e4 100644 +index f30b36b3f1153e1cbd9b8242909d9ba8c995df1d..76f1bbec2b8ebe037de65ee5ec718e17a6081c13 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -@@ -73,6 +73,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { +@@ -74,6 +74,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.zombifiedPiglinMaxHealth); } diff --git a/patches/unapplied/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 95% rename from patches/unapplied/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to patches/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index d5fa833b5..8e524166c 100644 --- a/patches/unapplied/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0075-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index b643a2449e329560c936c0a06fb4cc494d0737a7..92e65f3fbc8f5d77bb8cc31e7a7780c2589f4227 100644 +index d8c4f36ae0e65c6d0398fac80c93b78646bdf6a4..f8863cabad1bd0c3c2c62b8e17612d9559237d68 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -@@ -32,6 +32,12 @@ public class EndCrystal extends Entity { +@@ -31,6 +31,12 @@ public class EndCrystal extends Entity { private static final EntityDataAccessor DATA_SHOW_BOTTOM = SynchedEntityData.defineId(EndCrystal.class, EntityDataSerializers.BOOLEAN); public int time; public boolean generatedByDragonFight = false; // Paper - Fix invulnerable end crystals @@ -21,7 +21,7 @@ index b643a2449e329560c936c0a06fb4cc494d0737a7..92e65f3fbc8f5d77bb8cc31e7a7780c2 public EndCrystal(EntityType type, Level world) { super(type, world); -@@ -81,7 +87,50 @@ public class EndCrystal extends Entity { +@@ -80,7 +86,50 @@ public class EndCrystal extends Entity { // Paper end } @@ -73,10 +73,10 @@ index b643a2449e329560c936c0a06fb4cc494d0737a7..92e65f3fbc8f5d77bb8cc31e7a7780c2 @Override protected void addAdditionalSaveData(CompoundTag nbt) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 5e71b3d5126d30626fbc9bd4b9eefebd20916e60..c314cb61f2e643de7eb12478d265f0664858f935 100644 +index 7e0affe953585b19686bb21b31a6a2b9534aba10..b651ff470853c1c6af2f2c56848a002b066802f5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy { Vec3 moveTargetPoint; BlockPos anchorPoint; Phantom.AttackPhase attackPhase; @@ -84,7 +84,7 @@ index 5e71b3d5126d30626fbc9bd4b9eefebd20916e60..c314cb61f2e643de7eb12478d265f066 public Phantom(EntityType type, Level world) { super(type, world); -@@ -117,6 +118,24 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -116,6 +117,24 @@ public class Phantom extends FlyingMob implements Enemy { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.phantomMaxHealth); } @@ -109,7 +109,7 @@ index 5e71b3d5126d30626fbc9bd4b9eefebd20916e60..c314cb61f2e643de7eb12478d265f066 // Purpur end @Override -@@ -131,11 +150,17 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -130,11 +149,17 @@ public class Phantom extends FlyingMob implements Enemy { @Override protected void registerGoals() { @@ -132,7 +132,7 @@ index 5e71b3d5126d30626fbc9bd4b9eefebd20916e60..c314cb61f2e643de7eb12478d265f066 this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal()); } -@@ -325,6 +350,124 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -324,6 +349,124 @@ public class Phantom extends FlyingMob implements Enemy { private AttackPhase() {} } diff --git a/patches/unapplied/server/0076-Add-phantom-spawning-options.patch b/patches/server/0076-Add-phantom-spawning-options.patch similarity index 95% rename from patches/unapplied/server/0076-Add-phantom-spawning-options.patch rename to patches/server/0076-Add-phantom-spawning-options.patch index 27a72cbb2..baf7692e7 100644 --- a/patches/unapplied/server/0076-Add-phantom-spawning-options.patch +++ b/patches/server/0076-Add-phantom-spawning-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add phantom spawning options diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -index 79504dc3448402e73b09c4232b1fd0488872cf68..300c9f136edace2babea4a574090b1849b2adf76 100644 +index 1e21d6cf2f03219fb2b7217c9a72bdd83c2146f7..dad5d3c754395b39e96be1e35a99c8bf4b1c573c 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java +++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java -@@ -43,8 +43,8 @@ public class PhantomSpawner implements CustomSpawner { +@@ -41,8 +41,8 @@ public class PhantomSpawner implements CustomSpawner { if (this.nextTick > 0) { return 0; } else { @@ -19,7 +19,7 @@ index 79504dc3448402e73b09c4232b1fd0488872cf68..300c9f136edace2babea4a574090b184 return 0; } else { int i = 0; -@@ -56,22 +56,22 @@ public class PhantomSpawner implements CustomSpawner { +@@ -54,22 +54,22 @@ public class PhantomSpawner implements CustomSpawner { if (!entityhuman.isSpectator() && (!world.paperConfig.phantomIgnoreCreative || !entityhuman.isCreative())) { // Paper BlockPos blockposition = entityhuman.blockPosition(); @@ -30,7 +30,7 @@ index 79504dc3448402e73b09c4232b1fd0488872cf68..300c9f136edace2babea4a574090b184 - if (difficultydamagescaler.isHarderThan(random.nextFloat() * 3.0F)) { + if (difficultydamagescaler.isHarderThan(random.nextFloat() * (float) world.purpurConfig.phantomSpawnLocalDifficultyChance)) { // Purpur ServerStatsCounter serverstatisticmanager = ((ServerPlayer) entityhuman).getStats(); - int j = Mth.clamp(serverstatisticmanager.getValue(Stats.CUSTOM.get(Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE); + int j = Mth.clamp(serverstatisticmanager.getValue(Stats.CUSTOM.get(Stats.TIME_SINCE_REST)), (int) 1, Integer.MAX_VALUE); boolean flag2 = true; - if (random.nextInt(j) >= 72000) { @@ -40,7 +40,7 @@ index 79504dc3448402e73b09c4232b1fd0488872cf68..300c9f136edace2babea4a574090b184 BlockState iblockdata = world.getBlockState(blockposition1); FluidState fluid = world.getFluidState(blockposition1); - if (NaturalSpawner.isValidEmptySpawnBlock((BlockGetter) world, blockposition1, iblockdata, fluid, EntityType.PHANTOM)) { + if (NaturalSpawner.isValidEmptySpawnBlock(world, blockposition1, iblockdata, fluid, EntityType.PHANTOM)) { SpawnGroupData groupdataentity = null; - int k = 1 + random.nextInt(difficultydamagescaler.getDifficulty().getId() + 1); + int k = world.purpurConfig.phantomSpawnMinPerAttempt + world.random.nextInt((world.purpurConfig.phantomSpawnMaxPerAttempt < 0 ? difficultydamagescaler.getDifficulty().getId() : world.purpurConfig.phantomSpawnMaxPerAttempt - world.purpurConfig.phantomSpawnMinPerAttempt) + 1); // Purpur diff --git a/patches/unapplied/server/0077-Implement-bed-explosion-options.patch b/patches/server/0077-Implement-bed-explosion-options.patch similarity index 94% rename from patches/unapplied/server/0077-Implement-bed-explosion-options.patch rename to patches/server/0077-Implement-bed-explosion-options.patch index 42cf74485..2fcd6a57d 100644 --- a/patches/unapplied/server/0077-Implement-bed-explosion-options.patch +++ b/patches/server/0077-Implement-bed-explosion-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement bed explosion options diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index e3ff04fe21761db65fb03c5e58ecd5823f0507c6..6362c9dcfbc980a0591ac6dfebe45e475b73d020 100644 +index 20c0030d566012146021613325c6a979f392740e..340e5dee8bf5d8a865c19a8fe63399ae08bf3612 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java -@@ -97,7 +97,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock +@@ -96,7 +96,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock world.removeBlock(blockposition1, false); } @@ -17,7 +17,7 @@ index e3ff04fe21761db65fb03c5e58ecd5823f0507c6..6362c9dcfbc980a0591ac6dfebe45e47 return InteractionResult.SUCCESS; } else if ((Boolean) state.getValue(BedBlock.OCCUPIED)) { if (!this.kickVillagerOutOfBed(world, pos)) { -@@ -146,7 +146,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock +@@ -145,7 +145,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock world.removeBlock(blockposition1, false); } diff --git a/patches/unapplied/server/0078-Implement-respawn-anchor-explosion-options.patch b/patches/server/0078-Implement-respawn-anchor-explosion-options.patch similarity index 97% rename from patches/unapplied/server/0078-Implement-respawn-anchor-explosion-options.patch rename to patches/server/0078-Implement-respawn-anchor-explosion-options.patch index 82b334ea8..658ff4a7d 100644 --- a/patches/unapplied/server/0078-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0078-Implement-respawn-anchor-explosion-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement respawn anchor explosion options diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java -index 0a5d563700c9f806139001181f01fa9d0111f792..1aae3d27ed6c0433312502a59fe1eb70b7d14ac3 100644 +index 07e893f1859abe3c2a765694c21309d60346ca82..0fabe3ec1e9d7dae952db1f1e3dd3af879f0bc54 100644 --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java @@ -120,7 +120,7 @@ public class RespawnAnchorBlock extends Block { diff --git a/patches/unapplied/server/0079-Add-allow-water-in-end-world-option.patch b/patches/server/0079-Add-allow-water-in-end-world-option.patch similarity index 84% rename from patches/unapplied/server/0079-Add-allow-water-in-end-world-option.patch rename to patches/server/0079-Add-allow-water-in-end-world-option.patch index 817cf6f46..5d5b2e94c 100644 --- a/patches/unapplied/server/0079-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0079-Add-allow-water-in-end-world-option.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Add allow water in end world option diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java -index 69c992ef0c526adf35907de7726832605187beb6..6356d5fdb349063071c9119ae776c22e0b321d77 100644 +index b5a5c56fbb66c17dd2e2d1f4d69d2b1826cd4951..c6a141f220ac2405a3f93ba6100b4bf3d9e46482 100644 --- a/src/main/java/net/minecraft/world/item/BucketItem.java +++ b/src/main/java/net/minecraft/world/item/BucketItem.java -@@ -170,7 +170,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { +@@ -168,7 +168,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { // CraftBukkit end if (!flag1) { - return movingobjectpositionblock != null && this.emptyContents(entityhuman, world, movingobjectpositionblock.getBlockPos().relative(movingobjectpositionblock.getDirection()), (BlockHitResult) null, enumdirection, clicked, itemstack, enumhand); // CraftBukkit // Paper - add enumhand -- } else if (world.dimensionType().ultraWarm() && this.content.is((Tag) FluidTags.WATER)) { -+ } else if ((world.isNether() || (world.isTheEnd() && !net.pl3x.purpur.PurpurConfig.allowWaterPlacementInTheEnd)) && this.content.is((Tag) FluidTags.WATER)) { + return movingobjectpositionblock != null && this.emptyContents(entityhuman, world, movingobjectpositionblock.getBlockPos().relative(movingobjectpositionblock.getDirection()), (BlockHitResult) null, enumdirection, clicked, itemstack, enumhand); // CraftBukkit // Paper +- } else if (world.dimensionType().ultraWarm() && this.content.is(FluidTags.WATER)) { ++ } else if ((world.isNether() || (world.isTheEnd() && !net.pl3x.purpur.PurpurConfig.allowWaterPlacementInTheEnd)) && this.content.is(FluidTags.WATER)) { // Purpur int i = blockposition.getX(); int j = blockposition.getY(); int k = blockposition.getZ(); -@@ -178,7 +178,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { +@@ -176,7 +176,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { world.playSound(entityhuman, blockposition, SoundEvents.FIRE_EXTINGUISH, SoundSource.BLOCKS, 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); for (int l = 0; l < 8; ++l) { @@ -27,12 +27,12 @@ index 69c992ef0c526adf35907de7726832605187beb6..6356d5fdb349063071c9119ae776c22e return true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index c44dc4cefdd74437a39283800aa6e93372525fbd..a1d9e9caed9e922cc65512a36019a0993bf549c6 100644 +index 73ebe9d8da0dbfb9d4d8f041d8b911d4931f3d04..112078739e234ee7b676a499fe33e5b2f505526b 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1486,4 +1486,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - } - +@@ -1493,4 +1493,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + public boolean shouldDelayFallingBlockEntityRemoval(Entity.RemovalReason reason) { + return false; } + + // Purpur start @@ -46,10 +46,10 @@ index c44dc4cefdd74437a39283800aa6e93372525fbd..a1d9e9caed9e922cc65512a36019a099 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java -index df4f2c729f09d5229553308e4876f29de648543f..f2b0278679fa649bbc2904660e0dc9ab4ad54542 100644 +index 2676cddca511ea775766cec0001269407599df6e..096d6a07cd44cc674b53e5d3759e44f26b654bf1 100644 --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java -@@ -27,7 +27,7 @@ public class IceBlock extends HalfTransparentBlock { +@@ -26,7 +26,7 @@ public class IceBlock extends HalfTransparentBlock { public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { super.playerDestroy(world, player, pos, state, blockEntity, stack); if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) == 0) { @@ -58,7 +58,7 @@ index df4f2c729f09d5229553308e4876f29de648543f..f2b0278679fa649bbc2904660e0dc9ab world.removeBlock(pos, false); return; } -@@ -55,7 +55,7 @@ public class IceBlock extends HalfTransparentBlock { +@@ -54,7 +54,7 @@ public class IceBlock extends HalfTransparentBlock { return; } // CraftBukkit end diff --git a/patches/unapplied/server/0080-Allow-color-codes-in-books.patch b/patches/server/0080-Allow-color-codes-in-books.patch similarity index 74% rename from patches/unapplied/server/0080-Allow-color-codes-in-books.patch rename to patches/server/0080-Allow-color-codes-in-books.patch index a77b812db..4d6c651db 100644 --- a/patches/unapplied/server/0080-Allow-color-codes-in-books.patch +++ b/patches/server/0080-Allow-color-codes-in-books.patch @@ -5,30 +5,30 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 367876813fcf772baf6542e1422b5c9572056a18..ba6a674c2b18108390c7b9d2bb313a603d9909b4 100644 +index 7047a77b6f6b9b15145dd8c54e978d81b1f4e998..3e5bb0075766c826995807b4b16cf12f3b06a755 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1219,13 +1219,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1185,13 +1185,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser itemstack1.setTag(nbttagcompound.copy()); } + // Purpur start + boolean hasPerm = getCraftPlayer().hasPermission("purpur.book.color.edit") || getCraftPlayer().hasPermission("purpur.book.color.sign"); // Purpur - itemstack1.addTagElement("author", (Tag) StringTag.valueOf(this.player.getName().getString())); + itemstack1.addTagElement("author", StringTag.valueOf(this.player.getName().getString())); if (this.player.isTextFilteringEnabled()) { -- itemstack1.addTagElement("title", (Tag) StringTag.valueOf(title.getFiltered())); -+ itemstack1.addTagElement("title", (Tag) StringTag.valueOf(color(title.getFiltered(), hasPerm))); +- itemstack1.addTagElement("title", StringTag.valueOf(title.getFiltered())); ++ itemstack1.addTagElement("title", StringTag.valueOf(color(title.getFiltered(), hasPerm))); } else { -- itemstack1.addTagElement("filtered_title", (Tag) StringTag.valueOf(title.getFiltered())); -- itemstack1.addTagElement("title", (Tag) StringTag.valueOf(title.getRaw())); -+ itemstack1.addTagElement("filtered_title", (Tag) StringTag.valueOf(color(title.getFiltered(), hasPerm))); -+ itemstack1.addTagElement("title", (Tag) StringTag.valueOf(color(title.getRaw(), hasPerm))); +- itemstack1.addTagElement("filtered_title", StringTag.valueOf(title.getFiltered())); +- itemstack1.addTagElement("title", StringTag.valueOf(title.getRaw())); ++ itemstack1.addTagElement("filtered_title", StringTag.valueOf(color(title.getFiltered(), hasPerm))); ++ itemstack1.addTagElement("title", StringTag.valueOf(color(title.getRaw(), hasPerm))); } + // Purpur end this.updateBookPages(pages, (s) -> { - return Component.Serializer.toJson((Component) (new TextComponent(s))); -@@ -1237,10 +1240,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser + return Component.Serializer.toJson(new TextComponent(s)); +@@ -1203,10 +1206,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -44,7 +44,7 @@ index 367876813fcf772baf6542e1422b5c9572056a18..ba6a674c2b18108390c7b9d2bb313a60 Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1250,10 +1256,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1216,10 +1222,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser for (int j = list.size(); i < j; ++i) { TextFilter.FilteredText itextfilter_a = (TextFilter.FilteredText) list.get(i); @@ -57,7 +57,7 @@ index 367876813fcf772baf6542e1422b5c9572056a18..ba6a674c2b18108390c7b9d2bb313a60 if (!s.equals(s1)) { nbttagcompound.putString(String.valueOf(i), (String) unaryoperator.apply(s1)); -@@ -1269,6 +1275,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1235,6 +1241,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } diff --git a/patches/unapplied/server/0081-Entity-lifespan.patch b/patches/server/0081-Entity-lifespan.patch similarity index 88% rename from patches/unapplied/server/0081-Entity-lifespan.patch rename to patches/server/0081-Entity-lifespan.patch index fbe0077b4..e1fb39e27 100644 --- a/patches/unapplied/server/0081-Entity-lifespan.patch +++ b/patches/server/0081-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 7be2798a1b190b44445e3abd55c0598e3432bf27..a268895fa22b81c164837a731d4bde51a68190c4 100644 +index d936cf11ece70d528e5a0d1176fdbafd9b8f9d93..198fe041d20e7ed21b47d5c22dcc121a8d388623 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -126,6 +126,7 @@ public abstract class Mob extends LivingEntity { +@@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity { private BlockPos restrictCenter; private float restrictRadius; @@ -16,7 +16,7 @@ index 7be2798a1b190b44445e3abd55c0598e3432bf27..a268895fa22b81c164837a731d4bde51 public boolean aware = true; // CraftBukkit protected Mob(EntityType type, Level world) { -@@ -283,6 +284,7 @@ public abstract class Mob extends LivingEntity { +@@ -286,6 +287,7 @@ public abstract class Mob extends LivingEntity { entityliving = null; } } @@ -24,7 +24,7 @@ index 7be2798a1b190b44445e3abd55c0598e3432bf27..a268895fa22b81c164837a731d4bde51 this.target = entityliving; return true; // CraftBukkit end -@@ -327,9 +329,35 @@ public abstract class Mob extends LivingEntity { +@@ -330,9 +332,35 @@ public abstract class Mob extends LivingEntity { this.playAmbientSound(); } @@ -60,7 +60,7 @@ index 7be2798a1b190b44445e3abd55c0598e3432bf27..a268895fa22b81c164837a731d4bde51 @Override protected void playHurtSound(DamageSource source) { this.resetAmbientSoundTime(); -@@ -513,6 +541,7 @@ public abstract class Mob extends LivingEntity { +@@ -516,6 +544,7 @@ public abstract class Mob extends LivingEntity { } nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit @@ -68,7 +68,7 @@ index 7be2798a1b190b44445e3abd55c0598e3432bf27..a268895fa22b81c164837a731d4bde51 } @Override -@@ -583,6 +612,11 @@ public abstract class Mob extends LivingEntity { +@@ -586,6 +615,11 @@ public abstract class Mob extends LivingEntity { this.aware = nbt.getBoolean("Bukkit.Aware"); } // CraftBukkit end @@ -80,7 +80,7 @@ index 7be2798a1b190b44445e3abd55c0598e3432bf27..a268895fa22b81c164837a731d4bde51 } @Override -@@ -1590,6 +1624,7 @@ public abstract class Mob extends LivingEntity { +@@ -1605,6 +1639,7 @@ public abstract class Mob extends LivingEntity { this.setLastHurtMob(target); } diff --git a/patches/unapplied/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch similarity index 91% rename from patches/unapplied/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch rename to patches/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index a0f7a2ab9..3496efbca 100644 --- a/patches/unapplied/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0082-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c488f0c2db28b5eff7209fe900ca27408fc1ce0e..dd3b3e4821dbd3a1fb73ddcc31c022175c18708d 100644 +index 11ebb94eb26836231cdd81514a5639e756876e09..48f19d3cfbf310344bf062b269a5f5eecc2887a5 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2519,5 +2519,25 @@ public class ServerPlayer extends Player { +@@ -2538,5 +2538,25 @@ public class ServerPlayer extends Player { } // CraftBukkit end @@ -35,10 +35,10 @@ index c488f0c2db28b5eff7209fe900ca27408fc1ce0e..dd3b3e4821dbd3a1fb73ddcc31c02217 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 71ef80e636ac7c208b362410eaaffa497dd9ceca..63936445bc9005c11bbe669e29897786963e7626 100644 +index 782c49ebd9574aa68de4693fec20c6130f656c23..17828733fff18cb3159dd75280aa1f1b32ac088f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -45,6 +45,7 @@ import net.minecraft.network.syncher.EntityDataAccessor; +@@ -43,6 +43,7 @@ import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.resources.ResourceLocation; @@ -46,7 +46,7 @@ index 71ef80e636ac7c208b362410eaaffa497dd9ceca..63936445bc9005c11bbe669e29897786 import net.minecraft.server.level.ServerChunkCache; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -@@ -407,6 +408,7 @@ public abstract class LivingEntity extends Entity { +@@ -408,6 +409,7 @@ public abstract class LivingEntity extends Entity { double d1 = this.level.getWorldBorder().getDamagePerBlock(); if (d1 > 0.0D) { diff --git a/patches/unapplied/server/0083-Squid-EAR-immunity.patch b/patches/server/0083-Squid-EAR-immunity.patch similarity index 95% rename from patches/unapplied/server/0083-Squid-EAR-immunity.patch rename to patches/server/0083-Squid-EAR-immunity.patch index 9e28c5c4b..ea633c472 100644 --- a/patches/unapplied/server/0083-Squid-EAR-immunity.patch +++ b/patches/server/0083-Squid-EAR-immunity.patch @@ -25,7 +25,7 @@ index 213950f1d36c504824d0053843c3fe869f9eed84..1c1a1ed14a1e2a80b3a26cb990b25779 public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 12ffca6a545e4af5c66ecd8b15d9d8e20a6327c1..a42a96819abe9651ea31a6f869d0017303a17323 100644 +index 7e1bc869299cd2f382f05bb814946e6841cc845e..f71db0f2d37a9f813d188dc2d036fae939aa6db7 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -14,6 +14,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; diff --git a/patches/unapplied/server/0084-Phantoms-burn-in-light.patch b/patches/server/0084-Phantoms-burn-in-light.patch similarity index 83% rename from patches/unapplied/server/0084-Phantoms-burn-in-light.patch rename to patches/server/0084-Phantoms-burn-in-light.patch index 489c32796..711ca63d2 100644 --- a/patches/unapplied/server/0084-Phantoms-burn-in-light.patch +++ b/patches/server/0084-Phantoms-burn-in-light.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Phantoms burn in light diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index c314cb61f2e643de7eb12478d265f0664858f935..789224c6285cde2009e000d98e190c36459f04e8 100644 +index b651ff470853c1c6af2f2c56848a002b066802f5..edb28f9424af0d1973231729785b6ec67b599dbd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -51,6 +51,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { BlockPos anchorPoint; Phantom.AttackPhase attackPhase; Vec3 crystalPosition; // Purpur @@ -16,7 +16,7 @@ index c314cb61f2e643de7eb12478d265f0664858f935..789224c6285cde2009e000d98e190c36 public Phantom(EntityType type, Level world) { super(type, world); -@@ -230,7 +231,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -229,7 +230,7 @@ public class Phantom extends FlyingMob implements Enemy { @Override public void aiStep() { @@ -25,7 +25,7 @@ index c314cb61f2e643de7eb12478d265f0664858f935..789224c6285cde2009e000d98e190c36 this.setSecondsOnFire(8); } -@@ -630,6 +631,12 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -633,6 +634,12 @@ public class Phantom extends FlyingMob implements Enemy { return false; } else if (!entityliving.isAlive()) { return false; @@ -35,16 +35,16 @@ index c314cb61f2e643de7eb12478d265f0664858f935..789224c6285cde2009e000d98e190c36 + } else if (level.purpurConfig.phantomIgnorePlayersWithTorch && (TORCH.test(entityliving.getItemInHand(net.minecraft.world.InteractionHand.MAIN_HAND)) || TORCH.test(entityliving.getItemInHand(net.minecraft.world.InteractionHand.OFF_HAND)))) { + return false; + // Purpur end - } else if (entityliving instanceof Player && (((Player) entityliving).isSpectator() || ((Player) entityliving).isCreative())) { - return false; - } else if (!this.canUse()) { -@@ -767,6 +774,7 @@ public class Phantom extends FlyingMob implements Enemy { - this.nextScanTick = 60; - List list = Phantom.this.level.getNearbyPlayers(this.attackTargeting, (LivingEntity) Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D)); + } else { + if (entityliving instanceof Player) { + Player entityhuman = (Player) entityliving; +@@ -778,6 +785,7 @@ public class Phantom extends FlyingMob implements Enemy { + this.nextScanTick = reducedTickDelay(60); + List list = Phantom.this.level.getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D)); + if (level.purpurConfig.phantomIgnorePlayersWithTorch) list.removeIf(human -> TORCH.test(human.getItemInHand(net.minecraft.world.InteractionHand.MAIN_HAND)) || TORCH.test(human.getItemInHand(net.minecraft.world.InteractionHand.OFF_HAND)));// Purpur if (!list.isEmpty()) { - list.sort(Comparator.comparing(Entity::getY).reversed()); // Paper - remap fix + list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error Iterator iterator = list.iterator(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 1c1a1ed14a1e2a80b3a26cb990b2577904d73b0b..f06fb11df26f7a7e3fdb1f7ce21aa67e3ed5a07d 100644 diff --git a/patches/unapplied/server/0085-Configurable-villager-breeding.patch b/patches/server/0085-Configurable-villager-breeding.patch similarity index 93% rename from patches/unapplied/server/0085-Configurable-villager-breeding.patch rename to patches/server/0085-Configurable-villager-breeding.patch index 8f9502fce..375104521 100644 --- a/patches/unapplied/server/0085-Configurable-villager-breeding.patch +++ b/patches/server/0085-Configurable-villager-breeding.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index f5a24c2be1c9c4148594130107981ad7434bb835..c942bcedcfb260141589465105091c67d6e762c9 100644 +index d195212838e253d7a479a89c6650bb008c5daadd..145607300ed953e88b0f9fc1fc61bc34a6c92f84 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -751,7 +751,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -754,7 +754,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public boolean canBreed() { diff --git a/patches/unapplied/server/0086-Redstone-deactivates-spawners.patch b/patches/server/0086-Redstone-deactivates-spawners.patch similarity index 87% rename from patches/unapplied/server/0086-Redstone-deactivates-spawners.patch rename to patches/server/0086-Redstone-deactivates-spawners.patch index 5bf39e03f..398baa1a6 100644 --- a/patches/unapplied/server/0086-Redstone-deactivates-spawners.patch +++ b/patches/server/0086-Redstone-deactivates-spawners.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Redstone deactivates spawners diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java -index 569cef8fcb1e3e1e8b66dad4fa9b956b44542bf1..53a4faa154e1da8dc37b2adec1a5b74c2e1de4b9 100644 +index 03726227fdd60e9cf77213d50184abff438e01ef..76979991d2ded84161e8a0fc72cbb2d2c3c6c55e 100644 --- a/src/main/java/net/minecraft/world/level/BaseSpawner.java +++ b/src/main/java/net/minecraft/world/level/BaseSpawner.java -@@ -78,6 +78,7 @@ public abstract class BaseSpawner { +@@ -52,6 +52,7 @@ public abstract class BaseSpawner { } - public boolean isNearPlayer(Level world, BlockPos pos) { // Paper private->public + public boolean isNearPlayer(Level world, BlockPos pos) { + if (world.purpurConfig.spawnerDeactivateByRedstone && world.hasNeighborSignal(pos)) return false; // Purpur return world.isAffectsSpawningPlayerNearby((double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, (double) this.requiredPlayerRange); // Paper } diff --git a/patches/unapplied/server/0087-Totems-work-in-inventory.patch b/patches/server/0087-Totems-work-in-inventory.patch similarity index 94% rename from patches/unapplied/server/0087-Totems-work-in-inventory.patch rename to patches/server/0087-Totems-work-in-inventory.patch index 32ee2cb60..041ae404b 100644 --- a/patches/unapplied/server/0087-Totems-work-in-inventory.patch +++ b/patches/server/0087-Totems-work-in-inventory.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 63936445bc9005c11bbe669e29897786963e7626..f23b12206e762a52879ba800353638b536e3a2f1 100644 +index 17828733fff18cb3159dd75280aa1f1b32ac088f..4904abec73580eee50c12a8edcb6e743805b018e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1517,6 +1517,19 @@ public abstract class LivingEntity extends Entity { +@@ -1512,6 +1512,19 @@ public abstract class LivingEntity extends Entity { } } diff --git a/patches/unapplied/server/0088-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0088-Add-vindicator-johnny-spawn-chance.patch similarity index 96% rename from patches/unapplied/server/0088-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0088-Add-vindicator-johnny-spawn-chance.patch index a18f005b4..b525fe88f 100644 --- a/patches/unapplied/server/0088-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0088-Add-vindicator-johnny-spawn-chance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add vindicator johnny spawn chance diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 9b4a20a78f24d4b05fefbf2a7d05686ef9cc8adb..f65a997db7ee0d8e06dfe7cf41dd2231e67b1a2f 100644 +index 730fd18cd9dc334fe527283a2ba5e5259fbfead5..c611dd58a7697093087c6d2c3b47cf85a1400722 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -7,6 +7,7 @@ import java.util.function.Predicate; diff --git a/patches/unapplied/server/0089-Add-option-to-disable-certain-block-updates.patch b/patches/server/0089-Add-option-to-disable-certain-block-updates.patch similarity index 96% rename from patches/unapplied/server/0089-Add-option-to-disable-certain-block-updates.patch rename to patches/server/0089-Add-option-to-disable-certain-block-updates.patch index e5603a382..2905d987b 100644 --- a/patches/unapplied/server/0089-Add-option-to-disable-certain-block-updates.patch +++ b/patches/server/0089-Add-option-to-disable-certain-block-updates.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to disable certain block updates diff --git a/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java b/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java -index bdd3369ac1b5386642d706921e5b2c94450ae96b..3ce2146099ca55b1ac96c02fdb95712a0becf43f 100644 +index 2c29c125edac43cdf13da8eababe60fb7a87df15..8646d36b0a48b0d0cdfeab8e52a567b70aa0eff3 100644 --- a/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ChorusPlantBlock.java @@ -21,6 +21,7 @@ public class ChorusPlantBlock extends PipeBlock { @@ -22,7 +22,7 @@ index bdd3369ac1b5386642d706921e5b2c94450ae96b..3ce2146099ca55b1ac96c02fdb95712a public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) { + if (net.pl3x.purpur.PurpurConfig.disableChorusPlantUpdates) return state; // Purpur if (!state.canSurvive(world, pos)) { - world.getBlockTicks().scheduleTick(pos, this, 1); + world.scheduleTick(pos, this, 1); return super.updateShape(state, direction, neighborState, world, pos, neighborPos); diff --git a/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java b/src/main/java/net/minecraft/world/level/block/HugeMushroomBlock.java index 3c6d97b51c6fec130b80e5965afa2c49d48843c9..174d16ae5c45dd3a4c9b4cc58b36121bef38d9cc 100644 @@ -99,10 +99,10 @@ index 3c6d97b51c6fec130b80e5965afa2c49d48843c9..174d16ae5c45dd3a4c9b4cc58b36121b @Override diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -index f8e58d9f71703139a736d93e7f1996e027a29444..59ae3bb34678cdb5241f691915c96d6568363d3b 100644 +index 16e11e31077f160198e0b04abdfeabb97ed20c6f..0512b3701a3bf33891ab6281355c07af6be5b9c1 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java -@@ -35,11 +35,13 @@ public class NoteBlock extends Block { +@@ -34,11 +34,13 @@ public class NoteBlock extends Block { @Override public BlockState getStateForPlacement(BlockPlaceContext ctx) { @@ -116,7 +116,7 @@ index f8e58d9f71703139a736d93e7f1996e027a29444..59ae3bb34678cdb5241f691915c96d65 return direction == Direction.DOWN ? (BlockState) state.setValue(NoteBlock.INSTRUMENT, NoteBlockInstrument.byState(neighborState)) : super.updateShape(state, direction, neighborState, world, pos, neighborPos); } -@@ -53,6 +55,7 @@ public class NoteBlock extends Block { +@@ -52,6 +54,7 @@ public class NoteBlock extends Block { state = world.getBlockState(pos); // CraftBukkit - SPIGOT-5617: update in case changed in event } diff --git a/patches/unapplied/server/0090-Dispensers-place-anvils-option.patch b/patches/server/0090-Dispensers-place-anvils-option.patch similarity index 88% rename from patches/unapplied/server/0090-Dispensers-place-anvils-option.patch rename to patches/server/0090-Dispensers-place-anvils-option.patch index 8a2fd7755..e4d43974a 100644 --- a/patches/unapplied/server/0090-Dispensers-place-anvils-option.patch +++ b/patches/server/0090-Dispensers-place-anvils-option.patch @@ -5,21 +5,21 @@ Subject: [PATCH] Dispensers place anvils option diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 915c68888963b879bf74dc67cc6ffb174228f9e4..c507e60a4836d9cfa5e076841b9b7375ea9ac997 100644 +index 59db245fe11384282af84ec1d5be08ab0e9484ca..a08eebaa08a75be4e7e8f6d560740ea18151cc93 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -@@ -53,6 +53,7 @@ import net.minecraft.world.level.BlockGetter; - import net.minecraft.world.level.ItemLike; +@@ -50,6 +50,7 @@ import net.minecraft.world.item.SpawnEggItem; + import net.minecraft.world.item.alchemy.PotionUtils; + import net.minecraft.world.item.alchemy.Potions; import net.minecraft.world.level.Level; - import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.AnvilBlock; import net.minecraft.world.level.block.BaseFireBlock; import net.minecraft.world.level.block.BeehiveBlock; import net.minecraft.world.level.block.Block; -@@ -1110,6 +1111,23 @@ public interface DispenseItemBehavior { +@@ -1107,6 +1108,23 @@ public interface DispenseItemBehavior { } } - })); + }); + // Purpur start + DispenserBlock.registerBehavior(Items.ANVIL, (new OptionalDispenseItemBehavior() { + @Override