diff --git a/patches/unapplied/server/0051-Allow-leashing-villagers.patch b/patches/server/0048-Allow-leashing-villagers.patch similarity index 85% rename from patches/unapplied/server/0051-Allow-leashing-villagers.patch rename to patches/server/0048-Allow-leashing-villagers.patch index bf37b0c98..ab1705966 100644 --- a/patches/unapplied/server/0051-Allow-leashing-villagers.patch +++ b/patches/server/0048-Allow-leashing-villagers.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 9ed3354296746e1c50d55bca8c07fd4946255795..137b08608b2f19aa609c5e1ef47d9b964c47e109 100644 +index 439506a5916662c1976283da9834d6f19cfa7165..4863dc005e40f270ad33e33afce953739fd28101 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1315,6 +1315,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1312,6 +1312,7 @@ public abstract class Mob extends LivingEntity implements Targeting { if (!this.isAlive()) { return InteractionResult.PASS; } else if (this.getLeashHolder() == player) { @@ -17,10 +17,10 @@ index 9ed3354296746e1c50d55bca8c07fd4946255795..137b08608b2f19aa609c5e1ef47d9b96 // Paper start - drop leash variable org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild); 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 91a44381a822ce4dc543401a930d32c8d4a5a7eb..50925ab7d719ae3323d7456df03a3d2ab3481bfd 100644 +index d7cad34509c126122bce62596371780c34404024..8f65901bc4e189e2ac2686ca17233b9166e7b870 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -184,6 +184,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -183,6 +183,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth); } @@ -33,10 +33,10 @@ index 91a44381a822ce4dc543401a930d32c8d4a5a7eb..50925ab7d719ae3323d7456df03a3d2a public Brain getBrain() { return (Brain) super.getBrain(); // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 509bde6c02d9e74158da7a134fbdda1603cb3ec0..7413f90dfcb68476f7d514607f38a8965dfa6fd0 100644 +index c1c41990bc53c822aa170e3d69924437f4a25115..31daa61db84fcb3cde7ec4b18b32aba350ab2cfb 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -@@ -88,6 +88,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill +@@ -92,6 +92,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth); } @@ -49,10 +49,10 @@ index 509bde6c02d9e74158da7a134fbdda1603cb3ec0..7413f90dfcb68476f7d514607f38a896 protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e2667728ea44292ae05e80f1a27ed3edb36db7b1..ab42f93a621759a86c7e9eba14cb32b156d4f106 100644 +index b78702f6d2cb36d720c6ef59e5414ca381af08a1..cb46d1527a5f7f9b3c06aea27a55d98b7b6e734e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1440,6 +1440,7 @@ public class PurpurWorldConfig { +@@ -1436,6 +1436,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index e2667728ea44292ae05e80f1a27ed3edb36db7b1..ab42f93a621759a86c7e9eba14cb32b1 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1451,6 +1452,7 @@ public class PurpurWorldConfig { +@@ -1447,6 +1448,7 @@ public class PurpurWorldConfig { } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index e2667728ea44292ae05e80f1a27ed3edb36db7b1..ab42f93a621759a86c7e9eba14cb32b1 } public boolean vindicatorRidable = false; -@@ -1474,6 +1476,7 @@ public class PurpurWorldConfig { +@@ -1470,6 +1472,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index e2667728ea44292ae05e80f1a27ed3edb36db7b1..ab42f93a621759a86c7e9eba14cb32b1 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1485,6 +1488,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1484,7 @@ public class PurpurWorldConfig { } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); diff --git a/patches/unapplied/server/0052-Implement-infinite-liquids.patch b/patches/server/0049-Implement-infinite-liquids.patch similarity index 86% rename from patches/unapplied/server/0052-Implement-infinite-liquids.patch rename to patches/server/0049-Implement-infinite-liquids.patch index 3a90357a5..01b889e03 100644 --- a/patches/unapplied/server/0052-Implement-infinite-liquids.patch +++ b/patches/server/0049-Implement-infinite-liquids.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement infinite liquids diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -index 7d56693102ee558fe784e3a9b9fdcff4b7ad57b9..485bbec4b52f126393332d5cad2d97c2a220f91a 100644 +index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..ad077179fe5cf4acbfbe7572470201ab91817996 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java -@@ -227,7 +227,7 @@ public abstract class FlowingFluid extends Fluid { +@@ -218,7 +218,7 @@ public abstract class FlowingFluid extends Fluid { } } @@ -17,7 +17,7 @@ index 7d56693102ee558fe784e3a9b9fdcff4b7ad57b9..485bbec4b52f126393332d5cad2d97c2 BlockState iblockdata2 = world.getBlockState(pos.below()); FluidState fluid1 = iblockdata2.getFluidState(); -@@ -325,6 +325,12 @@ public abstract class FlowingFluid extends Fluid { +@@ -302,6 +302,12 @@ public abstract class FlowingFluid extends Fluid { protected abstract boolean canConvertToSource(Level world); @@ -31,7 +31,7 @@ index 7d56693102ee558fe784e3a9b9fdcff4b7ad57b9..485bbec4b52f126393332d5cad2d97c2 if (state.getBlock() instanceof LiquidBlockContainer) { ((LiquidBlockContainer) state.getBlock()).placeLiquid(world, pos, state, fluidState); diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java -index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..3706ebc551413401b0e6a9a0b1c2e3257d1337c1 100644 +index c3f8e1e2dd89c168b8b4a15b589109db486bc8d7..2076e4b433e0a57e3ae7053c1df77e0cdc457fc9 100644 --- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java +++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java @@ -198,6 +198,13 @@ public abstract class LavaFluid extends FlowingFluid { @@ -49,7 +49,7 @@ index 72f8b72c6436ca3b8eaeb39c7d3efe2c1462ae1d..3706ebc551413401b0e6a9a0b1c2e325 protected boolean canConvertToSource(Level world) { return world.getGameRules().getBoolean(GameRules.RULE_LAVA_SOURCE_CONVERSION); diff --git a/src/main/java/net/minecraft/world/level/material/WaterFluid.java b/src/main/java/net/minecraft/world/level/material/WaterFluid.java -index 82e85fbbd45244d02df90fa00c9046e7f51275a2..ec6c63075306f9e5389e83641d2c8a82369ddc6b 100644 +index d280c98aed5262c4ce39526c917de884f25a8584..e7d9f6802520620a1dcf0938256ffe80fc72a6f0 100644 --- a/src/main/java/net/minecraft/world/level/material/WaterFluid.java +++ b/src/main/java/net/minecraft/world/level/material/WaterFluid.java @@ -64,6 +64,13 @@ public abstract class WaterFluid extends FlowingFluid { @@ -67,10 +67,10 @@ index 82e85fbbd45244d02df90fa00c9046e7f51275a2..ec6c63075306f9e5389e83641d2c8a82 @Override protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ab42f93a621759a86c7e9eba14cb32b156d4f106..e72a61c0e3aeb9758245101621a5aa286f5f5658 100644 +index cb46d1527a5f7f9b3c06aea27a55d98b7b6e734e..e06739783b33e72bf43e577f0f7931ad243a48c9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -225,6 +225,11 @@ public class PurpurWorldConfig { +@@ -221,6 +221,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } @@ -82,7 +82,7 @@ index ab42f93a621759a86c7e9eba14cb32b156d4f106..e72a61c0e3aeb9758245101621a5aa28 public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; -@@ -234,6 +239,11 @@ public class PurpurWorldConfig { +@@ -230,6 +235,11 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/unapplied/server/0053-Make-lava-flow-speed-configurable.patch b/patches/server/0050-Make-lava-flow-speed-configurable.patch similarity index 87% rename from patches/unapplied/server/0053-Make-lava-flow-speed-configurable.patch rename to patches/server/0050-Make-lava-flow-speed-configurable.patch index 3d008c47e..595647c15 100644 --- a/patches/unapplied/server/0053-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0050-Make-lava-flow-speed-configurable.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Make lava flow speed configurable diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java -index 3706ebc551413401b0e6a9a0b1c2e3257d1337c1..b77cdbd8a7395e8442081c6a2b14695d62c9ef03 100644 +index 2076e4b433e0a57e3ae7053c1df77e0cdc457fc9..70ddb3b130ee59a6e200ea5af3ac89f3c3fa9e9b 100644 --- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java +++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java @@ -180,7 +180,7 @@ public abstract class LavaFluid extends FlowingFluid { @@ -18,10 +18,10 @@ index 3706ebc551413401b0e6a9a0b1c2e3257d1337c1..b77cdbd8a7395e8442081c6a2b14695d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e72a61c0e3aeb9758245101621a5aa286f5f5658..bb5877d6feec92e87c13e33abfda48507201d08e 100644 +index e06739783b33e72bf43e577f0f7931ad243a48c9..d85062beff8ee3b1c6141d433e133be8374e08d8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -226,8 +226,12 @@ public class PurpurWorldConfig { +@@ -222,8 +222,12 @@ public class PurpurWorldConfig { } public int lavaInfiniteRequiredSources = 2; diff --git a/patches/unapplied/server/0054-Add-player-death-exp-control-options.patch b/patches/server/0051-Add-player-death-exp-control-options.patch similarity index 75% rename from patches/unapplied/server/0054-Add-player-death-exp-control-options.patch rename to patches/server/0051-Add-player-death-exp-control-options.patch index 35fce6f93..19a3ed070 100644 --- a/patches/unapplied/server/0054-Add-player-death-exp-control-options.patch +++ b/patches/server/0051-Add-player-death-exp-control-options.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options 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 7b39cb5346925c14f3f144d622ca7e5855420aa6..fa2a0cc24bbe31abd49ce0f3f41bab2aa5d9c81f 100644 +index 535fe476ebe5b791cae7a4013c4a498b89d047e3..dd7e47ddde00e0b4f3b9833c1793246547ba0cf2 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1998,9 +1998,19 @@ public abstract class Player extends LivingEntity { +@@ -2004,9 +2004,19 @@ public abstract class Player extends LivingEntity { @Override public int getExperienceReward() { if (!this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) { @@ -32,22 +32,22 @@ index 7b39cb5346925c14f3f144d622ca7e5855420aa6..fa2a0cc24bbe31abd49ce0f3f41bab2a return 0; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bb5877d6feec92e87c13e33abfda48507201d08e..183a4e0192679d04555215c234dfefbc39dfe02e 100644 +index d85062beff8ee3b1c6141d433e133be8374e08d8..189b59cd6218e8e6b7f7c0326211e1b6545e9ca3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -173,6 +173,8 @@ public class PurpurWorldConfig { +@@ -171,6 +171,8 @@ public class PurpurWorldConfig { + public boolean idleTimeoutCountAsSleeping = false; + public boolean idleTimeoutUpdateTabList = false; public boolean idleTimeoutTargetPlayer = true; - public int playerSpawnInvulnerableTicks = 60; - public boolean playerInvulnerableWhileAcceptingResourcePack = false; + public String playerDeathExpDropEquation = "expLevel * 7"; + public int playerDeathExpDropMax = 100; private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -186,6 +188,8 @@ public class PurpurWorldConfig { +@@ -182,6 +184,8 @@ public class PurpurWorldConfig { + idleTimeoutCountAsSleeping = getBoolean("gameplay-mechanics.player.idle-timeout.count-as-sleeping", idleTimeoutCountAsSleeping); + idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer); - playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks); - playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); + playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); + playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); } diff --git a/patches/unapplied/server/0055-Configurable-void-damage-height-and-damage.patch b/patches/server/0052-Configurable-void-damage-height-and-damage.patch similarity index 87% rename from patches/unapplied/server/0055-Configurable-void-damage-height-and-damage.patch rename to patches/server/0052-Configurable-void-damage-height-and-damage.patch index e81d3e0ad..20344a605 100644 --- a/patches/unapplied/server/0055-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0052-Configurable-void-damage-height-and-damage.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index acce1d46d6bce9b052126c76bc1f36264df39e71..5b9ddcab26a4c962dae104c44d65d623c036c8fd 100644 +index 61183cfcff5f4c706d0491b844531596caa1080d..3d8228ee86e2924f584f14a43832060e6d59f709 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -915,7 +915,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -848,7 +848,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void checkBelowWorld() { // Paper start - Configurable nether ceiling damage @@ -18,10 +18,10 @@ index acce1d46d6bce9b052126c76bc1f36264df39e71..5b9ddcab26a4c962dae104c44d65d623 && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index bb8ba67c7a4a4c7a641e103bd20cbc0a01dc66b2..c32a8c4b8a75f524b0f99ada0bba6de40c0aa732 100644 +index 23c6ec58ab4bbd1807e3f05779258a9fd0e5133e..cb6bcd006ef482087a336747836889bb3afcb53e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2500,7 +2500,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2512,7 +2512,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @Override protected void onBelowWorld() { @@ -31,7 +31,7 @@ index bb8ba67c7a4a4c7a641e103bd20cbc0a01dc66b2..c32a8c4b8a75f524b0f99ada0bba6de4 protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 183a4e0192679d04555215c234dfefbc39dfe02e..a559ab65bc3f2d78d79e22b0e70afb6affd1d6a3 100644 +index 189b59cd6218e8e6b7f7c0326211e1b6545e9ca3..9311e620a821bbd46d962dd01ef9b0c1ec99555f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -98,10 +98,14 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0056-Add-canSaveToDisk-to-Entity.patch b/patches/server/0053-Add-canSaveToDisk-to-Entity.patch similarity index 96% rename from patches/unapplied/server/0056-Add-canSaveToDisk-to-Entity.patch rename to patches/server/0053-Add-canSaveToDisk-to-Entity.patch index 7e26b9be2..51b66a1a4 100644 --- a/patches/unapplied/server/0056-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0053-Add-canSaveToDisk-to-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 5b9ddcab26a4c962dae104c44d65d623c036c8fd..01a1534ec503e9aaea7befdba86f452128f8863d 100644 +index 3d8228ee86e2924f584f14a43832060e6d59f709..46098a03d6993db7509f351aa302d0e62a29078e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -493,6 +493,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -486,6 +486,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return false; } diff --git a/patches/unapplied/server/0057-Dispenser-curse-of-binding-protection.patch b/patches/server/0054-Dispenser-curse-of-binding-protection.patch similarity index 84% rename from patches/unapplied/server/0057-Dispenser-curse-of-binding-protection.patch rename to patches/server/0054-Dispenser-curse-of-binding-protection.patch index 8d62d6951..f768025b5 100644 --- a/patches/unapplied/server/0057-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0054-Dispenser-curse-of-binding-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 137b08608b2f19aa609c5e1ef47d9b964c47e109..2023ae88e6cb0565f8fe7b525dfe84279bf90dd6 100644 +index 4863dc005e40f270ad33e33afce953739fd28101..1c457561399b4a531ca7cb616a4bde69b30a4bc6 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -65,6 +65,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; @@ -16,7 +16,7 @@ index 137b08608b2f19aa609c5e1ef47d9b964c47e109..2023ae88e6cb0565f8fe7b525dfe8427 import net.minecraft.world.level.GameRules; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.Level; -@@ -1173,6 +1174,12 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1170,6 +1171,12 @@ public abstract class Mob extends LivingEntity implements Targeting { } @@ -30,10 +30,10 @@ index 137b08608b2f19aa609c5e1ef47d9b964c47e109..2023ae88e6cb0565f8fe7b525dfe8427 public static Item getEquipmentForSlot(EquipmentSlot equipmentSlot, int equipmentLevel) { switch (equipmentSlot) { diff --git a/src/main/java/net/minecraft/world/item/ArmorItem.java b/src/main/java/net/minecraft/world/item/ArmorItem.java -index d7a0cbde8f8c99276307502674c71463fbe7e89c..3500c56cb85d8c76b2acd77976d374eaf487b3b3 100644 +index 42d87800a328f71c5127ce5599ca4c71cc9bb1cd..a48083b0dea8e4343edeb1bd89aef19bb465bd56 100644 --- a/src/main/java/net/minecraft/world/item/ArmorItem.java +++ b/src/main/java/net/minecraft/world/item/ArmorItem.java -@@ -60,7 +60,7 @@ public class ArmorItem extends Item implements Equipable { +@@ -61,7 +61,7 @@ public class ArmorItem extends Item implements Equipable { return false; } else { LivingEntity entityliving = (LivingEntity) list.get(0); @@ -41,12 +41,12 @@ index d7a0cbde8f8c99276307502674c71463fbe7e89c..3500c56cb85d8c76b2acd77976d374ea + EquipmentSlot enumitemslot = pointer.getLevel().purpurConfig.dispenserApplyCursedArmor ? Mob.getEquipmentSlotForItem(armor) : Mob.getSlotForDispenser(armor); if (enumitemslot == null) return false; // Purpur ItemStack itemstack1 = armor.copyWithCount(1); // Paper - shrink below and single item in event // CraftBukkit start - Level world = pointer.getLevel(); + Level world = pointer.level(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a559ab65bc3f2d78d79e22b0e70afb6affd1d6a3..a42f39fc79c6ab632ae9df59e76a719665fa4d88 100644 +index 9311e620a821bbd46d962dd01ef9b0c1ec99555f..2e2a347d341ef831aaf1a6b01fa2aeb82e76b810 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -228,6 +228,11 @@ public class PurpurWorldConfig { +@@ -224,6 +224,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/unapplied/server/0058-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0055-Add-option-for-boats-to-eject-players-on-land.patch similarity index 89% rename from patches/unapplied/server/0058-Add-option-for-boats-to-eject-players-on-land.patch rename to patches/server/0055-Add-option-for-boats-to-eject-players-on-land.patch index f2b897a74..c21f83b02 100644 --- a/patches/unapplied/server/0058-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0055-Add-option-for-boats-to-eject-players-on-land.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option for boats to eject players on land diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -index 35aeba4e8430e6419caa9db4a0b931a994228618..cb8443c9bc902741dfe6746baca9129214ab503b 100644 +index 5c07da62c82bc70138f6cb5007629d6974be69ac..96f4ef06d16483bd4bb88cc36207d5bdc4bd1280 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java -@@ -541,6 +541,7 @@ public class Boat extends Entity implements VariantHolder { +@@ -578,6 +578,7 @@ public class Boat extends Entity implements VariantHolder { if (f > 0.0F) { this.landFriction = f; @@ -17,7 +17,7 @@ index 35aeba4e8430e6419caa9db4a0b931a994228618..cb8443c9bc902741dfe6746baca91292 } else { return Boat.Status.IN_AIR; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a42f39fc79c6ab632ae9df59e76a719665fa4d88..d935bc8e47b31ff8ec66cd3c6a5b19450b4684d5 100644 +index 2e2a347d341ef831aaf1a6b01fa2aeb82e76b810..e2e95793c02521df51d9dbf76a22e11f96778f49 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -95,12 +95,14 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0059-Mending-mends-most-damages-equipment-first.patch b/patches/server/0056-Mending-mends-most-damages-equipment-first.patch similarity index 95% rename from patches/unapplied/server/0059-Mending-mends-most-damages-equipment-first.patch rename to patches/server/0056-Mending-mends-most-damages-equipment-first.patch index 875fb9d3c..028ee85ef 100644 --- a/patches/unapplied/server/0059-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0056-Mending-mends-most-damages-equipment-first.patch @@ -18,10 +18,10 @@ index eca634792d2a7cc649675e3394e84dbaf1453905..2bd576849403bc2cfae298c221061619 if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index d138660e459b2d09ba9dd7ae2bf3da499d9ae25c..7ad1f9119991a7ef2c1c00d846729f39c2652849 100644 +index 16f087adbf94b8fd6726ffd300b103dd709ad406..d375703e0ad4cc2b82d6693e15800539e0c7c9f1 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -584,6 +584,16 @@ public final class ItemStack { +@@ -589,6 +589,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } @@ -73,7 +73,7 @@ index ecf640b00007a386290f8dfe9935a8aa610079fd..2048899f8e4c8211e8dde0d11148d647 public static Map.Entry getRandomItemWith(Enchantment enchantment, LivingEntity entity) { return getRandomItemWith(enchantment, entity, (stack) -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d935bc8e47b31ff8ec66cd3c6a5b19450b4684d5..9e4428db0ffa0f1b0e0ae11af903d3449c782ee4 100644 +index e2e95793c02521df51d9dbf76a22e11f96778f49..c48fae071a538a11739193f782232edfafb14de4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -95,6 +95,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0060-Add-5-second-tps-average-in-tps.patch b/patches/server/0057-Add-5-second-tps-average-in-tps.patch similarity index 93% rename from patches/unapplied/server/0060-Add-5-second-tps-average-in-tps.patch rename to patches/server/0057-Add-5-second-tps-average-in-tps.patch index 95a380a01..5c83d9b05 100644 --- a/patches/unapplied/server/0060-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0057-Add-5-second-tps-average-in-tps.patch @@ -27,10 +27,10 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index eda8479d26d5ccbb516adc6c483c1c8366375ddd..4cadfd50a0c465ab8d809b91b9a999943385bc8a 100644 +index 09dca4c159e47432c6f2a463320456a1e7f1bae5..5c9eda3f59998a7d7cebadd1d67c316643614796 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -302,7 +302,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0) { @@ -66,7 +66,7 @@ index 7ad1f9119991a7ef2c1c00d846729f39c2652849..34068bd89cb4c111e468d85fb01e51d9 int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -668,6 +668,12 @@ public final class ItemStack { +@@ -673,6 +673,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); @@ -99,7 +99,7 @@ index 8078f127ff4b6e0aafb5804b9c02e237f79445b5..06c2f30b77a2c8aecc65e0c305f643d5 entityhuman.startAutoSpinAttack(20); if (entityhuman.onGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9e4428db0ffa0f1b0e0ae11af903d3449c782ee4..abecd27fab86cb5c16b3d42d5f499caa1976bd45 100644 +index c48fae071a538a11739193f782232edfafb14de4..b34f95b6104b1aebd8c07cf279e168cdb074efb9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -112,6 +112,19 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0062-Item-entity-immunities.patch b/patches/server/0059-Item-entity-immunities.patch similarity index 93% rename from patches/unapplied/server/0062-Item-entity-immunities.patch rename to patches/server/0059-Item-entity-immunities.patch index d20bc9c3d..29dff8a39 100644 --- a/patches/unapplied/server/0062-Item-entity-immunities.patch +++ b/patches/server/0059-Item-entity-immunities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 8ab959dd588b5154b63e133b2e937fa2d0ab8e52..fb11b020d52988360562db23d8568e5ef37e21c8 100644 +index 892a334d1b1c0784ed6838d1aa066403998b9a9f..6047010e3a2063cec45cea4d1bc7dab367448d12 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -70,7 +70,7 @@ public class ServerEntity { +@@ -73,7 +73,7 @@ public class ServerEntity { @Nullable private List> trackedDataValues; // CraftBukkit start @@ -18,7 +18,7 @@ index 8ab959dd588b5154b63e133b2e937fa2d0ab8e52..fb11b020d52988360562db23d8568e5e public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer> consumer, Set trackedPlayers) { this.trackedPlayers = trackedPlayers; diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index d39f31e7cf315c7cdc1daab28164380e44dd8341..028b83b8e835cfdad19ae9edad76c524b98ead7f 100644 +index eb0351aa12eebcefab1d1d14641fc3c60cbbcab8..4f01fede54a3150798812d6e5116631bf897a29b 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -56,6 +56,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -52,8 +52,8 @@ index d39f31e7cf315c7cdc1daab28164380e44dd8341..028b83b8e835cfdad19ae9edad76c524 return false; } else if (!this.getItem().isEmpty() && this.getItem().is(Items.NETHER_STAR) && source.is(DamageTypeTags.IS_EXPLOSION)) { return false; -@@ -549,6 +564,12 @@ public class ItemEntity extends Entity implements TraceableEntity { - // com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit // Paper - Remove check +@@ -548,6 +563,12 @@ public class ItemEntity extends Entity implements TraceableEntity { + public void setItem(ItemStack stack) { this.getEntityData().set(ItemEntity.DATA_ITEM, stack); this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper + // Purpur start @@ -117,7 +117,7 @@ index 5e83fabb20bc2b0668cbf48530053ca1bb9092f3..8fcee0e426cd598ddfd7e12df4382d57 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index abecd27fab86cb5c16b3d42d5f499caa1976bd45..9639202024f79c8ed57207445380ef017cfeaea6 100644 +index b34f95b6104b1aebd8c07cf279e168cdb074efb9..fb6d7e6917e0b8648b5192d83f7aa6a3e3742eae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -125,6 +125,49 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0063-Add-ping-command.patch b/patches/server/0060-Add-ping-command.patch similarity index 94% rename from patches/unapplied/server/0063-Add-ping-command.patch rename to patches/server/0060-Add-ping-command.patch index 80e22aa9f..7af15d9d4 100644 --- a/patches/unapplied/server/0063-Add-ping-command.patch +++ b/patches/server/0060-Add-ping-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ping command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 147fcbdd784f06fe23138b20aef82f92ba154998..aadc9fc53b0f495664d90c40f30f9a128c3b4c95 100644 +index a5829f0726fd92faae04f978c82b2f0736bcd50b..32fbe67a2dceda1a165edc7397a64beffc537488 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -224,6 +224,7 @@ public class Commands { +@@ -230,6 +230,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); @@ -17,7 +17,7 @@ index 147fcbdd784f06fe23138b20aef82f92ba154998..aadc9fc53b0f495664d90c40f30f9a12 if (environment.includeIntegrated) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 4905358e2a1939bfba963bda3fcf914721dfac45..a74932163207506e779c941c819eb663b98bd18c 100644 +index e2edbb0842862b8ffdf30cec104a1d71a71e92e0..35400f352d44be9a32eb69eb87a3ffdeef9a20b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -179,6 +179,7 @@ public class PurpurConfig { diff --git a/patches/unapplied/server/0064-Add-demo-command.patch b/patches/server/0061-Add-demo-command.patch similarity index 94% rename from patches/unapplied/server/0064-Add-demo-command.patch rename to patches/server/0061-Add-demo-command.patch index 3941c6443..6a34ca340 100644 --- a/patches/unapplied/server/0064-Add-demo-command.patch +++ b/patches/server/0061-Add-demo-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add demo command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index aadc9fc53b0f495664d90c40f30f9a128c3b4c95..54f9dd8d666b2b45190681f4362fce457e8e8ef2 100644 +index 32fbe67a2dceda1a165edc7397a64beffc537488..4794bb7f80d3419c6da12ee0f608ba05080a409a 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -224,6 +224,7 @@ public class Commands { +@@ -230,6 +230,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); @@ -17,7 +17,7 @@ index aadc9fc53b0f495664d90c40f30f9a128c3b4c95..54f9dd8d666b2b45190681f4362fce45 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index a74932163207506e779c941c819eb663b98bd18c..235db276a07017bf89e6311a0b84291e8a0af06b 100644 +index 35400f352d44be9a32eb69eb87a3ffdeef9a20b3..00fb3507118960046a61d8a21f9654f279d53874 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -179,6 +179,7 @@ public class PurpurConfig { diff --git a/patches/unapplied/server/0065-Add-credits-command.patch b/patches/server/0062-Add-credits-command.patch similarity index 95% rename from patches/unapplied/server/0065-Add-credits-command.patch rename to patches/server/0062-Add-credits-command.patch index edc67a907..5c0c78156 100644 --- a/patches/unapplied/server/0065-Add-credits-command.patch +++ b/patches/server/0062-Add-credits-command.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add credits command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 54f9dd8d666b2b45190681f4362fce457e8e8ef2..e5b1b6ad32c48a4ba13b4930954fad18669677ad 100644 +index 4794bb7f80d3419c6da12ee0f608ba05080a409a..637648e03985868c1fe420f84fa778b06deb23ee 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -224,6 +224,7 @@ public class Commands { +@@ -230,6 +230,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); @@ -17,7 +17,7 @@ index 54f9dd8d666b2b45190681f4362fce457e8e8ef2..e5b1b6ad32c48a4ba13b4930954fad18 org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 235db276a07017bf89e6311a0b84291e8a0af06b..8e99128759e555cdef0efe9cea1b3b36f2c3fda9 100644 +index 00fb3507118960046a61d8a21f9654f279d53874..d98e16bc47d3bc458281956bf538f4a37bd0f4b7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -179,6 +179,7 @@ public class PurpurConfig { diff --git a/patches/unapplied/server/0066-Configurable-jockey-options.patch b/patches/server/0063-Configurable-jockey-options.patch similarity index 90% rename from patches/unapplied/server/0066-Configurable-jockey-options.patch rename to patches/server/0063-Configurable-jockey-options.patch index 3fbf17f0d..5b6551ddf 100644 --- a/patches/unapplied/server/0066-Configurable-jockey-options.patch +++ b/patches/server/0063-Configurable-jockey-options.patch @@ -31,10 +31,10 @@ index 3cde608a222ab2ef2b5fc7f543e97ba71e440ea9..6ec7d0f5e525f9e04b6fa0fb6d4da5fc protected void addBehaviourGoals() { this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0D)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java -index 5f801b2a7d8a69a38b8e10471a29f813c8d828ad..7e46ebc5c99f018cada50f491200e4fe7b7098d7 100644 +index 469ad6f0d73add7b005217b2ae39b201c7679a27..ede13fe38fb97b94180ea8557d8a45d2ae5954d3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Husk.java +++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java -@@ -49,6 +49,21 @@ public class Husk extends Zombie { +@@ -51,6 +51,21 @@ public class Husk extends Zombie { this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level().purpurConfig.huskSpawnReinforcements); } @@ -57,10 +57,10 @@ index 5f801b2a7d8a69a38b8e10471a29f813c8d828ad..7e46ebc5c99f018cada50f491200e4fe return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (spawnReason == MobSpawnType.SPAWNER || world.canSeeSky(pos)); } 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 b3a31549179760388bc2958b4339848d1f0b293d..b2b04d7b7bbc400fb66cac385fa754d4fb47c7d9 100644 +index 004de1b76734d9015537fa4885656101d2f07efa..1efcafd736c1dbd057d5bfe7abbfcb1fb2d6f7b3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -128,6 +128,18 @@ public class Zombie extends Monster { +@@ -129,6 +129,18 @@ public class Zombie extends Monster { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.zombieMaxHealth); } @@ -79,7 +79,7 @@ index b3a31549179760388bc2958b4339848d1f0b293d..b2b04d7b7bbc400fb66cac385fa754d4 @Override protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur -@@ -551,19 +563,20 @@ public class Zombie extends Monster { +@@ -552,19 +564,20 @@ public class Zombie extends Monster { if (object instanceof Zombie.ZombieGroupData) { Zombie.ZombieGroupData entityzombie_groupdatazombie = (Zombie.ZombieGroupData) object; @@ -106,7 +106,7 @@ index b3a31549179760388bc2958b4339848d1f0b293d..b2b04d7b7bbc400fb66cac385fa754d4 Chicken entitychicken1 = (Chicken) EntityType.CHICKEN.create(this.level()); if (entitychicken1 != null) { -@@ -573,6 +586,7 @@ public class Zombie extends Monster { +@@ -574,6 +587,7 @@ public class Zombie extends Monster { this.startRiding(entitychicken1); world.addFreshEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit } @@ -115,10 +115,10 @@ index b3a31549179760388bc2958b4339848d1f0b293d..b2b04d7b7bbc400fb66cac385fa754d4 } } diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index c89680f83275169728f923e70a17cb88d4480f01..6f3667751e430ff6020a9a26f82a25e4ec043ce6 100644 +index a205c668d0d7b428622fbcaa1598f01c685b516e..01f6b7eb50870f9bcac9bbd3b6a87382d6aa1f1b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -@@ -106,6 +106,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { +@@ -109,6 +109,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level().purpurConfig.zombieVillagerSpawnReinforcements); } @@ -141,10 +141,10 @@ index c89680f83275169728f923e70a17cb88d4480f01..6f3667751e430ff6020a9a26f82a25e4 protected void defineSynchedData() { super.defineSynchedData(); diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index 8f22bfcde4bb8ad73794f2b98b156113e5a2a6c9..3d61b27c23d90e87fdfc8c170eafc116716ac047 100644 +index fa5fa58ee03243054a38475634a6aa67815ca77d..764477c39e690d6373e17c77687809418e0de884 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -@@ -85,6 +85,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { +@@ -86,6 +86,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.zombifiedPiglinMaxHealth); } @@ -167,10 +167,10 @@ index 8f22bfcde4bb8ad73794f2b98b156113e5a2a6c9..3d61b27c23d90e87fdfc8c170eafc116 public void setPersistentAngerTarget(@Nullable UUID angryAt) { this.persistentAngerTarget = angryAt; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6cffb5eab 100644 +index fb6d7e6917e0b8648b5192d83f7aa6a3e3742eae..6da08454de6f0932971a230471d3558578a4b2a3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -592,6 +592,9 @@ public class PurpurWorldConfig { +@@ -588,6 +588,9 @@ public class PurpurWorldConfig { public boolean drownedControllable = true; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -603,6 +606,9 @@ public class PurpurWorldConfig { +@@ -599,6 +602,9 @@ public class PurpurWorldConfig { } drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth); drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements); @@ -190,7 +190,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 } public boolean elderGuardianRidable = false; -@@ -851,6 +857,9 @@ public class PurpurWorldConfig { +@@ -847,6 +853,9 @@ public class PurpurWorldConfig { public boolean huskControllable = true; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -862,6 +871,9 @@ public class PurpurWorldConfig { +@@ -858,6 +867,9 @@ public class PurpurWorldConfig { } huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth); huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements); @@ -210,7 +210,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 } public boolean illusionerRidable = false; -@@ -1678,6 +1690,9 @@ public class PurpurWorldConfig { +@@ -1674,6 +1686,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1689,6 +1704,9 @@ public class PurpurWorldConfig { +@@ -1685,6 +1700,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 } public boolean zombieHorseRidableInWater = false; -@@ -1723,6 +1741,9 @@ public class PurpurWorldConfig { +@@ -1719,6 +1737,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1734,6 +1755,9 @@ public class PurpurWorldConfig { +@@ -1730,6 +1751,9 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -250,7 +250,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 } public boolean zombifiedPiglinRidable = false; -@@ -1741,6 +1765,9 @@ public class PurpurWorldConfig { +@@ -1737,6 +1761,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 9639202024f79c8ed57207445380ef017cfeaea6..c74027c71eecf76512d5737b496d98a6 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1752,5 +1779,8 @@ public class PurpurWorldConfig { +@@ -1748,5 +1775,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/unapplied/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0064-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch similarity index 95% rename from patches/unapplied/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch rename to patches/server/0064-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index ddfa22677..62da4293e 100644 --- a/patches/unapplied/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0064-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -73,10 +73,10 @@ index ffc5b68c4246a7111845230a75552bb15875a209..ef0098e46bda8abc456f2bb5929d874c @Override protected void addAdditionalSaveData(CompoundTag nbt) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1ed5d19bd9 100644 +index 8446ce22139fa2473c789cab67f4031a23f0d31d..ef41a462b102981d30207299d0279fd51b433a22 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { Vec3 moveTargetPoint; public BlockPos anchorPoint; Phantom.AttackPhase attackPhase; @@ -84,7 +84,7 @@ index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1e public Phantom(EntityType type, Level world) { super(type, world); -@@ -116,6 +117,23 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -117,6 +118,23 @@ public class Phantom extends FlyingMob implements Enemy { level().addFreshEntity(flames); return true; } @@ -108,7 +108,7 @@ index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1e // Purpur end @Override -@@ -130,11 +148,17 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -131,11 +149,17 @@ public class Phantom extends FlyingMob implements Enemy { @Override protected void registerGoals() { @@ -131,7 +131,7 @@ index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1e this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal()); } -@@ -348,6 +372,124 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -353,6 +377,124 @@ public class Phantom extends FlyingMob implements Enemy { private AttackPhase() {} } @@ -257,10 +257,10 @@ index 961300cb8bcc7b0aff476a435aa33e713bd520a6..86df67578334a4743909c748213c2e1e private float speed = 0.1F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c74027c71eecf76512d5737b496d98a6cffb5eab..49af5d8feae2b267a12273a91ee637c7a6e7021e 100644 +index 6da08454de6f0932971a230471d3558578a4b2a3..fdb2d2f67d6356c010e430fc4aee5593811cbf17 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1069,6 +1069,9 @@ public class PurpurWorldConfig { +@@ -1065,6 +1065,9 @@ public class PurpurWorldConfig { public String phantomAttackDamage = "6 + size"; public Map phantomMaxHealthCache = new HashMap<>(); public Map phantomAttackDamageCache = new HashMap<>(); @@ -270,7 +270,7 @@ index c74027c71eecf76512d5737b496d98a6cffb5eab..49af5d8feae2b267a12273a91ee637c7 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1090,6 +1093,9 @@ public class PurpurWorldConfig { +@@ -1086,6 +1089,9 @@ public class PurpurWorldConfig { phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage); phantomMaxHealthCache.clear(); phantomAttackDamageCache.clear(); diff --git a/patches/unapplied/server/0068-Add-phantom-spawning-options.patch b/patches/server/0065-Add-phantom-spawning-options.patch similarity index 96% rename from patches/unapplied/server/0068-Add-phantom-spawning-options.patch rename to patches/server/0065-Add-phantom-spawning-options.patch index c246c6ac0..ea5475409 100644 --- a/patches/unapplied/server/0068-Add-phantom-spawning-options.patch +++ b/patches/server/0065-Add-phantom-spawning-options.patch @@ -40,10 +40,10 @@ index dfeb3e336e06ef01f5401a362755030db942bb07..f74c5eda91a3d521763ec7bc33f23e0c for (int l = 0; l < k; ++l) { // Paper start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 49af5d8feae2b267a12273a91ee637c7a6e7021e..fb1e819bf55623408a134bf334099c425609765d 100644 +index fdb2d2f67d6356c010e430fc4aee5593811cbf17..efd10d6f2b3d342e2cb817b1e7fa7f5f86075b8c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1072,6 +1072,12 @@ public class PurpurWorldConfig { +@@ -1068,6 +1068,12 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -56,7 +56,7 @@ index 49af5d8feae2b267a12273a91ee637c7a6e7021e..fb1e819bf55623408a134bf334099c42 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1096,6 +1102,12 @@ public class PurpurWorldConfig { +@@ -1092,6 +1098,12 @@ public class PurpurWorldConfig { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); diff --git a/patches/unapplied/server/0069-Implement-bed-explosion-options.patch b/patches/server/0066-Implement-bed-explosion-options.patch similarity index 96% rename from patches/unapplied/server/0069-Implement-bed-explosion-options.patch rename to patches/server/0066-Implement-bed-explosion-options.patch index d73c9a85f..b9b420b80 100644 --- a/patches/unapplied/server/0069-Implement-bed-explosion-options.patch +++ b/patches/server/0066-Implement-bed-explosion-options.patch @@ -27,10 +27,10 @@ index d40500f9a807cab0b2fb6fa9032f33f4fb74c895..e8405a57fb88e63b63baaf00645c4176 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fb1e819bf55623408a134bf334099c425609765d..ab4f4de26a6752b54f35b1aeec657c1d2be3ecdb 100644 +index efd10d6f2b3d342e2cb817b1e7fa7f5f86075b8c..461627c87d514b8a936ad5675abb849aa49c569d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -288,6 +288,27 @@ public class PurpurWorldConfig { +@@ -284,6 +284,27 @@ public class PurpurWorldConfig { }); } diff --git a/patches/unapplied/server/0070-Implement-respawn-anchor-explosion-options.patch b/patches/server/0067-Implement-respawn-anchor-explosion-options.patch similarity index 95% rename from patches/unapplied/server/0070-Implement-respawn-anchor-explosion-options.patch rename to patches/server/0067-Implement-respawn-anchor-explosion-options.patch index 5f2c71233..db3f81e2c 100644 --- a/patches/unapplied/server/0070-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0067-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index 2ed78cf83c0ae66a6ddba1ff307da89a24b0d0a8..ae17d6a54fad0bd2d71d306f418b5ced public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ab4f4de26a6752b54f35b1aeec657c1d2be3ecdb..dc7666906fb04bf8f1df54ac81e04d8ad76a893b 100644 +index 461627c87d514b8a936ad5675abb849aa49c569d..3bfdc7ba270762ec114450d30e94457405d8bc19 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -328,6 +328,27 @@ public class PurpurWorldConfig { +@@ -324,6 +324,27 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/unapplied/server/0071-Add-allow-water-in-end-world-option.patch b/patches/server/0068-Add-allow-water-in-end-world-option.patch similarity index 91% rename from patches/unapplied/server/0071-Add-allow-water-in-end-world-option.patch rename to patches/server/0068-Add-allow-water-in-end-world-option.patch index ed049b2cd..bf9fe34fa 100644 --- a/patches/unapplied/server/0071-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0068-Add-allow-water-in-end-world-option.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Add allow water in end world option diff --git a/src/main/java/net/minecraft/world/item/BucketItem.java b/src/main/java/net/minecraft/world/item/BucketItem.java -index 578c3db52dda4c169b5ea615a4ce4a79f15a4cad..0bd98b802f246a3f6061f716d470a4797b28d59d 100644 +index 277555a26e8281dd1a626e572794b08cf51d00c5..48e4fecf5ae5538004e3f53093b8be7c4be1cbee 100644 --- a/src/main/java/net/minecraft/world/item/BucketItem.java +++ b/src/main/java/net/minecraft/world/item/BucketItem.java -@@ -164,7 +164,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { +@@ -195,7 +195,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { // CraftBukkit end - if (!flag1) { + if (!flag2) { return movingobjectpositionblock != null && this.emptyContents(entityhuman, world, movingobjectpositionblock.getBlockPos().relative(movingobjectpositionblock.getDirection()), (BlockHitResult) null, enumdirection, clicked, itemstack, enumhand); // CraftBukkit - } else if (world.dimensionType().ultraWarm() && this.content.is(FluidTags.WATER)) { + } else if ((world.dimensionType().ultraWarm() || (world.isTheEnd() && !org.purpurmc.purpur.PurpurConfig.allowWaterPlacementInTheEnd)) && this.content.is(FluidTags.WATER)) { // Purpur int i = blockposition.getX(); int j = blockposition.getY(); int k = blockposition.getZ(); -@@ -172,7 +172,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { +@@ -203,7 +203,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { world.playSound(entityhuman, blockposition, SoundEvents.FIRE_EXTINGUISH, SoundSource.BLOCKS, 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); for (int l = 0; l < 8; ++l) { @@ -27,13 +27,13 @@ index 578c3db52dda4c169b5ea615a4ce4a79f15a4cad..0bd98b802f246a3f6061f716d470a479 return true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index f8615d9714ac6a9c83d881d6d89b1182a0f0d835..155f43ebf708031d5f3148282d30dca27192e926 100644 +index 5101c5d3b2dc4b9ae72d2c9bc8bbe83ad6836515..1f23c66694d601d0cb52fb637407ada5f9975420 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1586,4 +1586,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1877,4 +1877,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } } - // Paper end + // Paper end - notify observers even if grow failed + + // Purpur start + public boolean isNether() { diff --git a/patches/unapplied/server/0072-Allow-color-codes-in-books.patch b/patches/server/0069-Allow-color-codes-in-books.patch similarity index 89% rename from patches/unapplied/server/0072-Allow-color-codes-in-books.patch rename to patches/server/0069-Allow-color-codes-in-books.patch index 107244ac1..a1c7280ad 100644 --- a/patches/unapplied/server/0072-Allow-color-codes-in-books.patch +++ b/patches/server/0069-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 317342df5d3afe65e09853fd9ffe4aca127152d2..970c711a6631cf3e16ca09704452b32b68672ce9 100644 +index 4d81437253e5a66fb46cad979edfcf987f455477..68ed6821876e0ee310854b7f6436dd341712a92c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1359,13 +1359,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1227,13 +1227,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl itemstack1.setTag(nbttagcompound.copy()); } @@ -28,7 +28,7 @@ index 317342df5d3afe65e09853fd9ffe4aca127152d2..970c711a6631cf3e16ca09704452b32b this.updateBookPages(pages, (s) -> { return Component.Serializer.toJson(Component.literal(s)); -@@ -1377,10 +1380,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1245,10 +1248,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -44,7 +44,7 @@ index 317342df5d3afe65e09853fd9ffe4aca127152d2..970c711a6631cf3e16ca09704452b32b Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1390,11 +1396,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1258,11 +1264,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl for (int j = list.size(); i < j; ++i) { FilteredText filteredtext = (FilteredText) list.get(i); @@ -58,7 +58,7 @@ index 317342df5d3afe65e09853fd9ffe4aca127152d2..970c711a6631cf3e16ca09704452b32b } } -@@ -1407,6 +1413,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1275,6 +1281,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } diff --git a/patches/unapplied/server/0073-Entity-lifespan.patch b/patches/server/0070-Entity-lifespan.patch similarity index 85% rename from patches/unapplied/server/0073-Entity-lifespan.patch rename to patches/server/0070-Entity-lifespan.patch index e3f2d5254..b9fd28840 100644 --- a/patches/unapplied/server/0073-Entity-lifespan.patch +++ b/patches/server/0070-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 2387d9d9373120794721cc65401d2635e84bab93..16aefb8b214a61f7b6f32d78f9e05870b8e2699f 100644 +index 68ed6821876e0ee310854b7f6436dd341712a92c..2976ddef7292f3cdf14353d20b1e4e2085dbb1a8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2901,6 +2901,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2738,6 +2738,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl AABB axisalignedbb = entity.getBoundingBox(); if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { @@ -17,10 +17,10 @@ index 2387d9d9373120794721cc65401d2635e84bab93..16aefb8b214a61f7b6f32d78f9e05870 private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488e2e19266 100644 +index 1c457561399b4a531ca7cb616a4bde69b30a4bc6..574ef1a38fa65b2eb92c9168de27279efd4dd81c 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -133,6 +133,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -135,6 +135,7 @@ public abstract class Mob extends LivingEntity implements Targeting { private BlockPos restrictCenter; private float restrictRadius; @@ -28,7 +28,7 @@ index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488 public boolean aware = true; // CraftBukkit protected Mob(EntityType type, Level world) { -@@ -323,6 +324,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -322,6 +323,7 @@ public abstract class Mob extends LivingEntity implements Targeting { entityliving = null; } } @@ -36,7 +36,7 @@ index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488 this.target = entityliving; return true; // CraftBukkit end -@@ -370,8 +372,28 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -369,8 +371,28 @@ public abstract class Mob extends LivingEntity implements Targeting { } this.level().getProfiler().pop(); @@ -65,7 +65,7 @@ index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488 @Override protected void playHurtSound(DamageSource source) { this.resetAmbientSoundTime(); -@@ -561,6 +583,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -560,6 +582,7 @@ public abstract class Mob extends LivingEntity implements Targeting { } nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit @@ -73,7 +73,7 @@ index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488 } @Override -@@ -631,6 +654,11 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -630,6 +653,11 @@ public abstract class Mob extends LivingEntity implements Targeting { this.aware = nbt.getBoolean("Bukkit.Aware"); } // CraftBukkit end @@ -85,7 +85,7 @@ index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488 } @Override -@@ -1701,6 +1729,7 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -1704,6 +1732,7 @@ public abstract class Mob extends LivingEntity implements Targeting { this.setLastHurtMob(target); } @@ -94,7 +94,7 @@ index 2023ae88e6cb0565f8fe7b525dfe84279bf90dd6..049a6b2186ff31ac9a815ac501b75488 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dc7666906fb04bf8f1df54ac81e04d8ad76a893b..d315a4aac382462b1bd0d44b6b5a88552f663d36 100644 +index 3bfdc7ba270762ec114450d30e94457405d8bc19..5afe1d5977f1bbc2b2c2aa5982c4eb23d82e7644 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -125,6 +125,11 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch similarity index 81% rename from patches/unapplied/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch rename to patches/server/0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 8917f03b5..bb1238207 100644 --- a/patches/unapplied/server/0074-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0071-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 03b19d56e4f75d71f592f400f59c9becd39c4d4f..459f8bcf13ed759c40eff1ade5d9011ede8547c3 100644 +index 35cb194e15aacdd8022f5d29104e0cfaba9d49e3..7879d0e0b55977a372189649cfd3ac25afdaec50 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2764,4 +2764,26 @@ public class ServerPlayer extends Player { +@@ -2737,4 +2737,26 @@ public class ServerPlayer extends Player { return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end @@ -36,10 +36,10 @@ index 03b19d56e4f75d71f592f400f59c9becd39c4d4f..459f8bcf13ed759c40eff1ade5d9011e + // 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 35e3cac34a6a508fbf3971cff9ac07db48ddeaae..8c0ef795691aa17e9522b2deda794bcdf38c64b6 100644 +index 1c43db48baf33b96be7dd027f3cbaedf205b5101..de20531092b5a053e36ce9469ba5db40b1cf9381 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -427,6 +427,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -428,6 +428,7 @@ public abstract class LivingEntity extends Entity implements Attackable { double d1 = this.level().getWorldBorder().getDamagePerBlock(); if (d1 > 0.0D) { @@ -48,19 +48,19 @@ index 35e3cac34a6a508fbf3971cff9ac07db48ddeaae..8c0ef795691aa17e9522b2deda794bcd } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d315a4aac382462b1bd0d44b6b5a88552f663d36..8fdbaa0cd95186b3b48aac1eb953e268554726e4 100644 +index 5afe1d5977f1bbc2b2c2aa5982c4eb23d82e7644..8cc7e83e6272ed9c3f005c76aa3432fb2d3c76a6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -244,6 +244,7 @@ public class PurpurWorldConfig { - public boolean playerInvulnerableWhileAcceptingResourcePack = false; +@@ -242,6 +242,7 @@ public class PurpurWorldConfig { + public boolean idleTimeoutTargetPlayer = true; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; + public boolean teleportIfOutsideBorder = false; private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -259,6 +260,7 @@ public class PurpurWorldConfig { - playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); +@@ -255,6 +256,7 @@ public class PurpurWorldConfig { + idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer); playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); + teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/patches/unapplied/server/0075-Squid-EAR-immunity.patch b/patches/server/0072-Squid-EAR-immunity.patch similarity index 85% rename from patches/unapplied/server/0075-Squid-EAR-immunity.patch rename to patches/server/0072-Squid-EAR-immunity.patch index c9837884e..c57a9aa13 100644 --- a/patches/unapplied/server/0075-Squid-EAR-immunity.patch +++ b/patches/server/0072-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8fdbaa0cd95186b3b48aac1eb953e268554726e4..adfb558d98990739b24e10c7bf941287d30737a0 100644 +index 8cc7e83e6272ed9c3f005c76aa3432fb2d3c76a6..b9ba53461de687070dda3c0bcccbee240017033a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1453,6 +1453,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 8fdbaa0cd95186b3b48aac1eb953e268554726e4..adfb558d98990739b24e10c7bf941287 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1466,6 +1467,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1463,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); @@ -25,7 +25,7 @@ index 8fdbaa0cd95186b3b48aac1eb953e268554726e4..adfb558d98990739b24e10c7bf941287 public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 12adaba78ec30e463963f99c0d78e844756143a1..79d027e517ce08443d86b877a55df24cc20d102b 100644 +index 882541c570fa9d2bf0e03df30e112c84fa075c35..bc98504b9eacd41994c234e6385f37c5d681383b 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; @@ -36,7 +36,7 @@ index 12adaba78ec30e463963f99c0d78e844756143a1..79d027e517ce08443d86b877a55df24c import net.minecraft.world.entity.animal.WaterAnimal; import net.minecraft.world.entity.animal.horse.Llama; import net.minecraft.world.entity.boss.EnderDragonPart; -@@ -397,6 +398,7 @@ public class ActivationRange +@@ -379,6 +380,7 @@ public class ActivationRange */ public static boolean checkIfActive(Entity entity) { diff --git a/patches/unapplied/server/0076-Phantoms-burn-in-light.patch b/patches/server/0073-Phantoms-burn-in-light.patch similarity index 89% rename from patches/unapplied/server/0076-Phantoms-burn-in-light.patch rename to patches/server/0073-Phantoms-burn-in-light.patch index 921e6ca84..71c92c188 100644 --- a/patches/unapplied/server/0076-Phantoms-burn-in-light.patch +++ b/patches/server/0073-Phantoms-burn-in-light.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Phantoms burn in light diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f83bf9a65 100644 +index ef41a462b102981d30207299d0279fd51b433a22..6849b2ad3b2db840a1af35ef069490506449c861 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -@@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { Vec3 moveTargetPoint; public BlockPos anchorPoint; Phantom.AttackPhase attackPhase; @@ -16,7 +16,7 @@ index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f Vec3 crystalPosition; // Purpur public Phantom(EntityType type, Level world) { -@@ -246,7 +247,12 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -247,7 +248,12 @@ public class Phantom extends FlyingMob implements Enemy { @Override public void aiStep() { @@ -30,7 +30,7 @@ index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f if (getRider() == null || !this.isControllable()) // Purpur this.setSecondsOnFire(8); } -@@ -656,6 +662,12 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -661,6 +667,12 @@ public class Phantom extends FlyingMob implements Enemy { return false; } else if (!entityliving.isAlive()) { return false; @@ -43,7 +43,7 @@ index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f } else { if (entityliving instanceof Player) { Player entityhuman = (Player) entityliving; -@@ -801,6 +813,7 @@ public class Phantom extends FlyingMob implements Enemy { +@@ -806,6 +818,7 @@ public class Phantom extends FlyingMob implements Enemy { this.nextScanTick = reducedTickDelay(60); List list = Phantom.this.level().getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D)); @@ -52,10 +52,10 @@ index 86df67578334a4743909c748213c2e1ed5d19bd9..899a7d3989b51456600787ae09b1736f list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error Iterator iterator = list.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index adfb558d98990739b24e10c7bf941287d30737a0..d6221af9b94530882a93c178d555dfc363f241ce 100644 +index b9ba53461de687070dda3c0bcccbee240017033a..35be76739cda5aa4a075dc665e7702a9269d4333 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1127,6 +1127,9 @@ public class PurpurWorldConfig { +@@ -1123,6 +1123,9 @@ public class PurpurWorldConfig { public double phantomSpawnLocalDifficultyChance = 3.0D; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -65,7 +65,7 @@ index adfb558d98990739b24e10c7bf941287d30737a0..d6221af9b94530882a93c178d555dfc3 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1157,6 +1160,9 @@ public class PurpurWorldConfig { +@@ -1153,6 +1156,9 @@ public class PurpurWorldConfig { phantomSpawnLocalDifficultyChance = getDouble("mobs.phantom.spawn.local-difficulty-chance", phantomSpawnLocalDifficultyChance); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/unapplied/server/0077-Configurable-villager-breeding.patch b/patches/server/0074-Configurable-villager-breeding.patch similarity index 84% rename from patches/unapplied/server/0077-Configurable-villager-breeding.patch rename to patches/server/0074-Configurable-villager-breeding.patch index ed9d97fee..e39498f1e 100644 --- a/patches/unapplied/server/0077-Configurable-villager-breeding.patch +++ b/patches/server/0074-Configurable-villager-breeding.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 50925ab7d719ae3323d7456df03a3d2ab3481bfd..7d13a5308161d4093023b732bed7d06152f54737 100644 +index 8f65901bc4e189e2ac2686ca17233b9166e7b870..a3064132c1ecdbff0414d1c3048a400cef6bad59 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -785,7 +785,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -780,7 +780,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public boolean canBreed() { @@ -18,10 +18,10 @@ index 50925ab7d719ae3323d7456df03a3d2ab3481bfd..7d13a5308161d4093023b732bed7d061 private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d6221af9b94530882a93c178d555dfc363f241ce..b9873e66e91d596e17002a290027b0a9972a54fd 100644 +index 35be76739cda5aa4a075dc665e7702a9269d4333..9cd4d38da512f209db7196f632031d51acc5947c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1615,6 +1615,7 @@ public class PurpurWorldConfig { +@@ -1611,6 +1611,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index d6221af9b94530882a93c178d555dfc363f241ce..b9873e66e91d596e17002a290027b0a9 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1627,6 +1628,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1624,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/unapplied/server/0078-Redstone-deactivates-spawners.patch b/patches/server/0075-Redstone-deactivates-spawners.patch similarity index 91% rename from patches/unapplied/server/0078-Redstone-deactivates-spawners.patch rename to patches/server/0075-Redstone-deactivates-spawners.patch index 6c7656482..b41ab812c 100644 --- a/patches/unapplied/server/0078-Redstone-deactivates-spawners.patch +++ b/patches/server/0075-Redstone-deactivates-spawners.patch @@ -17,10 +17,10 @@ index 633500aefd515df5dadda3802b94079f75a03fa0..64d911bee1607880514061c75116d867 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b9873e66e91d596e17002a290027b0a9972a54fd..10994174be125f8ce819d4d6e851178a72779ba1 100644 +index 9cd4d38da512f209db7196f632031d51acc5947c..669454dd9ad60116b664f4432f4fef9662ba170c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -356,6 +356,11 @@ public class PurpurWorldConfig { +@@ -352,6 +352,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/unapplied/server/0079-Totems-work-in-inventory.patch b/patches/server/0076-Totems-work-in-inventory.patch similarity index 88% rename from patches/unapplied/server/0079-Totems-work-in-inventory.patch rename to patches/server/0076-Totems-work-in-inventory.patch index 085815540..9b961c59f 100644 --- a/patches/unapplied/server/0079-Totems-work-in-inventory.patch +++ b/patches/server/0076-Totems-work-in-inventory.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 29d523efe2222511c25c8d8a3eeff6adf2a2da0e..c75d3490dd475fc7c1bd4931841cc84888a23bac 100644 +index de20531092b5a053e36ce9469ba5db40b1cf9381..de704fea146a758f27dc5c476ef08b58b4524e53 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1594,6 +1594,18 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -1614,6 +1614,18 @@ public abstract class LivingEntity extends Entity implements Attackable { } } @@ -28,10 +28,10 @@ index 29d523efe2222511c25c8d8a3eeff6adf2a2da0e..c75d3490dd475fc7c1bd4931841cc848 EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot); event.setCancelled(itemstack == null); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 10994174be125f8ce819d4d6e851178a72779ba1..9335574d7396da50fe027cb455847cfef6528436 100644 +index 669454dd9ad60116b664f4432f4fef9662ba170c..2cf49e7cb1d128c9dfec76c33d2c9a88c09ae2ca 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -245,6 +245,7 @@ public class PurpurWorldConfig { +@@ -243,6 +243,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -39,7 +39,7 @@ index 10994174be125f8ce819d4d6e851178a72779ba1..9335574d7396da50fe027cb455847cfe private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -261,6 +262,7 @@ public class PurpurWorldConfig { +@@ -257,6 +258,7 @@ public class PurpurWorldConfig { playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/patches/unapplied/server/0080-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0077-Add-vindicator-johnny-spawn-chance.patch similarity index 87% rename from patches/unapplied/server/0080-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0077-Add-vindicator-johnny-spawn-chance.patch index ef007c57a..3ed6e8905 100644 --- a/patches/unapplied/server/0080-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0077-Add-vindicator-johnny-spawn-chance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add vindicator johnny spawn chance diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 40858ac2a9b58108472748d0ef2c2fd5ef5cfd98..2a5b6b94b15bf066b5722e7a4f782bc87f9debf4 100644 +index fece613e9c182c6658f9df1d333a5b7e1e862218..a3db9c351b9cb06340458811c006d53796d96ab5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -154,6 +154,12 @@ public class Vindicator extends AbstractIllager { @@ -22,10 +22,10 @@ index 40858ac2a9b58108472748d0ef2c2fd5ef5cfd98..2a5b6b94b15bf066b5722e7a4f782bc8 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9335574d7396da50fe027cb455847cfef6528436..1b7d8a8fc241e096fc4fd5b65d8444779d1deae5 100644 +index 2cf49e7cb1d128c9dfec76c33d2c9a88c09ae2ca..008ae05e639b38a28d27a6dacbb6ef25a5c9ecbf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1642,6 +1642,7 @@ public class PurpurWorldConfig { +@@ -1638,6 +1638,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = true; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index 9335574d7396da50fe027cb455847cfef6528436..1b7d8a8fc241e096fc4fd5b65d844477 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1652,6 +1653,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1649,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/unapplied/server/0081-Dispensers-place-anvils-option.patch b/patches/server/0078-Dispensers-place-anvils-option.patch similarity index 84% rename from patches/unapplied/server/0081-Dispensers-place-anvils-option.patch rename to patches/server/0078-Dispensers-place-anvils-option.patch index f80b25116..c556066ea 100644 --- a/patches/unapplied/server/0081-Dispensers-place-anvils-option.patch +++ b/patches/server/0078-Dispensers-place-anvils-option.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dispensers place anvils option diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index 8c2750de3be202122ccf9923a9fa32fcb8bdb743..7961a69d3e70a8ae1d74c732cd97a9cbd824a8d0 100644 +index a0c7c6208314d981e8577ad69ef1c5193290a085..6cf5727de364cf28b2c046fde380a0fd2bb315f0 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -@@ -1187,6 +1187,23 @@ public interface DispenseItemBehavior { +@@ -1188,6 +1188,23 @@ public interface DispenseItemBehavior { } } }); @@ -31,12 +31,12 @@ index 8c2750de3be202122ccf9923a9fa32fcb8bdb743..7961a69d3e70a8ae1d74c732cd97a9cb + // Purpur end } - static void setEntityPokingOutOfBlock(BlockSource pointer, Entity entity, Direction direction) { + static Vec3 getEntityPokingOutOfBlockPos(BlockSource pointer, EntityType entityType, Direction direction) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1b7d8a8fc241e096fc4fd5b65d8444779d1deae5..0e473df153cfd9090b74b5fa2b5568220d61ae98 100644 +index 008ae05e639b38a28d27a6dacbb6ef25a5c9ecbf..8ee713af7d57bbf52a9aacf11385c0a325a24aa8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -319,8 +319,10 @@ public class PurpurWorldConfig { +@@ -315,8 +315,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/unapplied/server/0082-Allow-anvil-colors.patch b/patches/server/0079-Allow-anvil-colors.patch similarity index 97% rename from patches/unapplied/server/0082-Allow-anvil-colors.patch rename to patches/server/0079-Allow-anvil-colors.patch index b0fdf81c2..20da3beeb 100644 --- a/patches/unapplied/server/0082-Allow-anvil-colors.patch +++ b/patches/server/0079-Allow-anvil-colors.patch @@ -64,10 +64,10 @@ index b500a04b8135604f0159a741b3d228c9e87b2a46..8a7c30e316db4960b0b62ca0e366c19f } } else if (itemstack.hasCustomHoverName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0e473df153cfd9090b74b5fa2b5568220d61ae98..9344d7492585023f5de6db4e4c0cde41dc6c74cd 100644 +index 8ee713af7d57bbf52a9aacf11385c0a325a24aa8..4ac9e1c076d73e3964be68f4a550e3f8e2c96a7d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -297,6 +297,13 @@ public class PurpurWorldConfig { +@@ -293,6 +293,13 @@ public class PurpurWorldConfig { }); } diff --git a/patches/unapplied/server/0083-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0080-Add-option-to-disable-dolphin-treasure-searching.patch similarity index 90% rename from patches/unapplied/server/0083-Add-option-to-disable-dolphin-treasure-searching.patch rename to patches/server/0080-Add-option-to-disable-dolphin-treasure-searching.patch index ae26ab08e..f5d2bb8a1 100644 --- a/patches/unapplied/server/0083-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0080-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 89e3dbfddc739f97fdb6ec9a5714530f03cc7092..079fd78528377ee4236fb2e7189a5f0f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9344d7492585023f5de6db4e4c0cde41dc6c74cd..d230e75bebc1817c171cdd93a1634512d652ceea 100644 +index 4ac9e1c076d73e3964be68f4a550e3f8e2c96a7d..f20c2daa8dabb5f6131eb6e6b8dba66cf5ad812b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -614,6 +614,7 @@ public class PurpurWorldConfig { +@@ -610,6 +610,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 9344d7492585023f5de6db4e4c0cde41dc6c74cd..d230e75bebc1817c171cdd93a1634512 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -626,6 +627,7 @@ public class PurpurWorldConfig { +@@ -622,6 +623,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/unapplied/server/0084-Short-enderman-height.patch b/patches/server/0081-Short-enderman-height.patch similarity index 90% rename from patches/unapplied/server/0084-Short-enderman-height.patch rename to patches/server/0081-Short-enderman-height.patch index 69cb9329e..236c56772 100644 --- a/patches/unapplied/server/0084-Short-enderman-height.patch +++ b/patches/server/0081-Short-enderman-height.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Short enderman height diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 08beb4c4dfcb0986cdebb4d0cacc25e4e9c17674..e413aa4650297ce2109beb6319f52fb476e291fe 100644 +index 74499ac528becad47565c87e49a8e0b6646a0612..55fced3e70c7bc49306af00dcc1d92ffb83a799b 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -308,7 +308,8 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -307,7 +307,8 @@ public class EntityType implements FeatureElement, EntityTypeT private Component description; @Nullable private ResourceLocation lootTable; @@ -19,10 +19,10 @@ index 08beb4c4dfcb0986cdebb4d0cacc25e4e9c17674..e413aa4650297ce2109beb6319f52fb4 private static EntityType register(String id, EntityType.Builder type) { // CraftBukkit - decompile error 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 74d1a0e8de36aaf11e844cc4f40e4c469d6269b4..3861f367ac01028139cc6db35fb9a1e20cb39457 100644 +index 587eaef37a5acff8c13e7256b9b90fea5e7a6310..8b4129b8f0f6a368ae6b168aac404316f12797bb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -433,6 +433,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -434,6 +434,7 @@ public class EnderMan extends Monster implements NeutralMob { if (this.isInvulnerableTo(source)) { return false; } else if (getRider() != null && this.isControllable()) { return super.hurt(source, amount); // Purpur - no teleporting on damage diff --git a/patches/unapplied/server/0085-Stop-squids-floating-on-top-of-water.patch b/patches/server/0082-Stop-squids-floating-on-top-of-water.patch similarity index 85% rename from patches/unapplied/server/0085-Stop-squids-floating-on-top-of-water.patch rename to patches/server/0082-Stop-squids-floating-on-top-of-water.patch index ab06d6f53..cc162141a 100644 --- a/patches/unapplied/server/0085-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0082-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 01a1534ec503e9aaea7befdba86f452128f8863d..6935e327b4c1580dae9fbf2279bde4af165f76ce 100644 +index 46098a03d6993db7509f351aa302d0e62a29078e..cb4d428a4edfcfcd7b6750487620cfc9d613f561 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4349,6 +4349,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4356,6 +4356,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.yRotO = this.getYRot(); } @@ -19,7 +19,7 @@ index 01a1534ec503e9aaea7befdba86f452128f8863d..6935e327b4c1580dae9fbf2279bde4af + // Purpur end + public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { - if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip + if (this.touchingUnloadedChunk()) { return false; diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java index 913b66be2111da862e706d4978825c64cfe8b00b..f68c18b6645981126329b58379946308bbb8ccf8 100644 @@ -39,7 +39,7 @@ index 913b66be2111da862e706d4978825c64cfe8b00b..f68c18b6645981126329b58379946308 protected void registerGoals() { this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this)); diff --git a/src/main/java/net/minecraft/world/phys/AABB.java b/src/main/java/net/minecraft/world/phys/AABB.java -index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281c148436a 100644 +index e3dbf3066337a482460238f8a94d854cf88adfa2..5c70aa2ce1a9e89c8c271201b6755ea1325058ac 100644 --- a/src/main/java/net/minecraft/world/phys/AABB.java +++ b/src/main/java/net/minecraft/world/phys/AABB.java @@ -374,4 +374,10 @@ public class AABB { @@ -54,10 +54,10 @@ index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d230e75bebc1817c171cdd93a1634512d652ceea..88225ba1bad1a20cbb7bcd56b0cd7424661712c3 100644 +index f20c2daa8dabb5f6131eb6e6b8dba66cf5ad812b..5bdd0d69eb2efcc6dbe0a3d48870e1906763948b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1482,6 +1482,7 @@ public class PurpurWorldConfig { +@@ -1478,6 +1478,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index d230e75bebc1817c171cdd93a1634512d652ceea..88225ba1bad1a20cbb7bcd56b0cd7424 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1492,6 +1493,7 @@ public class PurpurWorldConfig { +@@ -1488,6 +1489,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/unapplied/server/0086-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0083-Crying-obsidian-valid-for-portal-frames.patch similarity index 100% rename from patches/unapplied/server/0086-Crying-obsidian-valid-for-portal-frames.patch rename to patches/server/0083-Crying-obsidian-valid-for-portal-frames.patch diff --git a/patches/unapplied/server/0087-Entities-can-use-portals-configuration.patch b/patches/server/0084-Entities-can-use-portals-configuration.patch similarity index 90% rename from patches/unapplied/server/0087-Entities-can-use-portals-configuration.patch rename to patches/server/0084-Entities-can-use-portals-configuration.patch index a1bdcabad..ee6c285f4 100644 --- a/patches/unapplied/server/0087-Entities-can-use-portals-configuration.patch +++ b/patches/server/0084-Entities-can-use-portals-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6935e327b4c1580dae9fbf2279bde4af165f76ce..105b093cd0353a45197615e9fcdf06e72a0aad00 100644 +index cb4d428a4edfcfcd7b6750487620cfc9d613f561..7a7f6368eae5cdad69d2ad4e2b8bcc547fb3853c 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3063,7 +3063,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3075,7 +3075,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void handleInsidePortal(BlockPos pos) { if (this.isOnPortalCooldown()) { this.setPortalCooldown(); @@ -17,7 +17,7 @@ index 6935e327b4c1580dae9fbf2279bde4af165f76ce..105b093cd0353a45197615e9fcdf06e7 if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) { this.portalEntrancePos = pos.immutable(); } -@@ -3764,7 +3764,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3780,7 +3780,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean canChangeDimensions() { @@ -27,7 +27,7 @@ index 6935e327b4c1580dae9fbf2279bde4af165f76ce..105b093cd0353a45197615e9fcdf06e7 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 88225ba1bad1a20cbb7bcd56b0cd7424661712c3..300c3d8a8fc34e95e9ad620aa603e66aa6847ae2 100644 +index 5bdd0d69eb2efcc6dbe0a3d48870e1906763948b..3a4b67415d2e86d2d3d3709dd669c0d6ee56644a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -98,6 +98,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0088-LivingEntity-broadcastItemBreak.patch b/patches/server/0085-LivingEntity-broadcastItemBreak.patch similarity index 91% rename from patches/unapplied/server/0088-LivingEntity-broadcastItemBreak.patch rename to patches/server/0085-LivingEntity-broadcastItemBreak.patch index 99a0b5718..c2b764c2c 100644 --- a/patches/unapplied/server/0088-LivingEntity-broadcastItemBreak.patch +++ b/patches/server/0085-LivingEntity-broadcastItemBreak.patch @@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 4ba5c78fa10c1e30962f30d97821fa105f804904..88fc33afb4a88d8c8b0a41331791f1ca87b8a8fd 100644 +index 92f17bc1631e13bf025cf7b867f6c13ccdacc4e7..1001beea3538a9723074421047dc3fbecf063d02 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1110,5 +1110,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0089-Customizable-wither-health-and-healing.patch b/patches/server/0086-Customizable-wither-health-and-healing.patch similarity index 86% rename from patches/unapplied/server/0089-Customizable-wither-health-and-healing.patch rename to patches/server/0086-Customizable-wither-health-and-healing.patch index 78f061365..2d5ef91fe 100644 --- a/patches/unapplied/server/0089-Customizable-wither-health-and-healing.patch +++ b/patches/server/0086-Customizable-wither-health-and-healing.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index e6d6341f895c763fee05db3a7a7e05a68b9d36e9..8796b779ac0550e32c7313b1280278de48070baf 100644 +index 6f7ef64612d6229179545d56093efdf58a2d7978..b395d5c85f26ca4252d3f8f886b2ee5a7892af5f 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -@@ -525,8 +525,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob +@@ -518,8 +518,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob } } @@ -23,10 +23,10 @@ index e6d6341f895c763fee05db3a7a7e05a68b9d36e9..8796b779ac0550e32c7313b1280278de this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 300c3d8a8fc34e95e9ad620aa603e66aa6847ae2..32b2444c0e96d4ba53693764a4caf0b596ed947f 100644 +index 3a4b67415d2e86d2d3d3709dd669c0d6ee56644a..2495cf8d28a2f11ddd1efefd6d772fccf1e488ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1721,6 +1721,8 @@ public class PurpurWorldConfig { +@@ -1717,6 +1717,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 300c3d8a8fc34e95e9ad620aa603e66aa6847ae2..32b2444c0e96d4ba53693764a4caf0b5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1736,6 +1738,8 @@ public class PurpurWorldConfig { +@@ -1732,6 +1734,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/unapplied/server/0090-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0087-Allow-toggling-special-MobSpawners-per-world.patch similarity index 95% rename from patches/unapplied/server/0090-Allow-toggling-special-MobSpawners-per-world.patch rename to patches/server/0087-Allow-toggling-special-MobSpawners-per-world.patch index 1252665ad..f68395c02 100644 --- a/patches/unapplied/server/0090-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0087-Allow-toggling-special-MobSpawners-per-world.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Allow toggling special MobSpawners per world In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 11f92c1011a1accaf485e5785d2e9ebc8440406c..af57326c8d461d3c5d84f582d5bc6345c3c9367b 100644 +index b0064cda4b0283d46dad53675ec70ff10c4d2015..b2360029a0fbbea6cb47a13f93cba584d4349829 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -663,7 +663,24 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -587,7 +587,24 @@ public class ServerLevel extends Level implements WorldGenLevel { this.dragonParts = new Int2ObjectOpenHashMap(); this.tickTime = flag1; this.server = minecraftserver; @@ -59,7 +59,7 @@ index 8385eb1d60f377da94e3178ab506feefb43563fd..a5443f92786427c42092aec8350e7ab3 if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 32b2444c0e96d4ba53693764a4caf0b596ed947f..e0447c62f0c5df368a3ea41d63f64e23ccb06271 100644 +index 2495cf8d28a2f11ddd1efefd6d772fccf1e488ba..8b1b424a61397f7e3c002611de961718046f0149 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -69,6 +69,12 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0091-Raid-cooldown-setting.patch b/patches/server/0088-Raid-cooldown-setting.patch similarity index 90% rename from patches/unapplied/server/0091-Raid-cooldown-setting.patch rename to patches/server/0088-Raid-cooldown-setting.patch index bf934694c..15742d765 100644 --- a/patches/unapplied/server/0091-Raid-cooldown-setting.patch +++ b/patches/server/0088-Raid-cooldown-setting.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Raid cooldown setting diff --git a/src/main/java/net/minecraft/world/entity/raid/Raids.java b/src/main/java/net/minecraft/world/entity/raid/Raids.java -index 41457c9f27b18fa2734a6cca297ec5186470e82f..94356e0541f8f4da68211fa533347cc97d4f3518 100644 +index 31831811ce16265e9828fa34d9e67d8ac195d723..a1f74718240da3dfb0fc53f337ec3bf1636def75 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raids.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raids.java -@@ -28,6 +28,7 @@ import net.minecraft.world.phys.Vec3; +@@ -29,6 +29,7 @@ import net.minecraft.world.phys.Vec3; public class Raids extends SavedData { private static final String RAID_FILE_ID = "raids"; @@ -16,7 +16,7 @@ index 41457c9f27b18fa2734a6cca297ec5186470e82f..94356e0541f8f4da68211fa533347cc9 public final Map raidMap = Maps.newHashMap(); private final ServerLevel level; private int nextAvailableID; -@@ -45,6 +46,17 @@ public class Raids extends SavedData { +@@ -54,6 +55,17 @@ public class Raids extends SavedData { public void tick() { ++this.tick; @@ -34,7 +34,7 @@ index 41457c9f27b18fa2734a6cca297ec5186470e82f..94356e0541f8f4da68211fa533347cc9 Iterator iterator = this.raidMap.values().iterator(); while (iterator.hasNext()) { -@@ -129,11 +141,13 @@ public class Raids extends SavedData { +@@ -138,11 +150,13 @@ public class Raids extends SavedData { } if (flag) { @@ -49,7 +49,7 @@ index 41457c9f27b18fa2734a6cca297ec5186470e82f..94356e0541f8f4da68211fa533347cc9 if (!this.raidMap.containsKey(raid.getId())) { this.raidMap.put(raid.getId(), raid); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e0447c62f0c5df368a3ea41d63f64e23ccb06271..f2db6143daf0ec578b224360273b8dc5ffa3bb43 100644 +index 8b1b424a61397f7e3c002611de961718046f0149..bcee031a53e24a6c3731c2e0555f53ad2c5d81e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -109,6 +109,7 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0092-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0089-Despawn-rate-config-options-per-projectile-type.patch similarity index 95% rename from patches/unapplied/server/0092-Despawn-rate-config-options-per-projectile-type.patch rename to patches/server/0089-Despawn-rate-config-options-per-projectile-type.patch index 3928e481f..4f958f567 100644 --- a/patches/unapplied/server/0092-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0089-Despawn-rate-config-options-per-projectile-type.patch @@ -7,10 +7,10 @@ This patch's implementation has been removed in favor of Pufferfish's entity-tim The config remains for migration purposes. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f2db6143daf0ec578b224360273b8dc5ffa3bb43..37bea4068461e0b2d3ded80529ca2a8c3e8473e2 100644 +index bcee031a53e24a6c3731c2e0555f53ad2c5d81e8..472f3cb5775aed6d902928b9dafe99a139d475d5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -290,6 +290,39 @@ public class PurpurWorldConfig { +@@ -286,6 +286,39 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/unapplied/server/0093-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0090-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 94% rename from patches/unapplied/server/0093-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/server/0090-Add-option-to-disable-zombie-aggressiveness-towards-.patch index ed6de1de1..31cc26fed 100644 --- a/patches/unapplied/server/0093-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0090-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -45,10 +45,10 @@ index 6ec7d0f5e525f9e04b6fa0fb6d4da5fcc22fe653..64acb2e81ef65acb0d41db8b5f7c924c this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false)); this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); 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 b2b04d7b7bbc400fb66cac385fa754d4fb47c7d9..bd75aa78a7dd437d6fce79a6cb18298184affe75 100644 +index 1efcafd736c1dbd057d5bfe7abbfcb1fb2d6f7b3..d9caaa16e4d62bdfbc3106a63c1b4bef06727bad 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -156,7 +156,19 @@ public class Zombie extends Monster { +@@ -157,7 +157,19 @@ public class Zombie extends Monster { this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D)); this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers(ZombifiedPiglin.class)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); @@ -70,10 +70,10 @@ index b2b04d7b7bbc400fb66cac385fa754d4fb47c7d9..bd75aa78a7dd437d6fce79a6cb182981 this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 37bea4068461e0b2d3ded80529ca2a8c3e8473e2..6e38987900f04d1aaf7030b3562c8571f12bbbde 100644 +index 472f3cb5775aed6d902928b9dafe99a139d475d5..45fc13436aa43da593704d142202eb43e5cbe4b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1854,6 +1854,7 @@ public class PurpurWorldConfig { +@@ -1850,6 +1850,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -81,7 +81,7 @@ index 37bea4068461e0b2d3ded80529ca2a8c3e8473e2..6e38987900f04d1aaf7030b3562c8571 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1868,6 +1869,7 @@ public class PurpurWorldConfig { +@@ -1864,6 +1865,7 @@ public class PurpurWorldConfig { zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby); zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); diff --git a/patches/unapplied/server/0094-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/server/0091-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 86% rename from patches/unapplied/server/0094-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/server/0091-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch index 224140f0c..c0c6e71ef 100644 --- a/patches/unapplied/server/0094-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch +++ b/patches/server/0091-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Add predicate to recipe's ExactChoice ingredient diff --git a/src/main/java/net/minecraft/world/item/crafting/Ingredient.java b/src/main/java/net/minecraft/world/item/crafting/Ingredient.java -index cd7ea0c16f9ddcb84b5d7e8a2533e6e84f3879c7..3ca086418ad037c48775db73d2b9c410acf1e326 100644 +index 06fe5b056d78d42cdf78437eeabe1786d596b7f8..3532db21cee82c18f95c540d24b2071585d71c4e 100644 --- a/src/main/java/net/minecraft/world/item/crafting/Ingredient.java +++ b/src/main/java/net/minecraft/world/item/crafting/Ingredient.java @@ -39,6 +39,7 @@ public final class Ingredient implements Predicate { @Nullable private IntList stackingIds; public boolean exact; // CraftBukkit -+ public Predicate predicate; ++ public Predicate predicate; // Purpur + public static final Codec CODEC = Ingredient.codec(true); + public static final Codec CODEC_NONEMPTY = Ingredient.codec(false); - public Ingredient(Stream entries) { - this.values = (Ingredient.Value[]) entries.toArray((i) -> { -@@ -64,6 +65,12 @@ public final class Ingredient implements Predicate { +@@ -70,6 +71,12 @@ public final class Ingredient implements Predicate { } else if (this.isEmpty()) { return itemstack.isEmpty(); } else { diff --git a/patches/unapplied/server/0095-Flying-squids-Oh-my.patch b/patches/server/0092-Flying-squids-Oh-my.patch similarity index 92% rename from patches/unapplied/server/0095-Flying-squids-Oh-my.patch rename to patches/server/0092-Flying-squids-Oh-my.patch index 3bf9ac553..097f745e3 100644 --- a/patches/unapplied/server/0095-Flying-squids-Oh-my.patch +++ b/patches/server/0092-Flying-squids-Oh-my.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying squids! Oh my! diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java -index 730958dab7f074930cdccb88a89aa26e2b6a112b..b1ba0f24dd6f1ec4c60208564e4eb84bdcd457f4 100644 +index dc99e7f0e6f173c1313c0d5e9ea5dd6bdbdac169..19f95ddb2fa9dd264947a8b0033dd7437ee66c7f 100644 --- a/src/main/java/net/minecraft/world/entity/GlowSquid.java +++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java @@ -41,6 +41,11 @@ public class GlowSquid extends Squid { @@ -58,10 +58,10 @@ index f68c18b6645981126329b58379946308bbb8ccf8..80bdc93cba675d6c1286618f14fc33e0 float g = Mth.cos(f) * 0.2F; float h = -0.1F + this.squid.getRandom().nextFloat() * 0.2F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6e38987900f04d1aaf7030b3562c8571f12bbbde..bc8ab431df81d52065b401cf9f5cf0d040c79905 100644 +index 45fc13436aa43da593704d142202eb43e5cbe4b3..a85d4a9c2583f8233032b680c89b147a230bca41 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -906,10 +906,12 @@ public class PurpurWorldConfig { +@@ -902,10 +902,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index 6e38987900f04d1aaf7030b3562c8571f12bbbde..bc8ab431df81d52065b401cf9f5cf0d0 } public boolean goatRidable = false; -@@ -1541,6 +1543,7 @@ public class PurpurWorldConfig { +@@ -1537,6 +1539,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 6e38987900f04d1aaf7030b3562c8571f12bbbde..bc8ab431df81d52065b401cf9f5cf0d0 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1552,6 +1555,7 @@ public class PurpurWorldConfig { +@@ -1548,6 +1551,7 @@ public class PurpurWorldConfig { squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); diff --git a/patches/unapplied/server/0096-Infinity-bow-settings.patch b/patches/server/0093-Infinity-bow-settings.patch similarity index 97% rename from patches/unapplied/server/0096-Infinity-bow-settings.patch rename to patches/server/0093-Infinity-bow-settings.patch index 99f8da06f..3ce820a59 100644 --- a/patches/unapplied/server/0096-Infinity-bow-settings.patch +++ b/patches/server/0093-Infinity-bow-settings.patch @@ -27,7 +27,7 @@ index 08d597db1a5345a343777a01427655e6bf2c926b..33df0ca406dc8321b76b393f317bbd1c } else { user.startUsingItem(hand); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bc8ab431df81d52065b401cf9f5cf0d040c79905..ae3beab9a442477973bc8f9ccd47f479d7ddc9ee 100644 +index a85d4a9c2583f8233032b680c89b147a230bca41..598a9f2dae899513cf10e33c8baad5991597b55c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -140,6 +140,17 @@ public class PurpurWorldConfig { diff --git a/patches/unapplied/server/0097-Configurable-daylight-cycle.patch b/patches/server/0094-Configurable-daylight-cycle.patch similarity index 90% rename from patches/unapplied/server/0097-Configurable-daylight-cycle.patch rename to patches/server/0094-Configurable-daylight-cycle.patch index bc8a9238f..4ec7ab6e8 100644 --- a/patches/unapplied/server/0097-Configurable-daylight-cycle.patch +++ b/patches/server/0094-Configurable-daylight-cycle.patch @@ -18,10 +18,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { this.gameTime = time; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4cadfd50a0c465ab8d809b91b9a999943385bc8a..fd3a85a2b0e2dca36044535f8ff77fec63f73aee 100644 +index 5c9eda3f59998a7d7cebadd1d67c316643614796..58bd3a05621a2a513efdaa81d63e6c3fff1b3b35 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1532,7 +1532,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop recipe, NonNullList slots, int count) { + private static boolean canBurn(RegistryAccess registryManager, @Nullable RecipeHolder recipe, NonNullList slots, int count) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a721eb79dc528ada6a08265bb1f2895c31f0386e..5c478488da15171d70c1b4c01d7ca33698314032 100644 +index 7e8816a3bd9c60844ca0fbb8674abf6c53b4d81c..02aa54fbd0605b92de9263ba852ac04e24b2fdef 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -413,6 +413,17 @@ public class PurpurWorldConfig { +@@ -409,6 +409,17 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/unapplied/server/0100-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0097-Arrows-should-not-reset-despawn-counter.patch similarity index 91% rename from patches/unapplied/server/0100-Arrows-should-not-reset-despawn-counter.patch rename to patches/server/0097-Arrows-should-not-reset-despawn-counter.patch index e0ad5e034..0b60a6696 100644 --- a/patches/unapplied/server/0100-Arrows-should-not-reset-despawn-counter.patch +++ b/patches/server/0097-Arrows-should-not-reset-despawn-counter.patch @@ -7,7 +7,7 @@ This prevents keeping arrows alive indefinitely (such as when the block the arrow is stuck in gets removed, like a piston head going up/down) diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index fa885337085348308604e50049ecc5bb52023884..e8773aa2e796ca4e3b9b7cf85c40906d16eb241d 100644 +index 8affdd74769aed9aa92a76ba539cd9d27208827c..9710d1cd31d263b29c80923c56134b1f8f6702b0 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -312,7 +312,7 @@ public abstract class AbstractArrow extends Projectile { @@ -20,7 +20,7 @@ index fa885337085348308604e50049ecc5bb52023884..e8773aa2e796ca4e3b9b7cf85c40906d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5c478488da15171d70c1b4c01d7ca33698314032..b996cafed3083c3d9604005a054f0b4511bbf383 100644 +index 02aa54fbd0605b92de9263ba852ac04e24b2fdef..41d694ec386530f97044ff6aa98f4e436cadddd7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -101,6 +101,11 @@ public class PurpurWorldConfig {