From 0124b34eaef0c9f0debd0cdc4d19604df4489771 Mon Sep 17 00:00:00 2001 From: Ben Kerllenevich Date: Thu, 25 Nov 2021 08:22:21 -0500 Subject: [PATCH] 50 patches, around 57 to go --- .../0148-Dont-run-with-scissors.patch} | 16 +++--- .../0149-One-Punch-Man.patch} | 6 +- ...150-Add-config-for-snow-on-blue-ice.patch} | 8 +-- ...r-Pearl-cooldown-damage-and-Endermi.patch} | 6 +- ...to-ignore-nearby-mobs-when-sleeping.patch} | 8 +-- ...d-back-player-spawned-endermite-API.patch} | 4 +- ...n-aggressiveness-towards-Endermites.patch} | 10 ++-- ...Dragon-Head-wearers-and-stare-aggro.patch} | 10 ++-- .../0156-Tick-fluids-config.patch} | 24 ++++---- ...57-Config-to-disable-Llama-caravans.patch} | 12 ++-- ...g-to-make-Creepers-explode-on-death.patch} | 8 +-- ...rable-ravager-griefable-blocks-list.patch} | 12 ++-- ...160-Sneak-to-bulk-process-composter.patch} | 20 +++---- .../0161-Config-for-skipping-night.patch} | 14 ++--- ...162-Add-config-for-villager-trading.patch} | 14 ++--- .../0163-Allow-infinity-on-crossbows.patch} | 2 +- .../0164-Drowning-Settings.patch} | 18 +++--- ...reak-individual-slabs-when-sneaking.patch} | 10 ++-- ...to-disable-hostile-mob-spawn-on-ice.patch} | 10 ++-- ...g-to-show-Armor-Stand-arms-on-spawn.patch} | 6 +- ...tion-to-make-doors-require-redstone.patch} | 14 ++--- ...Config-to-allow-for-unsafe-enchants.patch} | 16 +++--- ...0170-Configurable-sponge-absorption.patch} | 6 +- .../0171-Projectile-offset-config.patch} | 14 ++--- ...or-powered-rail-activation-distance.patch} | 4 +- .../0173-Piglin-portal-spawn-modifier.patch} | 8 +-- ...Config-to-change-max-number-of-bees.patch} | 2 +- ...le-damage-settings-for-magma-blocks.patch} | 10 ++-- ...-Config-for-wither-explosion-radius.patch} | 8 +-- .../0177-Gamemode-extra-permissions.patch} | 2 +- ...ng-the-blocks-that-turn-into-dirt-p.patch} | 2 +- ...0179-Configurable-piston-push-limit.patch} | 4 +- ...180-Configurable-broadcast-settings.patch} | 6 +- .../0181-Fix-SPIGOT-6278.patch} | 4 +- .../0182-Configurable-mob-blindness.patch} | 10 ++-- ...hidden-players-from-entity-selector.patch} | 18 +++--- ...-to-impact-Creeper-explosion-radius.patch} | 8 +-- .../0185-Iron-golem-poppy-calms-anger.patch} | 8 +-- .../0186-Breedable-parrots.patch} | 16 +++--- ...gurable-powered-rail-boost-modifier.patch} | 6 +- ...ge-multiplier-critical-damage-value.patch} | 6 +- ...n-to-disable-dragon-egg-teleporting.patch} | 10 ++-- ...fig-for-unverified-username-message.patch} | 4 +- ...-anvil-cumulative-cost-configurable.patch} | 4 +- ...2-ShulkerBox-allow-oversized-stacks.patch} | 16 +++--- ...e-can-work-when-raining-or-at-night.patch} | 12 ++-- ...94-API-for-any-mob-to-burn-daylight.patch} | 56 +++++++++---------- ...dvancement-triggers-on-entity-death.patch} | 18 +++--- .../0196-Config-MobEffect-by-world.patch} | 8 +-- ...eacon-Activation-Range-Configurable.patch} | 8 +-- 50 files changed, 264 insertions(+), 262 deletions(-) rename patches/{unapplied/server/0151-Dont-run-with-scissors.patch => server/0148-Dont-run-with-scissors.patch} (86%) rename patches/{unapplied/server/0152-One-Punch-Man.patch => server/0149-One-Punch-Man.patch} (91%) rename patches/{unapplied/server/0153-Add-config-for-snow-on-blue-ice.patch => server/0150-Add-config-for-snow-on-blue-ice.patch} (88%) rename patches/{unapplied/server/0154-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch => server/0151-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch} (95%) rename patches/{unapplied/server/0155-Config-to-ignore-nearby-mobs-when-sleeping.patch => server/0152-Config-to-ignore-nearby-mobs-when-sleeping.patch} (88%) rename patches/{unapplied/server/0156-Add-back-player-spawned-endermite-API.patch => server/0153-Add-back-player-spawned-endermite-API.patch} (94%) rename patches/{unapplied/server/0157-Config-Enderman-aggressiveness-towards-Endermites.patch => server/0154-Config-Enderman-aggressiveness-towards-Endermites.patch} (90%) rename patches/{unapplied/server/0158-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch => server/0155-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch} (88%) rename patches/{unapplied/server/0159-Tick-fluids-config.patch => server/0156-Tick-fluids-config.patch} (72%) rename patches/{unapplied/server/0160-Config-to-disable-Llama-caravans.patch => server/0157-Config-to-disable-Llama-caravans.patch} (87%) rename patches/{unapplied/server/0161-Config-to-make-Creepers-explode-on-death.patch => server/0158-Config-to-make-Creepers-explode-on-death.patch} (92%) rename patches/{unapplied/server/0162-Configurable-ravager-griefable-blocks-list.patch => server/0159-Configurable-ravager-griefable-blocks-list.patch} (90%) rename patches/{unapplied/server/0163-Sneak-to-bulk-process-composter.patch => server/0160-Sneak-to-bulk-process-composter.patch} (83%) rename patches/{unapplied/server/0164-Config-for-skipping-night.patch => server/0161-Config-for-skipping-night.patch} (80%) rename patches/{unapplied/server/0165-Add-config-for-villager-trading.patch => server/0162-Add-config-for-villager-trading.patch} (89%) rename patches/{unapplied/server/0166-Allow-infinity-on-crossbows.patch => server/0163-Allow-infinity-on-crossbows.patch} (98%) rename patches/{unapplied/server/0167-Drowning-Settings.patch => server/0164-Drowning-Settings.patch} (78%) rename patches/{unapplied/server/0168-Break-individual-slabs-when-sneaking.patch => server/0165-Break-individual-slabs-when-sneaking.patch} (88%) rename patches/{unapplied/server/0169-Config-to-disable-hostile-mob-spawn-on-ice.patch => server/0166-Config-to-disable-hostile-mob-spawn-on-ice.patch} (83%) rename patches/{unapplied/server/0170-Config-to-show-Armor-Stand-arms-on-spawn.patch => server/0167-Config-to-show-Armor-Stand-arms-on-spawn.patch} (89%) rename patches/{unapplied/server/0171-Option-to-make-doors-require-redstone.patch => server/0168-Option-to-make-doors-require-redstone.patch} (89%) rename patches/{unapplied/server/0172-Config-to-allow-for-unsafe-enchants.patch => server/0169-Config-to-allow-for-unsafe-enchants.patch} (92%) rename patches/{unapplied/server/0173-Configurable-sponge-absorption.patch => server/0170-Configurable-sponge-absorption.patch} (92%) rename patches/{unapplied/server/0174-Projectile-offset-config.patch => server/0171-Projectile-offset-config.patch} (93%) rename patches/{unapplied/server/0175-Config-for-powered-rail-activation-distance.patch => server/0172-Config-for-powered-rail-activation-distance.patch} (92%) rename patches/{unapplied/server/0176-Piglin-portal-spawn-modifier.patch => server/0173-Piglin-portal-spawn-modifier.patch} (90%) rename patches/{unapplied/server/0177-Config-to-change-max-number-of-bees.patch => server/0174-Config-to-change-max-number-of-bees.patch} (96%) rename patches/{unapplied/server/0178-Configurable-damage-settings-for-magma-blocks.patch => server/0175-Configurable-damage-settings-for-magma-blocks.patch} (87%) rename patches/{unapplied/server/0179-Config-for-wither-explosion-radius.patch => server/0176-Config-for-wither-explosion-radius.patch} (88%) rename patches/{unapplied/server/0180-Gamemode-extra-permissions.patch => server/0177-Gamemode-extra-permissions.patch} (98%) rename patches/{unapplied/server/0181-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch => server/0178-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch} (96%) rename patches/{unapplied/server/0182-Configurable-piston-push-limit.patch => server/0179-Configurable-piston-push-limit.patch} (94%) rename patches/{unapplied/server/0183-Configurable-broadcast-settings.patch => server/0180-Configurable-broadcast-settings.patch} (94%) rename patches/{unapplied/server/0184-Fix-SPIGOT-6278.patch => server/0181-Fix-SPIGOT-6278.patch} (82%) rename patches/{unapplied/server/0185-Configurable-mob-blindness.patch => server/0182-Configurable-mob-blindness.patch} (88%) rename patches/{unapplied/server/0186-Hide-hidden-players-from-entity-selector.patch => server/0183-Hide-hidden-players-from-entity-selector.patch} (85%) rename patches/{unapplied/server/0187-Config-for-health-to-impact-Creeper-explosion-radius.patch => server/0184-Config-for-health-to-impact-Creeper-explosion-radius.patch} (90%) rename patches/{unapplied/server/0188-Iron-golem-poppy-calms-anger.patch => server/0185-Iron-golem-poppy-calms-anger.patch} (94%) rename patches/{unapplied/server/0189-Breedable-parrots.patch => server/0186-Breedable-parrots.patch} (85%) rename patches/{unapplied/server/0190-Configurable-powered-rail-boost-modifier.patch => server/0187-Configurable-powered-rail-boost-modifier.patch} (89%) rename patches/{unapplied/server/0191-Add-config-change-multiplier-critical-damage-value.patch => server/0188-Add-config-change-multiplier-critical-damage-value.patch} (89%) rename patches/{unapplied/server/0192-Option-to-disable-dragon-egg-teleporting.patch => server/0189-Option-to-disable-dragon-egg-teleporting.patch} (80%) rename patches/{unapplied/server/0193-Config-for-unverified-username-message.patch => server/0190-Config-for-unverified-username-message.patch} (95%) rename patches/{unapplied/server/0194-Make-anvil-cumulative-cost-configurable.patch => server/0191-Make-anvil-cumulative-cost-configurable.patch} (92%) rename patches/{unapplied/server/0195-ShulkerBox-allow-oversized-stacks.patch => server/0192-ShulkerBox-allow-oversized-stacks.patch} (81%) rename patches/{unapplied/server/0196-Bee-can-work-when-raining-or-at-night.patch => server/0193-Bee-can-work-when-raining-or-at-night.patch} (88%) rename patches/{unapplied/server/0197-API-for-any-mob-to-burn-daylight.patch => server/0194-API-for-any-mob-to-burn-daylight.patch} (87%) rename patches/{unapplied/server/0198-Fix-advancement-triggers-on-entity-death.patch => server/0195-Fix-advancement-triggers-on-entity-death.patch} (91%) rename patches/{unapplied/server/0199-Config-MobEffect-by-world.patch => server/0196-Config-MobEffect-by-world.patch} (87%) rename patches/{unapplied/server/0200-Beacon-Activation-Range-Configurable.patch => server/0197-Beacon-Activation-Range-Configurable.patch} (87%) diff --git a/patches/unapplied/server/0151-Dont-run-with-scissors.patch b/patches/server/0148-Dont-run-with-scissors.patch similarity index 86% rename from patches/unapplied/server/0151-Dont-run-with-scissors.patch rename to patches/server/0148-Dont-run-with-scissors.patch index 08b2cfbc6..3159bbce6 100644 --- a/patches/unapplied/server/0151-Dont-run-with-scissors.patch +++ b/patches/server/0148-Dont-run-with-scissors.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2b323d2b59853c738f482c7025b1a026e1f8e1d2..212d5ea064ad7281d6ed4a468464c7e8615b67a0 100644 +index def90885f40df7a7d3487dc7bca18de951875cba..0435dc363cf3bd5834e874af628c0d9f5604f179 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1574,6 +1574,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser - this.player.fallDistance = 0.0F; +@@ -1528,6 +1528,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser + this.player.resetFallDistance(); } + // Purpur Start @@ -22,7 +22,7 @@ index 2b323d2b59853c738f482c7025b1a026e1f8e1d2..212d5ea064ad7281d6ed4a468464c7e8 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1586,6 +1593,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1540,6 +1547,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } } @@ -32,9 +32,9 @@ index 2b323d2b59853c738f482c7025b1a026e1f8e1d2..212d5ea064ad7281d6ed4a468464c7e8 + } + // Purpur end + - // Paper start - optimise out extra getCubes - private boolean hasNewCollision(final ServerLevel world, final Entity entity, final AABB oldBox, final AABB newBox) { - final List collisions = io.papermc.paper.util.CachedLists.getTempCollisionList(); + private boolean isPlayerCollidingWithAnythingNew(LevelReader world, AABB box) { + Iterable iterable = world.getCollisions(this.player, this.player.getBoundingBox().deflate(9.999999747378752E-6D)); + VoxelShape voxelshape = Shapes.create(box.deflate(9.999999747378752E-6D)); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 039c5e6d98228837f7818803641656d566e416f5..1e09dc436ce147d42035d48918b811eb7e898c12 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -56,7 +56,7 @@ index 039c5e6d98228837f7818803641656d566e416f5..1e09dc436ce147d42035d48918b811eb public static String serverModName = "Purpur"; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index cadde9d8772d61edd0e041b508e0abebbd076454..a401e7280e888d15203c03b7cb999e4cfd3f1077 100644 +index 19e2027934810c7f384e33acb946ee51786eeae8..ee2ca0b08fbc5c9d093a53a0960d39ff4bd80c29 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -157,6 +157,8 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0152-One-Punch-Man.patch b/patches/server/0149-One-Punch-Man.patch similarity index 91% rename from patches/unapplied/server/0152-One-Punch-Man.patch rename to patches/server/0149-One-Punch-Man.patch index f0ba56abd..08d048f3f 100644 --- a/patches/unapplied/server/0152-One-Punch-Man.patch +++ b/patches/server/0149-One-Punch-Man.patch @@ -5,10 +5,10 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2cb9c2f03139ba79014eed078967d74845fd0fb8..a3500c5a3eb3109389ab8b844a7bb97badf885a3 100644 +index e0c5947610ab711024c0ef6346f2ca9a87701139..61c59634533fd3ebe79219ccc9d4e35137f1a2aa 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2124,6 +2124,20 @@ public abstract class LivingEntity extends Entity { +@@ -2123,6 +2123,20 @@ public abstract class LivingEntity extends Entity { ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, Math.round(f2 * 10.0F)); } @@ -30,7 +30,7 @@ index 2cb9c2f03139ba79014eed078967d74845fd0fb8..a3500c5a3eb3109389ab8b844a7bb97b if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a401e7280e888d15203c03b7cb999e4cfd3f1077..0cf7884c2896dec8c3352547c8838d010506e973 100644 +index ee2ca0b08fbc5c9d093a53a0960d39ff4bd80c29..7f00b6c162f2969596e46989c91726b6fdddf20f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -302,6 +302,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0153-Add-config-for-snow-on-blue-ice.patch b/patches/server/0150-Add-config-for-snow-on-blue-ice.patch similarity index 88% rename from patches/unapplied/server/0153-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0150-Add-config-for-snow-on-blue-ice.patch index 7195baf27..85da91747 100644 --- a/patches/unapplied/server/0153-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0150-Add-config-for-snow-on-blue-ice.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add config for snow on blue ice diff --git a/src/main/java/net/minecraft/world/level/block/SnowLayerBlock.java b/src/main/java/net/minecraft/world/level/block/SnowLayerBlock.java -index 0169d874247a96c2e10a65ecb9c0c093f5a6ecfb..b760e2d014b3ae70671878082bb853b75572ed7f 100644 +index fbbb0155bd66f1daa160e03f866741d903e1869e..86f7b4117b8b9bd36e38962e3290f7b909ed9b29 100644 --- a/src/main/java/net/minecraft/world/level/block/SnowLayerBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SnowLayerBlock.java -@@ -76,7 +76,18 @@ public class SnowLayerBlock extends Block { +@@ -75,7 +75,18 @@ public class SnowLayerBlock extends Block { public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { BlockState iblockdata1 = world.getBlockState(pos.below()); @@ -29,10 +29,10 @@ index 0169d874247a96c2e10a65ecb9c0c093f5a6ecfb..b760e2d014b3ae70671878082bb853b7 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 0cf7884c2896dec8c3352547c8838d010506e973..7b8a638a9472b8c350561ac424dd513b17b4cacd 100644 +index 7f00b6c162f2969596e46989c91726b6fdddf20f..5282fa1b3e8ac6f5f9218f7c7f764235a91c6949 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -548,6 +548,11 @@ public class PurpurWorldConfig { +@@ -524,6 +524,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/unapplied/server/0154-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0151-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 95% rename from patches/unapplied/server/0154-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/server/0151-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 75b8c6be4..4884daf94 100644 --- a/patches/unapplied/server/0154-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0151-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -8,7 +8,7 @@ Subject: [PATCH] Configurable Ender Pearl cooldown, damage, and Endermite RNG - Endermite spawn chance diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -index 6599f267e30d15ad179e98d3683273cd9bbc3bd0..723b1ed5078084b7f85424f66e4f7b314fc05dda 100644 +index 0686af29d4835b35dd6f9e6780437a7fd48bbd3f..ba58797f4952b8fc17f06526e28119915c47d2e3 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java @@ -69,7 +69,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { @@ -22,7 +22,7 @@ index 6599f267e30d15ad179e98d3683273cd9bbc3bd0..723b1ed5078084b7f85424f66e4f7b31 entityendermite.moveTo(entity.getX(), entity.getY(), entity.getZ(), entity.getYRot(), entity.getXRot()); @@ -83,7 +83,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { entityplayer.connection.teleport(teleEvent.getTo()); - entity.fallDistance = 0.0F; + entity.resetFallDistance(); CraftEventFactory.entityDamage = this; - entity.hurt(DamageSource.FALL, 5.0F); + entity.hurt(DamageSource.FALL, this.level.purpurConfig.enderPearlDamage); // Purpur @@ -43,7 +43,7 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f // Paper end if (user instanceof net.minecraft.server.level.ServerPlayer) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7b8a638a9472b8c350561ac424dd513b17b4cacd..b05787589df4066dd252e9f69336065ae29dda29 100644 +index 5282fa1b3e8ac6f5f9218f7c7f764235a91c6949..d978a16aa42e0de514de6e3d63b91313e76eef7d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -159,6 +159,10 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0155-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0152-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 88% rename from patches/unapplied/server/0155-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/server/0152-Config-to-ignore-nearby-mobs-when-sleeping.patch index 5f20eb564..e972d65c5 100644 --- a/patches/unapplied/server/0155-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0152-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 878654d5e65d4318aaad27b00a6df1662b5946de..696eddee3524a4b18caa3990b6da3ad20537627c 100644 +index 3032157924962e2c5fa5c696fdc3de4bad74d538..0ecb17490ac194b53709e752d4a4928d83978946 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1305,7 +1305,7 @@ public class ServerPlayer extends Player { - return entitymonster.isPreventingPlayerRest((Player) this); +@@ -1321,7 +1321,7 @@ public class ServerPlayer extends Player { + return entitymonster.isPreventingPlayerRest(this); }); - if (!list.isEmpty()) { @@ -18,7 +18,7 @@ index 878654d5e65d4318aaad27b00a6df1662b5946de..696eddee3524a4b18caa3990b6da3ad2 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b05787589df4066dd252e9f69336065ae29dda29..39f07342dc272aa4a9727b1fff523b21a68cee43 100644 +index d978a16aa42e0de514de6e3d63b91313e76eef7d..a728fbc7ff2e8375273402ef7cd390351bc38c47 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -311,6 +311,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0156-Add-back-player-spawned-endermite-API.patch b/patches/server/0153-Add-back-player-spawned-endermite-API.patch similarity index 94% rename from patches/unapplied/server/0156-Add-back-player-spawned-endermite-API.patch rename to patches/server/0153-Add-back-player-spawned-endermite-API.patch index bc4f753b8..e85082b1d 100644 --- a/patches/unapplied/server/0156-Add-back-player-spawned-endermite-API.patch +++ b/patches/server/0153-Add-back-player-spawned-endermite-API.patch @@ -47,7 +47,7 @@ index 680a9cfc79c7b9d012f68142980ff32b9fb9f228..aeb46595e663f8584d3ef45d92420d91 @Override diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java -index 723b1ed5078084b7f85424f66e4f7b314fc05dda..a2109b4f6705b726ac2c4a8eb639e9c515752b8c 100644 +index ba58797f4952b8fc17f06526e28119915c47d2e3..1fe20aab5b0c129470c1563d5c0710f2a23895d2 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java +++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java @@ -72,6 +72,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { @@ -56,7 +56,7 @@ index 723b1ed5078084b7f85424f66e4f7b314fc05dda..a2109b4f6705b726ac2c4a8eb639e9c5 + entityendermite.setPlayerSpawned(true); // Purpur entityendermite.moveTo(entity.getX(), entity.getY(), entity.getZ(), entity.getYRot(), entity.getXRot()); - this.level.addEntity(entityendermite, CreatureSpawnEvent.SpawnReason.ENDER_PEARL); + this.level.addFreshEntity(entityendermite, CreatureSpawnEvent.SpawnReason.ENDER_PEARL); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java index 04976616da8c85b1278dad33ff05554aa74a6b33..046e0e174119e65686e74eaf11853e6832b90e80 100644 diff --git a/patches/unapplied/server/0157-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0154-Config-Enderman-aggressiveness-towards-Endermites.patch similarity index 90% rename from patches/unapplied/server/0157-Config-Enderman-aggressiveness-towards-Endermites.patch rename to patches/server/0154-Config-Enderman-aggressiveness-towards-Endermites.patch index 149f82414..1a16e0f87 100644 --- a/patches/unapplied/server/0157-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0154-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index b1900c21e791e7edf82345c508fd108c9d88b6ed..08bbf342a58a83d8486af989e53bf69eb8fa06f0 100644 +index a0b347f9daf5e8cf28ec3e308b639d5200c276dd..75d0998d7e6109592400c14c4aee063f7942961d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -114,7 +114,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -119,7 +119,7 @@ public class EnderMan extends Monster implements NeutralMob { this.targetSelector.addGoal(0, new net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur this.targetSelector.addGoal(1, new EnderMan.EndermanLookForPlayerGoal(this, this::isAngryAt)); this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0])); @@ -18,10 +18,10 @@ index b1900c21e791e7edf82345c508fd108c9d88b6ed..08bbf342a58a83d8486af989e53bf69e } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 39f07342dc272aa4a9727b1fff523b21a68cee43..7229ab7701ca2cfcf9690bfe238cb0d0b29375f9 100644 +index a728fbc7ff2e8375273402ef7cd390351bc38c47..2cc6d50778acd35243bb6d2abc21de2ef8dbc7dd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -971,6 +971,8 @@ public class PurpurWorldConfig { +@@ -947,6 +947,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 39f07342dc272aa4a9727b1fff523b21a68cee43..7229ab7701ca2cfcf9690bfe238cb0d0 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -979,11 +981,17 @@ public class PurpurWorldConfig { +@@ -955,11 +957,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/unapplied/server/0158-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0155-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 88% rename from patches/unapplied/server/0158-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/server/0155-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index ff3861225..3d834a295 100644 --- a/patches/unapplied/server/0158-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0155-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,10 +7,10 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 08bbf342a58a83d8486af989e53bf69eb8fa06f0..51f9da43e3fc1f744d0cb7fc09f0477fd5a9c59a 100644 +index 75d0998d7e6109592400c14c4aee063f7942961d..13cdfb0175152d2ba203c01f14f2f98d87f812b3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -250,7 +250,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -256,7 +256,7 @@ public class EnderMan extends Monster implements NeutralMob { // Paper end ItemStack itemstack = (ItemStack) player.getInventory().armor.get(3); @@ -20,10 +20,10 @@ index 08bbf342a58a83d8486af989e53bf69eb8fa06f0..51f9da43e3fc1f744d0cb7fc09f0477f } else { Vec3 vec3d = player.getViewVector(1.0F).normalize(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7229ab7701ca2cfcf9690bfe238cb0d0b29375f9..7bd10666cdd3055d164cb14f32756d321ba462ce 100644 +index 2cc6d50778acd35243bb6d2abc21de2ef8dbc7dd..cded7e7f68455b674c90e590fca15264b171a7f9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -973,6 +973,8 @@ public class PurpurWorldConfig { +@@ -949,6 +949,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 7229ab7701ca2cfcf9690bfe238cb0d0b29375f9..7bd10666cdd3055d164cb14f32756d32 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -992,6 +994,8 @@ public class PurpurWorldConfig { +@@ -968,6 +970,8 @@ public class PurpurWorldConfig { endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); diff --git a/patches/unapplied/server/0159-Tick-fluids-config.patch b/patches/server/0156-Tick-fluids-config.patch similarity index 72% rename from patches/unapplied/server/0159-Tick-fluids-config.patch rename to patches/server/0156-Tick-fluids-config.patch index a0020719f..593302ab1 100644 --- a/patches/unapplied/server/0159-Tick-fluids-config.patch +++ b/patches/server/0156-Tick-fluids-config.patch @@ -5,50 +5,50 @@ Subject: [PATCH] Tick fluids config diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java -index 087601ffdeea97ec4cbb9959607bdcbcbae7c6fa..ad24daa0c727df15dbe0549036290a6c9b91a736 100644 +index 11ebadaa2438281a54cffe025a49ee5046a71ba5..07c25a2518eb5ce0da6131ce5ceb10ac1f97a95d 100644 --- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java +++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java -@@ -109,7 +109,7 @@ public class LiquidBlock extends Block implements BucketPickup { +@@ -107,7 +107,7 @@ public class LiquidBlock extends Block implements BucketPickup { @Override public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { - if (this.shouldSpreadLiquid(world, pos, state)) { + if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur - world.getLiquidTicks().scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper + world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper } -@@ -133,7 +133,7 @@ public class LiquidBlock extends Block implements BucketPickup { +@@ -131,7 +131,7 @@ public class LiquidBlock extends Block implements BucketPickup { @Override public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) { - if (state.getFluidState().isSource() || neighborState.getFluidState().isSource()) { + if (world.getMinecraftWorld().purpurConfig.tickFluids && state.getFluidState().isSource() || neighborState.getFluidState().isSource()) { // Purpur - world.getLiquidTicks().scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay((LevelReader) world)); + world.scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay(world)); } -@@ -142,7 +142,7 @@ public class LiquidBlock extends Block implements BucketPickup { +@@ -140,7 +140,7 @@ public class LiquidBlock extends Block implements BucketPickup { @Override public void neighborChanged(BlockState state, Level world, BlockPos pos, Block block, BlockPos fromPos, boolean notify) { - if (this.shouldSpreadLiquid(world, pos, state)) { + if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur - world.getLiquidTicks().scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper + world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7bd10666cdd3055d164cb14f32756d321ba462ce..45337e6425d8d7ceb97a6676e16986d62aaf6595 100644 +index cded7e7f68455b674c90e590fca15264b171a7f9..3dd92d85c708a4d0fb61d39eee8e2edd312587ae 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -414,6 +414,7 @@ public class PurpurWorldConfig { - public boolean persistentTileEntityDisplayNames = false; +@@ -413,6 +413,7 @@ public class PurpurWorldConfig { + public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; + public boolean tickFluids = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -434,6 +435,7 @@ public class PurpurWorldConfig { - persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); +@@ -432,6 +433,7 @@ public class PurpurWorldConfig { + noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); + tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/unapplied/server/0160-Config-to-disable-Llama-caravans.patch b/patches/server/0157-Config-to-disable-Llama-caravans.patch similarity index 87% rename from patches/unapplied/server/0160-Config-to-disable-Llama-caravans.patch rename to patches/server/0157-Config-to-disable-Llama-caravans.patch index 8b2aee7ca..758d023aa 100644 --- a/patches/unapplied/server/0160-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0157-Config-to-disable-Llama-caravans.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to disable Llama caravans Disables the mechanic where llamas follow leashed llamas. diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java -index 34dec0a94840a8865f1d80857ec54a1022ae5b84..5fc930a75d6bedb2b841a6c601ed6a4529dd9087 100644 +index 7b141c495095afcd9c8b04c059d692e829259e7a..ad30f2d678cfc4b0d693e84e6e152c63b1b3cbb8 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java @@ -22,7 +22,7 @@ public class LlamaFollowCaravanGoal extends Goal { @@ -19,10 +19,10 @@ index 34dec0a94840a8865f1d80857ec54a1022ae5b84..5fc930a75d6bedb2b841a6c601ed6a45 List list = this.llama.level.getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0D, 4.0D, 9.0D), (entity) -> { EntityType entityType = entity.getType(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 088bfe0df138ff77ba09aa47e262542b8aaa404b..ddef9b81c20b28cf8d8eebcbe7f4a7036ba21dfb 100644 +index d0016761c124a4d593b18006efa18757ad385ab0..13fd55f198f36ed6b5d3b242e07535c5dfe797b1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -@@ -507,7 +507,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { +@@ -509,7 +509,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { } public void joinCaravan(Llama llama) { @@ -32,10 +32,10 @@ index 088bfe0df138ff77ba09aa47e262542b8aaa404b..ddef9b81c20b28cf8d8eebcbe7f4a703 this.caravanHead.caravanTail = this; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 45337e6425d8d7ceb97a6676e16986d62aaf6595..a651d72bfeb1425b13c2c80d6088a506eb4abb1d 100644 +index 3dd92d85c708a4d0fb61d39eee8e2edd312587ae..526ff067ae729886d9f9429e4de4b3701217fe6b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1266,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1242,6 +1242,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 45337e6425d8d7ceb97a6676e16986d62aaf6595..a651d72bfeb1425b13c2c80d6088a506 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1284,6 +1285,7 @@ public class PurpurWorldConfig { +@@ -1260,6 +1261,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); diff --git a/patches/unapplied/server/0161-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0158-Config-to-make-Creepers-explode-on-death.patch similarity index 92% rename from patches/unapplied/server/0161-Config-to-make-Creepers-explode-on-death.patch rename to patches/server/0158-Config-to-make-Creepers-explode-on-death.patch index 58829553a..65ae9447b 100644 --- a/patches/unapplied/server/0161-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0158-Config-to-make-Creepers-explode-on-death.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death Creepers exploded after being killed in the alpha days. This brings that back. diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 10095acd7b5b0b6e4e74192bb3d74ae2091aa75f..a9f3aec907798c0ce9bb684cdea8ab41323c4772 100644 +index f6a8d026c2380b9d7ec3121c7e144c6f19f5323c..73b0c8403eca3c26f76e59fc4b057b5029e3f014 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -50,10 +50,10 @@ index 10095acd7b5b0b6e4e74192bb3d74ae2091aa75f..a9f3aec907798c0ce9bb684cdea8ab41 private void spawnLingeringCloud() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a651d72bfeb1425b13c2c80d6088a506eb4abb1d..6fd4f5ea8595a88f1ecf96f9212b1b7a7112f2ae 100644 +index 526ff067ae729886d9f9429e4de4b3701217fe6b..8b82a979d9d204e7a61b4c8aa4971b9c91b6ac8c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -835,6 +835,7 @@ public class PurpurWorldConfig { +@@ -811,6 +811,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index a651d72bfeb1425b13c2c80d6088a506eb4abb1d..6fd4f5ea8595a88f1ecf96f9212b1b7a private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -848,6 +849,7 @@ public class PurpurWorldConfig { +@@ -824,6 +825,7 @@ public class PurpurWorldConfig { creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); diff --git a/patches/unapplied/server/0162-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0159-Configurable-ravager-griefable-blocks-list.patch similarity index 90% rename from patches/unapplied/server/0162-Configurable-ravager-griefable-blocks-list.patch rename to patches/server/0159-Configurable-ravager-griefable-blocks-list.patch index af03cc3ce..b58032edb 100644 --- a/patches/unapplied/server/0162-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0159-Configurable-ravager-griefable-blocks-list.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable ravager griefable blocks list diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 780dae83e07339722e0fed962f2e6fa782d4a30e..3e92e7aabd412b11e78d27a36f88a9f138d8a6bd 100644 +index d3df45f7dbb688b56f03a4174e6311f83b437e18..d2ed76b554607469093e1bc62600f01556b8472e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -@@ -199,7 +199,7 @@ public class Ravager extends Raider { +@@ -200,7 +200,7 @@ public class Ravager extends Raider { BlockState iblockdata = this.level.getBlockState(blockposition); Block block = iblockdata.getBlock(); @@ -18,7 +18,7 @@ index 780dae83e07339722e0fed962f2e6fa782d4a30e..3e92e7aabd412b11e78d27a36f88a9f1 } } diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java -index 3c51e6d419a244b9270119590aa299527163c331..b466b0430dd94777975a1e7ab9792166aa05cf67 100644 +index e9087a46e401bc99b73c2cf2731fdac3e68719f8..e054edf9e7c4eef231e155516433c6faeb2ca540 100644 --- a/src/main/java/net/minecraft/world/level/block/CropBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java @@ -164,7 +164,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock { @@ -31,10 +31,10 @@ index 3c51e6d419a244b9270119590aa299527163c331..b466b0430dd94777975a1e7ab9792166 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6fd4f5ea8595a88f1ecf96f9212b1b7a7112f2ae..8396ecb2d4745ec64b60d8a553116e2296d4f588 100644 +index 8b82a979d9d204e7a61b4c8aa4971b9c91b6ac8c..de59f4cc21a5bd6af01619add4dcc3d5f9071efc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1606,6 +1606,7 @@ public class PurpurWorldConfig { +@@ -1582,6 +1582,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 6fd4f5ea8595a88f1ecf96f9212b1b7a7112f2ae..8396ecb2d4745ec64b60d8a553116e22 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1617,6 +1618,23 @@ public class PurpurWorldConfig { +@@ -1593,6 +1594,23 @@ public class PurpurWorldConfig { ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater); diff --git a/patches/unapplied/server/0163-Sneak-to-bulk-process-composter.patch b/patches/server/0160-Sneak-to-bulk-process-composter.patch similarity index 83% rename from patches/unapplied/server/0163-Sneak-to-bulk-process-composter.patch rename to patches/server/0160-Sneak-to-bulk-process-composter.patch index 24a4bb996..f4bdc8fde 100644 --- a/patches/unapplied/server/0163-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0160-Sneak-to-bulk-process-composter.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 12998d0e9ae0e148a155faa4468b0f78b8462cc9..04d94ae2d314dd24a92a4ddd93b81c7e1f8054ad 100644 +index 17a59fba538f8a7bdd96964c6acda94b33655d27..390847272785067bf04a672e28eacc9136447057 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -582,7 +582,7 @@ public class ServerPlayerGameMode { +@@ -578,7 +578,7 @@ public class ServerPlayerGameMode { boolean flag1 = player.isSecondaryUseActive() && flag; ItemStack itemstack1 = stack.copy(); @@ -18,15 +18,15 @@ index 12998d0e9ae0e148a155faa4468b0f78b8462cc9..04d94ae2d314dd24a92a4ddd93b81c7e if (enuminteractionresult.consumesAction()) { diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java -index 4c9ae6bdb2f0358798f84928271a2d783dcba7b4..47bf769a031ae39cc72d2191195d13787f1568d4 100644 +index fb8b8a9733ac50096d8406487ab1ae167ef5f7b1..16598ca0fd953b6af98dfcdb6716e2e128d14bab 100644 --- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java -@@ -218,16 +218,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { +@@ -217,16 +217,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { ItemStack itemstack = player.getItemInHand(hand); if (i < 8 && ComposterBlock.COMPOSTABLES.containsKey(itemstack.getItem())) { - if (i < 7 && !world.isClientSide) { -- BlockState iblockdata1 = ComposterBlock.addItem(state, (LevelAccessor) world, pos, itemstack); +- BlockState iblockdata1 = ComposterBlock.addItem(state, world, pos, itemstack); - - world.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0); - player.awardStat(Stats.ITEM_USED.get(itemstack.getItem())); @@ -51,8 +51,8 @@ index 4c9ae6bdb2f0358798f84928271a2d783dcba7b4..47bf769a031ae39cc72d2191195d1378 + // Purpur end return InteractionResult.sidedSuccess(world.isClientSide); } else if (i == 8) { - ComposterBlock.d(state, world, pos, (Entity) null); // CraftBukkit - no event for players -@@ -237,6 +242,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { + ComposterBlock.extractProduce(state, world, pos, (Entity) null); // CraftBukkit - no event for players +@@ -236,6 +241,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { } } @@ -71,14 +71,14 @@ index 4c9ae6bdb2f0358798f84928271a2d783dcba7b4..47bf769a031ae39cc72d2191195d1378 + } + // Purpur end + - public static BlockState a(BlockState iblockdata, ServerLevel worldserver, ItemStack itemstack, BlockPos blockposition, Entity entity) { // CraftBukkit + public static BlockState insertItem(BlockState iblockdata, ServerLevel worldserver, ItemStack itemstack, BlockPos blockposition, Entity entity) { // CraftBukkit int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8396ecb2d4745ec64b60d8a553116e2296d4f588..981b3f1fa76842a80837b5277fc037a3d8b4d77d 100644 +index de59f4cc21a5bd6af01619add4dcc3d5f9071efc..b5218b747bec14054738bdebf6d716de52fff4f7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -498,6 +498,11 @@ public class PurpurWorldConfig { +@@ -474,6 +474,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/unapplied/server/0164-Config-for-skipping-night.patch b/patches/server/0161-Config-for-skipping-night.patch similarity index 80% rename from patches/unapplied/server/0164-Config-for-skipping-night.patch rename to patches/server/0161-Config-for-skipping-night.patch index 78955e88a..1b330775c 100644 --- a/patches/unapplied/server/0164-Config-for-skipping-night.patch +++ b/patches/server/0161-Config-for-skipping-night.patch @@ -5,20 +5,20 @@ Subject: [PATCH] Config for skipping night diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f26901a119d3be41b0e6fa873afe79c1d2a56297..9c44609b3258168e0a38111cfba5c16b999bec4e 100644 +index da197e74b1a7b5831b98628198879dd7fdeff074..359ba71b137eac65a8ba6c1e5eda70412eb3550f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -716,7 +716,7 @@ public class ServerLevel extends Level implements WorldGenLevel { - // CraftBukkit end +@@ -604,7 +604,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); + long j; - i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); - if (this.sleepStatus.areEnoughSleeping(i) && this.sleepStatus.areEnoughDeepSleeping(i, this.players)) { + if (this.purpurConfig.playersSkipNight && this.sleepStatus.areEnoughSleeping(i) && this.sleepStatus.areEnoughDeepSleeping(i, this.players)) { // CraftBukkit start - long l = this.levelData.getDayTime() + 24000L; - TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (l - l % 24000L) - this.getDayTime()); + j = this.levelData.getDayTime() + 24000L; + TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 981b3f1fa76842a80837b5277fc037a3d8b4d77d..bac79479f426d306a93522e602fd8ca2ccf1807f 100644 +index b5218b747bec14054738bdebf6d716de52fff4f7..9adc511035e1103ce2c4f384a5ebd5f6fa6f7379 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -312,6 +312,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0165-Add-config-for-villager-trading.patch b/patches/server/0162-Add-config-for-villager-trading.patch similarity index 89% rename from patches/unapplied/server/0165-Add-config-for-villager-trading.patch rename to patches/server/0162-Add-config-for-villager-trading.patch index ad387c518..8b4cb545a 100644 --- a/patches/unapplied/server/0165-Add-config-for-villager-trading.patch +++ b/patches/server/0162-Add-config-for-villager-trading.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add config for villager trading 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 622a1a5f06d19c4593e98247e4a9ab8747a2a68f..c8cef183734d05d0d9c1fa00b0b52539649cfd87 100644 +index b14c2801021bc006bee94abdea83bab1d70791eb..e926e9ab135c7d68d13e384f688b32610b2accdb 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -380,7 +380,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -376,7 +376,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return tryRide(player, hand); // Purpur } else { if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur @@ -31,10 +31,10 @@ index e5b78c9d6fb326771d65ea9afd9da38c204922f0..1a8df13b06b1ac5e5a7d63033b4a5326 this.openTradingScreen(player, this.getDisplayName(), 1); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bac79479f426d306a93522e602fd8ca2ccf1807f..1421b73469da469d66818733f75f0073b06fa00b 100644 +index 9adc511035e1103ce2c4f384a5ebd5f6fa6f7379..f8a882c0090c443f785682b449da6171dd6746cd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1980,6 +1980,7 @@ public class PurpurWorldConfig { +@@ -1956,6 +1956,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index bac79479f426d306a93522e602fd8ca2ccf1807f..1421b73469da469d66818733f75f0073 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2008,6 +2009,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +1985,7 @@ public class PurpurWorldConfig { villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); @@ -50,7 +50,7 @@ index bac79479f426d306a93522e602fd8ca2ccf1807f..1421b73469da469d66818733f75f0073 } public boolean vindicatorRidable = false; -@@ -2034,6 +2036,7 @@ public class PurpurWorldConfig { +@@ -2010,6 +2012,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index bac79479f426d306a93522e602fd8ca2ccf1807f..1421b73469da469d66818733f75f0073 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2046,6 +2049,7 @@ public class PurpurWorldConfig { +@@ -2022,6 +2025,7 @@ public class PurpurWorldConfig { wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); diff --git a/patches/unapplied/server/0166-Allow-infinity-on-crossbows.patch b/patches/server/0163-Allow-infinity-on-crossbows.patch similarity index 98% rename from patches/unapplied/server/0166-Allow-infinity-on-crossbows.patch rename to patches/server/0163-Allow-infinity-on-crossbows.patch index 701cb688f..f4469d21d 100644 --- a/patches/unapplied/server/0166-Allow-infinity-on-crossbows.patch +++ b/patches/server/0163-Allow-infinity-on-crossbows.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow infinity on crossbows diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index 77562d7c7248835532f2d9582cce6ef6725a12a6..264542304babba94e364811da8d7b51b812a2b47 100644 +index 288776d2c6e4d3f214152910e6c1ccdafa2c3fbd..78f6d335dedd933ff225e2c63b879626b6b76ee7 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java @@ -111,7 +111,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { diff --git a/patches/unapplied/server/0167-Drowning-Settings.patch b/patches/server/0164-Drowning-Settings.patch similarity index 78% rename from patches/unapplied/server/0167-Drowning-Settings.patch rename to patches/server/0164-Drowning-Settings.patch index 83b023fb7..feec55890 100644 --- a/patches/unapplied/server/0167-Drowning-Settings.patch +++ b/patches/server/0164-Drowning-Settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 74df92f69454ec78036dc58ea9155b26ccd3db19..431982c9beb57c76d568b46989daa2bd3117948f 100644 +index a3420d0a30fbb3f837c863ef559f66ddaa6dc6bd..c422495386021e2b1b0048d608ca06f4703e1f34 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -498,7 +498,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -502,7 +502,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i // Spigot end this.entityData = new SynchedEntityData(this); this.entityData.define(Entity.DATA_SHARED_FLAGS_ID, (byte) 0); @@ -17,7 +17,7 @@ index 74df92f69454ec78036dc58ea9155b26ccd3db19..431982c9beb57c76d568b46989daa2bd this.entityData.define(Entity.DATA_CUSTOM_NAME_VISIBLE, false); this.entityData.define(Entity.DATA_CUSTOM_NAME, Optional.empty()); this.entityData.define(Entity.DATA_SILENT, false); -@@ -2950,7 +2950,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2860,7 +2860,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i } public int getMaxAirSupply() { @@ -27,19 +27,19 @@ index 74df92f69454ec78036dc58ea9155b26ccd3db19..431982c9beb57c76d568b46989daa2bd public int getAirSupply() { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a3500c5a3eb3109389ab8b844a7bb97badf885a3..1378b33c2d6307eaba0158b23988217d4063efa5 100644 +index 61c59634533fd3ebe79219ccc9d4e35137f1a2aa..4b88efb67d1d3522c4520e0aa4c8f45c95383222 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -425,7 +425,7 @@ public abstract class LivingEntity extends Entity { - if (this.isEyeInFluid((Tag) FluidTags.WATER) && !this.level.getBlockState(new BlockPos(this.getX(), this.getEyeY(), this.getZ())).is(Blocks.BUBBLE_COLUMN)) { - if (!this.canBreatheUnderwater() && !MobEffectUtil.hasWaterBreathing(this) && !flag1) { +@@ -420,7 +420,7 @@ public abstract class LivingEntity extends Entity { + + if (flag1) { this.setAirSupply(this.decreaseAirSupply(this.getAirSupply())); - if (this.getAirSupply() == -20) { + if (this.getAirSupply() == -this.level.purpurConfig.drowningDamageInterval) { // Purpur this.setAirSupply(0); Vec3 vec3d = this.getDeltaMovement(); -@@ -437,7 +437,7 @@ public abstract class LivingEntity extends Entity { +@@ -432,7 +432,7 @@ public abstract class LivingEntity extends Entity { this.level.addParticle(ParticleTypes.BUBBLE, this.getX() + d2, this.getY() + d3, this.getZ() + d4, vec3d.x, vec3d.y, vec3d.z); } @@ -49,7 +49,7 @@ index a3500c5a3eb3109389ab8b844a7bb97badf885a3..1378b33c2d6307eaba0158b23988217d } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1421b73469da469d66818733f75f0073b06fa00b..5b7ce7a99cf41bae9508564a36394527a87a4372 100644 +index f8a882c0090c443f785682b449da6171dd6746cd..5148aa0020a19f445963ea35de719cfa709d4927 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -122,6 +122,15 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0168-Break-individual-slabs-when-sneaking.patch b/patches/server/0165-Break-individual-slabs-when-sneaking.patch similarity index 88% rename from patches/unapplied/server/0168-Break-individual-slabs-when-sneaking.patch rename to patches/server/0165-Break-individual-slabs-when-sneaking.patch index 8d5c5c930..77a9ae6d4 100644 --- a/patches/unapplied/server/0168-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0165-Break-individual-slabs-when-sneaking.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 04d94ae2d314dd24a92a4ddd93b81c7e1f8054ad..ca281c9444051ca1695580c51b6774502e072db8 100644 +index 390847272785067bf04a672e28eacc9136447057..1351d83efdcab51d3898e1fb77d01b27975ce136 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -420,6 +420,7 @@ public class ServerPlayerGameMode { +@@ -416,6 +416,7 @@ public class ServerPlayerGameMode { } return false; } @@ -17,7 +17,7 @@ index 04d94ae2d314dd24a92a4ddd93b81c7e1f8054ad..ca281c9444051ca1695580c51b677450 // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/SlabBlock.java b/src/main/java/net/minecraft/world/level/block/SlabBlock.java -index eb7f8907bb362c0461194bbaf62917ce71c669f3..89f5e0d26500f1806dff9f91390546cd8ba7cd68 100644 +index 54df5c2987822a727a31be2b3769d39fabb6159a..70b6a65a7d321fc71c98289f09f21ccaf4d5f6b7 100644 --- a/src/main/java/net/minecraft/world/level/block/SlabBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SlabBlock.java @@ -130,4 +130,25 @@ public class SlabBlock extends Block implements SimpleWaterloggedBlock { @@ -47,10 +47,10 @@ index eb7f8907bb362c0461194bbaf62917ce71c669f3..89f5e0d26500f1806dff9f91390546cd + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5b7ce7a99cf41bae9508564a36394527a87a4372..4dba41afcc59a2151c01799bcaff1b08820cfb14 100644 +index 5148aa0020a19f445963ea35de719cfa709d4927..4c8588786f01d65000bf153db53b10ffd8839162 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -632,6 +632,11 @@ public class PurpurWorldConfig { +@@ -608,6 +608,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/unapplied/server/0169-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0166-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 83% rename from patches/unapplied/server/0169-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/server/0166-Config-to-disable-hostile-mob-spawn-on-ice.patch index f5c441294..090a372d9 100644 --- a/patches/unapplied/server/0169-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0166-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config to disable hostile mob spawn on ice diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java -index 229490d3857ce9f5bba4e6bb4aedcff50b510ed9..e94618f4c1552bb1ef20067aa3201c6574b5c307 100644 +index 457880c9e894a83d88505cf0b7235df919eea591..9c38fdb23853ebdca7b8d904760a395869b4dd49 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Monster.java +++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java -@@ -87,6 +87,12 @@ public abstract class Monster extends PathfinderMob implements Enemy { +@@ -88,6 +88,12 @@ public abstract class Monster extends PathfinderMob implements Enemy { } public static boolean isDarkEnoughToSpawn(ServerLevelAccessor world, BlockPos pos, Random random) { @@ -20,12 +20,12 @@ index 229490d3857ce9f5bba4e6bb4aedcff50b510ed9..e94618f4c1552bb1ef20067aa3201c65 + // Purpur end if (world.getBrightness(LightLayer.SKY, pos) > random.nextInt(32)) { return false; - } else { + } else if (world.getBrightness(LightLayer.BLOCK, pos) > 0) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4dba41afcc59a2151c01799bcaff1b08820cfb14..daca8b689c2510404f062a35a94c935aa304e6ec 100644 +index 4c8588786f01d65000bf153db53b10ffd8839162..91ea23b0ed257f742e739e853509d8bc4affc02a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -577,8 +577,12 @@ public class PurpurWorldConfig { +@@ -553,8 +553,12 @@ public class PurpurWorldConfig { } public boolean snowOnBlueIce = true; diff --git a/patches/unapplied/server/0170-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0167-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 89% rename from patches/unapplied/server/0170-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/server/0167-Config-to-show-Armor-Stand-arms-on-spawn.patch index 687ccea94..8a7d93705 100644 --- a/patches/unapplied/server/0170-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0167-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config to show Armor Stand arms on spawn diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index aee5db3cdbc49de995780d0b0e219d0878a5f304..31454b15a20e0484e21c25ffb80d4d536e2ecc0b 100644 +index e9e24435057cff9c0af758ca2aa822c3b1c3593d..8634431cabae82b71f409f02c84dda2d8eca8504 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -114,6 +114,7 @@ public class ArmorStand extends LivingEntity { +@@ -113,6 +113,7 @@ public class ArmorStand extends LivingEntity { this.leftLegPose = ArmorStand.DEFAULT_LEFT_LEG_POSE; this.rightLegPose = ArmorStand.DEFAULT_RIGHT_LEG_POSE; this.maxUpStep = 0.0F; @@ -17,7 +17,7 @@ index aee5db3cdbc49de995780d0b0e219d0878a5f304..31454b15a20e0484e21c25ffb80d4d53 public ArmorStand(Level world, double x, double y, double z) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index daca8b689c2510404f062a35a94c935aa304e6ec..09d47cffb5070e99ca941dd88dfc495b17d65ac7 100644 +index 91ea23b0ed257f742e739e853509d8bc4affc02a..0ac91c689d790614ac0a60457850a1a715c632d4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -106,6 +106,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0171-Option-to-make-doors-require-redstone.patch b/patches/server/0168-Option-to-make-doors-require-redstone.patch similarity index 89% rename from patches/unapplied/server/0171-Option-to-make-doors-require-redstone.patch rename to patches/server/0168-Option-to-make-doors-require-redstone.patch index 5cb52559b..36301d964 100644 --- a/patches/unapplied/server/0171-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0168-Option-to-make-doors-require-redstone.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to make doors require redstone diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java b/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java -index 7ef1572b38f17a6a9947e52effaf3689df9b6c01..d195f5756446cae6bd0c3a97c483eeba3b4a1ce4 100644 +index 469dbdf09e83a1837919008c009d1a350cce4316..b0064d5913f27ab7614d01813f09eb2d74d2c48f 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/InteractWithDoor.java @@ -65,7 +65,7 @@ public class InteractWithDoor extends Behavior { @@ -36,18 +36,18 @@ index 7ef1572b38f17a6a9947e52effaf3689df9b6c01..d195f5756446cae6bd0c3a97c483eeba } else { DoorBlock blockdoor = (DoorBlock) iblockdata.getBlock(); diff --git a/src/main/java/net/minecraft/world/level/block/DoorBlock.java b/src/main/java/net/minecraft/world/level/block/DoorBlock.java -index c903a1a8d2234bb0fa354d1c44ff3ab2275b04c7..d01e4064a772710c1383927e0848b9b3b7299baa 100644 +index 1df52a9c86c01696a8bc9f84a2082387160b3eeb..a4b9c5da133e2e8ad45d447e3f184cb12884961e 100644 --- a/src/main/java/net/minecraft/world/level/block/DoorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DoorBlock.java -@@ -170,6 +170,7 @@ public class DoorBlock extends Block { +@@ -169,6 +169,7 @@ public class DoorBlock extends Block { public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { if (this.material == Material.METAL) { return InteractionResult.PASS; + } else if (requiresRedstone(world, state, pos)) { return InteractionResult.CONSUME; // Purpur } else { - state = (BlockState) state.cycle((Property) DoorBlock.OPEN); + state = (BlockState) state.cycle(DoorBlock.OPEN); world.setBlock(pos, state, 10); -@@ -265,4 +266,18 @@ public class DoorBlock extends Block { +@@ -264,4 +265,18 @@ public class DoorBlock extends Block { public static boolean isWoodenDoor(BlockState state) { return state.getBlock() instanceof DoorBlock && (state.getMaterial() == Material.WOOD || state.getMaterial() == Material.NETHER_WOOD); } @@ -67,10 +67,10 @@ index c903a1a8d2234bb0fa354d1c44ff3ab2275b04c7..d01e4064a772710c1383927e0848b9b3 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 09d47cffb5070e99ca941dd88dfc495b17d65ac7..da526812eb623343cd5aea849c4439414a9d6569 100644 +index 0ac91c689d790614ac0a60457850a1a715c632d4..f0b3c66ee6eea1891fd406255631cd23c18a905d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -523,6 +523,16 @@ public class PurpurWorldConfig { +@@ -499,6 +499,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/unapplied/server/0172-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0169-Config-to-allow-for-unsafe-enchants.patch similarity index 92% rename from patches/unapplied/server/0172-Config-to-allow-for-unsafe-enchants.patch rename to patches/server/0169-Config-to-allow-for-unsafe-enchants.patch index 7629752f6..4823196bc 100644 --- a/patches/unapplied/server/0172-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0169-Config-to-allow-for-unsafe-enchants.patch @@ -27,10 +27,10 @@ index 514cc0e8805045549eacde6c280859aa2dc4a91d..a3ac6bebcef7b1e1f9c3ebe525656a15 ++i; } else if (targets.size() == 1) { diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 1d3534589e1977c14e01e29c5570fe0ec0ee0a88..8d892758a90779b3eb7d880dd53e34fe7a133820 100644 +index c8b6c5c65a4cd3a53b300358513f96acdaaba449..ae7ff760a84620562b2b6b0d1d0fd2f94a09024a 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -@@ -209,7 +209,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -208,7 +208,7 @@ public class AnvilMenu extends ItemCombinerMenu { int i2 = (Integer) map1.get(enchantment); i2 = l1 == i2 ? i2 + 1 : Math.max(i2, l1); @@ -39,7 +39,7 @@ index 1d3534589e1977c14e01e29c5570fe0ec0ee0a88..8d892758a90779b3eb7d880dd53e34fe if (this.player.getAbilities().instabuild || itemstack.is(Items.ENCHANTED_BOOK)) { flag3 = true; -@@ -221,7 +221,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -220,7 +220,7 @@ public class AnvilMenu extends ItemCombinerMenu { Enchantment enchantment1 = (Enchantment) iterator1.next(); if (enchantment1 != enchantment && !enchantment.isCompatibleWith(enchantment1)) { @@ -48,7 +48,7 @@ index 1d3534589e1977c14e01e29c5570fe0ec0ee0a88..8d892758a90779b3eb7d880dd53e34fe ++i; } } -@@ -333,7 +333,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -332,7 +332,7 @@ public class AnvilMenu extends ItemCombinerMenu { sendAllDataToRemote(); // CraftBukkit - SPIGOT-6686: Always send completed inventory to stay in sync with client this.broadcastChanges(); // Purpur start @@ -58,10 +58,10 @@ index 1d3534589e1977c14e01e29c5570fe0ec0ee0a88..8d892758a90779b3eb7d880dd53e34fe ((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get())); } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 3bd63474205bf7982af291d973a2a71a8490f20b..342e229fc0039510fdf2fc56998ee0891dda7380 100644 +index 7ed8ae3a92d631dcfc155790dbc2fdd4a3e39d1c..03271cdffd99ab443904a5d1da05d79c0566cbb4 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1147,6 +1147,12 @@ public final class ItemStack { +@@ -1149,6 +1149,12 @@ public final class ItemStack { return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false; } @@ -71,8 +71,8 @@ index 3bd63474205bf7982af291d973a2a71a8490f20b..342e229fc0039510fdf2fc56998ee089 + } + // Purpur end + - public void addTagElement(String key, net.minecraft.nbt.Tag tag) { - this.getOrCreateTag().put(key, tag); + public void addTagElement(String key, net.minecraft.nbt.Tag element) { + this.getOrCreateTag().put(key, element); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 8223f12a2457cd3dddff4f77e4fba1406e68889e..6ba0d86496a73f90cfdab9fd6ff871cb6f286a8a 100644 diff --git a/patches/unapplied/server/0173-Configurable-sponge-absorption.patch b/patches/server/0170-Configurable-sponge-absorption.patch similarity index 92% rename from patches/unapplied/server/0173-Configurable-sponge-absorption.patch rename to patches/server/0170-Configurable-sponge-absorption.patch index 25948eba3..fabb33ca9 100644 --- a/patches/unapplied/server/0173-Configurable-sponge-absorption.patch +++ b/patches/server/0170-Configurable-sponge-absorption.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable sponge absorption Allows the total area and radius of water blocks the sponge can absorb to be changed. diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java -index 1ef8eadd4e59f2e5d2bbd84f6f9bcf37b59db5bd..5b10e1110f938745c8f9ed0b55960566bc720c30 100644 +index 842997ea9f25a05d74a2e8300e44cc39a7e9cd96..97b4e3c0d2b1bbde77b135b8595c3bfa190a14cb 100644 --- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java @@ -77,13 +77,13 @@ public class SpongeBlock extends Block { @@ -43,10 +43,10 @@ index 1ef8eadd4e59f2e5d2bbd84f6f9bcf37b59db5bd..5b10e1110f938745c8f9ed0b55960566 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index da526812eb623343cd5aea849c4439414a9d6569..de88b4dc9860c386a2b407bc2703c08958433624 100644 +index f0b3c66ee6eea1891fd406255631cd23c18a905d..d72a6b9b662ded53208bfe7a1b687f51fce58e61 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -658,6 +658,13 @@ public class PurpurWorldConfig { +@@ -634,6 +634,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/unapplied/server/0174-Projectile-offset-config.patch b/patches/server/0171-Projectile-offset-config.patch similarity index 93% rename from patches/unapplied/server/0174-Projectile-offset-config.patch rename to patches/server/0171-Projectile-offset-config.patch index 0c8f4bb01..d37a82019 100644 --- a/patches/unapplied/server/0174-Projectile-offset-config.patch +++ b/patches/server/0171-Projectile-offset-config.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Projectile offset config diff --git a/src/main/java/net/minecraft/world/item/BowItem.java b/src/main/java/net/minecraft/world/item/BowItem.java -index fe4695adbb506733b4029ecfabcfda3d23dde52a..214a06004ae36905867675b17e0a43c2703a3196 100644 +index 33df0ca406dc8321b76b393f317bbd1c8ebe6366..220513d3fd5645322886522ea4f6b8c55d043b3c 100644 --- a/src/main/java/net/minecraft/world/item/BowItem.java +++ b/src/main/java/net/minecraft/world/item/BowItem.java @@ -44,7 +44,7 @@ public class BowItem extends ProjectileWeaponItem implements Vanishable { ArrowItem itemarrow = (ArrowItem) (itemstack1.getItem() instanceof ArrowItem ? itemstack1.getItem() : Items.ARROW); - AbstractArrow entityarrow = itemarrow.createArrow(world, itemstack1, (LivingEntity) entityhuman); + AbstractArrow entityarrow = itemarrow.createArrow(world, itemstack1, entityhuman); - entityarrow.shootFromRotation(entityhuman, entityhuman.getXRot(), entityhuman.getYRot(), 0.0F, f * 3.0F, 1.0F); + entityarrow.shootFromRotation(entityhuman, entityhuman.getXRot(), entityhuman.getYRot(), 0.0F, f * 3.0F, (float) world.purpurConfig.bowProjectileOffset); // Purpur @@ -18,7 +18,7 @@ index fe4695adbb506733b4029ecfabcfda3d23dde52a..214a06004ae36905867675b17e0a43c2 entityarrow.setCritArrow(true); } diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index 264542304babba94e364811da8d7b51b812a2b47..e2ff5d9c62ef812155e7851e6bc869e573f48240 100644 +index 78f6d335dedd933ff225e2c63b879626b6b76ee7..311a8f4e7c644a02590c8e1ad1784229439c8d4d 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java @@ -65,7 +65,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -31,7 +31,7 @@ index 264542304babba94e364811da8d7b51b812a2b47..e2ff5d9c62ef812155e7851e6bc869e5 return InteractionResultHolder.consume(itemstack); } else if (!user.getProjectile(itemstack).isEmpty()) { diff --git a/src/main/java/net/minecraft/world/item/EggItem.java b/src/main/java/net/minecraft/world/item/EggItem.java -index 98b353f5cc05da5ee5a6c6110a08e43e819fe6d2..8fe9757be77e9a4117a7bbf1e8bea93fc1b954c1 100644 +index 58cb992c5defec2f092755cbde661ff10f38bf9d..52f48681407d23f0925f4c9c072d5f0a2a6b1778 100644 --- a/src/main/java/net/minecraft/world/item/EggItem.java +++ b/src/main/java/net/minecraft/world/item/EggItem.java @@ -24,7 +24,7 @@ public class EggItem extends Item { @@ -57,7 +57,7 @@ index 897c202c0905040072a06fdfa2032a7f9461b088..6b27d98d06b163243bb0e1bb979aad03 com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityenderpearl.getBukkitEntity()); if (event.callEvent() && world.addFreshEntity(entityenderpearl)) { diff --git a/src/main/java/net/minecraft/world/item/SnowballItem.java b/src/main/java/net/minecraft/world/item/SnowballItem.java -index 717f90a2ca41734f7ee09401f21474820fa1cf48..628a9402419d0effae9eed38d26dada5194702d3 100644 +index ef3f90a5bcdd7b9815a4053cff166f9d2552f55d..e7e5e1cc92f56e3daba8fa09c59188febec5e8f2 100644 --- a/src/main/java/net/minecraft/world/item/SnowballItem.java +++ b/src/main/java/net/minecraft/world/item/SnowballItem.java @@ -25,7 +25,7 @@ public class SnowballItem extends Item { @@ -83,7 +83,7 @@ index de5bdceb4c8578fb972a2fd5ee0dfdae509e46dc..bcf63ccb6e679cb97d658780b2663aaf com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) user.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemStack), (org.bukkit.entity.Projectile) thrownPotion.getBukkitEntity()); if (event.callEvent() && world.addFreshEntity(thrownPotion)) { diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java -index 3f53dc8f250ad3f7616ce7ef0a2353caa0ab1879..29130aa9673a3956030f3e43b784ac46ac7a65ae 100644 +index 5beaafec0759543d3bddf99028c97d0d005be209..086f746cc632a90c67a6c30ea9197c5bb5485b22 100644 --- a/src/main/java/net/minecraft/world/item/TridentItem.java +++ b/src/main/java/net/minecraft/world/item/TridentItem.java @@ -77,7 +77,7 @@ public class TridentItem extends Item implements Vanishable { @@ -96,7 +96,7 @@ index 3f53dc8f250ad3f7616ce7ef0a2353caa0ab1879..29130aa9673a3956030f3e43b784ac46 entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index de88b4dc9860c386a2b407bc2703c08958433624..9aa4a8f8cca73c2c16052ba12ee421ddaa0b9e2f 100644 +index d72a6b9b662ded53208bfe7a1b687f51fce58e61..5ed678765d846214f0dbe5c6fd05e7b873b231c4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -381,6 +381,23 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0175-Config-for-powered-rail-activation-distance.patch b/patches/server/0172-Config-for-powered-rail-activation-distance.patch similarity index 92% rename from patches/unapplied/server/0175-Config-for-powered-rail-activation-distance.patch rename to patches/server/0172-Config-for-powered-rail-activation-distance.patch index f9472c6d3..ea5dd45b9 100644 --- a/patches/unapplied/server/0175-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0172-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b } else { int j = pos.getX(); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9aa4a8f8cca73c2c16052ba12ee421ddaa0b9e2f..b6e75495e61d2d22224eb6faa5f5bd087b22799f 100644 +index 5ed678765d846214f0dbe5c6fd05e7b873b231c4..9849e2ef22dbec71d2539515ce671ec982bbeea2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -670,6 +670,11 @@ public class PurpurWorldConfig { +@@ -646,6 +646,11 @@ public class PurpurWorldConfig { slabHalfBreak = getBoolean("blocks.slab.break-individual-slabs-when-sneaking", slabHalfBreak); } diff --git a/patches/unapplied/server/0176-Piglin-portal-spawn-modifier.patch b/patches/server/0173-Piglin-portal-spawn-modifier.patch similarity index 90% rename from patches/unapplied/server/0176-Piglin-portal-spawn-modifier.patch rename to patches/server/0173-Piglin-portal-spawn-modifier.patch index 78ac768ca..05595b9eb 100644 --- a/patches/unapplied/server/0176-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0173-Piglin-portal-spawn-modifier.patch @@ -18,7 +18,7 @@ Difficulties: 3 - hard diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java -index fef1027829c44957e23c0a121033bfb7640d06f0..c42349d0f6b0025525278295b36f4030f122800e 100644 +index b99a9f76d6e400a053c57a96c9586fe09a4a5a26..41caccb63a6e6ce28cb6fc218dcb8fbd015fbcb7 100644 --- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java @@ -55,7 +55,7 @@ public class NetherPortalBlock extends Block { @@ -31,10 +31,10 @@ index fef1027829c44957e23c0a121033bfb7640d06f0..c42349d0f6b0025525278295b36f4030 pos = pos.below(); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b6e75495e61d2d22224eb6faa5f5bd087b22799f..f054153986dfc9b1e214b75409a216d60435d8a9 100644 +index 9849e2ef22dbec71d2539515ce671ec982bbeea2..324065c2fec50e3e38d162a79dd26ae8049e79e4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1559,6 +1559,7 @@ public class PurpurWorldConfig { +@@ -1535,6 +1535,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index b6e75495e61d2d22224eb6faa5f5bd087b22799f..f054153986dfc9b1e214b75409a216d6 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1570,6 +1571,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1547,7 @@ public class PurpurWorldConfig { piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); diff --git a/patches/unapplied/server/0177-Config-to-change-max-number-of-bees.patch b/patches/server/0174-Config-to-change-max-number-of-bees.patch similarity index 96% rename from patches/unapplied/server/0177-Config-to-change-max-number-of-bees.patch rename to patches/server/0174-Config-to-change-max-number-of-bees.patch index 9fe76d35b..3a98df7d5 100644 --- a/patches/unapplied/server/0177-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0174-Config-to-change-max-number-of-bees.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to change max number of bees diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index 8484e80a70129fb0358d56efab6fd54798b54e6e..ffacc4b8cc3ab8285c4131aec58e48ffa9e1952e 100644 +index 9fcd835d219aafbe113ebb1b796052e07bf2b046..87ee1d0d51fb54702ae5763c01dba8632b2234e3 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -43,7 +43,7 @@ public class BeehiveBlockEntity extends BlockEntity { diff --git a/patches/unapplied/server/0178-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0175-Configurable-damage-settings-for-magma-blocks.patch similarity index 87% rename from patches/unapplied/server/0178-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0175-Configurable-damage-settings-for-magma-blocks.patch index fb2777849..a1e6f048a 100644 --- a/patches/unapplied/server/0178-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0175-Configurable-damage-settings-for-magma-blocks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable damage settings for magma blocks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 431982c9beb57c76d568b46989daa2bd3117948f..c8cfc15a0984d850819a0e46975a76a2958533e3 100644 +index c422495386021e2b1b0048d608ca06f4703e1f34..b8a7af8b7dc7b76566fc462969797bd5c4530e8f 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1008,7 +1008,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -1019,7 +1019,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i } // CraftBukkit end @@ -18,7 +18,7 @@ index 431982c9beb57c76d568b46989daa2bd3117948f..c8cfc15a0984d850819a0e46975a76a2 } diff --git a/src/main/java/net/minecraft/world/level/block/MagmaBlock.java b/src/main/java/net/minecraft/world/level/block/MagmaBlock.java -index 5d844ed98b916298a657d5e9766ab7f383a304e0..0129460ce1ca199a47b6657f824c75fdf0e44ccf 100644 +index 96b4597101a7f3e98ce30bfc301e8ca1620d0fe4..d7845984b5077cdcd40d652c226d5d60bb823dbe 100644 --- a/src/main/java/net/minecraft/world/level/block/MagmaBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MagmaBlock.java @@ -29,7 +29,7 @@ public class MagmaBlock extends Block { @@ -31,10 +31,10 @@ index 5d844ed98b916298a657d5e9766ab7f383a304e0..0129460ce1ca199a47b6657f824c75fd entity.hurt(DamageSource.HOT_FLOOR, 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f054153986dfc9b1e214b75409a216d60435d8a9..90b87383f5b1e6db87b80148f672300c2bfd8ad0 100644 +index 324065c2fec50e3e38d162a79dd26ae8049e79e4..0f78ff7b7b57b51e2b851bd522ab5a60f3f68d12 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -637,6 +637,13 @@ public class PurpurWorldConfig { +@@ -613,6 +613,13 @@ public class PurpurWorldConfig { kelpMaxGrowthAge = getInt("blocks.kelp.max-growth-age", kelpMaxGrowthAge); } diff --git a/patches/unapplied/server/0179-Config-for-wither-explosion-radius.patch b/patches/server/0176-Config-for-wither-explosion-radius.patch similarity index 88% rename from patches/unapplied/server/0179-Config-for-wither-explosion-radius.patch rename to patches/server/0176-Config-for-wither-explosion-radius.patch index 8809100ed..c55e0ac0c 100644 --- a/patches/unapplied/server/0179-Config-for-wither-explosion-radius.patch +++ b/patches/server/0176-Config-for-wither-explosion-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for wither explosion radius diff --git a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java -index 430aa10101d9f21561155941ff24441fd0c4103a..de91f0dd7f9a62e5a96b4cc3e4f505ecdcfccd92 100644 +index a66e9826b8283366cec5adb54f79efee47d9df22..6cf8b12e94c17a8111eef5cc0157e4df594f15dc 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java +++ b/src/main/java/net/minecraft/world/entity/projectile/WitherSkull.java @@ -97,7 +97,7 @@ public class WitherSkull extends AbstractHurtingProjectile { @@ -18,10 +18,10 @@ index 430aa10101d9f21561155941ff24441fd0c4103a..de91f0dd7f9a62e5a96b4cc3e4f505ec if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 90b87383f5b1e6db87b80148f672300c2bfd8ad0..f3a339284d3a8eb9baa856cc969a407e1fc2aac4 100644 +index 0f78ff7b7b57b51e2b851bd522ab5a60f3f68d12..5e872265d88d28671df2c67dcfaabafd70790e41 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2145,6 +2145,7 @@ public class PurpurWorldConfig { +@@ -2121,6 +2121,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 90b87383f5b1e6db87b80148f672300c2bfd8ad0..f3a339284d3a8eb9baa856cc969a407e private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2164,6 +2165,7 @@ public class PurpurWorldConfig { +@@ -2140,6 +2141,7 @@ public class PurpurWorldConfig { witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/unapplied/server/0180-Gamemode-extra-permissions.patch b/patches/server/0177-Gamemode-extra-permissions.patch similarity index 98% rename from patches/unapplied/server/0180-Gamemode-extra-permissions.patch rename to patches/server/0177-Gamemode-extra-permissions.patch index e50b614da..e0005ae6c 100644 --- a/patches/unapplied/server/0180-Gamemode-extra-permissions.patch +++ b/patches/server/0177-Gamemode-extra-permissions.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Gamemode extra permissions diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index 224669ecaad37ac2f16900700eea40ef52d938a5..3c668bb739ee92b6d1130889cc42f73a129bf5a2 100644 +index 6e8111ef16439d2b3025ebe2a0418b245420bd88..c20c7c9a6eb299e1a8d3d3e9bdf986ea282dd98a 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -195,6 +195,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy diff --git a/patches/unapplied/server/0181-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0178-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch similarity index 96% rename from patches/unapplied/server/0181-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch rename to patches/server/0178-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch index 6446df10f..7ef62f0fa 100644 --- a/patches/unapplied/server/0181-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch +++ b/patches/server/0178-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch @@ -18,7 +18,7 @@ index e5562b407bba35ab93bf8bc3c22ac9d45e8353cb..c688bb73cd062f36524cfc231cb691f2 if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f3a339284d3a8eb9baa856cc969a407e1fc2aac4..d8039612d92e25ac9667e513206db17ccd53b9e4 100644 +index 5e872265d88d28671df2c67dcfaabafd70790e41..571cdf58e8f331c9c0837529a783f9354dcf7687 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -398,6 +398,21 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0182-Configurable-piston-push-limit.patch b/patches/server/0179-Configurable-piston-push-limit.patch similarity index 94% rename from patches/unapplied/server/0182-Configurable-piston-push-limit.patch rename to patches/server/0179-Configurable-piston-push-limit.patch index 703fc1e26..77fd9eec1 100644 --- a/patches/unapplied/server/0182-Configurable-piston-push-limit.patch +++ b/patches/server/0179-Configurable-piston-push-limit.patch @@ -36,10 +36,10 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d8039612d92e25ac9667e513206db17ccd53b9e4..23d2d6e34e33ca53f7867e2a301e75dffea74704 100644 +index 571cdf58e8f331c9c0837529a783f9354dcf7687..31161a0ee4843f0944e44232b80216fec976eadc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -659,6 +659,11 @@ public class PurpurWorldConfig { +@@ -635,6 +635,11 @@ public class PurpurWorldConfig { magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); } diff --git a/patches/unapplied/server/0183-Configurable-broadcast-settings.patch b/patches/server/0180-Configurable-broadcast-settings.patch similarity index 94% rename from patches/unapplied/server/0183-Configurable-broadcast-settings.patch rename to patches/server/0180-Configurable-broadcast-settings.patch index 0094565b2..a64c22cf7 100644 --- a/patches/unapplied/server/0183-Configurable-broadcast-settings.patch +++ b/patches/server/0180-Configurable-broadcast-settings.patch @@ -17,17 +17,17 @@ index 945fb3200d52b83eaee2e62d6db5c43e088218eb..a87a532ce9e69bf4a90aac73ad51e4a8 // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 696eddee3524a4b18caa3990b6da3ad20537627c..176168d37000fe439593bd0cfc0a07d29577b474 100644 +index 0ecb17490ac194b53709e752d4a4928d83978946..a8f3ff75cc6f382efe24313a24bf34af8c563fec 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -881,6 +881,7 @@ public class ServerPlayer extends Player { +@@ -910,6 +910,7 @@ public class ServerPlayer extends Player { }); Team scoreboardteambase = this.getTeam(); + if (net.pl3x.purpur.PurpurConfig.deathMessageOnlyBroadcastToAffectedPlayer) this.sendMessage(ichatbasecomponent); else // Purpur if (scoreboardteambase != null && scoreboardteambase.getDeathMessageVisibility() != Team.Visibility.ALWAYS) { if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { - this.server.getPlayerList().broadcastToTeam((Player) this, ichatbasecomponent); + this.server.getPlayerList().broadcastToTeam(this, ichatbasecomponent); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 7c108355943d71531ec7a9a997b10dc6959de09b..4d09b8eb877954537abe5ba165a1e35194443341 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/patches/unapplied/server/0184-Fix-SPIGOT-6278.patch b/patches/server/0181-Fix-SPIGOT-6278.patch similarity index 82% rename from patches/unapplied/server/0184-Fix-SPIGOT-6278.patch rename to patches/server/0181-Fix-SPIGOT-6278.patch index dd9596b7b..d39fc277f 100644 --- a/patches/unapplied/server/0184-Fix-SPIGOT-6278.patch +++ b/patches/server/0181-Fix-SPIGOT-6278.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-6278 diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 43a7220f44c7b21c7faa240364999c3cd5ea8de7..0dc997aab735a03e55fcad07f8938ac5ac3a68be 100644 +index 9410c57b4999915ccff9588895fd9bec307499bd..825a2fe1eac36812744b134be76798d8ae3d0bbf 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -@@ -222,7 +222,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento +@@ -221,7 +221,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @Override public boolean removeWhenFarAway(double distanceSquared) { diff --git a/patches/unapplied/server/0185-Configurable-mob-blindness.patch b/patches/server/0182-Configurable-mob-blindness.patch similarity index 88% rename from patches/unapplied/server/0185-Configurable-mob-blindness.patch rename to patches/server/0182-Configurable-mob-blindness.patch index 343aa9852..cb5cb2f88 100644 --- a/patches/unapplied/server/0185-Configurable-mob-blindness.patch +++ b/patches/server/0182-Configurable-mob-blindness.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Configurable mob blindness Ported from https://github.com/raltsmc/mobblindness diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1378b33c2d6307eaba0158b23988217d4063efa5..3eb4737420f9d6d583a3214fa4c77de6bcea2608 100644 +index 4b88efb67d1d3522c4520e0aa4c8f45c95383222..42131cb0ed7346a6c9e466047a8f4a829523d611 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -992,6 +992,17 @@ public abstract class LivingEntity extends Entity { +@@ -987,6 +987,17 @@ public abstract class LivingEntity extends Entity { if (entitytypes == EntityType.SKELETON && itemstack.is(Items.SKELETON_SKULL) || entitytypes == EntityType.ZOMBIE && itemstack.is(Items.ZOMBIE_HEAD) || entitytypes == EntityType.CREEPER && itemstack.is(Items.CREEPER_HEAD)) { d0 *= 0.5D; } @@ -28,10 +28,10 @@ index 1378b33c2d6307eaba0158b23988217d4063efa5..3eb4737420f9d6d583a3214fa4c77de6 return d0; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 23d2d6e34e33ca53f7867e2a301e75dffea74704..5278ac38778ab8fd74baf5b19211477f204b1bb9 100644 +index 31161a0ee4843f0944e44232b80216fec976eadc..10c79bd3b1c71397e055d25d38cc888ba057467c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -460,6 +460,7 @@ public class PurpurWorldConfig { +@@ -459,6 +459,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 23d2d6e34e33ca53f7867e2a301e75dffea74704..5278ac38778ab8fd74baf5b19211477f public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -481,6 +482,7 @@ public class PurpurWorldConfig { +@@ -479,6 +480,7 @@ public class PurpurWorldConfig { persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/unapplied/server/0186-Hide-hidden-players-from-entity-selector.patch b/patches/server/0183-Hide-hidden-players-from-entity-selector.patch similarity index 85% rename from patches/unapplied/server/0186-Hide-hidden-players-from-entity-selector.patch rename to patches/server/0183-Hide-hidden-players-from-entity-selector.patch index dc315209d..fc6c46c86 100644 --- a/patches/unapplied/server/0186-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0183-Hide-hidden-players-from-entity-selector.patch @@ -5,24 +5,24 @@ Subject: [PATCH] Hide hidden players from entity selector diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java -index 0fb8f32427843f4bfd90ab88ecb3ab3e4a4fda31..f99f1ba7f912a2fd503e12c446b342a8d04356a0 100644 +index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..eaa1af57bdf4cb890706e839cbbae15f00933391 100644 --- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java +++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java @@ -184,10 +184,10 @@ public class EntitySelector { if (this.playerName != null) { - entityplayer = commandlistenerwrapper.getServer().getPlayerList().getPlayerByName(this.playerName); + entityplayer = source.getServer().getPlayerList().getPlayerByName(this.playerName); - return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new ServerPlayer[]{entityplayer})); + return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur } else if (this.entityUUID != null) { - entityplayer = commandlistenerwrapper.getServer().getPlayerList().getPlayer(this.entityUUID); + entityplayer = source.getServer().getPlayerList().getPlayer(this.entityUUID); - return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new ServerPlayer[]{entityplayer})); + return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur } else { - Vec3 vec3d = (Vec3) this.position.apply(commandlistenerwrapper.getPosition()); + Vec3 vec3d = (Vec3) this.position.apply(source.getPosition()); Predicate predicate = this.getPredicate(vec3d); @@ -197,7 +197,7 @@ public class EntitySelector { - ServerPlayer entityplayer1 = (ServerPlayer) commandlistenerwrapper.getEntity(); + ServerPlayer entityplayer1 = (ServerPlayer) source.getEntity(); if (predicate.test(entityplayer1)) { - return Lists.newArrayList(new ServerPlayer[]{entityplayer1}); @@ -33,11 +33,11 @@ index 0fb8f32427843f4bfd90ab88ecb3ab3e4a4fda31..f99f1ba7f912a2fd503e12c446b342a8 @@ -207,6 +207,7 @@ public class EntitySelector { if (this.isWorldLimited()) { - object = commandlistenerwrapper.getLevel().getPlayers(predicate); + object = source.getLevel().getPlayers(predicate); + ((List) object).removeIf(entityplayer3 -> !canSee(commandlistenerwrapper, (ServerPlayer) entityplayer3)); // Purpur } else { object = Lists.newArrayList(); - Iterator iterator = commandlistenerwrapper.getServer().getPlayerList().getPlayers().iterator(); + Iterator iterator = source.getServer().getPlayerList().getPlayers().iterator(); @@ -214,7 +215,7 @@ public class EntitySelector { while (iterator.hasNext()) { ServerPlayer entityplayer2 = (ServerPlayer) iterator.next(); @@ -48,8 +48,8 @@ index 0fb8f32427843f4bfd90ab88ecb3ab3e4a4fda31..f99f1ba7f912a2fd503e12c446b342a8 } } @@ -256,4 +257,10 @@ public class EntitySelector { - public static Component joinNames(List list) { - return ComponentUtils.formatList(list, Entity::getDisplayName); + public static Component joinNames(List entities) { + return ComponentUtils.formatList(entities, Entity::getDisplayName); } + + // Purpur start diff --git a/patches/unapplied/server/0187-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0184-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 90% rename from patches/unapplied/server/0187-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/server/0184-Config-for-health-to-impact-Creeper-explosion-radius.patch index 0d31f269c..2f2cd199c 100644 --- a/patches/unapplied/server/0187-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0184-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index a9f3aec907798c0ce9bb684cdea8ab41323c4772..59531e4e9163f992ed1176fda217acbde9f8c09b 100644 +index 73b0c8403eca3c26f76e59fc4b057b5029e3f014..b8fa29185266df4f432a010ba229d1a6706b66f4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -361,9 +361,10 @@ public class Creeper extends Monster implements PowerableMob { @@ -21,10 +21,10 @@ index a9f3aec907798c0ce9bb684cdea8ab41323c4772..59531e4e9163f992ed1176fda217acbd if (!event.isCancelled()) { this.dead = true; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5278ac38778ab8fd74baf5b19211477f204b1bb9..96c3bccbfa80cc1bc0c3dd55416661c27257369b 100644 +index 10c79bd3b1c71397e055d25d38cc888ba057467c..913624b227f5df5ff6318723407148d8723602ff 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -931,6 +931,7 @@ public class PurpurWorldConfig { +@@ -907,6 +907,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 5278ac38778ab8fd74baf5b19211477f204b1bb9..96c3bccbfa80cc1bc0c3dd55416661c2 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -945,6 +946,7 @@ public class PurpurWorldConfig { +@@ -921,6 +922,7 @@ public class PurpurWorldConfig { creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); diff --git a/patches/unapplied/server/0188-Iron-golem-poppy-calms-anger.patch b/patches/server/0185-Iron-golem-poppy-calms-anger.patch similarity index 94% rename from patches/unapplied/server/0188-Iron-golem-poppy-calms-anger.patch rename to patches/server/0185-Iron-golem-poppy-calms-anger.patch index fb9da5d53..a7cd389a5 100644 --- a/patches/unapplied/server/0188-Iron-golem-poppy-calms-anger.patch +++ b/patches/server/0185-Iron-golem-poppy-calms-anger.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Iron golem poppy calms anger diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index e327e00506f1b96fe924e52de6c45034ba56ac7a..e19e0c934c2e494a439ba8ec22b238e82aa72c28 100644 +index c96289cc4bf5731862849f491a2049a41c768eed..efe3839f893eefe241dac14b7796baa2aaa22aad 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -96,6 +96,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -17,10 +17,10 @@ index e327e00506f1b96fe924e52de6c45034ba56ac7a..e19e0c934c2e494a439ba8ec22b238e8 this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F)); this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 96c3bccbfa80cc1bc0c3dd55416661c27257369b..65992ff2a5fa2cd3e27f940eac1dd6eb8b2d3cf9 100644 +index 913624b227f5df5ff6318723407148d8723602ff..5ea1452da89f2f79fc2e4e912e8b20e3c1e87a4c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1342,6 +1342,7 @@ public class PurpurWorldConfig { +@@ -1318,6 +1318,7 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -28,7 +28,7 @@ index 96c3bccbfa80cc1bc0c3dd55416661c27257369b..65992ff2a5fa2cd3e27f940eac1dd6eb private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1353,6 +1354,7 @@ public class PurpurWorldConfig { +@@ -1329,6 +1330,7 @@ public class PurpurWorldConfig { } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); diff --git a/patches/unapplied/server/0189-Breedable-parrots.patch b/patches/server/0186-Breedable-parrots.patch similarity index 85% rename from patches/unapplied/server/0189-Breedable-parrots.patch rename to patches/server/0186-Breedable-parrots.patch index d6c1b0e73..d7723125f 100644 --- a/patches/unapplied/server/0189-Breedable-parrots.patch +++ b/patches/server/0186-Breedable-parrots.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Breedable parrots diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index 67c72a5b9c786d3240ade51aa48e0e63f0d758cd..bb4449f19319926cbd3ea4961a591669f370bd6e 100644 +index 953db16af175e14e1a47487659a0346216d8cdbc..5c906b380ad3caceb29fdd5a221cf5ce97910025 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -@@ -215,6 +215,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { +@@ -220,6 +220,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { this.goalSelector.addGoal(0, new FloatGoal(this)); this.goalSelector.addGoal(0, new net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur this.goalSelector.addGoal(1, new PanicGoal(this, 1.25D)); // Purpur @@ -16,7 +16,7 @@ index 67c72a5b9c786d3240ade51aa48e0e63f0d758cd..bb4449f19319926cbd3ea4961a591669 this.goalSelector.addGoal(1, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this)); this.goalSelector.addGoal(2, new FollowOwnerGoal(this, 1.0D, 5.0F, 1.0F, true)); -@@ -329,6 +330,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { +@@ -334,6 +335,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { } } @@ -24,7 +24,7 @@ index 67c72a5b9c786d3240ade51aa48e0e63f0d758cd..bb4449f19319926cbd3ea4961a591669 return InteractionResult.sidedSuccess(this.level.isClientSide); } else if (itemstack.is(Parrot.POISONOUS_FOOD)) { if (!player.getAbilities().instabuild) { -@@ -354,7 +356,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { +@@ -359,7 +361,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { @Override public boolean isFood(ItemStack stack) { @@ -33,7 +33,7 @@ index 67c72a5b9c786d3240ade51aa48e0e63f0d758cd..bb4449f19319926cbd3ea4961a591669 } public static boolean checkParrotSpawnRules(EntityType type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { -@@ -373,13 +375,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { +@@ -376,13 +378,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { @Override public boolean canMate(Animal other) { @@ -50,10 +50,10 @@ index 67c72a5b9c786d3240ade51aa48e0e63f0d758cd..bb4449f19319926cbd3ea4961a591669 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 65992ff2a5fa2cd3e27f940eac1dd6eb8b2d3cf9..37a7e2af2d9967e0c5b33644254ed9528f9d7c31 100644 +index 5ea1452da89f2f79fc2e4e912e8b20e3c1e87a4c..4dba5d8c7df8037cafbc4940b6dcb4b9e5087383 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -1492,6 +1492,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1468,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 256D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 65992ff2a5fa2cd3e27f940eac1dd6eb8b2d3cf9..37a7e2af2d9967e0c5b33644254ed952 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1503,6 +1504,7 @@ public class PurpurWorldConfig { +@@ -1479,6 +1480,7 @@ public class PurpurWorldConfig { } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); diff --git a/patches/unapplied/server/0190-Configurable-powered-rail-boost-modifier.patch b/patches/server/0187-Configurable-powered-rail-boost-modifier.patch similarity index 89% rename from patches/unapplied/server/0190-Configurable-powered-rail-boost-modifier.patch rename to patches/server/0187-Configurable-powered-rail-boost-modifier.patch index b78ae9d81..14a9c3d3e 100644 --- a/patches/unapplied/server/0190-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0187-Configurable-powered-rail-boost-modifier.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable powered rail boost modifier diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -index 1e3077a22d9d3d26356b865001dcce81c9c1d7e5..cc57ff699d159a0cc748e91b61d53965ac822ff4 100644 +index 6b58b32711b3aba9b7de9e7dee6d02073dad3b7f..0e6f2d1d48910c573ec2237002a02f334a5d05b0 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java -@@ -715,7 +715,7 @@ public abstract class AbstractMinecart extends Entity { +@@ -713,7 +713,7 @@ public abstract class AbstractMinecart extends Entity { if (d18 > 0.01D) { double d20 = 0.06D; @@ -18,7 +18,7 @@ index 1e3077a22d9d3d26356b865001dcce81c9c1d7e5..cc57ff699d159a0cc748e91b61d53965 Vec3 vec3d5 = this.getDeltaMovement(); double d21 = vec3d5.x; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 37a7e2af2d9967e0c5b33644254ed9528f9d7c31..6dc93f87b20bbee2540f2a7842ed6c2a8d2675ea 100644 +index 4dba5d8c7df8037cafbc4940b6dcb4b9e5087383..f6fdb8e2ad1f4e5e726971887179c2e7fcecf5d7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -227,6 +227,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0191-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0188-Add-config-change-multiplier-critical-damage-value.patch similarity index 89% rename from patches/unapplied/server/0191-Add-config-change-multiplier-critical-damage-value.patch rename to patches/server/0188-Add-config-change-multiplier-critical-damage-value.patch index c4208c302..676ac1be2 100644 --- a/patches/unapplied/server/0191-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0188-Add-config-change-multiplier-critical-damage-value.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add config change multiplier critical damage value diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 6423f422d4eca56cd8cbdd9c23925ce703b426f5..8a06a090993119da256db12671e56720ef74c2e2 100644 +index 0a8c8a24af17262be3e656042dc5c8bce9364e8a..c7fbd149cc3a12f438b1dfaffba566278ef21bed 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1253,7 +1253,7 @@ public abstract class Player extends LivingEntity { +@@ -1255,7 +1255,7 @@ public abstract class Player extends LivingEntity { flag2 = flag2 && !level.paperConfig.disablePlayerCrits; // Paper flag2 = flag2 && !this.isSprinting(); if (flag2) { @@ -18,7 +18,7 @@ index 6423f422d4eca56cd8cbdd9c23925ce703b426f5..8a06a090993119da256db12671e56720 f += f1; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 6dc93f87b20bbee2540f2a7842ed6c2a8d2675ea..9330068639325527fde6d1d3fee17707344f27dc 100644 +index f6fdb8e2ad1f4e5e726971887179c2e7fcecf5d7..b8252315d23a8279525f880afe4aa6fde692e75b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -326,6 +326,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0192-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0189-Option-to-disable-dragon-egg-teleporting.patch similarity index 80% rename from patches/unapplied/server/0192-Option-to-disable-dragon-egg-teleporting.patch rename to patches/server/0189-Option-to-disable-dragon-egg-teleporting.patch index a1f686c49..a59f4c331 100644 --- a/patches/unapplied/server/0192-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0189-Option-to-disable-dragon-egg-teleporting.patch @@ -5,22 +5,24 @@ Subject: [PATCH] Option to disable dragon egg teleporting diff --git a/src/main/java/net/minecraft/world/level/block/DragonEggBlock.java b/src/main/java/net/minecraft/world/level/block/DragonEggBlock.java -index 78f51f3dd0e7249af69228479da932e9aea982d6..d9d4421f7f316281487828739168cfd6febf2bf5 100644 +index 7e1edcc7b9f170b7c649437c2f0dd78c0bab9be4..5f8ac1fdac2c334951261f2b9702f5e711743c88 100644 --- a/src/main/java/net/minecraft/world/level/block/DragonEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DragonEggBlock.java -@@ -41,6 +41,7 @@ public class DragonEggBlock extends FallingBlock { +@@ -42,8 +42,8 @@ public class DragonEggBlock extends FallingBlock { } private void teleport(BlockState state, Level world, BlockPos pos) { + if (!world.purpurConfig.dragonEggTeleport) return; // Purpur + WorldBorder worldborder = world.getWorldBorder(); +- for (int i = 0; i < 1000; ++i) { BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 9330068639325527fde6d1d3fee17707344f27dc..b9064a5ffa01ec122830fe70aa2be7abdd1a45a6 100644 +index b8252315d23a8279525f880afe4aa6fde692e75b..f24c209ebde321504219661219bd9fe8d40acf52 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -571,6 +571,11 @@ public class PurpurWorldConfig { +@@ -547,6 +547,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/unapplied/server/0193-Config-for-unverified-username-message.patch b/patches/server/0190-Config-for-unverified-username-message.patch similarity index 95% rename from patches/unapplied/server/0193-Config-for-unverified-username-message.patch rename to patches/server/0190-Config-for-unverified-username-message.patch index 042985713..ae6f6ca95 100644 --- a/patches/unapplied/server/0193-Config-for-unverified-username-message.patch +++ b/patches/server/0190-Config-for-unverified-username-message.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Config for unverified username message diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 494ca8fa8c742d4eac9fb11878d3b3170d850265..fd25d3bdc28d713159265911fab1b3d2e9375dbd 100644 +index 33a29890435d6065a2cc4f8e8bf8209c01d5d114..09f2eb149e23b271bab879b84c7910d76f79fec9 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -309,7 +309,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -310,7 +310,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener ServerLoginPacketListenerImpl.this.gameProfile = ServerLoginPacketListenerImpl.this.createFakeProfile(gameprofile); ServerLoginPacketListenerImpl.this.state = ServerLoginPacketListenerImpl.State.READY_TO_ACCEPT; } else { diff --git a/patches/unapplied/server/0194-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0191-Make-anvil-cumulative-cost-configurable.patch similarity index 92% rename from patches/unapplied/server/0194-Make-anvil-cumulative-cost-configurable.patch rename to patches/server/0191-Make-anvil-cumulative-cost-configurable.patch index d7e86981f..3e9d64c67 100644 --- a/patches/unapplied/server/0194-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0191-Make-anvil-cumulative-cost-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make anvil cumulative cost configurable diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 8d892758a90779b3eb7d880dd53e34fe7a133820..10c8dbf09c110bb42704fe6638cde010275b133a 100644 +index ae7ff760a84620562b2b6b0d1d0fd2f94a09024a..ca0ac66e79a8236fce84a448e6e24a1d8bba7ac8 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -@@ -342,7 +342,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -341,7 +341,7 @@ public class AnvilMenu extends ItemCombinerMenu { } public static int calculateIncreasedRepairCost(int cost) { diff --git a/patches/unapplied/server/0195-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0192-ShulkerBox-allow-oversized-stacks.patch similarity index 81% rename from patches/unapplied/server/0195-ShulkerBox-allow-oversized-stacks.patch rename to patches/server/0192-ShulkerBox-allow-oversized-stacks.patch index 8b7bb7160..dfc2bc139 100644 --- a/patches/unapplied/server/0195-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0192-ShulkerBox-allow-oversized-stacks.patch @@ -9,10 +9,10 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for creative players) instead of routing it through the LootableBuilder. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index ca281c9444051ca1695580c51b6774502e072db8..585e921585529c03756c51550110c796e6f27ea5 100644 +index 1351d83efdcab51d3898e1fb77d01b27975ce136..a6bf1fb6fff72b7d6460ce27ee7e7c45d4f4fee4 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -@@ -449,7 +449,7 @@ public class ServerPlayerGameMode { +@@ -445,7 +445,7 @@ public class ServerPlayerGameMode { block.destroy(this.level, pos, iblockdata); } @@ -22,23 +22,23 @@ index ca281c9444051ca1695580c51b6774502e072db8..585e921585529c03756c51550110c796 } else { ItemStack itemstack = this.player.getMainHandItem(); diff --git a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java -index b9c558060024d380e89116489c7fc12ad88db8ad..0a0a4be15bed899812fcd4af0e311f5fc40d5570 100644 +index 7f1230d915c98b6f30b13a06c2788bc2f7b7e912..9439119a70a411b1a7d9cd6a0090e4133ac744a3 100644 --- a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java -@@ -122,7 +122,7 @@ public class ShulkerBoxBlock extends BaseEntityBlock { +@@ -123,7 +123,7 @@ public class ShulkerBoxBlock extends BaseEntityBlock { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof ShulkerBoxBlockEntity) { ShulkerBoxBlockEntity shulkerBoxBlockEntity = (ShulkerBoxBlockEntity)blockEntity; - if (!world.isClientSide && player.isCreative() && !shulkerBoxBlockEntity.isEmpty()) { + if (world.purpurConfig.shulkerBoxAllowOversizedStacks || (player.isCreative() && !shulkerBoxBlockEntity.isEmpty())) { // Purpur ItemStack itemStack = getColoredItemStack(this.getColor()); - CompoundTag compoundTag = shulkerBoxBlockEntity.saveToTag(new CompoundTag()); - if (!compoundTag.isEmpty()) { + blockEntity.saveToItem(itemStack); + if (shulkerBoxBlockEntity.hasCustomName()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b9064a5ffa01ec122830fe70aa2be7abdd1a45a6..d1c9bcd1216abde2179d3812dd9c3f49a529eab9 100644 +index f24c209ebde321504219661219bd9fe8d40acf52..20e55ccaf40f289b4bd028c4c6fc8b78748f7cf1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -696,6 +696,11 @@ public class PurpurWorldConfig { +@@ -672,6 +672,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/unapplied/server/0196-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0193-Bee-can-work-when-raining-or-at-night.patch similarity index 88% rename from patches/unapplied/server/0196-Bee-can-work-when-raining-or-at-night.patch rename to patches/server/0193-Bee-can-work-when-raining-or-at-night.patch index 8f05bea22..4de077e98 100644 --- a/patches/unapplied/server/0196-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0193-Bee-can-work-when-raining-or-at-night.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Bee can work when raining or at night diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index d2de13c6a39af3dc779b508b41498d4bd6422490..d1d27e0a3e52057e5f80d917508f548ac6195b1e 100644 +index 69511e218f9e1fa0c334023aed13337907cee875..b0ec555db51ce5451c178ad1d28df6d072f92bd3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java -@@ -405,7 +405,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { +@@ -406,7 +406,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { boolean wantsToEnterHive() { if (this.stayOutOfHiveCountdown <= 0 && !this.beePollinateGoal.isPollinating() && !this.hasStung() && this.getTarget() == null) { @@ -18,7 +18,7 @@ index d2de13c6a39af3dc779b508b41498d4bd6422490..d1d27e0a3e52057e5f80d917508f548a return flag && !this.isHiveNearFire(); } else { diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index ffacc4b8cc3ab8285c4131aec58e48ffa9e1952e..e0e039e2f614f2df48d8d1b6e8bbbe7a72d96d6f 100644 +index 87ee1d0d51fb54702ae5763c01dba8632b2234e3..60dbc5c30e928cf00ed58e8fcbc4515371cc2ef7 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -197,7 +197,7 @@ public class BeehiveBlockEntity extends BlockEntity { @@ -31,10 +31,10 @@ index ffacc4b8cc3ab8285c4131aec58e48ffa9e1952e..e0e039e2f614f2df48d8d1b6e8bbbe7a return false; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d1c9bcd1216abde2179d3812dd9c3f49a529eab9..84f98b5dd5d9f15c7cc00068f053f31b82d51cdf 100644 +index 20e55ccaf40f289b4bd028c4c6fc8b78748f7cf1..109f20e53ca2e2d4ad2342d6c69130b30faa5b61 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -805,6 +805,8 @@ public class PurpurWorldConfig { +@@ -781,6 +781,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index d1c9bcd1216abde2179d3812dd9c3f49a529eab9..84f98b5dd5d9f15c7cc00068f053f31b private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -817,6 +819,8 @@ public class PurpurWorldConfig { +@@ -793,6 +795,8 @@ public class PurpurWorldConfig { beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); diff --git a/patches/unapplied/server/0197-API-for-any-mob-to-burn-daylight.patch b/patches/server/0194-API-for-any-mob-to-burn-daylight.patch similarity index 87% rename from patches/unapplied/server/0197-API-for-any-mob-to-burn-daylight.patch rename to patches/server/0194-API-for-any-mob-to-burn-daylight.patch index 0df11e1a3..a6a12e2f9 100644 --- a/patches/unapplied/server/0197-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0194-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c8cfc15a0984d850819a0e46975a76a2958533e3..451a5f43b745daa0820d9e483dfb5bcb13b88013 100644 +index b8a7af8b7dc7b76566fc462969797bd5c4530e8f..9b817c1754f035b9a6b066bdbfa323191f2679ff 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4329,5 +4329,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -4253,5 +4253,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i public boolean canSaveToDisk() { return true; } @@ -29,10 +29,10 @@ index c8cfc15a0984d850819a0e46975a76a2958533e3..451a5f43b745daa0820d9e483dfb5bcb // 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 3eb4737420f9d6d583a3214fa4c77de6bcea2608..8810a0d5a990bf4c525907eaf0f850a8012129da 100644 +index 42131cb0ed7346a6c9e466047a8f4a829523d611..e86d68ba3a875df414ad08ef05024dea95157014 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -265,6 +265,7 @@ public abstract class LivingEntity extends Entity { +@@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity { public boolean bukkitPickUpLoot; public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event @@ -40,7 +40,7 @@ index 3eb4737420f9d6d583a3214fa4c77de6bcea2608..8810a0d5a990bf4c525907eaf0f850a8 @Override public float getBukkitYaw() { -@@ -769,6 +770,7 @@ public abstract class LivingEntity extends Entity { +@@ -764,6 +765,7 @@ public abstract class LivingEntity extends Entity { dataresult.resultOrPartial(logger::error).ifPresent((nbtbase) -> { nbt.put("Brain", nbtbase); }); @@ -48,7 +48,7 @@ index 3eb4737420f9d6d583a3214fa4c77de6bcea2608..8810a0d5a990bf4c525907eaf0f850a8 } @Override -@@ -844,6 +846,11 @@ public abstract class LivingEntity extends Entity { +@@ -839,6 +841,11 @@ public abstract class LivingEntity extends Entity { this.brain = this.makeBrain(new Dynamic(NbtOps.INSTANCE, nbt.get("Brain"))); } @@ -89,10 +89,10 @@ index 3eb4737420f9d6d583a3214fa4c77de6bcea2608..8810a0d5a990bf4c525907eaf0f850a8 public boolean isSensitiveToWater() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 4a06034b95bef13c848717fd7910242cacd6dfba..a45d98a945f476344d788daad7fc7f208a441754 100644 +index d1fba8937127d40df87b3e243697cc83936610d8..ec4833cdff95e5038eba81886c2be88487bee279 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1641,17 +1641,7 @@ public abstract class Mob extends LivingEntity { +@@ -1656,17 +1656,7 @@ public abstract class Mob extends LivingEntity { } public boolean isSunBurnTick() { @@ -112,10 +112,10 @@ index 4a06034b95bef13c848717fd7910242cacd6dfba..a45d98a945f476344d788daad7fc7f20 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -index 74f4f8e1c9faef3b50fa817ca3dfbb6b19b1622d..5b19d8db09867791782c899d41d314c511f6c8a2 100644 +index 8869c32392383028128d6aa3eeaa474b7301cc0c..aa8a972479cea5d806959cf23df3101f0ea1ab2f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java -@@ -65,6 +65,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -64,6 +64,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo protected AbstractSkeleton(EntityType type, Level world) { super(type, world); this.reassessWeaponGoal(); @@ -123,7 +123,7 @@ index 74f4f8e1c9faef3b50fa817ca3dfbb6b19b1622d..5b19d8db09867791782c899d41d314c5 } @Override -@@ -100,35 +101,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -99,35 +100,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo } // Paper start @@ -161,7 +161,7 @@ index 74f4f8e1c9faef3b50fa817ca3dfbb6b19b1622d..5b19d8db09867791782c899d41d314c5 super.aiStep(); } -@@ -189,7 +169,6 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -188,7 +168,6 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo } else { this.goalSelector.addGoal(4, this.meleeGoal); } @@ -169,7 +169,7 @@ index 74f4f8e1c9faef3b50fa817ca3dfbb6b19b1622d..5b19d8db09867791782c899d41d314c5 } } -@@ -233,7 +212,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -232,7 +211,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo this.reassessWeaponGoal(); // Paper start if (nbt.contains("Paper.ShouldBurnInDay")) { @@ -178,7 +178,7 @@ index 74f4f8e1c9faef3b50fa817ca3dfbb6b19b1622d..5b19d8db09867791782c899d41d314c5 } // Paper end } -@@ -242,7 +221,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo +@@ -241,7 +220,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @Override public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); @@ -209,10 +209,10 @@ index 5458ac83fa555e22ca858f4f596ebb8f37926dd5..ca5683e9b0b4aad3827fe6d00198da8e @Override 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 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec59503eda 100644 +index 5cf1d412c248a558b53b99ffede96ead5579f51c..80fce16307a683c03a212b68fd9cb0ed2578d542 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -61,6 +61,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -60,6 +60,7 @@ public class Phantom extends FlyingMob implements Enemy { this.xpReward = 5; this.moveControl = new Phantom.PhantomMoveControl(this); this.lookControl = new Phantom.PhantomLookControl(this); @@ -220,7 +220,7 @@ index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec } // Purpur start -@@ -237,7 +238,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -236,7 +237,7 @@ public class Phantom extends FlyingMob implements Enemy { @Override public void aiStep() { @@ -229,7 +229,7 @@ index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec this.setSecondsOnFire(8); } -@@ -269,7 +270,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -268,7 +269,7 @@ public class Phantom extends FlyingMob implements Enemy { this.spawningEntity = nbt.getUUID("Paper.SpawningEntity"); } if (nbt.contains("Paper.ShouldBurnInDay")) { @@ -238,7 +238,7 @@ index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec } // Paper end } -@@ -285,7 +286,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -284,7 +285,7 @@ public class Phantom extends FlyingMob implements Enemy { if (this.spawningEntity != null) { nbt.putUUID("Paper.SpawningEntity", this.spawningEntity); } @@ -247,7 +247,7 @@ index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec // Paper end } -@@ -346,7 +347,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -345,7 +346,7 @@ public class Phantom extends FlyingMob implements Enemy { } public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; } @@ -257,10 +257,10 @@ index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } // Paper end 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 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306aa5d7af5 100644 +index be8182a2063fefa2c8f986c629eb629ef9dc1fee..2bd8dc3f5c0b28fb4ea380b4b4a8672d5ede2a38 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -96,11 +96,12 @@ public class Zombie extends Monster { +@@ -93,11 +93,12 @@ public class Zombie extends Monster { private int inWaterTime; public int conversionTime; private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field @@ -274,7 +274,7 @@ index 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306 } public Zombie(Level world) { -@@ -287,30 +288,7 @@ public class Zombie extends Monster { +@@ -284,30 +285,7 @@ public class Zombie extends Monster { @Override public void aiStep() { @@ -306,7 +306,7 @@ index 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306 super.aiStep(); } -@@ -348,6 +326,7 @@ public class Zombie extends Monster { +@@ -345,6 +323,7 @@ public class Zombie extends Monster { } @@ -314,7 +314,7 @@ index 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306 public boolean isSunSensitive() { return this.shouldBurnInDay; // Paper - use api value instead } -@@ -477,7 +456,7 @@ public class Zombie extends Monster { +@@ -474,7 +453,7 @@ public class Zombie extends Monster { nbt.putBoolean("CanBreakDoors", this.canBreakDoors()); nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1); nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1); @@ -323,7 +323,7 @@ index 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306 } @Override -@@ -491,7 +470,7 @@ public class Zombie extends Monster { +@@ -488,7 +467,7 @@ public class Zombie extends Monster { } // Paper start if (nbt.contains("Paper.ShouldBurnInDay")) { @@ -333,7 +333,7 @@ index 673e6e91290b3e7840d00d06c15906a014d72b42..6c253894866b870e79e110efd7eaf306 // Paper end diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index b8fb34df77ffd1f4ef2db63717e3acf2ab592fb6..47554042c83127f1f37e9b0881ef7c7796edd35a 100644 +index 30302c1cfdff65a5f1d0adde4c831f0a74f15851..1950210eb40c88ba7953f05190c7873b3221feb3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -197,6 +197,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -349,7 +349,7 @@ index b8fb34df77ffd1f4ef2db63717e3acf2ab592fb6..47554042c83127f1f37e9b0881ef7c77 /* * Order is *EXTREMELY* important -- keep it right! =D diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index be1f7cf667b5c9b2e691397bfc2e316b7ba84251..a59d71769db5452f9e16c514928dce20d1b99408 100644 +index eb61eab2b7be4f99b827a0e206db23a858fa2119..92a08935e7b1c936e8aa379b118c345b89dc23d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -937,5 +937,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0198-Fix-advancement-triggers-on-entity-death.patch b/patches/server/0195-Fix-advancement-triggers-on-entity-death.patch similarity index 91% rename from patches/unapplied/server/0198-Fix-advancement-triggers-on-entity-death.patch rename to patches/server/0195-Fix-advancement-triggers-on-entity-death.patch index 202a60322..e032a8965 100644 --- a/patches/unapplied/server/0198-Fix-advancement-triggers-on-entity-death.patch +++ b/patches/server/0195-Fix-advancement-triggers-on-entity-death.patch @@ -16,10 +16,10 @@ restoring it back to the entity just before the criterion triggers run and then finally clearing the equipment again right after the criterion is done. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 8810a0d5a990bf4c525907eaf0f850a8012129da..4deef279a88f938354437e573df9e595cf5cc22c 100644 +index e86d68ba3a875df414ad08ef05024dea95157014..8f15148dc81c5370f19edb77b6412c3f97741a0a 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1662,10 +1662,13 @@ public abstract class LivingEntity extends Entity { +@@ -1657,10 +1657,13 @@ public abstract class LivingEntity extends Entity { } // Paper start @@ -33,7 +33,7 @@ index 8810a0d5a990bf4c525907eaf0f850a8012129da..4deef279a88f938354437e573df9e595 } if (this.isSleeping()) { -@@ -2535,6 +2538,12 @@ public abstract class LivingEntity extends Entity { +@@ -2534,6 +2537,12 @@ public abstract class LivingEntity extends Entity { @Override public abstract void setItemSlot(EquipmentSlot slot, ItemStack stack); @@ -47,10 +47,10 @@ index 8810a0d5a990bf4c525907eaf0f850a8012129da..4deef279a88f938354437e573df9e595 CompoundTag nbttagcompound = stack.getTag(); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index a45d98a945f476344d788daad7fc7f208a441754..cc9b7c51318cacd934d5edfd1c7efcae93e7e49b 100644 +index ec4833cdff95e5038eba81886c2be88487bee279..2db4113b4c81d928eca1e2361425090aee099900 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1024,6 +1024,41 @@ public abstract class Mob extends LivingEntity { +@@ -1039,6 +1039,41 @@ public abstract class Mob extends LivingEntity { } @@ -93,10 +93,10 @@ index a45d98a945f476344d788daad7fc7f208a441754..cc9b7c51318cacd934d5edfd1c7efcae protected void dropCustomDeathLoot(DamageSource source, int lootingMultiplier, boolean allowDrops) { super.dropCustomDeathLoot(source, lootingMultiplier, allowDrops); diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 31454b15a20e0484e21c25ffb80d4d536e2ecc0b..4fd44e58e9b83f45a66562f53710ee647b7e2b1b 100644 +index 8634431cabae82b71f409f02c84dda2d8eca8504..46717e8979c3fb4a3bf9cc46f3b741a63002b8e7 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -205,6 +205,41 @@ public class ArmorStand extends LivingEntity { +@@ -204,6 +204,41 @@ public class ArmorStand extends LivingEntity { this.noTickEquipmentDirty = true; // Paper - Allow equipment to be updated even when tick disabled } @@ -139,10 +139,10 @@ index 31454b15a20e0484e21c25ffb80d4d536e2ecc0b..4fd44e58e9b83f45a66562f53710ee64 public boolean canTakeItem(ItemStack stack) { net.minecraft.world.entity.EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack); diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 8a06a090993119da256db12671e56720ef74c2e2..0c0d4ec5893f082a8b4071a627a64c7b88fd0067 100644 +index c7fbd149cc3a12f438b1dfaffba566278ef21bed..f55aef0116caf662f9cf1b14750422de802860bb 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1988,6 +1988,52 @@ public abstract class Player extends LivingEntity { +@@ -1990,6 +1990,52 @@ public abstract class Player extends LivingEntity { } diff --git a/patches/unapplied/server/0199-Config-MobEffect-by-world.patch b/patches/server/0196-Config-MobEffect-by-world.patch similarity index 87% rename from patches/unapplied/server/0199-Config-MobEffect-by-world.patch rename to patches/server/0196-Config-MobEffect-by-world.patch index 268c7c178..e45df3c01 100644 --- a/patches/unapplied/server/0199-Config-MobEffect-by-world.patch +++ b/patches/server/0196-Config-MobEffect-by-world.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config MobEffect by world diff --git a/src/main/java/net/minecraft/world/effect/MobEffect.java b/src/main/java/net/minecraft/world/effect/MobEffect.java -index 79e036d79dec2ec4404baf02c23ba5ccad20cdce..6706d8e6d43cc5f3058f08fdfde77bed57f4c641 100644 +index 8bbb9bdcf95989f1737714655f6f6a269d46d7f2..8d569eb2ec1b2bdbd415094ae04ae531dfdeafae 100644 --- a/src/main/java/net/minecraft/world/effect/MobEffect.java +++ b/src/main/java/net/minecraft/world/effect/MobEffect.java @@ -49,16 +49,16 @@ public class MobEffect { @@ -25,8 +25,8 @@ index 79e036d79dec2ec4404baf02c23ba5ccad20cdce..6706d8e6d43cc5f3058f08fdfde77bed - entity.hurt(DamageSource.WITHER, 1.0F); + entity.hurt(DamageSource.WITHER, entity.level.purpurConfig.entityWitherDegenerationAmount); // Purpur } else if (this == MobEffects.HUNGER && entity instanceof Player) { -- ((Player) entity).applyExhaustion(0.005F * (float) (amplifier + 1), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.HUNGER_EFFECT); // CraftBukkit - EntityExhaustionEvent -+ ((Player) entity).applyExhaustion(entity.level.purpurConfig.humanHungerExhaustionAmount * (float) (amplifier + 1), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.HUNGER_EFFECT); // CraftBukkit - EntityExhaustionEvent // Purpur +- ((Player) entity).causeFoodExhaustion(0.005F * (float) (amplifier + 1), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.HUNGER_EFFECT); // CraftBukkit - EntityExhaustionEvent ++ ((Player) entity).causeFoodExhaustion(entity.level.purpurConfig.humanHungerExhaustionAmount * (float) (amplifier + 1), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.HUNGER_EFFECT); // CraftBukkit - EntityExhaustionEvent // Purpur } else if (this == MobEffects.SATURATION && entity instanceof Player) { if (!entity.level.isClientSide) { // CraftBukkit start @@ -40,7 +40,7 @@ index 79e036d79dec2ec4404baf02c23ba5ccad20cdce..6706d8e6d43cc5f3058f08fdfde77bed ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 84f98b5dd5d9f15c7cc00068f053f31b82d51cdf..ff6fee57d36e939f34b9963afb656af31650dc4c 100644 +index 109f20e53ca2e2d4ad2342d6c69130b30faa5b61..8a5b21e1d2253459edfeb440f6bdeaa7c7cce1a5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -283,6 +283,21 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0200-Beacon-Activation-Range-Configurable.patch b/patches/server/0197-Beacon-Activation-Range-Configurable.patch similarity index 87% rename from patches/unapplied/server/0200-Beacon-Activation-Range-Configurable.patch rename to patches/server/0197-Beacon-Activation-Range-Configurable.patch index 3ba5701b1..c0b387787 100644 --- a/patches/unapplied/server/0200-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0197-Beacon-Activation-Range-Configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Beacon Activation Range Configurable diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -index 3281448bf37da8a1b4b7b44f10f4b2438b4a4f29..418c2ddf8ff50a5071b2a31585b77e9fdc577d9f 100644 +index 423560afba1bc03c0bb2b7d5d028451f34e59ec5..080694a06c9fdf57317dd281c4ddbd6c2b50662c 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java -@@ -85,6 +85,16 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider { +@@ -84,6 +84,16 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider { public double getEffectRange() { if (this.effectRange < 0) { @@ -26,10 +26,10 @@ index 3281448bf37da8a1b4b7b44f10f4b2438b4a4f29..418c2ddf8ff50a5071b2a31585b77e9f } else { return effectRange; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index ff6fee57d36e939f34b9963afb656af31650dc4c..143253d4b16cec33359723b65d1b6ae89e13525a 100644 +index 8a5b21e1d2253459edfeb440f6bdeaa7c7cce1a5..06026c89b4ed1ef3cca7073257ff9647efb387f7 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -536,6 +536,17 @@ public class PurpurWorldConfig { +@@ -512,6 +512,17 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); }