diff --git a/patches/server/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch b/patches/server/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch index 739d00eb5..5a3283b66 100644 --- a/patches/server/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch +++ b/patches/server/0023-MC-168772-Fix-Add-turtle-egg-block-options.patch @@ -50,28 +50,22 @@ index 8033d2074d68635515b4737b4416ec9354a3edad..b942e7c85e6c8f9a7664d9e5bf93bcd7 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8920b47610a323ceb6b19a05b7592d8acf809bc4..5b82c82da88f95190f8d7dc1f635fd27c8b513df 100644 +index 4019c768748b65a0d039d3ef0a86a01b098e91c0..7bad7595539102a063b3f3b417eaa9462a243e74 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1079,7 +1079,10 @@ public class PurpurWorldConfig { - public boolean turtleRidable = false; - public boolean turtleRidableInWater = false; - public double turtleMaxHealth = 30.0D; -- private void turtleSettings() { +@@ -94,6 +94,15 @@ public class PurpurWorldConfig { + return value.isEmpty() ? fallback : value; + } + + public boolean turtleEggsBreakFromExpOrbs = true; + public boolean turtleEggsBreakFromItems = true; + public boolean turtleEggsBreakFromMinecarts = true; + private void turtleEggSettings() { - turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); - turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); - if (PurpurConfig.version < 10) { -@@ -1088,6 +1091,9 @@ public class PurpurWorldConfig { - set("mobs.turtle.attributes.max_health", oldValue); - } - turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); + turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); + turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); + turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); - } - - public boolean vexRidable = false; ++ } ++ + public boolean idleTimeoutKick = true; + public boolean idleTimeoutTickNearbyEntities = true; + public boolean idleTimeoutCountAsSleeping = false; diff --git a/patches/server/0027-Giants-AI-settings.patch b/patches/server/0027-Giants-AI-settings.patch index 8787aedfe..d63da2213 100644 --- a/patches/server/0027-Giants-AI-settings.patch +++ b/patches/server/0027-Giants-AI-settings.patch @@ -120,10 +120,10 @@ index d1756353b9fc22f6e9b957a708073545ab3c941a..de7c2064b2c3876eebdee01908b39b1b } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1c59c85b700fd2fd69e0c225b517836f771c6ec7..9fa6291c047f3a460f6b04244eccb21481f36ee5 100644 +index 7bad7595539102a063b3f3b417eaa9462a243e74..5beb1ae55b0426b065133b14d0d1618aa1a82eea 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -468,6 +468,10 @@ public class PurpurWorldConfig { +@@ -477,6 +477,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -134,7 +134,7 @@ index 1c59c85b700fd2fd69e0c225b517836f771c6ec7..9fa6291c047f3a460f6b04244eccb214 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -483,6 +487,10 @@ public class PurpurWorldConfig { +@@ -492,6 +496,10 @@ public class PurpurWorldConfig { set("mobs.giant.attributes.max_health", oldValue); } giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth); diff --git a/patches/server/0028-Zombie-horse-naturally-spawn.patch b/patches/server/0028-Zombie-horse-naturally-spawn.patch index 16e35353e..cc9402c50 100644 --- a/patches/server/0028-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0028-Zombie-horse-naturally-spawn.patch @@ -28,10 +28,10 @@ index f7cfc6d5ad13dba64c2350fe3fac7f31471e8642..ba095685ec775cb5a7ac9a5b7b0a9179 entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ()); this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2e4c26c580739696300eb3b986d3a23435d45b7e..db70f6b9f36810fd6bf3f6a801d7ea605ba423fb 100644 +index 5beb1ae55b0426b065133b14d0d1618aa1a82eea..6e6c47e40926bd6bfe5c5af96d32757aa4972e96 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1266,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1269,6 +1269,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -39,7 +39,7 @@ index 2e4c26c580739696300eb3b986d3a23435d45b7e..db70f6b9f36810fd6bf3f6a801d7ea60 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1281,6 +1282,7 @@ public class PurpurWorldConfig { +@@ -1284,6 +1285,7 @@ public class PurpurWorldConfig { zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax); zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); diff --git a/patches/server/0029-Charged-creeper-naturally-spawn.patch b/patches/server/0029-Charged-creeper-naturally-spawn.patch index 62427450d..777fca7bf 100644 --- a/patches/server/0029-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0029-Charged-creeper-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index b149deea5f9151d5d310e0b933d355e1e77ada1d..a878693fe74f1509b4d3ba5199a7b7f1dac4b8d1 100644 +index cee9afa518547afab1f2772b0352dcf05752df44..624b736f11341816c91f422cf6098ac0d19855b3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -138,6 +138,14 @@ public class Creeper extends Monster implements PowerableMob { @@ -24,10 +24,10 @@ index b149deea5f9151d5d310e0b933d355e1e77ada1d..a878693fe74f1509b4d3ba5199a7b7f1 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9db45abd1963ae7f48fe06f29fc4e3bf9e2cd983..17952c0f39deeed6c333289f35705c5ae49e0596 100644 +index 6e6c47e40926bd6bfe5c5af96d32757aa4972e96..efa0e81763beca0cae5db70df7a64b4592587094 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -290,6 +290,7 @@ public class PurpurWorldConfig { +@@ -299,6 +299,7 @@ public class PurpurWorldConfig { public boolean creeperRidable = false; public boolean creeperRidableInWater = false; public double creeperMaxHealth = 20.0D; @@ -35,7 +35,7 @@ index 9db45abd1963ae7f48fe06f29fc4e3bf9e2cd983..17952c0f39deeed6c333289f35705c5a private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -299,6 +300,7 @@ public class PurpurWorldConfig { +@@ -308,6 +309,7 @@ public class PurpurWorldConfig { set("mobs.creeper.attributes.max_health", oldValue); } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); diff --git a/patches/server/0030-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0030-Rabbit-naturally-spawn-toast-and-killer.patch index a46744c77..7d7f1499a 100644 --- a/patches/server/0030-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0030-Rabbit-naturally-spawn-toast-and-killer.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 845931a76d3b94ee9a1c0f238c3ea254950700bc..9ddb39fb7028e91c97039887afeaf711e13a9182 100644 +index 562262f4811d5748dd04a284f243024c059c8756..c1c2909728197dcb9137fb380ed210e7ee13e5d9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -428,7 +428,11 @@ public class Rabbit extends Animal { @@ -38,10 +38,10 @@ index 845931a76d3b94ee9a1c0f238c3ea254950700bc..9ddb39fb7028e91c97039887afeaf711 int i = this.random.nextInt(100); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 17952c0f39deeed6c333289f35705c5ae49e0596..5dbec1b5662df093394e9159fb11e401444da19a 100644 +index efa0e81763beca0cae5db70df7a64b4592587094..11a27e475a2e1085d74c12080ff82559fd314184 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -844,6 +844,8 @@ public class PurpurWorldConfig { +@@ -853,6 +853,8 @@ public class PurpurWorldConfig { public boolean rabbitRidable = false; public boolean rabbitRidableInWater = false; public double rabbitMaxHealth = 3.0D; @@ -50,7 +50,7 @@ index 17952c0f39deeed6c333289f35705c5ae49e0596..5dbec1b5662df093394e9159fb11e401 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -853,6 +855,8 @@ public class PurpurWorldConfig { +@@ -862,6 +864,8 @@ public class PurpurWorldConfig { set("mobs.rabbit.attributes.max_health", oldValue); } rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); diff --git a/patches/server/0032-Tulips-change-fox-type.patch b/patches/server/0032-Tulips-change-fox-type.patch index afc42be11..d6ac79e9d 100644 --- a/patches/server/0032-Tulips-change-fox-type.patch +++ b/patches/server/0032-Tulips-change-fox-type.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Tulips change fox type diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 5665ee66a3b7355a6dc65409afda42ea94449b0b..d334321f3947288861066038eb70b98cad63582b 100644 +index b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4dc332a004 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -35,6 +35,7 @@ import net.minecraft.tags.Tag; @@ -75,10 +75,10 @@ index 5665ee66a3b7355a6dc65409afda42ea94449b0b..d334321f3947288861066038eb70b98c // Paper start - Cancellable death event protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5dbec1b5662df093394e9159fb11e401444da19a..b14853de709d9d083e2c349f398d81f629ebf6eb 100644 +index 11a27e475a2e1085d74c12080ff82559fd314184..d137a4661406f782e6379e88c3990c562583b7b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -438,6 +438,7 @@ public class PurpurWorldConfig { +@@ -447,6 +447,7 @@ public class PurpurWorldConfig { public boolean foxRidable = false; public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; @@ -86,7 +86,7 @@ index 5dbec1b5662df093394e9159fb11e401444da19a..b14853de709d9d083e2c349f398d81f6 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -447,6 +448,7 @@ public class PurpurWorldConfig { +@@ -456,6 +457,7 @@ public class PurpurWorldConfig { set("mobs.fox.attributes.max_health", oldValue); } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); diff --git a/patches/server/0033-Breedable-Polar-Bears.patch b/patches/server/0033-Breedable-Polar-Bears.patch index f6e0e4867..ad0c1bdc4 100644 --- a/patches/server/0033-Breedable-Polar-Bears.patch +++ b/patches/server/0033-Breedable-Polar-Bears.patch @@ -59,10 +59,10 @@ index 69e495a93cd1519297dcd8ef4971cca61b80f201..0b5d4416ad4dc0a90cbd1826c45c4741 this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D)); this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6b73704baec9d8c56d18dd4864811c9baaf655a3..8e630772adf6753371134bee1edf78770ce1af89 100644 +index d137a4661406f782e6379e88c3990c562583b7b5..59e41d260eed40828c21a2e01b4717e01f4214fd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -820,6 +820,8 @@ public class PurpurWorldConfig { +@@ -829,6 +829,8 @@ public class PurpurWorldConfig { public boolean polarBearRidable = false; public boolean polarBearRidableInWater = false; public double polarBearMaxHealth = 30.0D; @@ -71,7 +71,7 @@ index 6b73704baec9d8c56d18dd4864811c9baaf655a3..8e630772adf6753371134bee1edf7877 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -829,6 +831,9 @@ public class PurpurWorldConfig { +@@ -838,6 +840,9 @@ public class PurpurWorldConfig { set("mobs.polar_bear.attributes.max_health", oldValue); } polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth); diff --git a/patches/server/0034-Chickens-can-retaliate.patch b/patches/server/0034-Chickens-can-retaliate.patch index 62746add2..0fccc0d86 100644 --- a/patches/server/0034-Chickens-can-retaliate.patch +++ b/patches/server/0034-Chickens-can-retaliate.patch @@ -51,10 +51,10 @@ index 419a774733ac3d562e636f2615005c953bbd87df..ca584a5a801d0909f4bdbaa8a635608e @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e630772adf6753371134bee1edf78770ce1af89..8f0c44bf14aa73816825bbfac698406745b747d8 100644 +index 59e41d260eed40828c21a2e01b4717e01f4214fd..d1458b7f039a960d70d70c949639bc25d4fe3441 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -250,6 +250,7 @@ public class PurpurWorldConfig { +@@ -259,6 +259,7 @@ public class PurpurWorldConfig { public boolean chickenRidable = false; public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; @@ -62,7 +62,7 @@ index 8e630772adf6753371134bee1edf78770ce1af89..8f0c44bf14aa73816825bbfac6984067 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -259,6 +260,7 @@ public class PurpurWorldConfig { +@@ -268,6 +269,7 @@ public class PurpurWorldConfig { set("mobs.chicken.attributes.max_health", oldValue); } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); diff --git a/patches/server/0035-Add-option-to-set-armorstand-step-height.patch b/patches/server/0035-Add-option-to-set-armorstand-step-height.patch index 593b38c5d..fcb9c9cd1 100644 --- a/patches/server/0035-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0035-Add-option-to-set-armorstand-step-height.patch @@ -17,11 +17,11 @@ index e5ef24d92de21c4c0e6a98e06985e52d47bfdce0..dc1630a1a769f848059f576c3d1220a2 if (!this.canTick) { if (this.noTickPoseDirty) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8692ca2751ba6ed6ad989843261b13d2eeba669e..7eead3ef93dd4e8d912809a2c47062b95cb80168 100644 +index d1458b7f039a960d70d70c949639bc25d4fe3441..508b53f053997db9e250dd7d3e1a1fe32f07369d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -94,6 +94,11 @@ public class PurpurWorldConfig { - return value.isEmpty() ? fallback : value; +@@ -103,6 +103,11 @@ public class PurpurWorldConfig { + turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } + public float armorstandStepHeight = 0.0F; diff --git a/patches/server/0036-Cat-spawning-options.patch b/patches/server/0036-Cat-spawning-options.patch index 14ea61e91..d845bb11b 100644 --- a/patches/server/0036-Cat-spawning-options.patch +++ b/patches/server/0036-Cat-spawning-options.patch @@ -49,10 +49,10 @@ index 436f9cb45ff5b83f55b12f291bed355fa12a0655..0784f6a0aa39c8e49b009f53d91432ff } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7eead3ef93dd4e8d912809a2c47062b95cb80168..8f7e7007633ee30f3f943d583623c122d5bc7de3 100644 +index 508b53f053997db9e250dd7d3e1a1fe32f07369d..f698bc6c3614159be86239fb291dea4eb33202d3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -227,6 +227,9 @@ public class PurpurWorldConfig { +@@ -236,6 +236,9 @@ public class PurpurWorldConfig { public boolean catRidable = false; public boolean catRidableInWater = false; public double catMaxHealth = 10.0D; @@ -62,7 +62,7 @@ index 7eead3ef93dd4e8d912809a2c47062b95cb80168..8f7e7007633ee30f3f943d583623c122 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -236,6 +239,9 @@ public class PurpurWorldConfig { +@@ -245,6 +248,9 @@ public class PurpurWorldConfig { set("mobs.cat.attributes.max_health", oldValue); } catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth); diff --git a/patches/server/0038-Cows-eat-mushrooms.patch b/patches/server/0038-Cows-eat-mushrooms.patch index 40e224fb8..7ab93be39 100644 --- a/patches/server/0038-Cows-eat-mushrooms.patch +++ b/patches/server/0038-Cows-eat-mushrooms.patch @@ -114,10 +114,10 @@ index d602597132b69c51c6da9115d0a2c9a8a1f39405..0db4dd5423508acb5214ed3205bb5632 public Cow getBreedOffspring(ServerLevel world, AgeableMob entity) { return (Cow) EntityType.COW.create(world); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2074ab8e186b3b534ee0d073f3d12a50626ac76b..68a5373dab6edce4104be6c141ad4c1095823255 100644 +index f698bc6c3614159be86239fb291dea4eb33202d3..3562a3b0a4b3817b3b415faaf4c54e2a8b6bd97d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -289,6 +289,7 @@ public class PurpurWorldConfig { +@@ -298,6 +298,7 @@ public class PurpurWorldConfig { public boolean cowRidable = false; public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; @@ -125,7 +125,7 @@ index 2074ab8e186b3b534ee0d073f3d12a50626ac76b..68a5373dab6edce4104be6c141ad4c10 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -298,6 +299,7 @@ public class PurpurWorldConfig { +@@ -307,6 +308,7 @@ public class PurpurWorldConfig { set("mobs.cow.attributes.max_health", oldValue); } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); diff --git a/patches/server/0040-Pigs-give-saddle-back.patch b/patches/server/0040-Pigs-give-saddle-back.patch index bdf0e8912..48981c6c7 100644 --- a/patches/server/0040-Pigs-give-saddle-back.patch +++ b/patches/server/0040-Pigs-give-saddle-back.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pigs give saddle back diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java -index e2d4e9f1955fb40b43e82e4876a39560ab2e23d1..0973fb94748170fbf51d78b3ead657b61fb637b5 100644 +index 7313d6bd41a312a8f9352240f181543d7cccb378..f4ae6de32bc1d854c54da829e45ca2cd15090433 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Pig.java +++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java @@ -172,6 +172,18 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { @@ -28,10 +28,10 @@ index e2d4e9f1955fb40b43e82e4876a39560ab2e23d1..0973fb94748170fbf51d78b3ead657b6 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c5124c7beff61ea1a60db0b0e14f99f3302831b9..91d62888b6012b51b1eeb29b864d7d560397b7c1 100644 +index 3562a3b0a4b3817b3b415faaf4c54e2a8b6bd97d..7f7f73d1bac20384ed04b32f8a080a4062124f34 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -779,6 +779,7 @@ public class PurpurWorldConfig { +@@ -788,6 +788,7 @@ public class PurpurWorldConfig { public boolean pigRidable = false; public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; @@ -39,7 +39,7 @@ index c5124c7beff61ea1a60db0b0e14f99f3302831b9..91d62888b6012b51b1eeb29b864d7d56 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -788,6 +789,7 @@ public class PurpurWorldConfig { +@@ -797,6 +798,7 @@ public class PurpurWorldConfig { set("mobs.pig.attributes.max_health", oldValue); } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); diff --git a/patches/server/0041-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0041-Snowman-drop-and-put-back-pumpkin.patch index 9149a6b8a..0a9cd76f1 100644 --- a/patches/server/0041-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0041-Snowman-drop-and-put-back-pumpkin.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Snowman drop and put back pumpkin diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 5cbb66da8aacbdcec3c22610708d91af4dd87cd3..dbd005660d70918fe5a9d0f5c74f6b7d7fb03c3f 100644 +index e194774b2ba7976565642534ceeca2079e23945e..a9c1b07f23c604d9364ccdee9478baf137af0816 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -187,6 +187,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -32,10 +32,10 @@ index 5cbb66da8aacbdcec3c22610708d91af4dd87cd3..dbd005660d70918fe5a9d0f5c74f6b7d this.forceDrops = false; // CraftBukkit } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 91d62888b6012b51b1eeb29b864d7d560397b7c1..94b7f06779eda71e7e14458d1e1eacc1969e899c 100644 +index 7f7f73d1bac20384ed04b32f8a080a4062124f34..ccbd2ce00a72d3dda6f362bcabc09694ee019b2d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1010,6 +1010,8 @@ public class PurpurWorldConfig { +@@ -1019,6 +1019,8 @@ public class PurpurWorldConfig { public boolean snowGolemRidableInWater = false; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index 91d62888b6012b51b1eeb29b864d7d560397b7c1..94b7f06779eda71e7e14458d1e1eacc1 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1020,6 +1022,8 @@ public class PurpurWorldConfig { +@@ -1029,6 +1031,8 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); diff --git a/patches/server/0042-Ender-dragon-always-drop-full-exp.patch b/patches/server/0042-Ender-dragon-always-drop-full-exp.patch index b3a0b4bcc..55ef1e98e 100644 --- a/patches/server/0042-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0042-Ender-dragon-always-drop-full-exp.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ender dragon always drop full exp diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 89680ef19b511ffbc241279647412f754085db4c..e29fe6939d59a58093ddfbdf9b274469c5e25756 100644 +index 73506ce90426bdfb8fbc08687c6e21de637fbd77..9d4dd8c460d1d69ab56e166e10fd7137ddc47603 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -709,7 +709,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -18,10 +18,10 @@ index 89680ef19b511ffbc241279647412f754085db4c..e29fe6939d59a58093ddfbdf9b274469 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 94b7f06779eda71e7e14458d1e1eacc1969e899c..12407ab2b99b9d4aa00ddd73f9257d6de493f524 100644 +index ccbd2ce00a72d3dda6f362bcabc09694ee019b2d..7dcde9608d720b661b37232a729c6248e32b2186 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -392,6 +392,7 @@ public class PurpurWorldConfig { +@@ -401,6 +401,7 @@ public class PurpurWorldConfig { public boolean enderDragonRidableInWater = false; public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index 94b7f06779eda71e7e14458d1e1eacc1969e899c..12407ab2b99b9d4aa00ddd73f9257d6d private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -406,6 +407,7 @@ public class PurpurWorldConfig { +@@ -415,6 +416,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); diff --git a/patches/server/0043-Signs-editable-on-right-click.patch b/patches/server/0043-Signs-editable-on-right-click.patch index 66627783c..cae532f5f 100644 --- a/patches/server/0043-Signs-editable-on-right-click.patch +++ b/patches/server/0043-Signs-editable-on-right-click.patch @@ -35,10 +35,10 @@ index ed3d78494735ceda14ad0ea23adeadc374f3b35e..a0d23b7e244e7df8a462b801dee18fd4 } else { return InteractionResult.PASS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 12407ab2b99b9d4aa00ddd73f9257d6de493f524..5cfccc5a7ee50b24151d6886a1f336c6b217c24e 100644 +index 7dcde9608d720b661b37232a729c6248e32b2186..4c8bacd089efa43616bd5c82b17bd0baa00b6ffc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -153,6 +153,11 @@ public class PurpurWorldConfig { +@@ -162,6 +162,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch index ca7e7b4b1..1bf6f048b 100644 --- a/patches/server/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0044-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow soil to moisten from water directly under it diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 5d95f3cce8f5190bc2172a1fe0e83166062f0f3d..603e621b16deb63b0d6d7e59e05a8de1831e067f 100644 +index d0720d5e6612d98d1e86e33e8e6564e371595630..e102795a2464eac028b30977be8d99ceca2339f7 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -159,7 +159,7 @@ public class FarmBlock extends Block { @@ -18,10 +18,10 @@ index 5d95f3cce8f5190bc2172a1fe0e83166062f0f3d..603e621b16deb63b0d6d7e59e05a8de1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5cfccc5a7ee50b24151d6886a1f336c6b217c24e..2bb17be22ec6a89c8090657cd5093d6a376d5064 100644 +index 4c8bacd089efa43616bd5c82b17bd0baa00b6ffc..57098618aba1e0c001bffdb51d144d56069bca49 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -153,6 +153,11 @@ public class PurpurWorldConfig { +@@ -162,6 +162,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0045-Minecart-settings-and-WASD-controls.patch b/patches/server/0045-Minecart-settings-and-WASD-controls.patch index f266a054e..c1e008723 100644 --- a/patches/server/0045-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0045-Minecart-settings-and-WASD-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 52fd2d08783bbba4c262bb297a31b373b3bcfacc..d37aa315753ffff5601d42987beae7af4a267ce1 100644 +index 7d8853191eadf5f5d909dcc0269740d6b5e64b8d..ae40f50a33f676059738625773127ff9ae181be0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1018,6 +1018,7 @@ public class ServerPlayer extends Player { @@ -135,7 +135,7 @@ index e05b13f512c64dd957842f25b5e17c68ee9f079b..7aad6f0c7b55d466bc4b966984b9fa67 } } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index ce4848bdd00c091b9eb5fa2d47b03378d43c91b2..2edf760182312a36dc7d0fc7378135a2c45e9a51 100644 +index 05c46f3b3bce5225b819d86e6e06729a5093e092..b2dd2a211bdd1441eae67dd6bd93691964e07620 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -69,7 +69,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; @@ -148,10 +148,10 @@ index ce4848bdd00c091b9eb5fa2d47b03378d43c91b2..2edf760182312a36dc7d0fc7378135a2 protected final float explosionResistance; protected final boolean isRandomlyTicking; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2bb17be22ec6a89c8090657cd5093d6a376d5064..b9257b444a9fae83cd42757eec84559185fe4971 100644 +index 57098618aba1e0c001bffdb51d144d56069bca49..128da7e1dececadcfa95e24fe2c2c32d5cce05d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,6 +99,68 @@ public class PurpurWorldConfig { +@@ -108,6 +108,68 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch index 3499d2d4c..7b2934f34 100644 --- a/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0046-Disable-loot-drops-on-death-by-cramming.patch @@ -22,10 +22,10 @@ index ab868741cdb9ad20c81d4ed3561d498d25fcbf12..d2944ac5002f77dee2ae111b4f529471 // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops, () -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f7c261eb407aa1c5f7cf72d02605254910ca0272..6125cc91382db970ea1c708a76c7320835eb3a77 100644 +index 128da7e1dececadcfa95e24fe2c2c32d5cce05d9..25473a5431d036c02e4e29552c571e6f20eca71c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -215,6 +215,11 @@ public class PurpurWorldConfig { +@@ -224,6 +224,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0047-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0047-Option-to-toggle-milk-curing-bad-omen.patch index c965944a2..c0a76d95f 100644 --- a/patches/server/0047-Option-to-toggle-milk-curing-bad-omen.patch +++ b/patches/server/0047-Option-to-toggle-milk-curing-bad-omen.patch @@ -28,10 +28,10 @@ index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1533c1a126b4602db25772662d313d5b0b4eab15..9a1a942b6f4ad15a6e664f5a774a6aef254eb0d7 100644 +index 25473a5431d036c02e4e29552c571e6f20eca71c..b730d3a026072e3b781793bb0415a0ba3dc54a5e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -216,8 +216,10 @@ public class PurpurWorldConfig { +@@ -225,8 +225,10 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch b/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch index 68da36b6a..148e24149 100644 --- a/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch +++ b/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch @@ -18,10 +18,10 @@ index a367f50b0e3fe9e7a1b87892a8c98e88bd678f6f..52d41fb8d0495f61346c718c8f2395bc if (!this.level.isClientSide && this.pickup == AbstractArrow.Pickup.ALLOWED) { this.spawnAtLocation(this.getPickupItem(), 0.1F); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9a1a942b6f4ad15a6e664f5a774a6aef254eb0d7..df553af2e0a7c9b411a2ba0ed2fd530a537e4bcd 100644 +index b730d3a026072e3b781793bb0415a0ba3dc54a5e..10eba3e8a06702fd40d3ce0117b8874c773d9658 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -217,9 +217,11 @@ public class PurpurWorldConfig { +@@ -226,9 +226,11 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; diff --git a/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch index 126418e53..feeaeb1bb 100644 --- a/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add enderman and creeper griefing controls diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index a878693fe74f1509b4d3ba5199a7b7f1dac4b8d1..f7b1d2cb0ba544aa4aec7d87d21335e9fcca6127 100644 +index 624b736f11341816c91f422cf6098ac0d19855b3..bb32bc0989ebbdd7522fe5f70ae3e6414f909388 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -344,7 +344,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -18,7 +18,7 @@ index a878693fe74f1509b4d3ba5199a7b7f1dac4b8d1..f7b1d2cb0ba544aa4aec7d87d21335e9 // CraftBukkit start 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 66ff0e3aa1a7dfb233a459516c4c596c1bbe033e..71b472e3fefe549fe959fda1702213bac3c3e7d4 100644 +index e5ddb64d1a212266c05170359e27927a5f9e243e..2e831d7901747d7957becddc2daf453c4f30bdcc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -499,6 +499,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -38,10 +38,10 @@ index 66ff0e3aa1a7dfb233a459516c4c596c1bbe033e..71b472e3fefe549fe959fda1702213ba } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index df553af2e0a7c9b411a2ba0ed2fd530a537e4bcd..ea072b32e1c92424d6e1cee5a92c86e460e11c5d 100644 +index 10eba3e8a06702fd40d3ce0117b8874c773d9658..a285b8fdcced2c5f51283393e3e02b327497d1d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -387,6 +387,7 @@ public class PurpurWorldConfig { +@@ -396,6 +396,7 @@ public class PurpurWorldConfig { public boolean creeperRidableInWater = false; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index df553af2e0a7c9b411a2ba0ed2fd530a537e4bcd..ea072b32e1c92424d6e1cee5a92c86e4 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -397,6 +398,7 @@ public class PurpurWorldConfig { +@@ -406,6 +407,7 @@ public class PurpurWorldConfig { } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); @@ -57,7 +57,7 @@ index df553af2e0a7c9b411a2ba0ed2fd530a537e4bcd..ea072b32e1c92424d6e1cee5a92c86e4 } public boolean dolphinRidable = false; -@@ -494,6 +496,7 @@ public class PurpurWorldConfig { +@@ -503,6 +505,7 @@ public class PurpurWorldConfig { public boolean endermanRidable = false; public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; @@ -65,7 +65,7 @@ index df553af2e0a7c9b411a2ba0ed2fd530a537e4bcd..ea072b32e1c92424d6e1cee5a92c86e4 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -503,6 +506,7 @@ public class PurpurWorldConfig { +@@ -512,6 +515,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); diff --git a/patches/server/0055-Villagers-follow-emerald-blocks.patch b/patches/server/0055-Villagers-follow-emerald-blocks.patch index 0ef6414a6..41fa77740 100644 --- a/patches/server/0055-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0055-Villagers-follow-emerald-blocks.patch @@ -18,7 +18,7 @@ index 79bb13c5614bab1f0749c5f8f57f762c6216c564..2cbc9adc8e417def48be03d08174a583 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java -index ce0364b98204b64d43751fed260dcc1d9fe60649..8139fe28b5c178635ab405def3229060e24d6c09 100644 +index bd283f71cb05ffbe1fed39afb41ae54dc52ec297..d7ebbd785d89fc5c1fec1a020a259a94b2b78827 100644 --- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java @@ -43,6 +43,7 @@ import org.bukkit.event.entity.VillagerAcquireTradeEvent; @@ -30,7 +30,7 @@ index ce0364b98204b64d43751fed260dcc1d9fe60649..8139fe28b5c178635ab405def3229060 // CraftBukkit start private CraftMerchant craftMerchant; 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 5d0ea8b69c0f66a826d584ee3b4cc97dc63c42d6..0773d2c1c06f08f196bc727d9b94549cdd9bac63 100644 +index 17eb573debec8e67dab2f5790ba9fc0a1f09a208..3c4393f28483a454b59264c90a76d4d18f6eabee 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -167,6 +167,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -54,10 +54,10 @@ index 0bcfece84ac11f04671ed38a99b31da9f8b03858..2f0bcf917af26fb7628bda134b650a8b this.goalSelector.addGoal(8, new WaterAvoidingRandomStrollGoal(this, 0.35D)); this.goalSelector.addGoal(9, new InteractGoal(this, Player.class, 3.0F, 1.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a794258e058c2678da5f208ca0ca99f58193bb90..b8d5aca82ab89e39d6e9028f700d483af0b4aff5 100644 +index a285b8fdcced2c5f51283393e3e02b327497d1d0..5024fedb18e23594bc6081cb5e57639d525812e1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1246,6 +1246,7 @@ public class PurpurWorldConfig { +@@ -1249,6 +1249,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; @@ -65,7 +65,7 @@ index a794258e058c2678da5f208ca0ca99f58193bb90..b8d5aca82ab89e39d6e9028f700d483a private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1257,6 +1258,7 @@ public class PurpurWorldConfig { +@@ -1260,6 +1261,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); @@ -73,7 +73,7 @@ index a794258e058c2678da5f208ca0ca99f58193bb90..b8d5aca82ab89e39d6e9028f700d483a } public boolean vindicatorRidable = false; -@@ -1276,6 +1278,7 @@ public class PurpurWorldConfig { +@@ -1279,6 +1281,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidable = false; public boolean wanderingTraderRidableInWater = false; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index a794258e058c2678da5f208ca0ca99f58193bb90..b8d5aca82ab89e39d6e9028f700d483a private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1285,6 +1288,7 @@ public class PurpurWorldConfig { +@@ -1288,6 +1291,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); diff --git a/patches/server/0056-Allow-leashing-villagers.patch b/patches/server/0056-Allow-leashing-villagers.patch index 94fd22f25..9d89f7d3b 100644 --- a/patches/server/0056-Allow-leashing-villagers.patch +++ b/patches/server/0056-Allow-leashing-villagers.patch @@ -49,10 +49,10 @@ index 2f0bcf917af26fb7628bda134b650a8b296091ea..c5dbb1c8210b71f7d9d91089cb139f65 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ccb95d43ec3835c0cec82eca7d8b81d48ffc7f28..fede1cdfdca7b006d33d50aa0380b4be87537cae 100644 +index 5024fedb18e23594bc6081cb5e57639d525812e1..7418d367bfa4285d11daac81c61d5d68e4e0d9ee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1247,6 +1247,7 @@ public class PurpurWorldConfig { +@@ -1250,6 +1250,7 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index ccb95d43ec3835c0cec82eca7d8b81d48ffc7f28..fede1cdfdca7b006d33d50aa0380b4be private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1259,6 +1260,7 @@ public class PurpurWorldConfig { +@@ -1262,6 +1263,7 @@ public class PurpurWorldConfig { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index ccb95d43ec3835c0cec82eca7d8b81d48ffc7f28..fede1cdfdca7b006d33d50aa0380b4be } public boolean vindicatorRidable = false; -@@ -1279,6 +1281,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1284,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = false; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index ccb95d43ec3835c0cec82eca7d8b81d48ffc7f28..fede1cdfdca7b006d33d50aa0380b4be private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1289,6 +1292,7 @@ public class PurpurWorldConfig { +@@ -1292,6 +1295,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/server/0057-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0057-Implement-configurable-search-radius-for-villagers-t.patch index 2a91a4d08..f61def363 100644 --- a/patches/server/0057-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0057-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn 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 a44a0eaa5f8b1f6dc0b2570fafc5a20c669f07bd..d195212838e253d7a479a89c6650bb008c5daadd 100644 +index 7396963b9b405f7c0ff022176ce55b6f27ac3f4c..6e047f7d9a77e8da563c377e65b428479e4ca346 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -1032,6 +1032,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index a44a0eaa5f8b1f6dc0b2570fafc5a20c669f07bd..d195212838e253d7a479a89c6650bb00 for (int i = 0; i < 10; ++i) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d14d525a50b154baed229da5269ed491f082dc40..f2ea8d40ee8d238c1cd93b600d377e544b9c53e8 100644 +index 7418d367bfa4285d11daac81c61d5d68e4e0d9ee..0d6a420ead59fba74fafd891efdc87e1d602ace7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1248,6 +1248,8 @@ public class PurpurWorldConfig { +@@ -1251,6 +1251,8 @@ public class PurpurWorldConfig { public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -30,7 +30,7 @@ index d14d525a50b154baed229da5269ed491f082dc40..f2ea8d40ee8d238c1cd93b600d377e54 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1261,6 +1263,8 @@ public class PurpurWorldConfig { +@@ -1264,6 +1266,8 @@ public class PurpurWorldConfig { villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0058-Implement-infinite-liquids.patch b/patches/server/0058-Implement-infinite-liquids.patch index 56d598828..1b0e9a45b 100644 --- a/patches/server/0058-Implement-infinite-liquids.patch +++ b/patches/server/0058-Implement-infinite-liquids.patch @@ -5,7 +5,7 @@ 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 1aab936f9f57bd2dda4444d6bd36e064809e5915..8ecbe2e27f8f9d97c81a0e866b5224487747cd14 100644 +index 6f5f9d8a38bf023969c883b3e3a230c3cdc62104..edc48ae53ccaee4fcb4d4aa1b94fd130b5c81b43 100644 --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java @@ -217,7 +217,7 @@ public abstract class FlowingFluid extends Fluid { @@ -81,10 +81,10 @@ index 56d50b9310d30e0f81f3d2549ff5c256eb07cc2a..4cc6d665c7d52b6edcaaa5f9ed131407 @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 f2ea8d40ee8d238c1cd93b600d377e544b9c53e8..54d72b8b0386443137155fcc0e60c57d38c3e5b3 100644 +index 0d6a420ead59fba74fafd891efdc87e1d602ace7..573180a79354b2ae3a61f5dfa98201d4b46a1195 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -229,6 +229,20 @@ public class PurpurWorldConfig { +@@ -238,6 +238,20 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0059-Make-lava-flow-speed-configurable.patch b/patches/server/0059-Make-lava-flow-speed-configurable.patch index a2d323db1..a143f9020 100644 --- a/patches/server/0059-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0059-Make-lava-flow-speed-configurable.patch @@ -18,10 +18,10 @@ index 9fc7bc3141c0fe6b65d78edf6bac3c45d46ae4fe..a7d2fcad13f1f9b7055732636cd58039 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 54d72b8b0386443137155fcc0e60c57d38c3e5b3..4d0952bb0f98cdf9482bec98bd22710558bb0181 100644 +index 573180a79354b2ae3a61f5dfa98201d4b46a1195..30cb31b413cca3f7f1ad8f1745091f8c2f80f17f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -231,9 +231,13 @@ public class PurpurWorldConfig { +@@ -240,9 +240,13 @@ public class PurpurWorldConfig { public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; diff --git a/patches/server/0060-Add-player-death-exp-control-options.patch b/patches/server/0060-Add-player-death-exp-control-options.patch index 776ac3b5a..926a7ff64 100644 --- a/patches/server/0060-Add-player-death-exp-control-options.patch +++ b/patches/server/0060-Add-player-death-exp-control-options.patch @@ -5,7 +5,7 @@ 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 adc094f20ed8bb4c531b06eb2e78bebd3faff578..42becbb21eee4e1b0a14e2fc3e226f0de26c96b1 100644 +index aad9de4019015ca42ad5509886ca35315aeb30d9..7518b7f7378eba01d12224db6264b6bcc1254432 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1909,9 +1909,18 @@ public abstract class Player extends LivingEntity { @@ -31,10 +31,10 @@ index adc094f20ed8bb4c531b06eb2e78bebd3faff578..42becbb21eee4e1b0a14e2fc3e226f0d return 0; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4d0952bb0f98cdf9482bec98bd22710558bb0181..6f286a16a91b368bdfd98a738be13ec7e468de30 100644 +index 30cb31b413cca3f7f1ad8f1745091f8c2f80f17f..136d236d6179942b942bfe25433180d3ef7e24e1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -168,6 +168,8 @@ public class PurpurWorldConfig { +@@ -177,6 +177,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutTargetPlayer = true; public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; @@ -43,7 +43,7 @@ index 4d0952bb0f98cdf9482bec98bd22710558bb0181..6f286a16a91b368bdfd98a738be13ec7 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -181,6 +183,8 @@ public class PurpurWorldConfig { +@@ -190,6 +192,8 @@ public class PurpurWorldConfig { 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); diff --git a/patches/server/0061-Configurable-void-damage-height-and-damage.patch b/patches/server/0061-Configurable-void-damage-height-and-damage.patch index 9f8113748..78ecffdce 100644 --- a/patches/server/0061-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0061-Configurable-void-damage-height-and-damage.patch @@ -5,7 +5,7 @@ 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 36569048c8ba952270b8ca1e492292cab5f13ae6..99e383d2d7403b19d207d912608e03daac0d5847 100644 +index 60b5ed2427cfcd8a89239188c40ce972c8f6c4d8..359c70f3618ebd8138daaaadae88db98ee733a30 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -782,7 +782,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -31,10 +31,10 @@ index eec8fe7566a7911d1250286ecf525c851baecc8e..d5d315122326e923dd47ec25c59d81d4 protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5923b7abc9ff75ab555e636f0652fa10e49949e5..e9315b298ff51296a5a10b750d53c8a93b4ee81e 100644 +index 136d236d6179942b942bfe25433180d3ef7e24e1..e1e2077d9806302538c6d1af98512cb006ca9130 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -222,10 +222,14 @@ public class PurpurWorldConfig { +@@ -231,10 +231,14 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; diff --git a/patches/server/0063-Dispenser-curse-of-binding-protection.patch b/patches/server/0063-Dispenser-curse-of-binding-protection.patch index f0f983afc..731a2b1c0 100644 --- a/patches/server/0063-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0063-Dispenser-curse-of-binding-protection.patch @@ -43,10 +43,10 @@ index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f53 // CraftBukkit start Level world = pointer.getLevel(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e9315b298ff51296a5a10b750d53c8a93b4ee81e..3fe23111b84dbb6aceeae023d086d0f70ca7c508 100644 +index e1e2077d9806302538c6d1af98512cb006ca9130..02f0376a16a05ea7569fc1710c390d4b2d65a8f4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -232,6 +232,11 @@ public class PurpurWorldConfig { +@@ -241,6 +241,11 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0064-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0064-Add-option-for-boats-to-eject-players-on-land.patch index 1377978d9..4046c2dbd 100644 --- a/patches/server/0064-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0064-Add-option-for-boats-to-eject-players-on-land.patch @@ -17,10 +17,10 @@ index b967177cb10041f96831322c311579e409050e88..4b38f8186dcd9a98a5413a51c5563c49 } 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 0868835769e4d85fbac81fbb0dbd27e6ae5f8020..6380c028150c3012f5da45c644cd5f590c00e862 100644 +index 02f0376a16a05ea7569fc1710c390d4b2d65a8f4..9e8d6e63f71a692efc1c45e8ec47c2c935ac7627 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -219,12 +219,14 @@ public class PurpurWorldConfig { +@@ -228,12 +228,14 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0065-Mending-mends-most-damages-equipment-first.patch b/patches/server/0065-Mending-mends-most-damages-equipment-first.patch index 815bdd7c3..87f23c8da 100644 --- a/patches/server/0065-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0065-Mending-mends-most-damages-equipment-first.patch @@ -73,10 +73,10 @@ index 7bc5aa35b52de0027cf58a6127a9903464ccaf47..f3ec99d2eae31ba7ce7d4b8e7399a56d Entry entry = getRandomItemWith(enchantment, entityliving); return entry != null ? entry.getValue() : ItemStack.EMPTY; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 47abad8327f7aae85a61c525567d60c3fa0220f1..f1255e97cc13d33e43f4f7e10ee93dff363e40b4 100644 +index 9e8d6e63f71a692efc1c45e8ec47c2c935ac7627..680e60a5ae4f6645b5acc7588f98e90b774d9fb9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -219,6 +219,7 @@ public class PurpurWorldConfig { +@@ -228,6 +228,7 @@ public class PurpurWorldConfig { }); } @@ -84,7 +84,7 @@ index 47abad8327f7aae85a61c525567d60c3fa0220f1..f1255e97cc13d33e43f4f7e10ee93dff public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; -@@ -226,6 +227,7 @@ public class PurpurWorldConfig { +@@ -235,6 +236,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; private void miscGameplayMechanicsSettings() { diff --git a/patches/server/0067-Implement-elytra-settings.patch b/patches/server/0067-Implement-elytra-settings.patch index 0be4b7032..74dbd1da4 100644 --- a/patches/server/0067-Implement-elytra-settings.patch +++ b/patches/server/0067-Implement-elytra-settings.patch @@ -99,10 +99,10 @@ index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d entityhuman.startAutoSpinAttack(20); if (entityhuman.isOnGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f1255e97cc13d33e43f4f7e10ee93dff363e40b4..726c2bc0a6f8df467022c1c446c385dfbb5b08bf 100644 +index 680e60a5ae4f6645b5acc7588f98e90b774d9fb9..3bbaa73010cbcfdf3a918120cfc86c30ed22e4cf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,6 +99,19 @@ public class PurpurWorldConfig { +@@ -108,6 +108,19 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0068-Item-entity-immunities.patch b/patches/server/0068-Item-entity-immunities.patch index 0927f2547..217dd0252 100644 --- a/patches/server/0068-Item-entity-immunities.patch +++ b/patches/server/0068-Item-entity-immunities.patch @@ -147,10 +147,10 @@ index 8d56f0ab748373e55c0166b92382c126fe8e5381..0637e074dbe4a10bc19e7bf9dd79e2d9 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 726c2bc0a6f8df467022c1c446c385dfbb5b08bf..7fcc992546d83733bb1c32b6f405b20c1cd32d83 100644 +index 3bbaa73010cbcfdf3a918120cfc86c30ed22e4cf..72d6c875070e16bacc40700e30b07d5fe5cf1236 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -112,6 +112,49 @@ public class PurpurWorldConfig { +@@ -121,6 +121,49 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0072-Configurable-jockey-options.patch b/patches/server/0072-Configurable-jockey-options.patch index 1efb15c4b..9f66eb0b4 100644 --- a/patches/server/0072-Configurable-jockey-options.patch +++ b/patches/server/0072-Configurable-jockey-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable jockey options diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index c0e1ed8c536a848c99d1a96038f627cc99c627e7..b321ca2b09d9aab8b1b6387774bcfda3b20bc65b 100644 +index 42ce331da58b749c17ece22c2ca9986a96c59438..54028f6c708e78e71b6db84898b9a6b30759023c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -89,6 +89,21 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -57,7 +57,7 @@ index 81a3f6c1774b187be96b412dae44be623ce7f6cb..7bb8ef0bb2de9a0b0d5048f8a4089835 public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index e1e669bd992f105ba7f42312ba70a39f6d044500..f5551d121d4bd633ce8d667433e1def6e2fcbb8e 100644 +index b8be8cf1b9052c770abef02e3f16c48b676851e8..26ba3700d7c6f2502ab8fa8698430e7bbd2572dd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -119,6 +119,18 @@ public class Zombie extends Monster { @@ -167,10 +167,10 @@ index f30b36b3f1153e1cbd9b8242909d9ba8c995df1d..76f1bbec2b8ebe037de65ee5ec718e17 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88450ae0ec 100644 +index 72d6c875070e16bacc40700e30b07d5fe5cf1236..f72530a2659e3d1568314f496aba06cf97873eb3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -538,6 +538,9 @@ public class PurpurWorldConfig { +@@ -547,6 +547,9 @@ public class PurpurWorldConfig { public boolean drownedRidableInWater = false; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -548,6 +551,9 @@ public class PurpurWorldConfig { +@@ -557,6 +560,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 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 } public boolean elderGuardianRidable = false; -@@ -760,6 +766,9 @@ public class PurpurWorldConfig { +@@ -769,6 +775,9 @@ public class PurpurWorldConfig { public boolean huskRidableInWater = false; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -770,6 +779,9 @@ public class PurpurWorldConfig { +@@ -779,6 +788,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 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 } public boolean illusionerRidable = false; -@@ -1470,6 +1482,9 @@ public class PurpurWorldConfig { +@@ -1473,6 +1485,9 @@ public class PurpurWorldConfig { public boolean zombieRidableInWater = false; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1480,6 +1495,9 @@ public class PurpurWorldConfig { +@@ -1483,6 +1498,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 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 } public boolean zombieHorseRidableInWater = false; -@@ -1513,6 +1531,9 @@ public class PurpurWorldConfig { +@@ -1516,6 +1534,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerRidableInWater = false; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1523,12 +1544,18 @@ public class PurpurWorldConfig { +@@ -1526,12 +1547,18 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -259,7 +259,7 @@ index 1e0896ed38cf0d861f25d23c6ebe6a0be4742132..ccf64226afaf2242be106935ae57ab88 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1539,5 +1566,8 @@ public class PurpurWorldConfig { +@@ -1542,5 +1569,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/server/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index eeb8936b6..4bb75caf9 100644 --- a/patches/server/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0073-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -258,10 +258,10 @@ index f4da51e75b3f8772f0d3de17ef4699845a08fdd1..5dc5bddfce5b46fd065fd14112febc41 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 f36ca8f93e32465e71ea00279822e3bedd1d83b9..573618eb60041dd65aae55fea8f20ced109ba9ad 100644 +index f72530a2659e3d1568314f496aba06cf97873eb3..621f58ee6283bfa9e209e4018775a5b668201423 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -951,6 +951,9 @@ public class PurpurWorldConfig { +@@ -960,6 +960,9 @@ public class PurpurWorldConfig { public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; public double phantomMaxHealth = 20.0D; @@ -271,7 +271,7 @@ index f36ca8f93e32465e71ea00279822e3bedd1d83b9..573618eb60041dd65aae55fea8f20ced private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -964,6 +967,9 @@ public class PurpurWorldConfig { +@@ -973,6 +976,9 @@ public class PurpurWorldConfig { set("mobs.phantom.attributes.max_health", oldValue); } phantomMaxHealth = getDouble("mobs.phantom.attributes.max_health", phantomMaxHealth); diff --git a/patches/server/0074-Add-phantom-spawning-options.patch b/patches/server/0074-Add-phantom-spawning-options.patch index 9ef491cbd..4920f7b3d 100644 --- a/patches/server/0074-Add-phantom-spawning-options.patch +++ b/patches/server/0074-Add-phantom-spawning-options.patch @@ -48,10 +48,10 @@ index 1e21d6cf2f03219fb2b7217c9a72bdd83c2146f7..dad5d3c754395b39e96be1e35a99c8bf 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 3e5bfd0acdc99c6fcf929d3b244080a4c9df99d4..688a6a8c2e587a27e8c9c684feb06a68354a7921 100644 +index 621f58ee6283bfa9e209e4018775a5b668201423..26b854985a53b9e287cb451178adeba223580fb7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -954,6 +954,18 @@ public class PurpurWorldConfig { +@@ -963,6 +963,18 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -70,7 +70,7 @@ index 3e5bfd0acdc99c6fcf929d3b244080a4c9df99d4..688a6a8c2e587a27e8c9c684feb06a68 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -970,6 +982,18 @@ public class PurpurWorldConfig { +@@ -979,6 +991,18 @@ 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/server/0075-Implement-bed-explosion-options.patch b/patches/server/0075-Implement-bed-explosion-options.patch index f8ec03ef0..bcf43755e 100644 --- a/patches/server/0075-Implement-bed-explosion-options.patch +++ b/patches/server/0075-Implement-bed-explosion-options.patch @@ -27,10 +27,10 @@ index 20c0030d566012146021613325c6a979f392740e..340e5dee8bf5d8a865c19a8fe63399ae } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 688a6a8c2e587a27e8c9c684feb06a68354a7921..0f312498ca942f152d8a4aa385b4840097660330 100644 +index 26b854985a53b9e287cb451178adeba223580fb7..0b6d5cedbd32b07aa7c2fac3980b9dae48b950fb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -292,6 +292,22 @@ public class PurpurWorldConfig { +@@ -301,6 +301,22 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0076-Implement-respawn-anchor-explosion-options.patch b/patches/server/0076-Implement-respawn-anchor-explosion-options.patch index 5b3c613fe..9c5cb1c85 100644 --- a/patches/server/0076-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0076-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index 07e893f1859abe3c2a765694c21309d60346ca82..0fabe3ec1e9d7dae952db1f1e3dd3af8 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 0f312498ca942f152d8a4aa385b4840097660330..f871295169e6ea75a3e6da9bc9cc15b48835dd4c 100644 +index 0b6d5cedbd32b07aa7c2fac3980b9dae48b950fb..f31cf6a7107a67fa1986aa3d8d4b45ebc46af598 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -336,6 +336,22 @@ public class PurpurWorldConfig { +@@ -345,6 +345,22 @@ public class PurpurWorldConfig { waterInfiniteRequiredSources = getInt("blocks.water.infinite-required-sources", waterInfiniteRequiredSources); } diff --git a/patches/server/0079-Entity-lifespan.patch b/patches/server/0079-Entity-lifespan.patch index 11dd9a0c2..bd2a9d576 100644 --- a/patches/server/0079-Entity-lifespan.patch +++ b/patches/server/0079-Entity-lifespan.patch @@ -89,10 +89,10 @@ index 3249ea9a4b7dc05a1b53373955c267e7a4c7903b..78f7022c6584e634b000cc0c079112fc } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3e58c569253c0162e506c07527bf7306c88ff8c1..971fef23a4381221164834e2c8f30aaf7ee7cd45 100644 +index f31cf6a7107a67fa1986aa3d8d4b45ebc46af598..250ef9cb38d0a767770ad6e638b3278ce049a2ce 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -112,6 +112,11 @@ public class PurpurWorldConfig { +@@ -121,6 +121,11 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0080-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0080-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 1f9a7bc04..411adf48a 100644 --- a/patches/server/0080-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0080-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -55,10 +55,10 @@ index 3756da97a8404ea573a66f3f160cfbfd857b12e5..e2d1c4f0084f981d2541313fb8cdb0b9 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 971fef23a4381221164834e2c8f30aaf7ee7cd45..72ea3dd638758bd5b7aae281b28a873b4056502c 100644 +index 250ef9cb38d0a767770ad6e638b3278ce049a2ce..61ea1a9d292fbac2822752c869b60976850da933 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -231,6 +231,7 @@ public class PurpurWorldConfig { +@@ -240,6 +240,7 @@ public class PurpurWorldConfig { public boolean playerInvulnerableWhileAcceptingResourcePack = false; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; @@ -66,7 +66,7 @@ index 971fef23a4381221164834e2c8f30aaf7ee7cd45..72ea3dd638758bd5b7aae281b28a873b private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -246,6 +247,7 @@ public class PurpurWorldConfig { +@@ -255,6 +256,7 @@ public class PurpurWorldConfig { 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/server/0081-Squid-EAR-immunity.patch b/patches/server/0081-Squid-EAR-immunity.patch index 4d9782d57..6cd7141a0 100644 --- a/patches/server/0081-Squid-EAR-immunity.patch +++ b/patches/server/0081-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 0936ed03cf94cf534535524561791ef454b1df7e..49817bb4fb106bccde979bd2a854d24ede409d56 100644 +index 61ea1a9d292fbac2822752c869b60976850da933..5f6d5e743f5d19e153413fee1591bca48518163e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1287,6 +1287,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1296,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 0936ed03cf94cf534535524561791ef454b1df7e..49817bb4fb106bccde979bd2a854d24e private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1295,6 +1296,7 @@ public class PurpurWorldConfig { +@@ -1304,6 +1305,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); @@ -25,7 +25,7 @@ index 0936ed03cf94cf534535524561791ef454b1df7e..49817bb4fb106bccde979bd2a854d24e public boolean spiderRidable = false; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 7e1bc869299cd2f382f05bb814946e6841cc845e..f71db0f2d37a9f813d188dc2d036fae939aa6db7 100644 +index f5eb57fa723941f50b94ed8efb08a47a8da90e4e..d96a5bc1bba1a5ed86bc5f096b7a69c34391fb9e 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -14,6 +14,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature; diff --git a/patches/server/0082-Phantoms-burn-in-light.patch b/patches/server/0082-Phantoms-burn-in-light.patch index b99629042..f3f29228c 100644 --- a/patches/server/0082-Phantoms-burn-in-light.patch +++ b/patches/server/0082-Phantoms-burn-in-light.patch @@ -47,10 +47,10 @@ index 5dc5bddfce5b46fd065fd14112febc415e19860c..284532bfe697d288529eacbad0fcfcb6 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 2fea00ac3d3e3375f9f8da420988a291a3f686ac..2ba75f2852f4b57602f9bffbcebc26f3e4d9d146 100644 +index 5f6d5e743f5d19e153413fee1591bca48518163e..ad150a54c9a365bf4b7bd62394844c12d9db4cfa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1005,6 +1005,9 @@ public class PurpurWorldConfig { +@@ -1014,6 +1014,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -60,7 +60,7 @@ index 2fea00ac3d3e3375f9f8da420988a291a3f686ac..2ba75f2852f4b57602f9bffbcebc26f3 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1033,6 +1036,9 @@ public class PurpurWorldConfig { +@@ -1042,6 +1045,9 @@ public class PurpurWorldConfig { phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0083-Configurable-villager-breeding.patch b/patches/server/0083-Configurable-villager-breeding.patch index 29efc021b..8c29bccd7 100644 --- a/patches/server/0083-Configurable-villager-breeding.patch +++ b/patches/server/0083-Configurable-villager-breeding.patch @@ -5,7 +5,7 @@ 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 d195212838e253d7a479a89c6650bb008c5daadd..145607300ed953e88b0f9fc1fc61bc34a6c92f84 100644 +index 6e047f7d9a77e8da563c377e65b428479e4ca346..4e26e288a5bccd778a405b95f3a1d61931a398d1 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -754,7 +754,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index d195212838e253d7a479a89c6650bb008c5daadd..145607300ed953e88b0f9fc1fc61bc34 private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 52741957c8b9572c22185f89e05cd5724975cc6b..8da468573da0743a4869cfae8b72182d7e231cc5 100644 +index ad150a54c9a365bf4b7bd62394844c12d9db4cfa..2442d8b6534d07c54f1262ca30b18a8a16b6db52 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1430,6 +1430,7 @@ public class PurpurWorldConfig { +@@ -1433,6 +1433,7 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -29,7 +29,7 @@ index 52741957c8b9572c22185f89e05cd5724975cc6b..8da468573da0743a4869cfae8b72182d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1445,6 +1446,7 @@ public class PurpurWorldConfig { +@@ -1448,6 +1449,7 @@ public class PurpurWorldConfig { villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/server/0084-Redstone-deactivates-spawners.patch b/patches/server/0084-Redstone-deactivates-spawners.patch index baa67889b..1abf9160c 100644 --- a/patches/server/0084-Redstone-deactivates-spawners.patch +++ b/patches/server/0084-Redstone-deactivates-spawners.patch @@ -17,10 +17,10 @@ index 03726227fdd60e9cf77213d50184abff438e01ef..76979991d2ded84161e8a0fc72cbb2d2 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8da468573da0743a4869cfae8b72182d7e231cc5..7d41d9c5e35bb451f214b67b20c05e30f63ab9d4 100644 +index 2442d8b6534d07c54f1262ca30b18a8a16b6db52..f0bbe37d2eef60be9011414a2c86d1320bf0947c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -364,6 +364,11 @@ public class PurpurWorldConfig { +@@ -373,6 +373,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0085-Totems-work-in-inventory.patch b/patches/server/0085-Totems-work-in-inventory.patch index 0f0a5cd6e..4b8a70544 100644 --- a/patches/server/0085-Totems-work-in-inventory.patch +++ b/patches/server/0085-Totems-work-in-inventory.patch @@ -29,10 +29,10 @@ index e2d1c4f0084f981d2541313fb8cdb0b9edd71f71..527fd1662b8ff007fbc383b0061f70b2 event.setCancelled(itemstack == null); this.level.getCraftServer().getPluginManager().callEvent(event); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5e1111ca9cbb0a5896e28d830ddc2529afc58ae9..4e8dc2ba5db4c30993a8ecedebe3f09ba2ec8205 100644 +index f0bbe37d2eef60be9011414a2c86d1320bf0947c..98fdcf99e92faaca3b30d20e085c85d6e4ec2ced 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -232,6 +232,7 @@ public class PurpurWorldConfig { +@@ -241,6 +241,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -40,7 +40,7 @@ index 5e1111ca9cbb0a5896e28d830ddc2529afc58ae9..4e8dc2ba5db4c30993a8ecedebe3f09b private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -248,6 +249,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/server/0086-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0086-Add-vindicator-johnny-spawn-chance.patch index a1bb92c4a..5139ca6e1 100644 --- a/patches/server/0086-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0086-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 730fd18cd9dc334fe527283a2ba5e5259fbfead5..c611dd58a7697093087c6d2c3b47cf85a1400722 100644 +index 780172760fbfe60216ac624598403c22a2fe30df..66ad217d541ce6a2071209abeedd1b688cc5d8eb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -7,6 +7,7 @@ import java.util.function.Predicate; @@ -30,10 +30,10 @@ index 730fd18cd9dc334fe527283a2ba5e5259fbfead5..c611dd58a7697093087c6d2c3b47cf85 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d10be85bd30dcf5eba755152954be35a43e8b8b4..8c93cddf6a1afb442a383f2fbb2d8ba279d337bd 100644 +index 98fdcf99e92faaca3b30d20e085c85d6e4ec2ced..5704e4578915ecd48b4555a659e1d604e9c049b6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1459,6 +1459,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1462,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidable = false; public boolean vindicatorRidableInWater = false; public double vindicatorMaxHealth = 24.0D; @@ -41,7 +41,7 @@ index d10be85bd30dcf5eba755152954be35a43e8b8b4..8c93cddf6a1afb442a383f2fbb2d8ba2 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1468,6 +1469,7 @@ public class PurpurWorldConfig { +@@ -1471,6 +1472,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0088-Dispensers-place-anvils-option.patch b/patches/server/0088-Dispensers-place-anvils-option.patch index 4b410ff09..677f758f6 100644 --- a/patches/server/0088-Dispensers-place-anvils-option.patch +++ b/patches/server/0088-Dispensers-place-anvils-option.patch @@ -41,10 +41,10 @@ index 59db245fe11384282af84ec1d5be08ab0e9484ca..a08eebaa08a75be4e7e8f6d560740ea1 static void setEntityPokingOutOfBlock(BlockSource pointer, Entity entity, Direction direction) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8c93cddf6a1afb442a383f2fbb2d8ba279d337bd..bad29754e48433e211b5c163c270fafaeb6794f4 100644 +index 5704e4578915ecd48b4555a659e1d604e9c049b6..59a6c46b37e4e0a64e3a029cb91452cf07eedb6d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -318,8 +318,10 @@ public class PurpurWorldConfig { +@@ -327,8 +327,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0089-Allow-anvil-colors.patch b/patches/server/0089-Allow-anvil-colors.patch index b45a12492..0e077d3d2 100644 --- a/patches/server/0089-Allow-anvil-colors.patch +++ b/patches/server/0089-Allow-anvil-colors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow anvil colors diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 3751ce065a38cb55b0800f000e33b2b32c7e0f5d..c8b6c5c65a4cd3a53b300358513f96acdaaba449 100644 +index 3314cb81d4d5ce9c1d5472e1213b6bcc1c688b9c..69d996fead45bcf9fe5a29727f7f0a7a162cdabe 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -2,6 +2,9 @@ package net.minecraft.world.inventory; @@ -37,10 +37,10 @@ index 3751ce065a38cb55b0800f000e33b2b32c7e0f5d..c8b6c5c65a4cd3a53b300358513f96ac } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bad29754e48433e211b5c163c270fafaeb6794f4..7bc99c280d16aa22f083c5d644c4ee3bec0bae49 100644 +index 59a6c46b37e4e0a64e3a029cb91452cf07eedb6d..1b3cb9b8330b979ce16363b0ea7096a594b96701 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -301,6 +301,11 @@ public class PurpurWorldConfig { +@@ -310,6 +310,11 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0090-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0090-Add-option-to-disable-dolphin-treasure-searching.patch index d205bc13e..6add02eb8 100644 --- a/patches/server/0090-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0090-Add-option-to-disable-dolphin-treasure-searching.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to disable dolphin treasure searching diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java -index f34e1c342562a509539f2176a91e6132cd6672b2..27747e712a5964b43a7fe1d11165740b38e58dd6 100644 +index 16f32f0a58b090174f3d8b38c583adbcca58c9e4..ea0fb3b032a86223bfdee05a56baa15abfbe5d38 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java @@ -477,6 +477,7 @@ public class Dolphin extends WaterAnimal { @@ -17,10 +17,10 @@ index f34e1c342562a509539f2176a91e6132cd6672b2..27747e712a5964b43a7fe1d11165740b } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7bc99c280d16aa22f083c5d644c4ee3bec0bae49..4f35036bb4dc7a6325e7a35f1623139da39e31d9 100644 +index 1b3cb9b8330b979ce16363b0ea7096a594b96701..d9fb941c7330015fcef4c3d84ea5f19818bf834b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -550,6 +550,7 @@ public class PurpurWorldConfig { +@@ -559,6 +559,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 7bc99c280d16aa22f083c5d644c4ee3bec0bae49..4f35036bb4dc7a6325e7a35f1623139d private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -561,6 +562,7 @@ public class PurpurWorldConfig { +@@ -570,6 +571,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0092-Stop-squids-floating-on-top-of-water.patch b/patches/server/0092-Stop-squids-floating-on-top-of-water.patch index 3d3c2b7ca..af4075702 100644 --- a/patches/server/0092-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0092-Stop-squids-floating-on-top-of-water.patch @@ -54,10 +54,10 @@ index 68cc6f2a78a06293a29317fda72ab3ee79b3533a..cfb2e46b34b2982d6724f18214557fc8 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 20847ff868c6efc44c5bd876146060a70982a973..5ddb1cc5807d97841e88f7181a2f3f4d6c66c191 100644 +index d9fb941c7330015fcef4c3d84ea5f19818bf834b..2e231bc97cf43a77da560f17f8c6827cfefea39a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1310,6 +1310,7 @@ public class PurpurWorldConfig { +@@ -1319,6 +1319,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index 20847ff868c6efc44c5bd876146060a70982a973..5ddb1cc5807d97841e88f7181a2f3f4d private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1319,6 +1320,7 @@ public class PurpurWorldConfig { +@@ -1328,6 +1329,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/server/0094-Entities-can-use-portals-configuration.patch b/patches/server/0094-Entities-can-use-portals-configuration.patch index 184a25454..543986433 100644 --- a/patches/server/0094-Entities-can-use-portals-configuration.patch +++ b/patches/server/0094-Entities-can-use-portals-configuration.patch @@ -27,10 +27,10 @@ index 55635a8abf1ee69e01ba8a7d6119e6c7fdd7ac0d..0198b89d3ac768c826d5be22cde88004 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 5ddb1cc5807d97841e88f7181a2f3f4d6c66c191..1a1d7d7f436381fb61435730469550d2841beeab 100644 +index 2e231bc97cf43a77da560f17f8c6827cfefea39a..ba954799cd5d2781417269d4150e36a6b0546cc2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -287,6 +287,7 @@ public class PurpurWorldConfig { +@@ -296,6 +296,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; @@ -38,7 +38,7 @@ index 5ddb1cc5807d97841e88f7181a2f3f4d6c66c191..1a1d7d7f436381fb61435730469550d2 public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -295,6 +296,7 @@ public class PurpurWorldConfig { +@@ -304,6 +305,7 @@ public class PurpurWorldConfig { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); diff --git a/patches/server/0096-Customizable-wither-health-and-healing.patch b/patches/server/0096-Customizable-wither-health-and-healing.patch index 6519c486b..5a81dacc2 100644 --- a/patches/server/0096-Customizable-wither-health-and-healing.patch +++ b/patches/server/0096-Customizable-wither-health-and-healing.patch @@ -6,7 +6,7 @@ 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 b106e046eaadd99dce3b48b222f29d57efe12f66..9ba855af05a80bef63be043f3672996af6bf411f 100644 +index 9a0a5da86e0502382cb538d6abea8e425e40dddc..93cc8dbf2ff435777a5edc11a834ca1b190638ab 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 @@ -515,8 +515,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -23,10 +23,10 @@ index b106e046eaadd99dce3b48b222f29d57efe12f66..9ba855af05a80bef63be043f3672996a 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 f6eafc276ae98430dee2ab65897e201136d1d285..6f8dcbaf5bd02b6ce1e613e69b51e29a1c891867 100644 +index ba954799cd5d2781417269d4150e36a6b0546cc2..27f5c59afe2e7b956d3414458d6633968c95d5ac 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1521,6 +1521,8 @@ public class PurpurWorldConfig { +@@ -1524,6 +1524,8 @@ public class PurpurWorldConfig { public boolean witherRidableInWater = false; public double witherMaxY = 256D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index f6eafc276ae98430dee2ab65897e201136d1d285..6f8dcbaf5bd02b6ce1e613e69b51e29a private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1535,6 +1537,8 @@ public class PurpurWorldConfig { +@@ -1538,6 +1540,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch index 2eb319bd0..92d7e5b8c 100644 --- a/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0097-Allow-toggling-special-MobSpawners-per-world.patch @@ -94,7 +94,7 @@ index 323eea2bccacfcc85849b5d82c2b30d991e0c0d8..bb5918ff947eb4cc4d0c964b2a8a9166 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 60a56e14f11d064c1f24bfba2438d32444bf55ca..4d58a0e5911478e51d8046e3abf222694eab6b4c 100644 +index 27f5c59afe2e7b956d3414458d6633968c95d5ac..a82c259ba36ab7e88f17a74e54d06cee75e17ec5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -73,6 +73,12 @@ public class PurpurWorldConfig { @@ -110,7 +110,7 @@ index 60a56e14f11d064c1f24bfba2438d32444bf55ca..4d58a0e5911478e51d8046e3abf22269 private double getDouble(String path, double def) { PurpurConfig.config.addDefault("world-settings.default." + path, def); return PurpurConfig.config.getDouble("world-settings." + worldName + "." + path, PurpurConfig.config.getDouble("world-settings.default." + path)); -@@ -222,6 +228,21 @@ public class PurpurWorldConfig { +@@ -231,6 +237,21 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0098-Raid-cooldown-setting.patch b/patches/server/0098-Raid-cooldown-setting.patch index 85afc4412..51abb4493 100644 --- a/patches/server/0098-Raid-cooldown-setting.patch +++ b/patches/server/0098-Raid-cooldown-setting.patch @@ -52,10 +52,10 @@ index e8dd1fdf1a3b697a2e040424df49ac6527b68312..120f77f52ef493f16c2bd8fbc8d8d0a4 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 2a140b22698de57254978178cd5609bf6b63fb5d..16be9ddb79404db1d65b36b2b79cdb15cb8b122c 100644 +index a82c259ba36ab7e88f17a74e54d06cee75e17ec5..4bd290636e37464121f6fa74b59bf383c4545d7a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -313,6 +313,7 @@ public class PurpurWorldConfig { +@@ -322,6 +322,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -63,7 +63,7 @@ index 2a140b22698de57254978178cd5609bf6b63fb5d..16be9ddb79404db1d65b36b2b79cdb15 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -322,6 +323,7 @@ public class PurpurWorldConfig { +@@ -331,6 +332,7 @@ public class PurpurWorldConfig { tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); diff --git a/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch index be947ed80..199316c9a 100644 --- a/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0099-Despawn-rate-config-options-per-projectile-type.patch @@ -289,10 +289,10 @@ index 2867e841e73a3edfdeb83af9d96e0d0cd4116a68..8613008090a9d7cf5cd7c2a598f2c725 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9d56369c98ae5d45f7433923d7b4e3f3a9239cde..5000c1ce19adab15f5867b8e8fd5f5df3056ba1a 100644 +index 4bd290636e37464121f6fa74b59bf383c4545d7a..2731eb75fd156dad7007292268137bbdb40e6f57 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -273,6 +273,35 @@ public class PurpurWorldConfig { +@@ -282,6 +282,35 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0100-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0100-Add-option-to-disable-zombie-aggressiveness-towards-.patch index ca5efcf29..9c62dd1af 100644 --- a/patches/server/0100-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0100-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -21,7 +21,7 @@ index 181abe014baba9ac51064c003381281a8fa43fe4..cfd1dcec3efcd4caf2431cbda99bc9f1 ignored.add("goal_selector_1"); ignored.add("goal_selector_2"); diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index b321ca2b09d9aab8b1b6387774bcfda3b20bc65b..c4eeeec1ff1963263459d29b7a7babd2ea8293e4 100644 +index 54028f6c708e78e71b6db84898b9a6b30759023c..02c8fd96d11e3a27b5fddb27d65fddffd157fb52 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -116,7 +116,19 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -46,7 +46,7 @@ index b321ca2b09d9aab8b1b6387774bcfda3b20bc65b..c4eeeec1ff1963263459d29b7a7babd2 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 f5551d121d4bd633ce8d667433e1def6e2fcbb8e..6f636ddea90e89fa17fa76d25b93ab5079cda88b 100644 +index 26ba3700d7c6f2502ab8fa8698430e7bbd2572dd..8fe5ce2242b136f930584fdf6b5fcf27030f248b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -149,7 +149,19 @@ public class Zombie extends Monster { @@ -71,10 +71,10 @@ index f5551d121d4bd633ce8d667433e1def6e2fcbb8e..6f636ddea90e89fa17fa76d25b93ab50 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 8721b4b757776e8d2d66c1ec492b5e7249850459..d67c6a67e2c632b36ac28746195efd1cea1077d3 100644 +index 2731eb75fd156dad7007292268137bbdb40e6f57..44c0460a6dd785895d891a52ae13434c0ba40203 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 { +@@ -1645,6 +1645,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 8721b4b757776e8d2d66c1ec492b5e7249850459..d67c6a67e2c632b36ac28746195efd1c private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1655,6 +1656,7 @@ public class PurpurWorldConfig { +@@ -1658,6 +1659,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/server/0102-Flying-squids-Oh-my.patch b/patches/server/0102-Flying-squids-Oh-my.patch index 3a4f0b20f..10d623125 100644 --- a/patches/server/0102-Flying-squids-Oh-my.patch +++ b/patches/server/0102-Flying-squids-Oh-my.patch @@ -21,7 +21,7 @@ index ec261673ac444fd5de9c8556cde5d7887098aee0..ca2bf36120ba09ed27ad7b1064431f9f @Override 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 82d657e431a5a2317e5be80f3b2898a5c7371a42..9a99904bd761df5861f68533279ebde39644b4f8 100644 +index 55f94d28a536f5ceda00831e1b22c8db31c07c2f..d4e1e0117ce9105452679d64779086b8408fb83c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Squid.java +++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java @@ -82,6 +82,15 @@ public class Squid extends WaterAnimal { @@ -58,10 +58,10 @@ index 82d657e431a5a2317e5be80f3b2898a5c7371a42..9a99904bd761df5861f68533279ebde3 float f1 = Mth.cos(f) * 0.2F; float f2 = -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 d67c6a67e2c632b36ac28746195efd1cea1077d3..e2b3e7849b5e1a2a18a05a36e6947dd15d1811b4 100644 +index 44c0460a6dd785895d891a52ae13434c0ba40203..c9ff802d7449fb55583228fa6ed8aaa97b950946 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -807,9 +807,11 @@ public class PurpurWorldConfig { +@@ -816,9 +816,11 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public double glowSquidMaxHealth = 10.0D; @@ -73,7 +73,7 @@ index d67c6a67e2c632b36ac28746195efd1cea1077d3..e2b3e7849b5e1a2a18a05a36e6947dd1 } public boolean goatRidable = false; -@@ -1365,6 +1367,7 @@ public class PurpurWorldConfig { +@@ -1374,6 +1376,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -81,7 +81,7 @@ index d67c6a67e2c632b36ac28746195efd1cea1077d3..e2b3e7849b5e1a2a18a05a36e6947dd1 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1375,6 +1378,7 @@ public class PurpurWorldConfig { +@@ -1384,6 +1387,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/server/0103-Infinity-bow-settings.patch b/patches/server/0103-Infinity-bow-settings.patch index 218f9c50e..1bb1382d5 100644 --- a/patches/server/0103-Infinity-bow-settings.patch +++ b/patches/server/0103-Infinity-bow-settings.patch @@ -27,10 +27,10 @@ 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 e2b3e7849b5e1a2a18a05a36e6947dd15d1811b4..dfae718aa318ecceea7efee1d2b1c85ebfd85256 100644 +index c9ff802d7449fb55583228fa6ed8aaa97b950946..d10a5465fada1a1e7eb0dc0769a974da2a40746a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -123,6 +123,17 @@ public class PurpurWorldConfig { +@@ -132,6 +132,17 @@ public class PurpurWorldConfig { entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan); } diff --git a/patches/server/0104-Stonecutter-damage.patch b/patches/server/0104-Stonecutter-damage.patch index 119d23f7e..2d481edff 100644 --- a/patches/server/0104-Stonecutter-damage.patch +++ b/patches/server/0104-Stonecutter-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stonecutter damage diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 4ae2040d17f1a8c413c02996621d41c8641581f3..15e25843ba5bea971d7a844fbd8adb8b483001da 100644 +index 0198b89d3ac768c826d5be22cde88004f3444d48..cd25a1e6671276ecb465a60ee969122fa5648ded 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1024,7 +1024,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -39,7 +39,7 @@ index ec1c04f354236af24e137865b3b311ab8eb29ac4..46ef683e027f95bf39a42e0abba3a8e4 + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java -index 5e28c09d782166be6d0fbc6778ef9f6c4d7af409..ce891b7d8e5cbc956c28b8bb8c5c9976b7377039 100644 +index 737d0405a195d322ffe9a57acadb9f6d645c03b8..d7bdf3c2a5b99ff7adb3e960ff356a1fad169de0 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java @@ -463,7 +463,7 @@ public class WalkNodeEvaluator extends NodeEvaluator { @@ -61,10 +61,10 @@ index 5e28c09d782166be6d0fbc6778ef9f6c4d7af409..ce891b7d8e5cbc956c28b8bb8c5c9976 } else if (blockState.is(Blocks.HONEY_BLOCK)) { return BlockPathTypes.STICKY_HONEY; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 869db4be87334e6281d0b9dc8ae2496090fe7da1..26d46c07b483144911cb404809ad9873517ea4b3 100644 +index d10a5465fada1a1e7eb0dc0769a974da2a40746a..b26c67a506959757e1cb586bbdd4b0efd09e6382 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -443,6 +443,11 @@ public class PurpurWorldConfig { +@@ -452,6 +452,11 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0105-Configurable-daylight-cycle.patch b/patches/server/0105-Configurable-daylight-cycle.patch index 7b13b80a6..1df6e60dc 100644 --- a/patches/server/0105-Configurable-daylight-cycle.patch +++ b/patches/server/0105-Configurable-daylight-cycle.patch @@ -88,10 +88,10 @@ index e0d2446a3e203a8980f2b4a8d45f677f5d7a7698..5e027260743202b69ce348ef5cd04709 public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) { Iterator iterator = this.customSpawners.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 166d0a44bb5e9f690c740fb278a49471507de8f3..bc7753f9d7b2c6833916a7a7aef97e920a73bac9 100644 +index b26c67a506959757e1cb586bbdd4b0efd09e6382..c06a2f1e744c06a149b46ea7b6c07acb1622f7ee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -105,6 +105,13 @@ public class PurpurWorldConfig { +@@ -114,6 +114,13 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0107-Furnace-uses-lava-from-underneath.patch b/patches/server/0107-Furnace-uses-lava-from-underneath.patch index aa744e94d..79eaa636a 100644 --- a/patches/server/0107-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0107-Furnace-uses-lava-from-underneath.patch @@ -48,10 +48,10 @@ index fb15ece736dde16066818216749fb2efba0b3b21..0d9b592ebfd22dc679ba7dbfd339db4d private static boolean canBurn(@Nullable Recipe 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 bc7753f9d7b2c6833916a7a7aef97e920a73bac9..78347d0b58936a9c38eb5449446a442ad0dd24fb 100644 +index c06a2f1e744c06a149b46ea7b6c07acb1622f7ee..ef65f782ffc4710e425f2c44d5cb21f3ae61f481 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -406,6 +406,17 @@ public class PurpurWorldConfig { +@@ -415,6 +415,17 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index a7f9df14c..d917cef2a 100644 --- a/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0109-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ability to re-add farmland mechanics from Alpha diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index 603e621b16deb63b0d6d7e59e05a8de1831e067f..56233465693943e0fdb998e44a34f8029e3928cb 100644 +index e102795a2464eac028b30977be8d99ceca2339f7..f55a32c7c4e260b41a36b9fc3be01edb50b4951a 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -113,6 +113,14 @@ public class FarmBlock extends Block { @@ -24,10 +24,10 @@ index 603e621b16deb63b0d6d7e59e05a8de1831e067f..56233465693943e0fdb998e44a34f802 return; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bb0a8fc8d37a44b5ec2fdb008d48796d50182c14..287942965fa805cbbbdb2752d5f6fe4b8e1862d5 100644 +index ef65f782ffc4710e425f2c44d5cb21f3ae61f481..24d40bb838b60df670711dcf57fd0b8e66215e64 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -402,8 +402,10 @@ public class PurpurWorldConfig { +@@ -411,8 +411,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch index 03e5209a3..8324884ff 100644 --- a/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0110-Add-adjustable-breeding-cooldown-to-config.patch @@ -33,7 +33,7 @@ index 2bc77858b4a78e24227b4b096fd44177202d5292..b26d5482d89e28897bcc9dc8a15042a5 entityageable.setBaby(true); entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 244f7dd3f2cdb70a471b2a547aa407ac0f258ef9..b86789d46a19a75fcb858a9f962ba54977de65f7 100644 +index 70d87c16734a5e1ac14cc494f95554137ba9f06e..d7c6e530e5391bfd8831c1c6364a3aa405d40724 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -188,6 +188,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -95,10 +95,10 @@ index 244f7dd3f2cdb70a471b2a547aa407ac0f258ef9..b86789d46a19a75fcb858a9f962ba549 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); this.ticksPerAnimalSpawns = this.getCraftServer().getTicksPerAnimalSpawns(); // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 422e1f5011a0ab85fcb22765b5bc737318b36e71..93204be8d3a45f0447155c31f9c3823a57882e5b 100644 +index 24d40bb838b60df670711dcf57fd0b8e66215e64..c2a5db3329c88493e4ae7da76569b6758e9848e3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -361,6 +361,7 @@ public class PurpurWorldConfig { +@@ -370,6 +370,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -106,7 +106,7 @@ index 422e1f5011a0ab85fcb22765b5bc737318b36e71..93204be8d3a45f0447155c31f9c3823a private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -371,6 +372,7 @@ public class PurpurWorldConfig { +@@ -380,6 +381,7 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); diff --git a/patches/server/0111-Make-entity-breeding-times-configurable.patch b/patches/server/0111-Make-entity-breeding-times-configurable.patch index 295727f0d..f88a8ea42 100644 --- a/patches/server/0111-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0111-Make-entity-breeding-times-configurable.patch @@ -476,10 +476,10 @@ index 3ec9b8343cf80ceea8503ad78863a4b539c6ef6b..c536b0f0d0ebe5b6b6409972eb711f84 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cabb2c3eb03 100644 +index c2a5db3329c88493e4ae7da76569b6758e9848e3..6fc3bd17ea397cc6fa00b9d0d5ab796722d3f329 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -481,9 +481,11 @@ public class PurpurWorldConfig { +@@ -490,9 +490,11 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; @@ -491,7 +491,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean batRidable = false; -@@ -513,6 +515,7 @@ public class PurpurWorldConfig { +@@ -522,6 +524,7 @@ public class PurpurWorldConfig { public boolean beeRidableInWater = false; public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; @@ -499,7 +499,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -523,6 +526,7 @@ public class PurpurWorldConfig { +@@ -532,6 +535,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -507,7 +507,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean blazeRidable = false; -@@ -547,6 +551,7 @@ public class PurpurWorldConfig { +@@ -556,6 +560,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -515,7 +515,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -559,6 +564,7 @@ public class PurpurWorldConfig { +@@ -568,6 +573,7 @@ public class PurpurWorldConfig { catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay); catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); @@ -523,7 +523,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean caveSpiderRidable = false; -@@ -579,6 +585,7 @@ public class PurpurWorldConfig { +@@ -588,6 +594,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -531,7 +531,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -589,6 +596,7 @@ public class PurpurWorldConfig { +@@ -598,6 +605,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -539,7 +539,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean codRidable = false; -@@ -607,6 +615,7 @@ public class PurpurWorldConfig { +@@ -616,6 +624,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = false; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -547,7 +547,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -617,6 +626,7 @@ public class PurpurWorldConfig { +@@ -626,6 +635,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -555,7 +555,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean creeperRidable = false; -@@ -664,6 +674,7 @@ public class PurpurWorldConfig { +@@ -673,6 +683,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -563,7 +563,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -679,6 +690,7 @@ public class PurpurWorldConfig { +@@ -688,6 +699,7 @@ public class PurpurWorldConfig { donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax); donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); @@ -571,7 +571,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean drownedRidable = false; -@@ -785,6 +797,7 @@ public class PurpurWorldConfig { +@@ -794,6 +806,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = false; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -579,7 +579,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -795,6 +808,7 @@ public class PurpurWorldConfig { +@@ -804,6 +817,7 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -587,7 +587,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean ghastRidable = false; -@@ -855,10 +869,12 @@ public class PurpurWorldConfig { +@@ -864,10 +878,12 @@ public class PurpurWorldConfig { public boolean goatRidable = false; public boolean goatRidableInWater = false; public double goatMaxHealth = 10.0D; @@ -600,7 +600,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean guardianRidable = false; -@@ -876,6 +892,7 @@ public class PurpurWorldConfig { +@@ -885,6 +901,7 @@ public class PurpurWorldConfig { public boolean hoglinRidable = false; public boolean hoglinRidableInWater = false; public double hoglinMaxHealth = 40.0D; @@ -608,7 +608,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -885,6 +902,7 @@ public class PurpurWorldConfig { +@@ -894,6 +911,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -616,7 +616,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean horseRidableInWater = false; -@@ -894,6 +912,7 @@ public class PurpurWorldConfig { +@@ -903,6 +921,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -624,7 +624,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -909,6 +928,7 @@ public class PurpurWorldConfig { +@@ -918,6 +937,7 @@ public class PurpurWorldConfig { horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax); horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); @@ -632,7 +632,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean huskRidable = false; -@@ -979,6 +999,7 @@ public class PurpurWorldConfig { +@@ -988,6 +1008,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -640,7 +640,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -995,6 +1016,7 @@ public class PurpurWorldConfig { +@@ -1004,6 +1025,7 @@ public class PurpurWorldConfig { llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax); llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); @@ -648,7 +648,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean magmaCubeRidable = false; -@@ -1014,6 +1036,7 @@ public class PurpurWorldConfig { +@@ -1023,6 +1045,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidable = false; public boolean mooshroomRidableInWater = false; public double mooshroomMaxHealth = 10.0D; @@ -656,7 +656,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1023,6 +1046,7 @@ public class PurpurWorldConfig { +@@ -1032,6 +1055,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -664,7 +664,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean muleRidableInWater = false; -@@ -1032,6 +1056,7 @@ public class PurpurWorldConfig { +@@ -1041,6 +1065,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -672,7 +672,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1047,11 +1072,13 @@ public class PurpurWorldConfig { +@@ -1056,11 +1081,13 @@ public class PurpurWorldConfig { muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax); muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); @@ -686,7 +686,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1061,11 +1088,13 @@ public class PurpurWorldConfig { +@@ -1070,11 +1097,13 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -700,7 +700,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1075,6 +1104,7 @@ public class PurpurWorldConfig { +@@ -1084,6 +1113,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -708,7 +708,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean parrotRidable = false; -@@ -1155,6 +1185,7 @@ public class PurpurWorldConfig { +@@ -1164,6 +1194,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -716,7 +716,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1165,6 +1196,7 @@ public class PurpurWorldConfig { +@@ -1174,6 +1205,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -724,7 +724,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean piglinRidable = false; -@@ -1214,6 +1246,7 @@ public class PurpurWorldConfig { +@@ -1223,6 +1255,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -732,7 +732,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1226,6 +1259,7 @@ public class PurpurWorldConfig { +@@ -1235,6 +1268,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -740,7 +740,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean pufferfishRidable = false; -@@ -1245,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1254,6 +1288,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -748,7 +748,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1256,6 +1291,7 @@ public class PurpurWorldConfig { +@@ -1265,6 +1300,7 @@ public class PurpurWorldConfig { rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); @@ -756,7 +756,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean ravagerRidable = false; -@@ -1287,6 +1323,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1332,7 @@ public class PurpurWorldConfig { public boolean sheepRidable = false; public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; @@ -764,7 +764,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1296,6 +1333,7 @@ public class PurpurWorldConfig { +@@ -1305,6 +1342,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -772,7 +772,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean shulkerRidable = false; -@@ -1450,6 +1488,7 @@ public class PurpurWorldConfig { +@@ -1459,6 +1497,7 @@ public class PurpurWorldConfig { public boolean striderRidable = false; public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; @@ -780,7 +780,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1459,6 +1498,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1507,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -788,7 +788,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean traderLlamaRidable = false; -@@ -1469,6 +1509,7 @@ public class PurpurWorldConfig { +@@ -1478,6 +1518,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -796,7 +796,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1485,6 +1526,7 @@ public class PurpurWorldConfig { +@@ -1494,6 +1535,7 @@ public class PurpurWorldConfig { traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax); traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); @@ -804,23 +804,23 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean tropicalFishRidable = false; -@@ -1505,6 +1547,7 @@ public class PurpurWorldConfig { - public boolean turtleEggsBreakFromExpOrbs = true; - public boolean turtleEggsBreakFromItems = true; - public boolean turtleEggsBreakFromMinecarts = true; +@@ -1511,6 +1553,7 @@ public class PurpurWorldConfig { + public boolean turtleRidable = false; + public boolean turtleRidableInWater = false; + public double turtleMaxHealth = 30.0D; + public int turtleBreedingTicks = 6000; - private void turtleEggSettings() { + private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1517,6 +1560,7 @@ public class PurpurWorldConfig { - turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); - turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); - turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); +@@ -1520,6 +1563,7 @@ public class PurpurWorldConfig { + set("mobs.turtle.attributes.max_health", oldValue); + } + turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); + turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); } public boolean vexRidable = false; -@@ -1545,6 +1589,7 @@ public class PurpurWorldConfig { +@@ -1548,6 +1592,7 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; @@ -828,7 +828,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1561,6 +1606,7 @@ public class PurpurWorldConfig { +@@ -1564,6 +1609,7 @@ public class PurpurWorldConfig { villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -836,7 +836,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab } public boolean vindicatorRidable = false; -@@ -1652,6 +1698,7 @@ public class PurpurWorldConfig { +@@ -1655,6 +1701,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -844,7 +844,7 @@ index 6bace9c0f4defae8f454fc3765dad819c44ecf49..b26b936f5f350eaadfee3537a3c03cab private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1661,6 +1708,7 @@ public class PurpurWorldConfig { +@@ -1664,6 +1711,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch index a046cf1cc..8d9dd9ec8 100644 --- a/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0112-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -142,10 +142,10 @@ index 0284201b0bb0f5c9a4a2393cf0d83e8e21262df3..1f46a2be362ed5f60a7ca75916fe7bd4 if (((HangingEntity) object).survives()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2579328634137f1a561e1ee4b389e048ffb40335..8bdf5d269988d690cddd0d370fddae14ac14ef9b 100644 +index 6fc3bd17ea397cc6fa00b9d0d5ab796722d3f329..1f431fe2bde60d82eef9502e689b8307c9fe27a8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -101,8 +101,10 @@ public class PurpurWorldConfig { +@@ -110,8 +110,10 @@ public class PurpurWorldConfig { } public float armorstandStepHeight = 0.0F; @@ -156,7 +156,7 @@ index 2579328634137f1a561e1ee4b389e048ffb40335..8bdf5d269988d690cddd0d370fddae14 } public int daytimeTicks = 12000; -@@ -357,6 +359,7 @@ public class PurpurWorldConfig { +@@ -366,6 +368,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -164,7 +164,7 @@ index 2579328634137f1a561e1ee4b389e048ffb40335..8bdf5d269988d690cddd0d370fddae14 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -368,6 +371,7 @@ public class PurpurWorldConfig { +@@ -377,6 +380,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 82df822e1..857677571 100644 --- a/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0113-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -17,10 +17,10 @@ index 623f78c078fb3aa2665d7e8a37672438227bce6b..500c69e555c7247e20ef8cc59d834155 ((Mob) newEntityLiving).setPersistenceRequired(); // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 02842e0a9e8f2548c5ebdadfab681183d6e63320..daf9c24425e3ecc8d9e8c3147842ea316d414788 100644 +index 1f431fe2bde60d82eef9502e689b8307c9fe27a8..0a67d4dbb4f38b583a5a001ff984f40f24a171da 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -102,9 +102,11 @@ public class PurpurWorldConfig { +@@ -111,9 +111,11 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; diff --git a/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 7d55cabd8..e2e0b1dc6 100644 --- a/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0114-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -8,7 +8,7 @@ This should help to reduce the amount of dirt, gravel, grass, and etc. that Endermen like to randomly place all over the world. 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 37e71377ead8d3fd98ff6f6d643d31042944b43f..cc4009934d279e15a6a1d30dbea45fda1f6310e8 100644 +index c72d5151d4d8eb784550022321578ca820c84948..a15be819a3c73cf3bdd5da148d6f2d56dd5db404 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -453,7 +453,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -21,10 +21,10 @@ index 37e71377ead8d3fd98ff6f6d643d31042944b43f..cc4009934d279e15a6a1d30dbea45fda private static class EndermanFreezeWhenLookedAt extends Goal { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7db83bf46fa0969d9fe099caa20e10b30095ef26..b948affb050573a2cd27d2c600f8ff2b07b371a1 100644 +index 0a67d4dbb4f38b583a5a001ff984f40f24a171da..c592683fa823f74197ee39a8e6921752eff3f7f9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -759,6 +759,7 @@ public class PurpurWorldConfig { +@@ -768,6 +768,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = false; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 7db83bf46fa0969d9fe099caa20e10b30095ef26..b948affb050573a2cd27d2c600f8ff2b private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -769,6 +770,7 @@ public class PurpurWorldConfig { +@@ -778,6 +779,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0115-Add-configurable-snowball-damage.patch b/patches/server/0115-Add-configurable-snowball-damage.patch index 191e3844e..0a1b70e33 100644 --- a/patches/server/0115-Add-configurable-snowball-damage.patch +++ b/patches/server/0115-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b948affb050573a2cd27d2c600f8ff2b07b371a1..fdf7291b8b6f8963bba2d579f28f8520adcd9dc2 100644 +index c592683fa823f74197ee39a8e6921752eff3f7f9..f163025d4b30d34e2e6199e1c35bfbe9c3083af5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -295,6 +295,11 @@ public class PurpurWorldConfig { +@@ -304,6 +304,11 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch index 4763f46c6..4f2bf7563 100644 --- a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch @@ -18,10 +18,10 @@ index 78f7022c6584e634b000cc0c079112fc6cc8e869..2f75ebe8088d70f73a17557fe525ae11 } else { this.setLeftHanded(false); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 11ad8027c40ae431385fb9675438abc178b79ccd..3e0dbe1831d57edf90aff42cc8ed0f4b431fb54f 100644 +index f163025d4b30d34e2e6199e1c35bfbe9c3083af5..8595f8086222cffb959c82d3ec8d06622a84c5aa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -130,8 +130,10 @@ public class PurpurWorldConfig { +@@ -139,8 +139,10 @@ public class PurpurWorldConfig { } public int entityLifeSpan = 0; diff --git a/patches/server/0117-Add-boat-fall-damage-config.patch b/patches/server/0117-Add-boat-fall-damage-config.patch index 9a7994e26..bfd5a744f 100644 --- a/patches/server/0117-Add-boat-fall-damage-config.patch +++ b/patches/server/0117-Add-boat-fall-damage-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add boat fall damage config diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 637313c0c4257b2986054f32dfbeead5c8f0a603..bb392c810776264b08db6588ed9253a5aadef021 100644 +index 295658d4b479e8a3e825f0b5ce5dfc2c7c55a0fe..dfe547b7a2caa2ecfdddef9b9a49be40d26c5da8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1018,7 +1018,16 @@ public class ServerPlayer extends Player { @@ -27,10 +27,10 @@ index 637313c0c4257b2986054f32dfbeead5c8f0a603..bb392c810776264b08db6588ed9253a5 if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 549c23b75167ddb655aec861a978be52047bb77b..58f2147c9807119a77ec48f195a70de8c01b4773 100644 +index 8595f8086222cffb959c82d3ec8d06622a84c5aa..c6377ba74ed21e5414e8fb9ad3f427b141f0e443 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -365,6 +365,7 @@ public class PurpurWorldConfig { +@@ -374,6 +374,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 549c23b75167ddb655aec861a978be52047bb77b..58f2147c9807119a77ec48f195a70de8 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -377,6 +378,7 @@ public class PurpurWorldConfig { +@@ -386,6 +387,7 @@ public class PurpurWorldConfig { private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); diff --git a/patches/server/0118-Snow-Golem-rate-of-fire-config.patch b/patches/server/0118-Snow-Golem-rate-of-fire-config.patch index af963909c..11833431a 100644 --- a/patches/server/0118-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0118-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index a9c1b07f23c604d9364ccdee9478baf137af0816..10d68856c98b705158fe90623ef2b9ad this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(4, new RandomLookAroundGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 58f2147c9807119a77ec48f195a70de8c01b4773..67c5d1450e755532c54213e3aa9b4db744637496 100644 +index c6377ba74ed21e5414e8fb9ad3f427b141f0e443..6539c12836876791d17af877ae50103e57d09cac 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1442,6 +1442,10 @@ public class PurpurWorldConfig { +@@ -1451,6 +1451,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 58f2147c9807119a77ec48f195a70de8c01b4773..67c5d1450e755532c54213e3aa9b4db7 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1454,6 +1458,10 @@ public class PurpurWorldConfig { +@@ -1463,6 +1467,10 @@ public class PurpurWorldConfig { snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); diff --git a/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 55b0e94d7..4ed2a4f23 100644 --- a/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0120-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -183,10 +183,10 @@ index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e612 public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiType.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 67c5d1450e755532c54213e3aa9b4db744637496..43152f0e2565ee8a2487ca98ef7a1f0804456c57 100644 +index 6539c12836876791d17af877ae50103e57d09cac..9f3ec1e7555b3ccb018e1e5d4b7b161b386ca244 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1615,6 +1615,8 @@ public class PurpurWorldConfig { +@@ -1618,6 +1618,8 @@ public class PurpurWorldConfig { public int villagerSpawnIronGolemLimit = 0; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -195,7 +195,7 @@ index 67c5d1450e755532c54213e3aa9b4db744637496..43152f0e2565ee8a2487ca98ef7a1f08 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1632,6 +1634,8 @@ public class PurpurWorldConfig { +@@ -1635,6 +1637,8 @@ public class PurpurWorldConfig { villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 2556697d8..ff6ad422f 100644 --- a/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0121-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 76f1bbec2b8ebe037de65ee5ec718e17a6081c13..f8b742ee8e637edd8e8b05aff2fcc7a7 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 43152f0e2565ee8a2487ca98ef7a1f0804456c57..deb9c0d4b721f4a71473f3cfe5c871b9008e3470 100644 +index 9f3ec1e7555b3ccb018e1e5d4b7b161b386ca244..b74ebb2086b03997d282a557b2e81c0b37ac4f66 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1834,6 +1834,7 @@ public class PurpurWorldConfig { +@@ -1837,6 +1837,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 43152f0e2565ee8a2487ca98ef7a1f0804456c57..deb9c0d4b721f4a71473f3cfe5c871b9 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1847,5 +1848,6 @@ public class PurpurWorldConfig { +@@ -1850,5 +1851,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby); zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); diff --git a/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch index 79fd100c0..b453676e0 100644 --- a/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0123-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -222,10 +222,10 @@ index f856b42201c17f8da21251e54fcf052336916e70..ac0803d42be2f36a2f40487ee31413d0 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index deb9c0d4b721f4a71473f3cfe5c871b9008e3470..84be9a82ae1f63b0d9a91cf24e3bdcd05882360b 100644 +index b74ebb2086b03997d282a557b2e81c0b37ac4f66..46e59d833a179b669ed58731a7ec828521b1322c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1727,6 +1727,8 @@ public class PurpurWorldConfig { +@@ -1730,6 +1730,8 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index deb9c0d4b721f4a71473f3cfe5c871b9008e3470..84be9a82ae1f63b0d9a91cf24e3bdcd0 public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1737,6 +1739,8 @@ public class PurpurWorldConfig { +@@ -1740,6 +1742,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0124-Configurable-default-collar-color.patch b/patches/server/0124-Configurable-default-collar-color.patch index e384f1503..78d418749 100644 --- a/patches/server/0124-Configurable-default-collar-color.patch +++ b/patches/server/0124-Configurable-default-collar-color.patch @@ -45,10 +45,10 @@ index 38c69ddde8a54482a1de60387bace297869c47f3..20e0e74d7e43f436172ca7b4cb8b613b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 84be9a82ae1f63b0d9a91cf24e3bdcd05882360b..6be11c27772a1111a45096ca32cecc30e02e9431 100644 +index 46e59d833a179b669ed58731a7ec828521b1322c..fa4651425a396cd4a2b7d600d8bb6b69fc920167 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -562,6 +562,7 @@ public class PurpurWorldConfig { +@@ -571,6 +571,7 @@ public class PurpurWorldConfig { public boolean catRidable = false; public boolean catRidableInWater = false; @@ -56,7 +56,7 @@ index 84be9a82ae1f63b0d9a91cf24e3bdcd05882360b..6be11c27772a1111a45096ca32cecc30 public double catMaxHealth = 10.0D; public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; -@@ -575,6 +576,11 @@ public class PurpurWorldConfig { +@@ -584,6 +585,11 @@ public class PurpurWorldConfig { set("mobs.cat.attributes.max-health", null); set("mobs.cat.attributes.max_health", oldValue); } @@ -68,7 +68,7 @@ index 84be9a82ae1f63b0d9a91cf24e3bdcd05882360b..6be11c27772a1111a45096ca32cecc30 catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth); catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay); catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); -@@ -1727,6 +1733,7 @@ public class PurpurWorldConfig { +@@ -1730,6 +1736,7 @@ public class PurpurWorldConfig { public boolean wolfRidable = false; public boolean wolfRidableInWater = false; public double wolfMaxHealth = 8.0D; @@ -76,7 +76,7 @@ index 84be9a82ae1f63b0d9a91cf24e3bdcd05882360b..6be11c27772a1111a45096ca32cecc30 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1739,6 +1746,11 @@ public class PurpurWorldConfig { +@@ -1742,6 +1749,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0125-Phantom-flames-on-swoop.patch b/patches/server/0125-Phantom-flames-on-swoop.patch index f08fee3a7..c05e6e889 100644 --- a/patches/server/0125-Phantom-flames-on-swoop.patch +++ b/patches/server/0125-Phantom-flames-on-swoop.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Phantom flames on swoop 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 266c196032f5c251cce17f096fe1ed8df371e412..94e034916df2626652cb6bfb05f0d5557c7b4803 100644 +index 284532bfe697d288529eacbad0fcfcb6a3680446..97e3e25263e1cea87d0b420da05271b83bc29164 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -226,6 +226,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -17,10 +17,10 @@ index 266c196032f5c251cce17f096fe1ed8df371e412..94e034916df2626652cb6bfb05f0d555 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6be11c27772a1111a45096ca32cecc30e02e9431..16db639bac4c3b962bae0924dc155872db1fa9be 100644 +index fa4651425a396cd4a2b7d600d8bb6b69fc920167..ad2cb39996e516f43276f66b0d83c76ee3743f26 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1152,6 +1152,7 @@ public class PurpurWorldConfig { +@@ -1161,6 +1161,7 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -28,7 +28,7 @@ index 6be11c27772a1111a45096ca32cecc30e02e9431..16db639bac4c3b962bae0924dc155872 public double phantomMaxHealth = 20.0D; public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; -@@ -1178,6 +1179,7 @@ public class PurpurWorldConfig { +@@ -1187,6 +1188,7 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); diff --git a/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch index f56b94ed3..fe908af74 100644 --- a/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0126-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index db726697b00afdee6078849fd224263483349912..c808664a67a9604e40ab388c6d0e6ac3 return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 16db639bac4c3b962bae0924dc155872db1fa9be..6a82e1934f1647e7a8961736ad9f5520f733ac8c 100644 +index ad2cb39996e516f43276f66b0d83c76ee3743f26..f73b2641b0da7096e5522b266ff008c9a41d286e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -411,6 +411,11 @@ public class PurpurWorldConfig { +@@ -420,6 +420,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0128-Striders-give-saddle-back.patch b/patches/server/0128-Striders-give-saddle-back.patch index 5a564624e..a26122ce3 100644 --- a/patches/server/0128-Striders-give-saddle-back.patch +++ b/patches/server/0128-Striders-give-saddle-back.patch @@ -28,10 +28,10 @@ index 74d11bf608ff26093d7995a09a463cac24304fa1..5902f0883ca0ad706801dc693bb3ac79 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6a82e1934f1647e7a8961736ad9f5520f733ac8c..dcbd25fcb88e82b8f2c5fdf60135a540bab6e91d 100644 +index f73b2641b0da7096e5522b266ff008c9a41d286e..e9af5e1f42aa71c9d8472b88b99eac356e8f9e2f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1527,6 +1527,7 @@ public class PurpurWorldConfig { +@@ -1536,6 +1536,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -39,7 +39,7 @@ index 6a82e1934f1647e7a8961736ad9f5520f733ac8c..dcbd25fcb88e82b8f2c5fdf60135a540 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1537,6 +1538,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1547,7 @@ public class PurpurWorldConfig { } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); diff --git a/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch index 2d2f9e5c6..a20b229ce 100644 --- a/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0130-Full-netherite-armor-grants-fire-resistance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Full netherite armor grants fire resistance 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 311eacc10a1ab5ed2161460cfaf45002c901de99..4ddeb2361528406a359eb0ccb204c965a03fc729 100644 +index 7518b7f7378eba01d12224db6264b6bcc1254432..b1ca8265d2104168b64e560634f319c72103da55 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -357,6 +357,16 @@ public abstract class Player extends LivingEntity { @@ -26,10 +26,10 @@ index 311eacc10a1ab5ed2161460cfaf45002c901de99..4ddeb2361528406a359eb0ccb204c965 protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dcbd25fcb88e82b8f2c5fdf60135a540bab6e91d..45b4ac35cb0b596c5ad6c9ab03739e337425becc 100644 +index e9af5e1f42aa71c9d8472b88b99eac356e8f9e2f..ab2a909c34c9074916cdc1a5e0eabe920078180f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -267,6 +267,19 @@ public class PurpurWorldConfig { +@@ -276,6 +276,19 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch index 71b56a72b..770412d61 100644 --- a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch @@ -393,10 +393,23 @@ index b942e7c85e6c8f9a7664d9e5bf93bcd79e0651f1..5b29f3fced5435e172dd69f6f4eb265e return true; // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9369f3d3b 100644 +index ab2a909c34c9074916cdc1a5e0eabe920078180f..cb3c57b1e257c8f5c196de6f09c6cff9846e06c9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -381,8 +381,11 @@ public class PurpurWorldConfig { +@@ -103,10 +103,12 @@ public class PurpurWorldConfig { + public boolean turtleEggsBreakFromExpOrbs = true; + public boolean turtleEggsBreakFromItems = true; + public boolean turtleEggsBreakFromMinecarts = true; ++ public boolean turtleEggsBypassMobGriefing = false; + private void turtleEggSettings() { + turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); + turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); + turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); ++ turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); + } + + public float armorstandStepHeight = 0.0F; +@@ -390,8 +392,11 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -408,7 +421,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -394,8 +397,11 @@ public class PurpurWorldConfig { +@@ -403,8 +408,11 @@ public class PurpurWorldConfig { boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -420,7 +433,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); -@@ -436,9 +442,11 @@ public class PurpurWorldConfig { +@@ -445,9 +453,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -432,7 +445,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -472,6 +480,11 @@ public class PurpurWorldConfig { +@@ -481,6 +491,11 @@ public class PurpurWorldConfig { waterInfiniteRequiredSources = getInt("blocks.water.infinite-required-sources", waterInfiniteRequiredSources); } @@ -444,7 +457,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -673,6 +686,7 @@ public class PurpurWorldConfig { +@@ -682,6 +697,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -452,7 +465,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -684,6 +698,7 @@ public class PurpurWorldConfig { +@@ -693,6 +709,7 @@ public class PurpurWorldConfig { creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); @@ -460,7 +473,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean dolphinRidable = false; -@@ -771,6 +786,7 @@ public class PurpurWorldConfig { +@@ -780,6 +797,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 256D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -468,7 +481,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -786,6 +802,7 @@ public class PurpurWorldConfig { +@@ -795,6 +813,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -476,7 +489,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean endermanRidable = false; -@@ -793,6 +810,7 @@ public class PurpurWorldConfig { +@@ -802,6 +821,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -484,7 +497,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -804,6 +822,7 @@ public class PurpurWorldConfig { +@@ -813,6 +833,7 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); @@ -492,7 +505,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean endermiteRidable = false; -@@ -823,6 +842,7 @@ public class PurpurWorldConfig { +@@ -832,6 +853,7 @@ public class PurpurWorldConfig { public boolean evokerRidable = false; public boolean evokerRidableInWater = false; public double evokerMaxHealth = 24.0D; @@ -500,7 +513,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -832,6 +852,7 @@ public class PurpurWorldConfig { +@@ -841,6 +863,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -508,7 +521,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean foxRidable = false; -@@ -839,6 +860,7 @@ public class PurpurWorldConfig { +@@ -848,6 +871,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -516,7 +529,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -850,6 +872,7 @@ public class PurpurWorldConfig { +@@ -859,6 +883,7 @@ public class PurpurWorldConfig { foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); @@ -524,7 +537,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean ghastRidable = false; -@@ -1245,6 +1268,7 @@ public class PurpurWorldConfig { +@@ -1254,6 +1279,7 @@ public class PurpurWorldConfig { public boolean piglinRidable = false; public boolean piglinRidableInWater = false; public double piglinMaxHealth = 16.0D; @@ -532,7 +545,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1254,6 +1278,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1289,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -540,7 +553,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean piglinBruteRidable = false; -@@ -1273,6 +1298,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1309,7 @@ public class PurpurWorldConfig { public boolean pillagerRidable = false; public boolean pillagerRidableInWater = false; public double pillagerMaxHealth = 24.0D; @@ -548,7 +561,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1282,6 +1308,7 @@ public class PurpurWorldConfig { +@@ -1291,6 +1319,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -556,7 +569,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean polarBearRidable = false; -@@ -1323,6 +1350,7 @@ public class PurpurWorldConfig { +@@ -1332,6 +1361,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -564,7 +577,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1335,11 +1363,13 @@ public class PurpurWorldConfig { +@@ -1344,11 +1374,13 @@ public class PurpurWorldConfig { rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); @@ -578,7 +591,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1349,6 +1379,7 @@ public class PurpurWorldConfig { +@@ -1358,6 +1390,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -586,7 +599,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean salmonRidable = false; -@@ -1367,6 +1398,7 @@ public class PurpurWorldConfig { +@@ -1376,6 +1409,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -594,7 +607,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1377,6 +1409,7 @@ public class PurpurWorldConfig { +@@ -1386,6 +1420,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -602,7 +615,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean shulkerRidable = false; -@@ -1396,6 +1429,7 @@ public class PurpurWorldConfig { +@@ -1405,6 +1440,7 @@ public class PurpurWorldConfig { public boolean silverfishRidable = false; public boolean silverfishRidableInWater = false; public double silverfishMaxHealth = 8.0D; @@ -610,7 +623,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1405,6 +1439,7 @@ public class PurpurWorldConfig { +@@ -1414,6 +1450,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -618,7 +631,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean skeletonRidable = false; -@@ -1472,6 +1507,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1518,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -626,7 +639,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1488,6 +1524,7 @@ public class PurpurWorldConfig { +@@ -1497,6 +1535,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -634,19 +647,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean squidRidable = false; -@@ -1594,6 +1631,11 @@ public class PurpurWorldConfig { - tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); - } - -+ public boolean turtleEggsBypassMobGriefing = false; -+ private void turtleSettings() { -+ turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); -+ } -+ - public boolean turtleRidable = false; - public boolean turtleRidableInWater = false; - public double turtleMaxHealth = 30.0D; -@@ -1645,6 +1687,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1687,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -654,7 +655,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1664,6 +1707,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1707,7 @@ public class PurpurWorldConfig { villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -662,7 +663,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean vindicatorRidable = false; -@@ -1720,6 +1764,7 @@ public class PurpurWorldConfig { +@@ -1723,6 +1764,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -670,7 +671,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1736,6 +1781,7 @@ public class PurpurWorldConfig { +@@ -1739,6 +1781,7 @@ public class PurpurWorldConfig { witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); @@ -678,7 +679,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 } public boolean witherSkeletonRidable = false; -@@ -1800,6 +1846,7 @@ public class PurpurWorldConfig { +@@ -1803,6 +1846,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -686,7 +687,7 @@ index 7b6ada310586de6313c426d88c28cba4fe6535ac..7891f3bf4424071d4a0a01d35c484af9 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1814,6 +1861,7 @@ public class PurpurWorldConfig { +@@ -1817,6 +1861,7 @@ public class PurpurWorldConfig { zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); diff --git a/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch index 48e623c86..4119027b0 100644 --- a/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0133-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index 7dd423f6b92b7f27dd43e5ef3f4029a100a8cfa6..8d0a1da17c38118293d1f05849cdc999 org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eb41a866b47b0051a6a7e4268bc946bf35264168..9a42073d2b26d62669bf9ed67f99f193e2415e01 100644 +index cb3c57b1e257c8f5c196de6f09c6cff9846e06c9..febd1ef87a18e22c70a7aafbf7b0c149896ff691 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -384,6 +384,7 @@ public class PurpurWorldConfig { +@@ -395,6 +395,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index eb41a866b47b0051a6a7e4268bc946bf35264168..9a42073d2b26d62669bf9ed67f99f193 public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -400,6 +401,7 @@ public class PurpurWorldConfig { +@@ -411,6 +412,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0134-Add-EntityTeleportHinderedEvent.patch b/patches/server/0134-Add-EntityTeleportHinderedEvent.patch index 8a239b8e5..a747daa5c 100644 --- a/patches/server/0134-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0134-Add-EntityTeleportHinderedEvent.patch @@ -78,7 +78,7 @@ index 500a4013ce525c0474fe3991457d4c2a50ceb7ed..74de26d72e705041318beee0ebef59d6 blockEntity.teleportCooldown = 100; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 1ba59900ddf403453aeb4f82b097feaab3dae3ff..1f76a89e179b7a4bf28a172b1ece0603f975dbcd 100644 +index f79cd24ce66fa7ea79308912a1696b3ca9bdffba..f16635e4dde9cabf905d450d39c7f84f338b70ad 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -562,6 +562,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -93,7 +93,7 @@ index 1ba59900ddf403453aeb4f82b097feaab3dae3ff..1f76a89e179b7a4bf28a172b1ece0603 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1ae6175cc5d83d669a19a88cb1ddc6478cb24dd9..e92c9815ce3f41760e4a31b01ce90d0818657521 100644 +index 29d8a6f8e8278d8d43f63761443dc47933af263b..8c0eda7a974d99565d7ca55dc8e35c98103ac714 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -967,6 +967,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -108,10 +108,10 @@ index 1ae6175cc5d83d669a19a88cb1ddc6478cb24dd9..e92c9815ce3f41760e4a31b01ce90d08 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9a42073d2b26d62669bf9ed67f99f193e2415e01..ac811e5b2753d9ed727aa1b3f91ef5df338d9360 100644 +index febd1ef87a18e22c70a7aafbf7b0c149896ff691..ee869d363b3a49099d3130da6168470f5f4d68b8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -383,6 +383,7 @@ public class PurpurWorldConfig { +@@ -394,6 +394,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -119,7 +119,7 @@ index 9a42073d2b26d62669bf9ed67f99f193e2415e01..ac811e5b2753d9ed727aa1b3f91ef5df public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; -@@ -400,6 +401,7 @@ public class PurpurWorldConfig { +@@ -411,6 +412,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); diff --git a/patches/server/0135-Farmland-trampling-changes.patch b/patches/server/0135-Farmland-trampling-changes.patch index 3281d57b6..7ed08a884 100644 --- a/patches/server/0135-Farmland-trampling-changes.patch +++ b/patches/server/0135-Farmland-trampling-changes.patch @@ -12,7 +12,7 @@ necessary to trample in the first place. Feather Falling 1 requires you to fall over 3+ blocks to trample. FF 2 requires 4+, etc. diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java -index caf40e3df0896492be959f9e0bcfb1fad0bfa2ef..10f1e3d9c35ee80587865cf0035416aed6155c0e 100644 +index 4c80e2a10715ce4d4442ea4636808d1e10025494..a750d9cfbb7ba9057004924cac2b5a814501e67e 100644 --- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java +++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java @@ -114,12 +114,20 @@ public class FarmBlock extends Block { @@ -37,10 +37,10 @@ index caf40e3df0896492be959f9e0bcfb1fad0bfa2ef..10f1e3d9c35ee80587865cf0035416ae if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ac811e5b2753d9ed727aa1b3f91ef5df338d9360..0dde7e616a98a44ff9dec970a90b92694f97acd5 100644 +index ee869d363b3a49099d3130da6168470f5f4d68b8..e702d8320d0ab891c93171dd52f1021a20b096ff 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -449,10 +449,16 @@ public class PurpurWorldConfig { +@@ -460,10 +460,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0136-Movement-options-for-armor-stands.patch b/patches/server/0136-Movement-options-for-armor-stands.patch index d95919be2..80d2de3d5 100644 --- a/patches/server/0136-Movement-options-for-armor-stands.patch +++ b/patches/server/0136-Movement-options-for-armor-stands.patch @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 15e25843ba5bea971d7a844fbd8adb8b483001da..0595e33944712424d551a900b93cd17b132789c3 100644 +index cd25a1e6671276ecb465a60ee969122fa5648ded..1747b075d86585f795cde85f390a0a95b80ad3d7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1588,7 +1588,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -66,10 +66,10 @@ index 50370dc8697569a4e5cf8ec3714d227a59357d64..e9e24435057cff9c0af758ca2aa822c3 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0dde7e616a98a44ff9dec970a90b92694f97acd5..aa5cd1c74b6e6ee2cf2e646269f1e28884618ba5 100644 +index e702d8320d0ab891c93171dd52f1021a20b096ff..8b734ad52e775a970bee86c3c6f846f1b610de87 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -103,10 +103,16 @@ public class PurpurWorldConfig { +@@ -114,10 +114,16 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; public boolean armorstandFixNametags = false; diff --git a/patches/server/0137-Fix-stuck-in-portals.patch b/patches/server/0137-Fix-stuck-in-portals.patch index 851653653..154db4944 100644 --- a/patches/server/0137-Fix-stuck-in-portals.patch +++ b/patches/server/0137-Fix-stuck-in-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ea852a092231a9fd0a9bfc4dc1e31c859db17ade..722590b3674de1c3d92db4995df0aa87e55ecdea 100644 +index 951e45f7b17f6f903c99634177395464a1889c0f..d31ae3a1df1a457d7ae55bc82e9c870c3e093e42 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1171,6 +1171,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index ea852a092231a9fd0a9bfc4dc1e31c859db17ade..722590b3674de1c3d92db4995df0aa87 // CraftBukkit end this.setLevel(worldserver); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0595e33944712424d551a900b93cd17b132789c3..8288841cfff9854f8ab50c37bf14d82dad3b2917 100644 +index 1747b075d86585f795cde85f390a0a95b80ad3d7..d046f2f85efd54c3fe91ca5020bbc7b326005275 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2713,12 +2713,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -37,10 +37,10 @@ index 0595e33944712424d551a900b93cd17b132789c3..8288841cfff9854f8ab50c37bf14d82d this.isInsidePortal = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aa5cd1c74b6e6ee2cf2e646269f1e28884618ba5..1f53d91397fdd6903fe0b9e2d7805c4a08c3f27d 100644 +index 8b734ad52e775a970bee86c3c6f846f1b610de87..706ecb3790e64f9a2df6dd6c09909aed42260212 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -297,6 +297,7 @@ public class PurpurWorldConfig { +@@ -308,6 +308,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index aa5cd1c74b6e6ee2cf2e646269f1e28884618ba5..1f53d91397fdd6903fe0b9e2d7805c4a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -314,6 +315,7 @@ public class PurpurWorldConfig { +@@ -325,6 +326,7 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); diff --git a/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch index 04699e6d6..c89956349 100644 --- a/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0138-Toggle-for-water-sensitive-mob-damage.patch @@ -809,7 +809,7 @@ index 68abf045f0510abc45bdc2fd8c147f27c2fa784d..cd6b136960b2c37c6e6d56c4e5f7fd30 public static AttributeSupplier.Builder createAttributes() { 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 94e034916df2626652cb6bfb05f0d5557c7b4803..943d3e6db3212372b4ba8be35e15397f5b8c8a79 100644 +index 97e3e25263e1cea87d0b420da05271b83bc29164..05eba1970086a42b3609094a3d59119c9d178e74 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -136,6 +136,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -889,7 +889,7 @@ index 5057b9b6ad2c47a11ca11b281393ccf6a6e8dd6f..2b77a73c0042a40fcc464dd878a3b911 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java -index f3d73b9cf3d3cd0d69ea2f8152a1ced4289ee417..2cf7a67e5294099154f8acaa897f12e8d2f46e77 100644 +index 9448bdd5026f35bba805dee19ceead5d76bda951..9350d4dd73db4227ab65452083d1cec73fda9501 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java @@ -40,6 +40,11 @@ public class Skeleton extends AbstractSkeleton { @@ -1174,10 +1174,10 @@ index c5dbb1c8210b71f7d9d91089cb139f65605573a8..e5b78c9d6fb326771d65ea9afd9da38c @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f858c5dda 100644 +index 706ecb3790e64f9a2df6dd6c09909aed42260212..6458959057c55017145a78ebc8e3bc7ef2372241 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -543,6 +543,7 @@ public class PurpurWorldConfig { +@@ -554,6 +554,7 @@ public class PurpurWorldConfig { useNightVisionWhenRiding = getBoolean("ridable-settings.use-night-vision", useNightVisionWhenRiding); } @@ -1185,7 +1185,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; -@@ -550,6 +551,7 @@ public class PurpurWorldConfig { +@@ -561,6 +562,7 @@ public class PurpurWorldConfig { axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable); axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth); axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks); @@ -1193,7 +1193,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean batRidable = false; -@@ -563,6 +565,7 @@ public class PurpurWorldConfig { +@@ -574,6 +576,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1201,7 +1201,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -573,6 +576,7 @@ public class PurpurWorldConfig { +@@ -584,6 +587,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1209,7 +1209,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean beeRidable = false; -@@ -580,6 +584,7 @@ public class PurpurWorldConfig { +@@ -591,6 +595,7 @@ public class PurpurWorldConfig { public double beeMaxY = 256D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1217,7 +1217,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -591,12 +596,14 @@ public class PurpurWorldConfig { +@@ -602,12 +607,14 @@ public class PurpurWorldConfig { } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); @@ -1232,7 +1232,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -607,6 +614,7 @@ public class PurpurWorldConfig { +@@ -618,6 +625,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1240,7 +1240,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean catRidable = false; -@@ -617,6 +625,7 @@ public class PurpurWorldConfig { +@@ -628,6 +636,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -1248,7 +1248,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -635,11 +644,13 @@ public class PurpurWorldConfig { +@@ -646,11 +655,13 @@ public class PurpurWorldConfig { catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); @@ -1262,7 +1262,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -649,6 +660,7 @@ public class PurpurWorldConfig { +@@ -660,6 +671,7 @@ public class PurpurWorldConfig { set("mobs.cave_spider.attributes.max_health", oldValue); } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); @@ -1270,7 +1270,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean chickenRidable = false; -@@ -656,6 +668,7 @@ public class PurpurWorldConfig { +@@ -667,6 +679,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1278,7 +1278,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -667,10 +680,12 @@ public class PurpurWorldConfig { +@@ -678,10 +691,12 @@ public class PurpurWorldConfig { chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); @@ -1291,7 +1291,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); if (PurpurConfig.version < 10) { -@@ -679,6 +694,7 @@ public class PurpurWorldConfig { +@@ -690,6 +705,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1299,7 +1299,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean cowRidable = false; -@@ -686,6 +702,7 @@ public class PurpurWorldConfig { +@@ -697,6 +713,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1307,7 +1307,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -697,6 +714,7 @@ public class PurpurWorldConfig { +@@ -708,6 +725,7 @@ public class PurpurWorldConfig { cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); @@ -1315,7 +1315,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean creeperRidable = false; -@@ -705,6 +723,7 @@ public class PurpurWorldConfig { +@@ -716,6 +734,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1323,7 +1323,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -717,6 +736,7 @@ public class PurpurWorldConfig { +@@ -728,6 +747,7 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); @@ -1331,7 +1331,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean dolphinRidable = false; -@@ -725,6 +745,7 @@ public class PurpurWorldConfig { +@@ -736,6 +756,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1339,7 +1339,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -737,6 +758,7 @@ public class PurpurWorldConfig { +@@ -748,6 +769,7 @@ public class PurpurWorldConfig { } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); @@ -1347,7 +1347,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean donkeyRidableInWater = false; -@@ -747,6 +769,7 @@ public class PurpurWorldConfig { +@@ -758,6 +780,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1355,7 +1355,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -763,6 +786,7 @@ public class PurpurWorldConfig { +@@ -774,6 +797,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); @@ -1363,7 +1363,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean drownedRidable = false; -@@ -772,6 +796,7 @@ public class PurpurWorldConfig { +@@ -783,6 +807,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1371,7 +1371,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -785,10 +810,12 @@ public class PurpurWorldConfig { +@@ -796,10 +821,12 @@ public class PurpurWorldConfig { drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby); drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); @@ -1384,7 +1384,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); if (PurpurConfig.version < 10) { -@@ -797,6 +824,7 @@ public class PurpurWorldConfig { +@@ -808,6 +835,7 @@ public class PurpurWorldConfig { set("mobs.elder_guardian.attributes.max_health", oldValue); } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); @@ -1392,7 +1392,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean enderDragonRidable = false; -@@ -805,6 +833,7 @@ public class PurpurWorldConfig { +@@ -816,6 +844,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1400,7 +1400,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -821,6 +850,7 @@ public class PurpurWorldConfig { +@@ -832,6 +861,7 @@ public class PurpurWorldConfig { enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); @@ -1408,7 +1408,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean endermanRidable = false; -@@ -829,6 +859,7 @@ public class PurpurWorldConfig { +@@ -840,6 +870,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1416,7 +1416,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -841,11 +872,13 @@ public class PurpurWorldConfig { +@@ -852,11 +883,13 @@ public class PurpurWorldConfig { endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing); @@ -1430,7 +1430,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -855,12 +888,14 @@ public class PurpurWorldConfig { +@@ -866,12 +899,14 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1445,7 +1445,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -871,6 +906,7 @@ public class PurpurWorldConfig { +@@ -882,6 +917,7 @@ public class PurpurWorldConfig { } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); @@ -1453,7 +1453,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean foxRidable = false; -@@ -879,6 +915,7 @@ public class PurpurWorldConfig { +@@ -890,6 +926,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1461,7 +1461,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -891,12 +928,14 @@ public class PurpurWorldConfig { +@@ -902,12 +939,14 @@ public class PurpurWorldConfig { foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); @@ -1476,7 +1476,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -907,6 +946,7 @@ public class PurpurWorldConfig { +@@ -918,6 +957,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1484,7 +1484,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean giantRidable = false; -@@ -918,6 +958,7 @@ public class PurpurWorldConfig { +@@ -929,6 +969,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1492,7 +1492,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -937,30 +978,36 @@ public class PurpurWorldConfig { +@@ -948,30 +989,36 @@ public class PurpurWorldConfig { giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); @@ -1529,7 +1529,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); if (PurpurConfig.version < 10) { -@@ -969,12 +1016,14 @@ public class PurpurWorldConfig { +@@ -980,12 +1027,14 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1544,7 +1544,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -985,6 +1034,7 @@ public class PurpurWorldConfig { +@@ -996,6 +1045,7 @@ public class PurpurWorldConfig { } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); @@ -1552,7 +1552,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean horseRidableInWater = false; -@@ -995,6 +1045,7 @@ public class PurpurWorldConfig { +@@ -1006,6 +1056,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1560,7 +1560,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1011,6 +1062,7 @@ public class PurpurWorldConfig { +@@ -1022,6 +1073,7 @@ public class PurpurWorldConfig { horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); @@ -1568,7 +1568,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean huskRidable = false; -@@ -1020,6 +1072,7 @@ public class PurpurWorldConfig { +@@ -1031,6 +1083,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1576,7 +1576,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1033,6 +1086,7 @@ public class PurpurWorldConfig { +@@ -1044,6 +1097,7 @@ public class PurpurWorldConfig { huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby); huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); @@ -1584,7 +1584,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean illusionerRidable = false; -@@ -1040,6 +1094,7 @@ public class PurpurWorldConfig { +@@ -1051,6 +1105,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1592,7 +1592,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1055,12 +1110,14 @@ public class PurpurWorldConfig { +@@ -1066,12 +1121,14 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1607,7 +1607,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1071,6 +1128,7 @@ public class PurpurWorldConfig { +@@ -1082,6 +1139,7 @@ public class PurpurWorldConfig { set("mobs.iron_golem.attributes.max_health", oldValue); } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); @@ -1615,7 +1615,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean llamaRidable = false; -@@ -1082,6 +1140,7 @@ public class PurpurWorldConfig { +@@ -1093,6 +1151,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1623,7 +1623,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1099,11 +1158,13 @@ public class PurpurWorldConfig { +@@ -1110,11 +1169,13 @@ public class PurpurWorldConfig { llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); @@ -1637,7 +1637,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1113,12 +1174,14 @@ public class PurpurWorldConfig { +@@ -1124,12 +1185,14 @@ public class PurpurWorldConfig { set("mobs.magma_cube.attributes.max_health", oldValue); } magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth); @@ -1652,7 +1652,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1129,6 +1192,7 @@ public class PurpurWorldConfig { +@@ -1140,6 +1203,7 @@ public class PurpurWorldConfig { } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); @@ -1660,7 +1660,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean muleRidableInWater = false; -@@ -1139,6 +1203,7 @@ public class PurpurWorldConfig { +@@ -1150,6 +1214,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1668,7 +1668,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1155,12 +1220,14 @@ public class PurpurWorldConfig { +@@ -1166,12 +1231,14 @@ public class PurpurWorldConfig { muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); @@ -1683,7 +1683,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1171,12 +1238,14 @@ public class PurpurWorldConfig { +@@ -1182,12 +1249,14 @@ public class PurpurWorldConfig { } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); @@ -1698,7 +1698,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1187,12 +1256,14 @@ public class PurpurWorldConfig { +@@ -1198,12 +1267,14 @@ public class PurpurWorldConfig { } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); @@ -1713,7 +1713,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1203,6 +1274,7 @@ public class PurpurWorldConfig { +@@ -1214,6 +1285,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1721,7 +1721,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean phantomRidable = false; -@@ -1231,6 +1303,7 @@ public class PurpurWorldConfig { +@@ -1242,6 +1314,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -1729,7 +1729,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1263,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1274,6 +1347,7 @@ public class PurpurWorldConfig { phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); @@ -1737,7 +1737,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean pigRidable = false; -@@ -1270,6 +1344,7 @@ public class PurpurWorldConfig { +@@ -1281,6 +1355,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1745,7 +1745,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1281,12 +1356,14 @@ public class PurpurWorldConfig { +@@ -1292,12 +1367,14 @@ public class PurpurWorldConfig { pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); @@ -1760,7 +1760,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1297,11 +1374,13 @@ public class PurpurWorldConfig { +@@ -1308,11 +1385,13 @@ public class PurpurWorldConfig { } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); @@ -1774,7 +1774,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1311,12 +1390,14 @@ public class PurpurWorldConfig { +@@ -1322,12 +1401,14 @@ public class PurpurWorldConfig { set("mobs.piglin_brute.attributes.max_health", oldValue); } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); @@ -1789,7 +1789,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1327,6 +1408,7 @@ public class PurpurWorldConfig { +@@ -1338,6 +1419,7 @@ public class PurpurWorldConfig { } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); @@ -1797,7 +1797,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean polarBearRidable = false; -@@ -1335,6 +1417,7 @@ public class PurpurWorldConfig { +@@ -1346,6 +1428,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1805,7 +1805,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1348,10 +1431,12 @@ public class PurpurWorldConfig { +@@ -1359,10 +1442,12 @@ public class PurpurWorldConfig { Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -1818,7 +1818,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); if (PurpurConfig.version < 10) { -@@ -1360,6 +1445,7 @@ public class PurpurWorldConfig { +@@ -1371,6 +1456,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1826,7 +1826,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean rabbitRidable = false; -@@ -1369,6 +1455,7 @@ public class PurpurWorldConfig { +@@ -1380,6 +1466,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1834,7 +1834,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1382,12 +1469,14 @@ public class PurpurWorldConfig { +@@ -1393,12 +1480,14 @@ public class PurpurWorldConfig { rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); @@ -1849,7 +1849,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1398,10 +1487,12 @@ public class PurpurWorldConfig { +@@ -1409,10 +1498,12 @@ public class PurpurWorldConfig { } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); @@ -1862,7 +1862,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); if (PurpurConfig.version < 10) { -@@ -1410,6 +1501,7 @@ public class PurpurWorldConfig { +@@ -1421,6 +1512,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1870,7 +1870,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean sheepRidable = false; -@@ -1417,6 +1509,7 @@ public class PurpurWorldConfig { +@@ -1428,6 +1520,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1878,7 +1878,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1428,11 +1521,13 @@ public class PurpurWorldConfig { +@@ -1439,11 +1532,13 @@ public class PurpurWorldConfig { sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); @@ -1892,7 +1892,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1442,12 +1537,14 @@ public class PurpurWorldConfig { +@@ -1453,12 +1548,14 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1907,7 +1907,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1458,11 +1555,13 @@ public class PurpurWorldConfig { +@@ -1469,11 +1566,13 @@ public class PurpurWorldConfig { } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); @@ -1921,7 +1921,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1472,6 +1571,7 @@ public class PurpurWorldConfig { +@@ -1483,6 +1582,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1929,7 +1929,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean skeletonHorseRidableInWater = true; -@@ -1482,6 +1582,7 @@ public class PurpurWorldConfig { +@@ -1493,6 +1593,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1937,7 +1937,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1497,12 +1598,14 @@ public class PurpurWorldConfig { +@@ -1508,12 +1609,14 @@ public class PurpurWorldConfig { skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax); skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); @@ -1952,7 +1952,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1513,6 +1616,7 @@ public class PurpurWorldConfig { +@@ -1524,6 +1627,7 @@ public class PurpurWorldConfig { } slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth); slimeMaxHealthCache.clear(); @@ -1960,7 +1960,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean snowGolemRidable = false; -@@ -1526,6 +1630,7 @@ public class PurpurWorldConfig { +@@ -1537,6 +1641,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -1968,7 +1968,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1543,6 +1648,7 @@ public class PurpurWorldConfig { +@@ -1554,6 +1659,7 @@ public class PurpurWorldConfig { snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); @@ -1976,7 +1976,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean squidRidable = false; -@@ -1550,6 +1656,7 @@ public class PurpurWorldConfig { +@@ -1561,6 +1667,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -1984,7 +1984,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -1561,11 +1668,13 @@ public class PurpurWorldConfig { +@@ -1572,11 +1679,13 @@ public class PurpurWorldConfig { squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); @@ -1998,7 +1998,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1575,11 +1684,13 @@ public class PurpurWorldConfig { +@@ -1586,11 +1695,13 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2012,7 +2012,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1589,6 +1700,7 @@ public class PurpurWorldConfig { +@@ -1600,6 +1711,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2020,7 +2020,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean striderRidable = false; -@@ -1596,6 +1708,7 @@ public class PurpurWorldConfig { +@@ -1607,6 +1719,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2028,7 +2028,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1607,6 +1720,7 @@ public class PurpurWorldConfig { +@@ -1618,6 +1731,7 @@ public class PurpurWorldConfig { striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); @@ -2036,7 +2036,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f } public boolean traderLlamaRidable = false; -@@ -1618,6 +1732,7 @@ public class PurpurWorldConfig { +@@ -1629,6 +1743,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2044,7 +2044,7 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1635,10 +1750,12 @@ public class PurpurWorldConfig { +@@ -1646,10 +1761,12 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); @@ -2057,25 +2057,24 @@ index 74512959349803caf6d8c44f5c9fbcfb5f54408a..bc4c8b625662f7d3e635f428fe8a3d2f private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); if (PurpurConfig.version < 10) { -@@ -1647,6 +1764,7 @@ public class PurpurWorldConfig { +@@ -1658,12 +1775,14 @@ public class PurpurWorldConfig { set("mobs.tropical_fish.attributes.max_health", oldValue); } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); + tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); } - public boolean turtleEggsBypassMobGriefing = false; -@@ -1661,6 +1779,7 @@ public class PurpurWorldConfig { - public boolean turtleEggsBreakFromItems = true; - public boolean turtleEggsBreakFromMinecarts = true; + public boolean turtleRidable = false; + public boolean turtleRidableInWater = false; + public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; + public boolean turtleTakeDamageFromWater = false; - private void turtleEggSettings() { + private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); @@ -1674,12 +1793,14 @@ public class PurpurWorldConfig { - turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); - turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); + } + turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); + turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); } diff --git a/patches/server/0139-Config-to-always-tame-in-Creative.patch b/patches/server/0139-Config-to-always-tame-in-Creative.patch index 372a24067..7b89992ac 100644 --- a/patches/server/0139-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0139-Config-to-always-tame-in-Creative.patch @@ -59,10 +59,10 @@ index 663683a50f7a1125f406b6ec8bf7a0419be5f36a..713fe8ac2293fe2e60c5834b3d6fd2f1 this.navigation.stop(); this.setTarget((LivingEntity) null); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7937bad1b6e9c62f23bcdccc11824ff96e77afac..47726960c97b18a6183941bf27500b3b2a17776e 100644 +index 6458959057c55017145a78ebc8e3bc7ef2372241..84e3221c0ebc3faaa21b599ef2411e0316a208bf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -385,6 +385,7 @@ public class PurpurWorldConfig { +@@ -396,6 +396,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index 7937bad1b6e9c62f23bcdccc11824ff96e77afac..47726960c97b18a6183941bf27500b3b public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -403,6 +404,7 @@ public class PurpurWorldConfig { +@@ -414,6 +415,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0140-End-crystal-explosion-options.patch b/patches/server/0140-End-crystal-explosion-options.patch index 1ac54f8eb..793111262 100644 --- a/patches/server/0140-End-crystal-explosion-options.patch +++ b/patches/server/0140-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index f8863cabad1bd0c3c2c62b8e17612d9559237d68..06c6addfa2a8dab1ad52a3588e9aeba5 this.onDestroyedBy(source); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 47726960c97b18a6183941bf27500b3b2a17776e..11a7f6dbf3dd85ac896a33b66b3e681e68f6ad18 100644 +index 84e3221c0ebc3faaa21b599ef2411e0316a208bf..fc840b79ecf30f98a08dca64627c55ffb3468839 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -456,6 +456,35 @@ public class PurpurWorldConfig { +@@ -467,6 +467,35 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 249249ef5..ce6005412 100644 --- a/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0141-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -29,10 +29,10 @@ index 3b752f97f75c78657f37215ecd92b7460a71f090..5ef45fe1dac1df779727f9c441f7e651 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ef4c593494a493eb319b402eb22a5a446ebcb181..35bd91ee1e07984381ed2179dace489b90e990d9 100644 +index fc840b79ecf30f98a08dca64627c55ffb3468839..dbd316e70d3de436e823a4e850a5adaa6c0e68b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -865,6 +865,7 @@ public class PurpurWorldConfig { +@@ -876,6 +876,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index ef4c593494a493eb319b402eb22a5a446ebcb181..35bd91ee1e07984381ed2179dace489b private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -882,6 +883,7 @@ public class PurpurWorldConfig { +@@ -893,6 +894,7 @@ public class PurpurWorldConfig { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater); diff --git a/patches/server/0142-Dont-run-with-scissors.patch b/patches/server/0142-Dont-run-with-scissors.patch index ee9c3df34..dcf432927 100644 --- a/patches/server/0142-Dont-run-with-scissors.patch +++ b/patches/server/0142-Dont-run-with-scissors.patch @@ -56,10 +56,10 @@ index 574f01f5b31c5d8110e2e8a80ef61f4b794e3d21..05a7c307da51d31f822730b03c83db98 public static String serverModName = "Purpur"; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 088415ebd74e75a2e6917adb97e23e019c07f294..71a8f7960bc60626d88dc0e258d47db41c7b8cb8 100644 +index dbd316e70d3de436e823a4e850a5adaa6c0e68b3..b6f506bb17369d542e594158e1ebd9bb4ae8d02e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -157,6 +157,8 @@ public class PurpurWorldConfig { +@@ -168,6 +168,8 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -68,7 +68,7 @@ index 088415ebd74e75a2e6917adb97e23e019c07f294..71a8f7960bc60626d88dc0e258d47db4 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -194,6 +196,8 @@ public class PurpurWorldConfig { +@@ -205,6 +207,8 @@ public class PurpurWorldConfig { Item item = Registry.ITEM.get(new ResourceLocation(key.toString())); if (item != Items.AIR) itemImmuneToLightning.add(item); }); diff --git a/patches/server/0143-One-Punch-Man.patch b/patches/server/0143-One-Punch-Man.patch index d1c7f5924..8c9257349 100644 --- a/patches/server/0143-One-Punch-Man.patch +++ b/patches/server/0143-One-Punch-Man.patch @@ -30,10 +30,10 @@ index d0fbbaaa48d7e199ab22bc0b089f2ad45fe816ee..24b2d3b768f0b3fd0bd2238419aec6e0 if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71a8f7960bc60626d88dc0e258d47db41c7b8cb8..a6ea7b2f86f0a946f0744b57e10ca7f56765cddf 100644 +index b6f506bb17369d542e594158e1ebd9bb4ae8d02e..a0bb3b03e2f7d7dbc10b63a739690b775ce6f7b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -302,6 +302,7 @@ public class PurpurWorldConfig { +@@ -313,6 +313,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index 71a8f7960bc60626d88dc0e258d47db41c7b8cb8..a6ea7b2f86f0a946f0744b57e10ca7f5 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -320,6 +321,7 @@ public class PurpurWorldConfig { +@@ -331,6 +332,7 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); diff --git a/patches/server/0144-Add-config-for-snow-on-blue-ice.patch b/patches/server/0144-Add-config-for-snow-on-blue-ice.patch index 842962c57..f0e50dab7 100644 --- a/patches/server/0144-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0144-Add-config-for-snow-on-blue-ice.patch @@ -29,10 +29,10 @@ index fbbb0155bd66f1daa160e03f866741d903e1869e..86f7b4117b8b9bd36e38962e3290f7b9 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 660e801acdfd25d51a1177065a1a10544fe0b3b4..70f6970540def01256a7f6dbe20457f9ec66847e 100644 +index a0bb3b03e2f7d7dbc10b63a739690b775ce6f7b5..d42a4c9d96c1bbf804302b522dcc85b88a6333dd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -517,6 +517,11 @@ public class PurpurWorldConfig { +@@ -528,6 +528,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0145-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0145-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 06bddbc68..d5836520e 100644 --- a/patches/server/0145-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0145-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,10 +43,10 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f // Paper end if (user instanceof net.minecraft.server.level.ServerPlayer) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 70f6970540def01256a7f6dbe20457f9ec66847e..fea8c1e47ad7c9abd5593fc46b20487fa5f72171 100644 +index d42a4c9d96c1bbf804302b522dcc85b88a6333dd..160cf3d47975b074ca63b09feabb42a0b1eefe5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -159,6 +159,10 @@ public class PurpurWorldConfig { +@@ -170,6 +170,10 @@ public class PurpurWorldConfig { public List itemImmuneToLightning = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index 70f6970540def01256a7f6dbe20457f9ec66847e..fea8c1e47ad7c9abd5593fc46b20487f private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -198,6 +202,10 @@ public class PurpurWorldConfig { +@@ -209,6 +213,10 @@ public class PurpurWorldConfig { }); dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors); scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/server/0146-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0146-Config-to-ignore-nearby-mobs-when-sleeping.patch index 3da2676bc..899de895f 100644 --- a/patches/server/0146-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0146-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 722590b3674de1c3d92db4995df0aa87e55ecdea..152017d279a29ecdd69e1f7c4a9a96a0291e65ee 100644 +index d31ae3a1df1a457d7ae55bc82e9c870c3e093e42..a50d5342c5981a7ff5b4c56beea19da7e8a1b77c 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1321,7 +1321,7 @@ public class ServerPlayer extends Player { @@ -18,10 +18,10 @@ index 722590b3674de1c3d92db4995df0aa87e55ecdea..152017d279a29ecdd69e1f7c4a9a96a0 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fea8c1e47ad7c9abd5593fc46b20487fa5f72171..b5fd530558ff5f2b4969f9907035f97af3f183e7 100644 +index 160cf3d47975b074ca63b09feabb42a0b1eefe5b..ecf44bbf172a18e520f451e38c68291929a4436f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -311,6 +311,7 @@ public class PurpurWorldConfig { +@@ -322,6 +322,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index fea8c1e47ad7c9abd5593fc46b20487fa5f72171..b5fd530558ff5f2b4969f9907035f97a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -330,6 +331,7 @@ public class PurpurWorldConfig { +@@ -341,6 +342,7 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0148-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0148-Config-Enderman-aggressiveness-towards-Endermites.patch index dbab256b6..d3bc27e04 100644 --- a/patches/server/0148-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0148-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index b050f2d16a6aed98654f51fa4ede496a0be07b45..c7216abec9b93cce9198568470ebe21f40d6423b 100644 +index 1ab913281012305cba379ba7301a76501f7d3ed5..d1694338673b63ae3e7bcb38bb2450aa422f52cb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -119,7 +119,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -18,10 +18,10 @@ index b050f2d16a6aed98654f51fa4ede496a0be07b45..c7216abec9b93cce9198568470ebe21f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b5fd530558ff5f2b4969f9907035f97af3f183e7..48b7fb5710c48b5a8172fcc45ea2a802e349d2f3 100644 +index ecf44bbf172a18e520f451e38c68291929a4436f..efdaffb8ec18cd68daa38ee844588c89bc9ef6c5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -914,6 +914,8 @@ public class PurpurWorldConfig { +@@ -925,6 +925,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index b5fd530558ff5f2b4969f9907035f97af3f183e7..48b7fb5710c48b5a8172fcc45ea2a802 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -922,11 +924,17 @@ public class PurpurWorldConfig { +@@ -933,11 +935,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0149-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0149-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 4658666fe..48b569919 100644 --- a/patches/server/0149-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0149-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index c7216abec9b93cce9198568470ebe21f40d6423b..fd06b697b810e4e74345c636cb3a02bc23959e76 100644 +index d1694338673b63ae3e7bcb38bb2450aa422f52cb..bba5ce10a4dc06272936ca26d1ac0e5a98c2da1f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -256,7 +256,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -20,10 +20,10 @@ index c7216abec9b93cce9198568470ebe21f40d6423b..fd06b697b810e4e74345c636cb3a02bc } else { Vec3 vec3d = player.getViewVector(1.0F).normalize(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 48b7fb5710c48b5a8172fcc45ea2a802e349d2f3..0b68eb54c3f65d71e56b05655bc360768d01ba77 100644 +index efdaffb8ec18cd68daa38ee844588c89bc9ef6c5..2d1aa83c059e28f8c883808ff6f63f7d9e074941 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -916,6 +916,8 @@ public class PurpurWorldConfig { +@@ -927,6 +927,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 48b7fb5710c48b5a8172fcc45ea2a802e349d2f3..0b68eb54c3f65d71e56b05655bc36076 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -935,6 +937,8 @@ public class PurpurWorldConfig { +@@ -946,6 +948,8 @@ public class PurpurWorldConfig { endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); diff --git a/patches/server/0150-Tick-fluids-config.patch b/patches/server/0150-Tick-fluids-config.patch index 5565d0902..f52753965 100644 --- a/patches/server/0150-Tick-fluids-config.patch +++ b/patches/server/0150-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index 11ebadaa2438281a54cffe025a49ee5046a71ba5..07c25a2518eb5ce0da6131ce5ceb10ac } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0b68eb54c3f65d71e56b05655bc360768d01ba77..bec3d78e87ec1e1c683c5fbaa12b8d8fada870f6 100644 +index 2d1aa83c059e28f8c883808ff6f63f7d9e074941..40c25ea409b582795959fe5a6c5b33c72451f3ce 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -413,6 +413,7 @@ public class PurpurWorldConfig { +@@ -424,6 +424,7 @@ public class PurpurWorldConfig { public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index 0b68eb54c3f65d71e56b05655bc360768d01ba77..bec3d78e87ec1e1c683c5fbaa12b8d8f public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -432,6 +433,7 @@ public class PurpurWorldConfig { +@@ -443,6 +444,7 @@ public class PurpurWorldConfig { noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); diff --git a/patches/server/0151-Config-to-disable-Llama-caravans.patch b/patches/server/0151-Config-to-disable-Llama-caravans.patch index 620170958..bda685395 100644 --- a/patches/server/0151-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0151-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index fde47de12ffa43bff9cfd1500a35e49325223291..7656c933a835f15c40e75851e7a2348b this.caravanHead.caravanTail = this; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d6ac762cdd9bb004298b578cf35214dc03faaab3..7281fe5ad723967fba66e69de4d768d24255b1cb 100644 +index 40c25ea409b582795959fe5a6c5b33c72451f3ce..8a908c36b164b7d8e55bb62d6b295eb48c06b19f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1209,6 +1209,7 @@ public class PurpurWorldConfig { +@@ -1220,6 +1220,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index d6ac762cdd9bb004298b578cf35214dc03faaab3..7281fe5ad723967fba66e69de4d768d2 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1227,6 +1228,7 @@ public class PurpurWorldConfig { +@@ -1238,6 +1239,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); diff --git a/patches/server/0152-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0152-Config-to-make-Creepers-explode-on-death.patch index f754caa0b..101f42ba6 100644 --- a/patches/server/0152-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0152-Config-to-make-Creepers-explode-on-death.patch @@ -50,10 +50,10 @@ index cf8b4f538ee2df715162adc460c6e8e58b50ba52..525b94c61693cfd7d68305cbf4eb08a8 private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ad573cabf2c369fdaa9a0a7f97de2f8d365d847e..14ad0a50dd69f78573007dcb9477a712585ad3ec 100644 +index 8a908c36b164b7d8e55bb62d6b295eb48c06b19f..16e8d72864a57c40b3f86e42b0195d362d8a2726 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -778,6 +778,7 @@ public class PurpurWorldConfig { +@@ -789,6 +789,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index ad573cabf2c369fdaa9a0a7f97de2f8d365d847e..14ad0a50dd69f78573007dcb9477a712 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -791,6 +792,7 @@ public class PurpurWorldConfig { +@@ -802,6 +803,7 @@ public class PurpurWorldConfig { creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); diff --git a/patches/server/0153-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0153-Configurable-ravager-griefable-blocks-list.patch index d93039f67..a5471412b 100644 --- a/patches/server/0153-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0153-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index e9087a46e401bc99b73c2cf2731fdac3e68719f8..e054edf9e7c4eef231e155516433c6fa } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 14ad0a50dd69f78573007dcb9477a712585ad3ec..8ff9d325c7cb67180a09eb864dfb7a86f8fe8e29 100644 +index 16e8d72864a57c40b3f86e42b0195d362d8a2726..24b4b54149d7a64a617f4ffb870f818f6362eb41 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1549,6 +1549,7 @@ public class PurpurWorldConfig { +@@ -1560,6 +1560,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 14ad0a50dd69f78573007dcb9477a712585ad3ec..8ff9d325c7cb67180a09eb864dfb7a86 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1560,6 +1561,23 @@ public class PurpurWorldConfig { +@@ -1571,6 +1572,23 @@ public class PurpurWorldConfig { ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater); diff --git a/patches/server/0154-Sneak-to-bulk-process-composter.patch b/patches/server/0154-Sneak-to-bulk-process-composter.patch index b04e145e8..0e338eb2a 100644 --- a/patches/server/0154-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0154-Sneak-to-bulk-process-composter.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Sneak to bulk process composter diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index dd92cc53f0e6247508c6ce494dd45b4829344b2a..5565dfb30bd2609aded4c064ea6dfcabf71047e6 100644 +index 3125af569ec2bb1cd613a9dd96c3a181d723006d..c24cc105d31b4d41acf6e2ea3bc7a08a02490ca7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -580,7 +580,7 @@ public class ServerPlayerGameMode { @@ -75,10 +75,10 @@ index fb8b8a9733ac50096d8406487ab1ae167ef5f7b1..16598ca0fd953b6af98dfcdb6716e2e1 int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8ff9d325c7cb67180a09eb864dfb7a86f8fe8e29..f463c17192b609be4cbd66c8f475f3615cb5bf64 100644 +index 24b4b54149d7a64a617f4ffb870f818f6362eb41..93ceff70145703b1c5bc2022a24f31e727e837ee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -467,6 +467,11 @@ public class PurpurWorldConfig { +@@ -478,6 +478,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0155-Config-for-skipping-night.patch b/patches/server/0155-Config-for-skipping-night.patch index c741b515d..32f4c1053 100644 --- a/patches/server/0155-Config-for-skipping-night.patch +++ b/patches/server/0155-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 5e027260743202b69ce348ef5cd04709eca689b0..fca42bb14e41e7e853af83a2f4b37d58 j = this.levelData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0c913fcd0555c7fdfeb4de4186ea1aefd3ee3f36..c636ab51583cd3d62b2080896a91c9188b06f09d 100644 +index 93ceff70145703b1c5bc2022a24f31e727e837ee..f8383a842a05aac1cfa307fed649e74e55d717b4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -312,6 +312,7 @@ public class PurpurWorldConfig { +@@ -323,6 +323,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 0c913fcd0555c7fdfeb4de4186ea1aefd3ee3f36..c636ab51583cd3d62b2080896a91c918 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -332,6 +333,7 @@ public class PurpurWorldConfig { +@@ -343,6 +344,7 @@ public class PurpurWorldConfig { playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); diff --git a/patches/server/0158-Drowning-Settings.patch b/patches/server/0158-Drowning-Settings.patch index 60eb0fad2..7bff21e3e 100644 --- a/patches/server/0158-Drowning-Settings.patch +++ b/patches/server/0158-Drowning-Settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Drowning Settings diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index cd173751f517cf8024e65870f057a73462e5ff5e..733b943080948de76fb81dcd2545b20bfc704c1e 100644 +index d046f2f85efd54c3fe91ca5020bbc7b326005275..1dbd9be6b72b3ab85243cc6d02af0977b7ae75ad 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -502,7 +502,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -49,10 +49,10 @@ index 24b2d3b768f0b3fd0bd2238419aec6e06bcb1a70..a46e6d55731c7877fd50329b1ad37951 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 07a0d10351298c3b55de9fc9389d90eb7abfb698..878a338c70ef4f0b08004210279693122470a817 100644 +index ae74bae4270e869ac62443eb264221a6fe5ace01..ddb7150043689e198f525010f227bb7ad011df81 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -122,6 +122,15 @@ public class PurpurWorldConfig { +@@ -133,6 +133,15 @@ public class PurpurWorldConfig { nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks); } diff --git a/patches/server/0159-Break-individual-slabs-when-sneaking.patch b/patches/server/0159-Break-individual-slabs-when-sneaking.patch index 9f7c48ca5..63ed89aaa 100644 --- a/patches/server/0159-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0159-Break-individual-slabs-when-sneaking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Break individual slabs when sneaking diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index 5565dfb30bd2609aded4c064ea6dfcabf71047e6..cd1d5c3a21b08105b00e2d10671cfa0c7f24330d 100644 +index c24cc105d31b4d41acf6e2ea3bc7a08a02490ca7..0409daff0f01db6d0644934fc8ffd64b6158e378 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -418,6 +418,7 @@ public class ServerPlayerGameMode { @@ -47,10 +47,10 @@ index 54df5c2987822a727a31be2b3769d39fabb6159a..70b6a65a7d321fc71c98289f09f21cca + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f67e57204a2be5076c7d14ab513d205378134a60..af137c18c47ecea46c9539f4ad186619196ab1d4 100644 +index ddb7150043689e198f525010f227bb7ad011df81..28b4904abbb9ac5bc110551dbe25d67efa5411dc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -594,6 +594,11 @@ public class PurpurWorldConfig { +@@ -605,6 +605,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0160-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0160-Config-to-disable-hostile-mob-spawn-on-ice.patch index dc1580787..1232e6f99 100644 --- a/patches/server/0160-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0160-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -24,10 +24,10 @@ index 1d66588cfe94d190a34dc376b4b5bff9461a3529..9459255dd06d71dc1728e440e501cb3c return false; } else if (world.getBrightness(LightLayer.BLOCK, pos) > (world.getLevel().paperConfig.maxBlockLightForMonsterSpawning >= 0 ? world.getLevel().paperConfig.maxBlockLightForMonsterSpawning : 0)) { // Paper - configurable max block light level diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 07dce1b9affedb5ae6888431e713accfe8871c26..5eec80e7266ffe9c5f51eb500c40d680aac53ccc 100644 +index 28b4904abbb9ac5bc110551dbe25d67efa5411dc..8d305bfe82be07e97e8a3e5fca30984d9a0f7024 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -546,8 +546,12 @@ public class PurpurWorldConfig { +@@ -557,8 +557,12 @@ public class PurpurWorldConfig { } public boolean snowOnBlueIce = true; diff --git a/patches/server/0161-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0161-Config-to-show-Armor-Stand-arms-on-spawn.patch index c224f7e75..f599be1a1 100644 --- a/patches/server/0161-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0161-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,10 +17,10 @@ index e9e24435057cff9c0af758ca2aa822c3b1c3593d..8634431cabae82b71f409f02c84dda2d public ArmorStand(Level world, double x, double y, double z) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 78c4717b6ef141f192119265d262669012f4814d..904ec899828d6ef345f5c279ceefd9d7e0b116f6 100644 +index 8d305bfe82be07e97e8a3e5fca30984d9a0f7024..7fe60978f442a09507b11f7c3f6e881c427e9152 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -106,6 +106,7 @@ public class PurpurWorldConfig { +@@ -117,6 +117,7 @@ public class PurpurWorldConfig { public boolean armorstandMovement = true; public boolean armorstandWaterMovement = true; public boolean armorstandWaterFence = true; @@ -28,7 +28,7 @@ index 78c4717b6ef141f192119265d262669012f4814d..904ec899828d6ef345f5c279ceefd9d7 private void armorstandSettings() { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); -@@ -113,6 +114,7 @@ public class PurpurWorldConfig { +@@ -124,6 +125,7 @@ public class PurpurWorldConfig { armorstandMovement = getBoolean("gameplay-mechanics.armorstand.can-movement-tick", armorstandMovement); armorstandWaterMovement = getBoolean("gameplay-mechanics.armorstand.can-move-in-water", armorstandWaterMovement); armorstandWaterFence = getBoolean("gameplay-mechanics.armorstand.can-move-in-water-over-fence", armorstandWaterFence); diff --git a/patches/server/0162-Option-to-make-doors-require-redstone.patch b/patches/server/0162-Option-to-make-doors-require-redstone.patch index 01c1d38b2..bf5495782 100644 --- a/patches/server/0162-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0162-Option-to-make-doors-require-redstone.patch @@ -67,10 +67,10 @@ index 1df52a9c86c01696a8bc9f84a2082387160b3eeb..a4b9c5da133e2e8ad45d447e3f184cb1 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 904ec899828d6ef345f5c279ceefd9d7e0b116f6..48eaeaba6ba55abdf855397a1d60d702a285a8d9 100644 +index 7fe60978f442a09507b11f7c3f6e881c427e9152..7de832a3ccfe9dd89c81718b8a7d2243bed468ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -492,6 +492,16 @@ public class PurpurWorldConfig { +@@ -503,6 +503,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0164-Configurable-sponge-absorption.patch b/patches/server/0164-Configurable-sponge-absorption.patch index 2aec60329..49429db7e 100644 --- a/patches/server/0164-Configurable-sponge-absorption.patch +++ b/patches/server/0164-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index 842997ea9f25a05d74a2e8300e44cc39a7e9cd96..97b4e3c0d2b1bbde77b135b8595c3bfa } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 48eaeaba6ba55abdf855397a1d60d702a285a8d9..a462bc074b9d9eef6ba8981c3617d1a545e95e0f 100644 +index 7de832a3ccfe9dd89c81718b8a7d2243bed468ba..00f9d9c76394234689df72d868c7e03ddef0527a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -620,6 +620,13 @@ public class PurpurWorldConfig { +@@ -631,6 +631,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0165-Projectile-offset-config.patch b/patches/server/0165-Projectile-offset-config.patch index 561186649..dd8b23811 100644 --- a/patches/server/0165-Projectile-offset-config.patch +++ b/patches/server/0165-Projectile-offset-config.patch @@ -18,7 +18,7 @@ index 33df0ca406dc8321b76b393f317bbd1c8ebe6366..220513d3fd5645322886522ea4f6b8c5 entityarrow.setCritArrow(true); } diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java -index e39f1241b19d3ce8b847c880a414bca89ec80356..45f3c129626e7b1f1cb06db940b85d217ae6d10e 100644 +index 9122ce42d8349aabe31ab2bb025813963c72b8e4..ab8c02a9f619a9e8f9f19943d9262ff6b29ba225 100644 --- a/src/main/java/net/minecraft/world/item/CrossbowItem.java +++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java @@ -65,7 +65,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable { @@ -96,10 +96,10 @@ index 5beaafec0759543d3bddf99028c97d0d005be209..086f746cc632a90c67a6c30ea9197c5b entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a462bc074b9d9eef6ba8981c3617d1a545e95e0f..feee6f4afc781009a150a60c99994fc86c4dc2ef 100644 +index 00f9d9c76394234689df72d868c7e03ddef0527a..7c732ff76f9a911f6b49f8907a8a911422d164f4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -381,6 +381,23 @@ public class PurpurWorldConfig { +@@ -392,6 +392,23 @@ public class PurpurWorldConfig { witherSkullDespawnRate = getInt("gameplay-mechanics.projectile-despawn-rates.wither_skull", witherSkullDespawnRate); } diff --git a/patches/server/0166-Config-for-powered-rail-activation-distance.patch b/patches/server/0166-Config-for-powered-rail-activation-distance.patch index f390a36d3..94392333c 100644 --- a/patches/server/0166-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0166-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b } else { int j = pos.getX(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index feee6f4afc781009a150a60c99994fc86c4dc2ef..38997b4dcc8917ebc478f71d7a06ac114bcf4641 100644 +index 7c732ff76f9a911f6b49f8907a8a911422d164f4..588c865c2f2ef5c1476f83f02549835f91a8692c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -632,6 +632,11 @@ public class PurpurWorldConfig { +@@ -643,6 +643,11 @@ public class PurpurWorldConfig { slabHalfBreak = getBoolean("blocks.slab.break-individual-slabs-when-sneaking", slabHalfBreak); } diff --git a/patches/server/0167-Piglin-portal-spawn-modifier.patch b/patches/server/0167-Piglin-portal-spawn-modifier.patch index fcb6374ad..15e004236 100644 --- a/patches/server/0167-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0167-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index 13a367d2b5f245f4dd92df03288dc40b81e19603..bd593ec55fcccc1e02cf5683891c5586 pos = pos.below(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 38997b4dcc8917ebc478f71d7a06ac114bcf4641..bd95dfb87ed6ab0d74d931719fe0ffe90fb38fde 100644 +index 588c865c2f2ef5c1476f83f02549835f91a8692c..13f7279f3ea2757b93ba3abbb44256f21c1b2b12 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1502,6 +1502,7 @@ public class PurpurWorldConfig { +@@ -1513,6 +1513,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 38997b4dcc8917ebc478f71d7a06ac114bcf4641..bd95dfb87ed6ab0d74d931719fe0ffe9 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1513,6 +1514,7 @@ public class PurpurWorldConfig { +@@ -1524,6 +1525,7 @@ public class PurpurWorldConfig { piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); diff --git a/patches/server/0169-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0169-Configurable-damage-settings-for-magma-blocks.patch index 470b5d15b..8e383f88c 100644 --- a/patches/server/0169-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0169-Configurable-damage-settings-for-magma-blocks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable damage settings for magma blocks diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c9e2c9ba46a39c1555fec5d94c988753f6feca20..9a2230a19800742c586f7d5925a6b88cca51ce3e 100644 +index 1dbd9be6b72b3ab85243cc6d02af0977b7ae75ad..f15cce18d4cfb56d8b54bb8f50af206ad48f8cd1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1024,7 +1024,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i @@ -31,10 +31,10 @@ index 96b4597101a7f3e98ce30bfc301e8ca1620d0fe4..d7845984b5077cdcd40d652c226d5d60 entity.hurt(DamageSource.HOT_FLOOR, 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bd95dfb87ed6ab0d74d931719fe0ffe90fb38fde..2281c6fb5e6bb0be0cc8649ee4c0ee5d9585f465 100644 +index 13f7279f3ea2757b93ba3abbb44256f21c1b2b12..600d019aba7c58516d61a4cefc135f1da3e2aa56 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -601,6 +601,13 @@ public class PurpurWorldConfig { +@@ -612,6 +612,13 @@ public class PurpurWorldConfig { waterInfiniteRequiredSources = getInt("blocks.water.infinite-required-sources", waterInfiniteRequiredSources); } diff --git a/patches/server/0172-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0172-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch index 536d1ab64..92697db6d 100644 --- a/patches/server/0172-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch +++ b/patches/server/0172-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch @@ -18,10 +18,10 @@ index e5562b407bba35ab93bf8bc3c22ac9d45e8353cb..c688bb73cd062f36524cfc231cb691f2 if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 85df77eb5530ac9c4374f5df78d10c50c121a803..a347e77339f0cf2e011676a042db04fbfa6b1869 100644 +index 168faa25042b28e0ea9f73c64ff80a631f810d06..b2a974bf0a412cd6e8dba0e7fdbb800507999fb7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -398,6 +398,21 @@ public class PurpurWorldConfig { +@@ -409,6 +409,21 @@ public class PurpurWorldConfig { snowballProjectileOffset = getDouble("gameplay-mechanics.projectile-offset.snowball", snowballProjectileOffset); } diff --git a/patches/server/0173-Configurable-piston-push-limit.patch b/patches/server/0173-Configurable-piston-push-limit.patch index 6b7e33599..75dd557ea 100644 --- a/patches/server/0173-Configurable-piston-push-limit.patch +++ b/patches/server/0173-Configurable-piston-push-limit.patch @@ -36,10 +36,10 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a347e77339f0cf2e011676a042db04fbfa6b1869..70df00057ceb30f5c5f5ed6a141ebf278876628e 100644 +index b2a974bf0a412cd6e8dba0e7fdbb800507999fb7..fcb68842804b83610099f86145fd137f6b97feb1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -623,6 +623,11 @@ public class PurpurWorldConfig { +@@ -634,6 +634,11 @@ public class PurpurWorldConfig { magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker); } diff --git a/patches/server/0175-Configurable-mob-blindness.patch b/patches/server/0175-Configurable-mob-blindness.patch index 64e00c081..69dd1be38 100644 --- a/patches/server/0175-Configurable-mob-blindness.patch +++ b/patches/server/0175-Configurable-mob-blindness.patch @@ -28,10 +28,10 @@ index a46e6d55731c7877fd50329b1ad37951e1f02784..9da2d74f38110abfeaa42ac15b4523df return d0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5be12ae7635d8fce57fbff7b52e7480fe970ebc3..78e1a64946daec89d7724fd966c3ecdc346f468c 100644 +index fcb68842804b83610099f86145fd137f6b97feb1..1106e792ad01493c26032ff58270662a9f9365ff 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -459,6 +459,7 @@ public class PurpurWorldConfig { +@@ -470,6 +470,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 5be12ae7635d8fce57fbff7b52e7480fe970ebc3..78e1a64946daec89d7724fd966c3ecdc public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -479,6 +480,7 @@ public class PurpurWorldConfig { +@@ -490,6 +491,7 @@ public class PurpurWorldConfig { persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/server/0177-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0177-Config-for-health-to-impact-Creeper-explosion-radius.patch index c145fa5d3..3eb6e9ab1 100644 --- a/patches/server/0177-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0177-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index 525b94c61693cfd7d68305cbf4eb08a87f3ca66a..35cbd013b1d58bb5fd1480922c2bd430 if (!event.isCancelled()) { this.dead = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 78e1a64946daec89d7724fd966c3ecdc346f468c..8e54e6a6c1132430f45c249fb7a08f05329c5200 100644 +index 1106e792ad01493c26032ff58270662a9f9365ff..a81c5fdfb3f5a358dc023ebbeecb130c739b4b5c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -874,6 +874,7 @@ public class PurpurWorldConfig { +@@ -885,6 +885,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 78e1a64946daec89d7724fd966c3ecdc346f468c..8e54e6a6c1132430f45c249fb7a08f05 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -888,6 +889,7 @@ public class PurpurWorldConfig { +@@ -899,6 +900,7 @@ public class PurpurWorldConfig { creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); diff --git a/patches/server/0178-Iron-golem-poppy-calms-anger.patch b/patches/server/0178-Iron-golem-poppy-calms-anger.patch index 862cbd7a2..4a22c7f0a 100644 --- a/patches/server/0178-Iron-golem-poppy-calms-anger.patch +++ b/patches/server/0178-Iron-golem-poppy-calms-anger.patch @@ -17,10 +17,10 @@ index 52cc0df083d5a4685fd00f7db0d92b277fb0c994..ff5d6f437b880ab0aa5897089694a620 this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F)); this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e54e6a6c1132430f45c249fb7a08f05329c5200..3c415cbc62ae2b75c3ce7d78f6ce683f905fa703 100644 +index a81c5fdfb3f5a358dc023ebbeecb130c739b4b5c..543774702c68f4f29c6773011e74b41db0c51934 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1285,6 +1285,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1296,7 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -28,7 +28,7 @@ index 8e54e6a6c1132430f45c249fb7a08f05329c5200..3c415cbc62ae2b75c3ce7d78f6ce683f private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1296,6 +1297,7 @@ public class PurpurWorldConfig { +@@ -1307,6 +1308,7 @@ public class PurpurWorldConfig { } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); diff --git a/patches/server/0179-Breedable-parrots.patch b/patches/server/0179-Breedable-parrots.patch index e4c13af07..66987ed8e 100644 --- a/patches/server/0179-Breedable-parrots.patch +++ b/patches/server/0179-Breedable-parrots.patch @@ -50,10 +50,10 @@ index de702ce3e2dffc44e380b8470aa540a3226a54cb..bb9717d1b2039469aae26e0eb9a4304b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3c415cbc62ae2b75c3ce7d78f6ce683f905fa703..247eb8a5be4e3401b805f8175f2beee96ed60739 100644 +index 543774702c68f4f29c6773011e74b41db0c51934..924c20cb3b0c37320aa66a26c1de27f6dcbb58e9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1435,6 +1435,7 @@ public class PurpurWorldConfig { +@@ -1446,6 +1446,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 256D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 3c415cbc62ae2b75c3ce7d78f6ce683f905fa703..247eb8a5be4e3401b805f8175f2beee9 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1446,6 +1447,7 @@ public class PurpurWorldConfig { +@@ -1457,6 +1458,7 @@ public class PurpurWorldConfig { } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); diff --git a/patches/server/0180-Configurable-powered-rail-boost-modifier.patch b/patches/server/0180-Configurable-powered-rail-boost-modifier.patch index 1763503bd..748c87a0d 100644 --- a/patches/server/0180-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0180-Configurable-powered-rail-boost-modifier.patch @@ -18,10 +18,10 @@ index 6b58b32711b3aba9b7de9e7dee6d02073dad3b7f..0e6f2d1d48910c573ec2237002a02f33 Vec3 vec3d5 = this.getDeltaMovement(); double d21 = vec3d5.x; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 247eb8a5be4e3401b805f8175f2beee96ed60739..eb84241da3245a541359449589402ea6d7ae5366 100644 +index 924c20cb3b0c37320aa66a26c1de27f6dcbb58e9..b421c8d4978fddfa8ea47f59c8214213704203ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -227,6 +227,7 @@ public class PurpurWorldConfig { +@@ -238,6 +238,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index 247eb8a5be4e3401b805f8175f2beee96ed60739..eb84241da3245a541359449589402ea6 private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -279,6 +280,7 @@ public class PurpurWorldConfig { +@@ -290,6 +291,7 @@ public class PurpurWorldConfig { set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D); set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D); } diff --git a/patches/server/0181-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0181-Add-config-change-multiplier-critical-damage-value.patch index 8eaf56629..e800b6c3d 100644 --- a/patches/server/0181-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0181-Add-config-change-multiplier-critical-damage-value.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config change multiplier critical damage value diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 4ddeb2361528406a359eb0ccb204c965a03fc729..4252ff0201cbfbecc7b95ca86c1763dc5d88a4d7 100644 +index b1ca8265d2104168b64e560634f319c72103da55..9a8c08e34e70a0bc263186da8b703ac3c157b4d9 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1255,7 +1255,7 @@ public abstract class Player extends LivingEntity { @@ -18,10 +18,10 @@ index 4ddeb2361528406a359eb0ccb204c965a03fc729..4252ff0201cbfbecc7b95ca86c1763dc f += f1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eb84241da3245a541359449589402ea6d7ae5366..8644825997ea2b7d575708aee29bd718f23c57a6 100644 +index b421c8d4978fddfa8ea47f59c8214213704203ba..3a399b0b5e82ee62fc13224d3bbed203d3d17112 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -326,6 +326,7 @@ public class PurpurWorldConfig { +@@ -337,6 +337,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index eb84241da3245a541359449589402ea6d7ae5366..8644825997ea2b7d575708aee29bd718 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -347,6 +348,7 @@ public class PurpurWorldConfig { +@@ -358,6 +359,7 @@ public class PurpurWorldConfig { creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); diff --git a/patches/server/0182-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0182-Option-to-disable-dragon-egg-teleporting.patch index 32bfb96ed..10034c659 100644 --- a/patches/server/0182-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0182-Option-to-disable-dragon-egg-teleporting.patch @@ -19,10 +19,10 @@ index 7e1edcc7b9f170b7c649437c2f0dd78c0bab9be4..5f8ac1fdac2c334951261f2b9702f5e7 BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8644825997ea2b7d575708aee29bd718f23c57a6..7e3d6c474cae696a9c97bd72b8d6ae9685962c63 100644 +index 3a399b0b5e82ee62fc13224d3bbed203d3d17112..990aa32d9fcec18ce9fb6f1eccbd0c58b69670c7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -540,6 +540,11 @@ public class PurpurWorldConfig { +@@ -551,6 +551,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch index 0d7324e99..4af755334 100644 --- a/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0185-ShulkerBox-allow-oversized-stacks.patch @@ -35,10 +35,10 @@ index 7f1230d915c98b6f30b13a06c2788bc2f7b7e912..9439119a70a411b1a7d9cd6a0090e413 blockEntity.saveToItem(itemStack); if (shulkerBoxBlockEntity.hasCustomName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7e3d6c474cae696a9c97bd72b8d6ae9685962c63..0bff4ac90f1256bad935d1964d4d365c163beea9 100644 +index 990aa32d9fcec18ce9fb6f1eccbd0c58b69670c7..8bf5f5ecaf9585473e9425cd3601737658468c20 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -660,6 +660,11 @@ public class PurpurWorldConfig { +@@ -671,6 +671,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0186-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0186-Bee-can-work-when-raining-or-at-night.patch index 8783feb4e..c243fc011 100644 --- a/patches/server/0186-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0186-Bee-can-work-when-raining-or-at-night.patch @@ -18,7 +18,7 @@ index 0f3848287798dcaa57a99b531202e23fe8d05744..9fa2359662079f406ca6204fa06d5dbf return flag && !this.isHiveNearFire(); } else { diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java -index e5a397ec31cbd3ae85f3c37519811f5869cddc5a..f89729a2dc8b55712fe94d27ad5e8766c0ed7854 100644 +index 375f25807ca0f35784653d8fbe4e5086d7033e99..096308b577c68502fed1f4c10c0dfc2a9c3515e8 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java @@ -202,7 +202,7 @@ public class BeehiveBlockEntity extends BlockEntity { @@ -31,10 +31,10 @@ index e5a397ec31cbd3ae85f3c37519811f5869cddc5a..f89729a2dc8b55712fe94d27ad5e8766 return false; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0bff4ac90f1256bad935d1964d4d365c163beea9..07d2e7c062a1bc1e58de6fb14d4be516818151f8 100644 +index 8bf5f5ecaf9585473e9425cd3601737658468c20..c966523dd5ca0cbd79039ebdd9e748c07ebc26eb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -748,6 +748,8 @@ public class PurpurWorldConfig { +@@ -759,6 +759,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 0bff4ac90f1256bad935d1964d4d365c163beea9..07d2e7c062a1bc1e58de6fb14d4be516 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -760,6 +762,8 @@ public class PurpurWorldConfig { +@@ -771,6 +773,8 @@ public class PurpurWorldConfig { beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); diff --git a/patches/server/0188-Config-MobEffect-by-world.patch b/patches/server/0188-Config-MobEffect-by-world.patch index 16cf318f7..d87d18d2d 100644 --- a/patches/server/0188-Config-MobEffect-by-world.patch +++ b/patches/server/0188-Config-MobEffect-by-world.patch @@ -40,10 +40,10 @@ index 8bbb9bdcf95989f1737714655f6f6a269d46d7f2..8d569eb2ec1b2bdbd415094ae04ae531 ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 07d2e7c062a1bc1e58de6fb14d4be516818151f8..b9f6fd06b0320e1abd8a1c5b7461b9bbcb0314fe 100644 +index c966523dd5ca0cbd79039ebdd9e748c07ebc26eb..941f0e52a1a8b14fcd8c4b6ce9febc6dddfbe9d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -283,6 +283,21 @@ public class PurpurWorldConfig { +@@ -294,6 +294,21 @@ public class PurpurWorldConfig { poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier); } diff --git a/patches/server/0189-Beacon-Activation-Range-Configurable.patch b/patches/server/0189-Beacon-Activation-Range-Configurable.patch index cb73dbf69..00a36acb2 100644 --- a/patches/server/0189-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0189-Beacon-Activation-Range-Configurable.patch @@ -26,10 +26,10 @@ index 423560afba1bc03c0bb2b7d5d028451f34e59ec5..080694a06c9fdf57317dd281c4ddbd6c } else { return effectRange; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b9f6fd06b0320e1abd8a1c5b7461b9bbcb0314fe..06d74d252ce95b54a3bc68dc85c44357fc04daf7 100644 +index 941f0e52a1a8b14fcd8c4b6ce9febc6dddfbe9d9..3f4737b6623a95eb64fd983c6dc041a167c88165 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -512,6 +512,17 @@ public class PurpurWorldConfig { +@@ -523,6 +523,17 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } diff --git a/patches/server/0190-Add-toggle-for-sand-duping-fix.patch b/patches/server/0190-Add-toggle-for-sand-duping-fix.patch index 490c90de7..50dfa79fe 100644 --- a/patches/server/0190-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0190-Add-toggle-for-sand-duping-fix.patch @@ -27,10 +27,10 @@ index 0c94b4cb6ee0c3dffe0b67a2291d0160ae0ef96f..92a9869dbabcaa704a0da8bc86f75786 } // Paper end - fix sand duping diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 06d74d252ce95b54a3bc68dc85c44357fc04daf7..98068e0ef909fae4a50c2fe9861798507618f6e3 100644 +index 3f4737b6623a95eb64fd983c6dc041a167c88165..01806454e3943c7c26928398019884da97aea725 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -686,6 +686,11 @@ public class PurpurWorldConfig { +@@ -697,6 +697,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch index d6c9d7f1f..6831790d2 100644 --- a/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0191-Add-toggle-for-end-portal-safe-teleporting.patch @@ -45,10 +45,10 @@ index bd4f980f68330fc46a02a6f4bb4403fac3a91919..8601ea0575323ea7cf07c4909a495bf5 entity.portalWorld = ((ServerLevel)world); entity.portalBlock = pos.immutable(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 98068e0ef909fae4a50c2fe9861798507618f6e3..907daf5e078ae3877db5830f7494ea02697da2c6 100644 +index 01806454e3943c7c26928398019884da97aea725..475a1ec49249c078041c7a468b2a60b3e02c0728 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -626,6 +626,11 @@ public class PurpurWorldConfig { +@@ -637,6 +637,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0194-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0194-Burp-after-eating-food-fills-hunger-bar-completely.patch index 0f802028d..646327d8d 100644 --- a/patches/server/0194-Burp-after-eating-food-fills-hunger-bar-completely.patch +++ b/patches/server/0194-Burp-after-eating-food-fills-hunger-bar-completely.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Burp after eating food fills hunger bar completely 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 535bc6d57d153a62f2cbf57747586de3d4c41b1f..055e11c1a180f74a6d2bd3d20e1451ff027b10e2 100644 +index 7a0bf9f054882e8f6ed7ba6b82940722216848de..05be92b70449eec2fe6661aab0cdbf89496fefac 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -193,6 +193,8 @@ public abstract class Player extends LivingEntity { @@ -55,10 +55,10 @@ index 2934b6de1f1fb914a532ee20184df99d1acd8e65..65421cfff05c0493f5fef1bdff03172c public void eat(Item item, ItemStack stack) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 907daf5e078ae3877db5830f7494ea02697da2c6..025a069dab527ee38f92c209c564e577520958cd 100644 +index 475a1ec49249c078041c7a468b2a60b3e02c0728..3b40a0dee6eea7fcd826c7f3648e58d00684239f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -342,6 +342,7 @@ public class PurpurWorldConfig { +@@ -353,6 +353,7 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -66,7 +66,7 @@ index 907daf5e078ae3877db5830f7494ea02697da2c6..025a069dab527ee38f92c209c564e577 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -364,6 +365,7 @@ public class PurpurWorldConfig { +@@ -375,6 +376,7 @@ public class PurpurWorldConfig { playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); diff --git a/patches/server/0197-Shulker-spawn-from-bullet-options.patch b/patches/server/0197-Shulker-spawn-from-bullet-options.patch index 111b42091..0da0477b9 100644 --- a/patches/server/0197-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0197-Shulker-spawn-from-bullet-options.patch @@ -61,10 +61,10 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 025a069dab527ee38f92c209c564e577520958cd..5dfc69bc0716c083ed0957b69491999649d24730 100644 +index 3b40a0dee6eea7fcd826c7f3648e58d00684239f..2f6c47c5b7b387badd1d72085cd6536cb5f0bd93 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1777,6 +1777,11 @@ public class PurpurWorldConfig { +@@ -1788,6 +1788,11 @@ public class PurpurWorldConfig { public boolean shulkerRidableInWater = false; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -76,7 +76,7 @@ index 025a069dab527ee38f92c209c564e577520958cd..5dfc69bc0716c083ed0957b694919996 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1787,6 +1792,11 @@ public class PurpurWorldConfig { +@@ -1798,6 +1803,11 @@ public class PurpurWorldConfig { } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater); diff --git a/patches/server/0198-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0198-Eating-glow-berries-adds-glow-effect.patch index 61f4eed55..c90265ef9 100644 --- a/patches/server/0198-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0198-Eating-glow-berries-adds-glow-effect.patch @@ -18,10 +18,10 @@ index 85329295afacad3edb6865846166aa56ebae0ed2..513343d225a71e242b0f237eefcd2514 public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE, CreativeModeTab.TAB_DECORATIONS); public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT, CreativeModeTab.TAB_DECORATIONS); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5dfc69bc0716c083ed0957b69491999649d24730..58ef50e3b833d2fca133a77d358376245ba6045a 100644 +index 2f6c47c5b7b387badd1d72085cd6536cb5f0bd93..b31a6a917f021dddaf6a028d14c7a99031c2bfe1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -174,6 +174,7 @@ public class PurpurWorldConfig { +@@ -185,6 +185,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index 5dfc69bc0716c083ed0957b69491999649d24730..58ef50e3b833d2fca133a77d35837624 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -217,6 +218,7 @@ public class PurpurWorldConfig { +@@ -228,6 +229,7 @@ public class PurpurWorldConfig { enderPearlCooldown = getInt("gameplay-mechanics.item.ender-pearl.cooldown", enderPearlCooldown); enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); diff --git a/patches/server/0199-Option-to-make-drowned-break-doors.patch b/patches/server/0199-Option-to-make-drowned-break-doors.patch index 6a2ebb1a9..cbb8c4670 100644 --- a/patches/server/0199-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0199-Option-to-make-drowned-break-doors.patch @@ -34,10 +34,10 @@ index 4d2bb12b8168fceae71622a9f8bd5102d0024208..a592fb29097232d5d9c6e6d946fb326f @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 58ef50e3b833d2fca133a77d358376245ba6045a..afc80bab4e9ae61da09afeac9c96531ae57ee218 100644 +index b31a6a917f021dddaf6a028d14c7a99031c2bfe1..844ac09a6e7b4fde01b01f6fb2fb708152cd2a6f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1008,6 +1008,7 @@ public class PurpurWorldConfig { +@@ -1019,6 +1019,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index 58ef50e3b833d2fca133a77d358376245ba6045a..afc80bab4e9ae61da09afeac9c96531a private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1022,6 +1023,7 @@ public class PurpurWorldConfig { +@@ -1033,6 +1034,7 @@ public class PurpurWorldConfig { drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); diff --git a/patches/server/0202-Armor-click-equip-options.patch b/patches/server/0202-Armor-click-equip-options.patch index 6bc822f81..a642aeee9 100644 --- a/patches/server/0202-Armor-click-equip-options.patch +++ b/patches/server/0202-Armor-click-equip-options.patch @@ -58,10 +58,10 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b90cd1fcb0ec48c649df09ac729443d098286e4f..81698e6507c3d52136c8522147b60f991467ff25 100644 +index 438f0bd4d38980719b64f74c0020e4a309891513..62dd8adf118a88aeffb6e2f442ac4b0bf2b7e7c4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -345,6 +345,8 @@ public class PurpurWorldConfig { +@@ -356,6 +356,8 @@ public class PurpurWorldConfig { public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; public boolean playerBurpWhenFull = false; @@ -70,7 +70,7 @@ index b90cd1fcb0ec48c649df09ac729443d098286e4f..81698e6507c3d52136c8522147b60f99 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -368,6 +370,8 @@ public class PurpurWorldConfig { +@@ -379,6 +381,8 @@ public class PurpurWorldConfig { playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); diff --git a/patches/server/0205-Tool-actionable-options.patch b/patches/server/0205-Tool-actionable-options.patch index a711bceab..acaabf7a1 100644 --- a/patches/server/0205-Tool-actionable-options.patch +++ b/patches/server/0205-Tool-actionable-options.patch @@ -109,10 +109,10 @@ index a5c2d6f0c0850a99224a1a8d622fe6b341cee88b..d8777ab86465e25236e7abbafd7ff668 return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 81698e6507c3d52136c8522147b60f991467ff25..d2a2c83d51565ff8b270850c551a5547a4fb1a55 100644 +index 62dd8adf118a88aeffb6e2f442ac4b0bf2b7e7c4..3bd7e21f52f505df25f82c00f5dc8ee22d70a9c0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -472,6 +472,153 @@ public class PurpurWorldConfig { +@@ -483,6 +483,153 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch index ad030e96f..470873005 100644 --- a/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0209-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,10 +19,10 @@ index 8175bb6331727440da2232998bdad068a1c47ae8..be47543240bd573cd2cc08f84b7eab1c CompoundTag nbttagcompound = BlockItem.getBlockEntityData(itemstack); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d2a2c83d51565ff8b270850c551a5547a4fb1a55..852a61e4d369bec342765e6e5ed823f3bfd320a1 100644 +index 3bd7e21f52f505df25f82c00f5dc8ee22d70a9c0..25e3e389118f0e08c2a657896efb35588889b03e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -175,6 +175,7 @@ public class PurpurWorldConfig { +@@ -186,6 +186,7 @@ public class PurpurWorldConfig { public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; @@ -30,7 +30,7 @@ index d2a2c83d51565ff8b270850c551a5547a4fb1a55..852a61e4d369bec342765e6e5ed823f3 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -219,6 +220,7 @@ public class PurpurWorldConfig { +@@ -230,6 +231,7 @@ public class PurpurWorldConfig { enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); diff --git a/patches/server/0210-Silk-touchable-budding-amethyst.patch b/patches/server/0210-Silk-touchable-budding-amethyst.patch index ff312689f..0cbfd0306 100644 --- a/patches/server/0210-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0210-Silk-touchable-budding-amethyst.patch @@ -24,10 +24,10 @@ index 02fc3ede12eadbf72e26e31b1c475c7f5b2ad73a..2288e727929ffb3a3bca138fb0289408 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 852a61e4d369bec342765e6e5ed823f3bfd320a1..b496d649e45e740402f6e56fec8c96d0b2e07f8d 100644 +index 25e3e389118f0e08c2a657896efb35588889b03e..6347d9928b9bf3da3eb6bab4a548e25b03873705 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -696,6 +696,11 @@ public class PurpurWorldConfig { +@@ -707,6 +707,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0211-Big-dripleaf-tilt-delay.patch b/patches/server/0211-Big-dripleaf-tilt-delay.patch index b474c1df8..3ddcacf68 100644 --- a/patches/server/0211-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0211-Big-dripleaf-tilt-delay.patch @@ -24,10 +24,10 @@ index 3f434ac77611a81889b15c118a0fca57cc10a6bb..36d65d85d3cc030551fc0957c1ebbff6 if (i != -1) { world.scheduleTick(blockposition, (Block) this, i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b496d649e45e740402f6e56fec8c96d0b2e07f8d..b2f7212c33ba02294cc5c2ef6c9bf22ae1dec0d4 100644 +index 6347d9928b9bf3da3eb6bab4a548e25b03873705..5f53e643f531c566eb05b76cc3a891c2b6bcced5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -696,6 +696,22 @@ public class PurpurWorldConfig { +@@ -707,6 +707,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0212-Player-ridable-in-water-option.patch b/patches/server/0212-Player-ridable-in-water-option.patch index 852dddaf9..5fcac6c37 100644 --- a/patches/server/0212-Player-ridable-in-water-option.patch +++ b/patches/server/0212-Player-ridable-in-water-option.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player ridable in water option 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 175b839a8b8c52b05b59c40f6b30b6e374d83cf1..d03b2609762ef31a1d15d1fbd739cb747adc7118 100644 +index f254cd917eb9198e902b68f78127f9fc63fde7c7..d0e66f4e5afec947bf6331a7883dc840984f4069 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -2015,6 +2015,11 @@ public abstract class Player extends LivingEntity { @@ -21,10 +21,10 @@ index 175b839a8b8c52b05b59c40f6b30b6e374d83cf1..d03b2609762ef31a1d15d1fbd739cb74 if (!this.isPassenger() && this.onGround && !this.isInWater() && !this.isInPowderSnow) { if (this.getShoulderEntityLeft().isEmpty()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b2f7212c33ba02294cc5c2ef6c9bf22ae1dec0d4..3bf28cdc25724ed8065b44f53bfa35ebed2feea3 100644 +index 5f53e643f531c566eb05b76cc3a891c2b6bcced5..375eb761e8fb27de5e45d146fea0013c8fd7cd4e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -349,6 +349,7 @@ public class PurpurWorldConfig { +@@ -360,6 +360,7 @@ public class PurpurWorldConfig { public boolean playerBurpWhenFull = false; public boolean playerArmorSwapping = false; public boolean playerArmorSwappingCreativeMakesCopy = true; @@ -32,7 +32,7 @@ index b2f7212c33ba02294cc5c2ef6c9bf22ae1dec0d4..3bf28cdc25724ed8065b44f53bfa35eb private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -374,6 +375,7 @@ public class PurpurWorldConfig { +@@ -385,6 +386,7 @@ public class PurpurWorldConfig { playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); diff --git a/patches/server/0213-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0213-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index b192274ba..96c998ec9 100644 --- a/patches/server/0213-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0213-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -18,10 +18,10 @@ index bba5ce10a4dc06272936ca26d1ac0e5a98c2da1f..8923274fc04282cf97398b997603f699 boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3bf28cdc25724ed8065b44f53bfa35ebed2feea3..aee40fd438225fa5eb0b023ed047eb95136f2093 100644 +index 375eb761e8fb27de5e45d146fea0013c8fd7cd4e..32a6fe5fcbc25fb62e6819dbb013efc0f7284cfe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1255,6 +1255,7 @@ public class PurpurWorldConfig { +@@ -1266,6 +1266,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -29,7 +29,7 @@ index 3bf28cdc25724ed8065b44f53bfa35ebed2feea3..aee40fd438225fa5eb0b023ed047eb95 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1276,6 +1277,7 @@ public class PurpurWorldConfig { +@@ -1287,6 +1288,7 @@ public class PurpurWorldConfig { endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); diff --git a/patches/server/0214-Add-compass-command.patch b/patches/server/0214-Add-compass-command.patch index d0e2fc5cd..b2ffbdf53 100644 --- a/patches/server/0214-Add-compass-command.patch +++ b/patches/server/0214-Add-compass-command.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add compass command diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 4c243155b4a4a5f69bcf0558574ac31b35bea971..e61a05c91e6e567b9c5b99f460bd96ca4da6c4e8 100644 +index e787ccc3c21f7e966c1e291579bf7550ee6de696..a4ec8c35c1870810c11e81e79c3b191c4f440f35 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java @@ -210,6 +210,7 @@ public class Commands { @@ -89,10 +89,10 @@ index e230f65d8599f1d6f8c567227859935a905426f8..a75db67d2ed1d3440903396181b4cd6c hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aee40fd438225fa5eb0b023ed047eb95136f2093..619d1295836ac51ff5b5bc8400ee59f296788455 100644 +index 32a6fe5fcbc25fb62e6819dbb013efc0f7284cfe..b511b77c8b66cdb612934c220c32ac0b1a12cee5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -176,6 +176,7 @@ public class PurpurWorldConfig { +@@ -187,6 +187,7 @@ public class PurpurWorldConfig { public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; @@ -100,7 +100,7 @@ index aee40fd438225fa5eb0b023ed047eb95136f2093..619d1295836ac51ff5b5bc8400ee59f2 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -221,6 +222,7 @@ public class PurpurWorldConfig { +@@ -232,6 +233,7 @@ public class PurpurWorldConfig { enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); diff --git a/patches/server/0215-Config-to-prevent-horses-from-standing-with-riders.patch b/patches/server/0215-Config-to-prevent-horses-from-standing-with-riders.patch index 28b3ab0c2..0def7c831 100644 --- a/patches/server/0215-Config-to-prevent-horses-from-standing-with-riders.patch +++ b/patches/server/0215-Config-to-prevent-horses-from-standing-with-riders.patch @@ -20,10 +20,10 @@ index 0be0c81f2b0a58eba75eb8559f78d8a58014d0ae..f7088aaf65ee5725e928845a63485211 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 619d1295836ac51ff5b5bc8400ee59f296788455..7459e7bc62bfd4a6f97f7ed62a11de47c3d0a82c 100644 +index b511b77c8b66cdb612934c220c32ac0b1a12cee5..dba79d94d13c128e5ed4a193cc94df71b901f021 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1453,6 +1453,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1464,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -31,7 +31,7 @@ index 619d1295836ac51ff5b5bc8400ee59f296788455..7459e7bc62bfd4a6f97f7ed62a11de47 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1470,6 +1471,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1482,7 @@ public class PurpurWorldConfig { horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); diff --git a/patches/server/0216-Toggle-for-kinetic-damage.patch b/patches/server/0216-Toggle-for-kinetic-damage.patch index 815a6a6d3..95feb5fc2 100644 --- a/patches/server/0216-Toggle-for-kinetic-damage.patch +++ b/patches/server/0216-Toggle-for-kinetic-damage.patch @@ -22,10 +22,10 @@ index 953c27e0ea5bc5d38f24cf69d40bb80dcb33da91..b6022415925d365931a1110f727d5a22 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7459e7bc62bfd4a6f97f7ed62a11de47c3d0a82c..defa4da1a8fbe788b8c6f0b1dd998def78ea4821 100644 +index dba79d94d13c128e5ed4a193cc94df71b901f021..5108818ac3d4072b8ae09a5f61167c6c893777d2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -138,12 +138,14 @@ public class PurpurWorldConfig { +@@ -149,12 +149,14 @@ public class PurpurWorldConfig { public boolean elytraIgnoreUnbreaking = false; public int elytraDamagePerFireworkBoost = 0; public int elytraDamagePerTridentBoost = 0; diff --git a/patches/server/0217-Add-Option-for-disable-observer-clocks.patch b/patches/server/0217-Add-Option-for-disable-observer-clocks.patch index 94759f632..6bb301304 100644 --- a/patches/server/0217-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0217-Add-Option-for-disable-observer-clocks.patch @@ -18,10 +18,10 @@ index 4a34a08a1d46e4d3020644a51d9e30a36a18791a..be28b5aba28383058548cfb68f982664 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index defa4da1a8fbe788b8c6f0b1dd998def78ea4821..0da814c002dc9c4419db4e022a9c5dfb1ad94fd7 100644 +index 5108818ac3d4072b8ae09a5f61167c6c893777d2..d9f55a1e7f8955abbfa7e387f706fec121181389 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -321,6 +321,11 @@ public class PurpurWorldConfig { +@@ -332,6 +332,11 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0219-Option-for-sponges-to-work-on-lava.patch b/patches/server/0219-Option-for-sponges-to-work-on-lava.patch index 82866a0ab..6599c26dc 100644 --- a/patches/server/0219-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0219-Option-for-sponges-to-work-on-lava.patch @@ -18,10 +18,10 @@ index 97b4e3c0d2b1bbde77b135b8595c3bfa190a14cb..02b98cfe47d5d2f3c362a84c6b05e734 ++i; if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d875224b179239773697d079091fc2bb97b5cf1e..a87399446cf56eec799c4aca5afc0db32e612d4c 100644 +index e2e3f5dacd8560166b989c334ae12783a809718d..98f73a828a09b1ed268e15ca6c44826fc162b94c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -912,9 +912,11 @@ public class PurpurWorldConfig { +@@ -923,9 +923,11 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 64; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0221-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0221-Cactus-breaks-from-solid-neighbors-config.patch index 667db0c83..743f1b037 100644 --- a/patches/server/0221-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0221-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index fa36ad3bb63764778aa7201d90e331e64292c7b4..dfa06b3c7323aeb12b1e234ca27c924a return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6c5996d72138e5d4e52bd82584ce1035d1b74daf..e619681d6255f975ff40c30be173cfafa8a94f07 100644 +index c9668283c02d7b3c7dd1d90e422730991a24bdc9..776d856acffb80f3f9beaf9e982e10514785e90f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -728,6 +728,11 @@ public class PurpurWorldConfig { +@@ -739,6 +739,11 @@ public class PurpurWorldConfig { buddingAmethystSilkTouch = getBoolean("blocks.budding_amethyst.silk-touch", buddingAmethystSilkTouch); } diff --git a/patches/server/0222-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0222-Config-to-remove-curse-of-binding-with-weakness.patch index 7f4ca09ee..62493cb50 100644 --- a/patches/server/0222-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0222-Config-to-remove-curse-of-binding-with-weakness.patch @@ -26,10 +26,10 @@ index 111da6398bb561e58571e47743088ce80416234d..0a2c776b9b1da7d0d4481dd527e0068b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e619681d6255f975ff40c30be173cfafa8a94f07..ed96c5d8f5878b5cfeefa5561620b151fec16dcc 100644 +index 776d856acffb80f3f9beaf9e982e10514785e90f..dc89efce781a7832579cdeae04ca71b094e55283 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -359,6 +359,7 @@ public class PurpurWorldConfig { +@@ -370,6 +370,7 @@ public class PurpurWorldConfig { public boolean playerArmorSwapping = false; public boolean playerArmorSwappingCreativeMakesCopy = true; public boolean playerRidableInWater = false; @@ -37,7 +37,7 @@ index e619681d6255f975ff40c30be173cfafa8a94f07..ed96c5d8f5878b5cfeefa5561620b151 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -385,6 +386,7 @@ public class PurpurWorldConfig { +@@ -396,6 +397,7 @@ public class PurpurWorldConfig { playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); diff --git a/patches/server/0225-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0225-Config-to-allow-mobs-to-pathfind-over-rails.patch index 0ec0cd263..e2af0ed6d 100644 --- a/patches/server/0225-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0225-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -18,10 +18,10 @@ index d7bdf3c2a5b99ff7adb3e960ff356a1fad169de0..3ca846cc78ec2ac8c9f840a9ac7f0b87 if (node != null && (node.type == BlockPathTypes.OPEN || node.type == BlockPathTypes.WALKABLE) && this.mob.getBbWidth() < 1.0F) { double g = (double)(x - direction.getStepX()) + 0.5D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cefa14726dfc69c3d544e92a6373672e09a4c8d3..15b4894d6a4da9cbb8414835f772851675d184f9 100644 +index 8353b594f72c9c9df7affc3aaf31483d941c4301..c86e8d3c1e0e57c08f8640229cd7a3317eaacb2c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -654,6 +654,7 @@ public class PurpurWorldConfig { +@@ -665,6 +665,7 @@ public class PurpurWorldConfig { public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -29,7 +29,7 @@ index cefa14726dfc69c3d544e92a6373672e09a4c8d3..15b4894d6a4da9cbb8414835f7728516 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -675,6 +676,7 @@ public class PurpurWorldConfig { +@@ -686,6 +687,7 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); diff --git a/patches/server/0226-Shulker-change-color-with-dye.patch b/patches/server/0226-Shulker-change-color-with-dye.patch index 769944846..83c18de79 100644 --- a/patches/server/0226-Shulker-change-color-with-dye.patch +++ b/patches/server/0226-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index ec7c5f638573ee331112d91cdfaa8511801c6891..e9f4a1de40ab4d7a82d4f222b4aba0aa @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 15b4894d6a4da9cbb8414835f772851675d184f9..93e14812e93a668326a67755cfe37c015972129c 100644 +index c86e8d3c1e0e57c08f8640229cd7a3317eaacb2c..4599c6850b3dab16fee69a2cef637c742fe99db2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1986,6 +1986,7 @@ public class PurpurWorldConfig { +@@ -1997,6 +1997,7 @@ public class PurpurWorldConfig { public double shulkerSpawnFromBulletNearbyRange = 8.0D; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; @@ -58,7 +58,7 @@ index 15b4894d6a4da9cbb8414835f772851675d184f9..93e14812e93a668326a67755cfe37c01 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2001,6 +2002,7 @@ public class PurpurWorldConfig { +@@ -2012,6 +2013,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange); shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); diff --git a/patches/server/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index bcbd28c38..f51a7e5de 100644 --- a/patches/server/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0229-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -25,10 +25,10 @@ index 5a42fde11c219a1572bf31663487ff1fff0d1312..8994844b6519082244fe95c1ba72dc81 // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 93e14812e93a668326a67755cfe37c015972129c..2f4fb33eb1e34399fbb974cbc4c080f45943212e 100644 +index 4599c6850b3dab16fee69a2cef637c742fe99db2..717c28ad671d04e8190c9aac8bac655c68872662 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -655,6 +655,8 @@ public class PurpurWorldConfig { +@@ -666,6 +666,8 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean mobsIgnoreRails = false; @@ -37,7 +37,7 @@ index 93e14812e93a668326a67755cfe37c015972129c..2f4fb33eb1e34399fbb974cbc4c080f4 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -677,6 +679,8 @@ public class PurpurWorldConfig { +@@ -688,6 +690,8 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); diff --git a/patches/server/0230-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0230-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 653311259..f225a954d 100644 --- a/patches/server/0230-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0230-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,10 +45,10 @@ index 71e494b949541284b0642dae4b20a6b3ec459828..625ad12e43cc651c986a3b45ce9a7c5b public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of(Material.MOSS, MaterialColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS))); public static final Block BIG_DRIPLEAF = register("big_dripleaf", new BigDripleafBlock(BlockBehaviour.Properties.of(Material.PLANT).strength(0.1F).sound(SoundType.BIG_DRIPLEAF))); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2f4fb33eb1e34399fbb974cbc4c080f45943212e..951aeea89bc70ebeeb0bfef829096ba1de1c3e5b 100644 +index 717c28ad671d04e8190c9aac8bac655c68872662..e677f000997f200720961acd3a342401a61e3f67 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -688,6 +688,11 @@ public class PurpurWorldConfig { +@@ -699,6 +699,11 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } @@ -60,7 +60,7 @@ index 2f4fb33eb1e34399fbb974cbc4c080f45943212e..951aeea89bc70ebeeb0bfef829096ba1 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -817,6 +822,11 @@ public class PurpurWorldConfig { +@@ -828,6 +833,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } diff --git a/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch index 8de6b0119..47eb4923f 100644 --- a/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0231-Shift-right-click-to-use-exp-for-mending.patch @@ -48,10 +48,10 @@ index 2cbef1eca4a7e95b00773415ccaca7741ed860c8..0174e5cdfa34ff63949b72e5452e0ae6 cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 951aeea89bc70ebeeb0bfef829096ba1de1c3e5b..d04d0105d2d04a93ab09b390e85f9d7bdfdbbf4e 100644 +index e677f000997f200720961acd3a342401a61e3f67..c63487a2203d2a4dd5553a46114859f98688c060 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -360,6 +360,7 @@ public class PurpurWorldConfig { +@@ -371,6 +371,7 @@ public class PurpurWorldConfig { public boolean playerArmorSwappingCreativeMakesCopy = true; public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; @@ -59,7 +59,7 @@ index 951aeea89bc70ebeeb0bfef829096ba1de1c3e5b..d04d0105d2d04a93ab09b390e85f9d7b private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -387,6 +388,7 @@ public class PurpurWorldConfig { +@@ -398,6 +399,7 @@ public class PurpurWorldConfig { playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); diff --git a/patches/server/0232-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0232-Dolphins-naturally-aggressive-to-players-chance.patch index aae534074..8e18a7f65 100644 --- a/patches/server/0232-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0232-Dolphins-naturally-aggressive-to-players-chance.patch @@ -47,10 +47,10 @@ index 49e5a753aae7d72102ee700f3d8309f2f488cc12..022441af276cd9facba1ee4013d9d367 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d04d0105d2d04a93ab09b390e85f9d7bdfdbbf4e..c0538bf713edcc9166b9a8558112bab3f2cfa831 100644 +index c63487a2203d2a4dd5553a46114859f98688c060..fab223ec8f38aa32d4ab7903b6ab325de79983bd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1169,6 +1169,7 @@ public class PurpurWorldConfig { +@@ -1180,6 +1180,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index d04d0105d2d04a93ab09b390e85f9d7bdfdbbf4e..c0538bf713edcc9166b9a8558112bab3 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -1182,6 +1183,7 @@ public class PurpurWorldConfig { +@@ -1193,6 +1194,7 @@ public class PurpurWorldConfig { dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); diff --git a/patches/server/0233-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0233-Cows-naturally-aggressive-to-players-chance.patch index 158965583..1d01ab543 100644 --- a/patches/server/0233-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0233-Cows-naturally-aggressive-to-players-chance.patch @@ -59,10 +59,10 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c0538bf713edcc9166b9a8558112bab3f2cfa831..7106b9525e7c01b66bb16161641cd772a0c3bd8b 100644 +index fab223ec8f38aa32d4ab7903b6ab325de79983bd..aaf9c02ee84c9982fabd1b52a688be08ad63c45e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1122,7 +1122,14 @@ public class PurpurWorldConfig { +@@ -1133,7 +1133,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -77,7 +77,7 @@ index c0538bf713edcc9166b9a8558112bab3f2cfa831..7106b9525e7c01b66bb16161641cd772 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); if (PurpurConfig.version < 10) { -@@ -1134,6 +1141,8 @@ public class PurpurWorldConfig { +@@ -1145,6 +1152,8 @@ public class PurpurWorldConfig { cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); diff --git a/patches/server/0234-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0234-Option-for-beds-to-explode-on-villager-sleep.patch index 9dfbee25e..8c9227bfd 100644 --- a/patches/server/0234-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0234-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index fae4a7c79baac15a06b737b6081956a55b024c8d..e95210c6deee2c6431ef01d239531744 this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level.getGameTime()); // CraftBukkit - decompile error this.brain.eraseMemory(MemoryModuleType.WALK_TARGET); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7106b9525e7c01b66bb16161641cd772a0c3bd8b..fcb9c9139ea8dc0de141688462d15815fb838b69 100644 +index aaf9c02ee84c9982fabd1b52a688be08ad63c45e..2ff8ce72bca33f9dc23e646e59dcfda247931bb6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -707,11 +707,13 @@ public class PurpurWorldConfig { +@@ -718,11 +718,13 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; diff --git a/patches/server/0235-Halloween-options-and-optimizations.patch b/patches/server/0235-Halloween-options-and-optimizations.patch index 3da967a91..a5bf6919a 100644 --- a/patches/server/0235-Halloween-options-and-optimizations.patch +++ b/patches/server/0235-Halloween-options-and-optimizations.patch @@ -60,10 +60,10 @@ index 735ecd9d768b9e579142810d5f03093dafad0fa3..cb5a04aacf5e9f0f024f3a1c3a38dd88 this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fcb9c9139ea8dc0de141688462d15815fb838b69..6501dd086fe3d5be6f30c44da347fbd13d39286d 100644 +index 2ff8ce72bca33f9dc23e646e59dcfda247931bb6..a63e351570d300287e7d194a664565f0a31e1870 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1473,6 +1473,13 @@ public class PurpurWorldConfig { +@@ -1484,6 +1484,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0238-Campfire-option-for-lit-when-placed.patch b/patches/server/0238-Campfire-option-for-lit-when-placed.patch index c567e9bba..8740561cb 100644 --- a/patches/server/0238-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0238-Campfire-option-for-lit-when-placed.patch @@ -18,10 +18,10 @@ index 0b60b545271e62df86a0eb3c1f0f315a014b24cd..44df9e5034887c756c00bdcfb3ea04d4 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6501dd086fe3d5be6f30c44da347fbd13d39286d..eb6c34cd8da95546e1f2203d4b0144c828158367 100644 +index a63e351570d300287e7d194a664565f0a31e1870..308812b497b37ff63a8ad432b613dadbb6174d2c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -951,6 +951,11 @@ public class PurpurWorldConfig { +@@ -962,6 +962,11 @@ public class PurpurWorldConfig { stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage); } diff --git a/patches/server/0239-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0239-options-to-extinguish-fire-blocks-with-snowballs.patch index 282bcd6eb..f28029d22 100644 --- a/patches/server/0239-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0239-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,10 +46,10 @@ index d5d84893c77b4e60a19032d765d76bfd24cbbb2b..ef265cec066ef3b84c2b3a4929af5183 protected void onHit(HitResult hitResult) { super.onHit(hitResult); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eb6c34cd8da95546e1f2203d4b0144c828158367..70ee58e7e4c388a38607e7810b950a14dee193c3 100644 +index 308812b497b37ff63a8ad432b613dadbb6174d2c..9fefff78b7a19d0c4e54d66bdc11572225d6964e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -179,6 +179,9 @@ public class PurpurWorldConfig { +@@ -190,6 +190,9 @@ public class PurpurWorldConfig { public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; public boolean compassItemShowsBossBar = false; @@ -59,7 +59,7 @@ index eb6c34cd8da95546e1f2203d4b0144c828158367..70ee58e7e4c388a38607e7810b950a14 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -225,6 +228,9 @@ public class PurpurWorldConfig { +@@ -236,6 +239,9 @@ public class PurpurWorldConfig { glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); compassItemShowsBossBar = getBoolean("gameplay-mechanics.item.compass.holding-shows-bossbar", compassItemShowsBossBar); diff --git a/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch index 215a3f6bd..50c98b567 100644 --- a/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0241-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -200,10 +200,10 @@ index 5601d0c2fe635a2a4f073c333531e1a8adf1833c..9e7d2fbdfa89736807d2025a5814ddd8 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 460bbbc01b058d173e189e1ad944d2f458a9e069..bf956c5b062ae21040d58f55abe6a50be2ee3a08 100644 +index 81c7ee5b026a47161fa391374be876422dd6e0d6..7eae9d42b795b33c68525854b699f19df1f54739 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -654,6 +654,7 @@ public class PurpurWorldConfig { +@@ -665,6 +665,7 @@ public class PurpurWorldConfig { public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; @@ -211,7 +211,7 @@ index 460bbbc01b058d173e189e1ad944d2f458a9e069..bf956c5b062ae21040d58f55abe6a50b public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; public double mobsBlindnessMultiplier = 1; -@@ -677,6 +678,7 @@ public class PurpurWorldConfig { +@@ -688,6 +689,7 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); diff --git a/patches/server/0242-Signs-allow-color-codes.patch b/patches/server/0242-Signs-allow-color-codes.patch index 9b644a72e..937a6778e 100644 --- a/patches/server/0242-Signs-allow-color-codes.patch +++ b/patches/server/0242-Signs-allow-color-codes.patch @@ -70,10 +70,10 @@ index 6371176fba41218a209ea59b4cafe5b2d4a685fd..7666bca74f4f68bb4e902ec2eb7c4895 public CompoundTag getUpdateTag() { return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bf956c5b062ae21040d58f55abe6a50be2ee3a08..9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba 100644 +index 7eae9d42b795b33c68525854b699f19df1f54739..1e91cdc71c02261c68bcbabd592dc481a8d935f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -926,8 +926,10 @@ public class PurpurWorldConfig { +@@ -937,8 +937,10 @@ public class PurpurWorldConfig { } public boolean signRightClickEdit = false; diff --git a/patches/server/0243-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0243-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch index 69f935e7b..bd57e70d0 100644 --- a/patches/server/0243-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch +++ b/patches/server/0243-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch @@ -131,10 +131,10 @@ index 35b2bad76c45b5a94ba7f2e9c7a8cfeb8c3f498b..913818656f058990270ed1e4303da1c4 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9a6491f7a3f10a9a0eb0b369b8d1dc26067a0aba..9938ec945282ec726f720abb140743f9bc1f1834 100644 +index 1e91cdc71c02261c68bcbabd592dc481a8d935f3..31896c8f2e76bfd3d29f78a4e7569b04e11fb7c0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -768,6 +768,41 @@ public class PurpurWorldConfig { +@@ -779,6 +779,41 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0244-Mobs-always-drop-experience.patch b/patches/server/0244-Mobs-always-drop-experience.patch index 0d4491b63..01fdfb5cd 100644 --- a/patches/server/0244-Mobs-always-drop-experience.patch +++ b/patches/server/0244-Mobs-always-drop-experience.patch @@ -1157,10 +1157,10 @@ index 1a8df13b06b1ac5e5a7d63033b4a53261c779eda..8be025b735cea47ab3ce6c6b2aef052e @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f7debdeb6 100644 +index 31896c8f2e76bfd3d29f78a4e7569b04e11fb7c0..f4bd1f5bcfcba3d92c1c3d340b437727ae6dbdb3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1014,11 +1014,13 @@ public class PurpurWorldConfig { +@@ -1025,11 +1025,13 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1174,7 +1174,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean batRidable = false; -@@ -1033,6 +1035,7 @@ public class PurpurWorldConfig { +@@ -1044,6 +1046,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1182,7 +1182,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1044,6 +1047,7 @@ public class PurpurWorldConfig { +@@ -1055,6 +1058,7 @@ public class PurpurWorldConfig { } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1190,7 +1190,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean beeRidable = false; -@@ -1054,6 +1058,7 @@ public class PurpurWorldConfig { +@@ -1065,6 +1069,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1198,7 +1198,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1068,6 +1073,7 @@ public class PurpurWorldConfig { +@@ -1079,6 +1084,7 @@ public class PurpurWorldConfig { beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); @@ -1206,7 +1206,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean blazeRidable = false; -@@ -1075,6 +1081,7 @@ public class PurpurWorldConfig { +@@ -1086,6 +1092,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 256D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1214,7 +1214,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1086,6 +1093,7 @@ public class PurpurWorldConfig { +@@ -1097,6 +1104,7 @@ public class PurpurWorldConfig { } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1222,7 +1222,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean catRidable = false; -@@ -1097,6 +1105,7 @@ public class PurpurWorldConfig { +@@ -1108,6 +1116,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public boolean catTakeDamageFromWater = false; @@ -1230,7 +1230,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1116,12 +1125,14 @@ public class PurpurWorldConfig { +@@ -1127,12 +1136,14 @@ public class PurpurWorldConfig { catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1245,7 +1245,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1132,6 +1143,7 @@ public class PurpurWorldConfig { +@@ -1143,6 +1154,7 @@ public class PurpurWorldConfig { } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1253,7 +1253,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean chickenRidable = false; -@@ -1140,6 +1152,7 @@ public class PurpurWorldConfig { +@@ -1151,6 +1163,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1261,7 +1261,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1152,11 +1165,13 @@ public class PurpurWorldConfig { +@@ -1163,11 +1176,13 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); @@ -1275,7 +1275,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); if (PurpurConfig.version < 10) { -@@ -1166,6 +1181,7 @@ public class PurpurWorldConfig { +@@ -1177,6 +1192,7 @@ public class PurpurWorldConfig { } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1283,7 +1283,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean cowRidable = false; -@@ -1176,6 +1192,7 @@ public class PurpurWorldConfig { +@@ -1187,6 +1203,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1291,7 +1291,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1195,6 +1212,7 @@ public class PurpurWorldConfig { +@@ -1206,6 +1223,7 @@ public class PurpurWorldConfig { cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); @@ -1299,7 +1299,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean creeperRidable = false; -@@ -1206,6 +1224,7 @@ public class PurpurWorldConfig { +@@ -1217,6 +1235,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1307,7 +1307,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1221,6 +1240,7 @@ public class PurpurWorldConfig { +@@ -1232,6 +1251,7 @@ public class PurpurWorldConfig { creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); @@ -1315,7 +1315,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean dolphinRidable = false; -@@ -1231,6 +1251,7 @@ public class PurpurWorldConfig { +@@ -1242,6 +1262,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1323,7 +1323,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown); -@@ -1245,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1256,6 +1277,7 @@ public class PurpurWorldConfig { dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); @@ -1331,7 +1331,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean donkeyRidableInWater = false; -@@ -1256,6 +1278,7 @@ public class PurpurWorldConfig { +@@ -1267,6 +1289,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1339,7 +1339,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1273,6 +1296,7 @@ public class PurpurWorldConfig { +@@ -1284,6 +1307,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); @@ -1347,7 +1347,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean drownedRidable = false; -@@ -1284,6 +1308,7 @@ public class PurpurWorldConfig { +@@ -1295,6 +1319,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1355,7 +1355,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1299,11 +1324,13 @@ public class PurpurWorldConfig { +@@ -1310,11 +1335,13 @@ public class PurpurWorldConfig { drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); @@ -1369,7 +1369,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); if (PurpurConfig.version < 10) { -@@ -1313,6 +1340,7 @@ public class PurpurWorldConfig { +@@ -1324,6 +1351,7 @@ public class PurpurWorldConfig { } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1377,7 +1377,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean enderDragonRidable = false; -@@ -1355,6 +1383,7 @@ public class PurpurWorldConfig { +@@ -1366,6 +1394,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1385,7 +1385,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1377,12 +1406,14 @@ public class PurpurWorldConfig { +@@ -1388,12 +1417,14 @@ public class PurpurWorldConfig { endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1400,7 +1400,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1393,6 +1424,7 @@ public class PurpurWorldConfig { +@@ -1404,6 +1435,7 @@ public class PurpurWorldConfig { } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1408,7 +1408,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean evokerRidable = false; -@@ -1400,6 +1432,7 @@ public class PurpurWorldConfig { +@@ -1411,6 +1443,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1416,7 +1416,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1411,6 +1444,7 @@ public class PurpurWorldConfig { +@@ -1422,6 +1455,7 @@ public class PurpurWorldConfig { evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1424,7 +1424,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean foxRidable = false; -@@ -1420,6 +1454,7 @@ public class PurpurWorldConfig { +@@ -1431,6 +1465,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1432,7 +1432,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1433,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1444,6 +1479,7 @@ public class PurpurWorldConfig { foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); @@ -1440,7 +1440,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean ghastRidable = false; -@@ -1440,6 +1476,7 @@ public class PurpurWorldConfig { +@@ -1451,6 +1487,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 256D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1448,7 +1448,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1451,6 +1488,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1499,7 @@ public class PurpurWorldConfig { } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1456,7 +1456,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean giantRidable = false; -@@ -1463,6 +1501,7 @@ public class PurpurWorldConfig { +@@ -1474,6 +1512,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1464,7 +1464,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1483,17 +1522,20 @@ public class PurpurWorldConfig { +@@ -1494,17 +1533,20 @@ public class PurpurWorldConfig { giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); @@ -1485,7 +1485,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean goatRidable = false; -@@ -1501,17 +1543,20 @@ public class PurpurWorldConfig { +@@ -1512,17 +1554,20 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1506,7 +1506,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); if (PurpurConfig.version < 10) { -@@ -1521,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1532,6 +1577,7 @@ public class PurpurWorldConfig { } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1514,7 +1514,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean forceHalloweenSeason = false; -@@ -1535,6 +1581,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1592,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1522,7 +1522,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1546,6 +1593,7 @@ public class PurpurWorldConfig { +@@ -1557,6 +1604,7 @@ public class PurpurWorldConfig { hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1530,7 +1530,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean horseRidableInWater = false; -@@ -1558,6 +1606,7 @@ public class PurpurWorldConfig { +@@ -1569,6 +1617,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -1538,7 +1538,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1576,6 +1625,7 @@ public class PurpurWorldConfig { +@@ -1587,6 +1636,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); @@ -1546,7 +1546,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean huskRidable = false; -@@ -1586,6 +1636,7 @@ public class PurpurWorldConfig { +@@ -1597,6 +1647,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1554,7 +1554,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1600,6 +1651,7 @@ public class PurpurWorldConfig { +@@ -1611,6 +1662,7 @@ public class PurpurWorldConfig { huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); @@ -1562,7 +1562,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean illusionerRidable = false; -@@ -1608,6 +1660,7 @@ public class PurpurWorldConfig { +@@ -1619,6 +1671,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1570,7 +1570,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1624,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1635,6 +1688,7 @@ public class PurpurWorldConfig { } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1578,7 +1578,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean ironGolemRidable = false; -@@ -1632,6 +1686,7 @@ public class PurpurWorldConfig { +@@ -1643,6 +1697,7 @@ public class PurpurWorldConfig { public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; @@ -1586,7 +1586,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1644,6 +1699,7 @@ public class PurpurWorldConfig { +@@ -1655,6 +1710,7 @@ public class PurpurWorldConfig { ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); @@ -1594,7 +1594,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean llamaRidable = false; -@@ -1657,6 +1713,7 @@ public class PurpurWorldConfig { +@@ -1668,6 +1724,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1602,7 +1602,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1676,12 +1733,14 @@ public class PurpurWorldConfig { +@@ -1687,12 +1744,14 @@ public class PurpurWorldConfig { llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); @@ -1617,7 +1617,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1692,6 +1751,7 @@ public class PurpurWorldConfig { +@@ -1703,6 +1762,7 @@ public class PurpurWorldConfig { } magmaCubeMaxHealth = getString("mobs.magma_cube.attributes.max_health", magmaCubeMaxHealth); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1625,7 +1625,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean mooshroomRidable = false; -@@ -1699,6 +1759,7 @@ public class PurpurWorldConfig { +@@ -1710,6 +1770,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1633,7 +1633,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1710,6 +1771,7 @@ public class PurpurWorldConfig { +@@ -1721,6 +1782,7 @@ public class PurpurWorldConfig { mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1641,7 +1641,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean muleRidableInWater = false; -@@ -1721,6 +1783,7 @@ public class PurpurWorldConfig { +@@ -1732,6 +1794,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1649,7 +1649,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1738,6 +1801,7 @@ public class PurpurWorldConfig { +@@ -1749,6 +1812,7 @@ public class PurpurWorldConfig { muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); @@ -1657,7 +1657,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean ocelotRidable = false; -@@ -1745,6 +1809,7 @@ public class PurpurWorldConfig { +@@ -1756,6 +1820,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1665,7 +1665,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1756,6 +1821,7 @@ public class PurpurWorldConfig { +@@ -1767,6 +1832,7 @@ public class PurpurWorldConfig { ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1673,7 +1673,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean pandaRidable = false; -@@ -1763,6 +1829,7 @@ public class PurpurWorldConfig { +@@ -1774,6 +1840,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1681,7 +1681,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1774,6 +1841,7 @@ public class PurpurWorldConfig { +@@ -1785,6 +1852,7 @@ public class PurpurWorldConfig { pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1689,7 +1689,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean parrotRidable = false; -@@ -1782,6 +1850,7 @@ public class PurpurWorldConfig { +@@ -1793,6 +1861,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1697,7 +1697,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1794,6 +1863,7 @@ public class PurpurWorldConfig { +@@ -1805,6 +1874,7 @@ public class PurpurWorldConfig { parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1705,7 +1705,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean phantomRidable = false; -@@ -1823,6 +1893,7 @@ public class PurpurWorldConfig { +@@ -1834,6 +1904,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomTakeDamageFromWater = false; @@ -1713,7 +1713,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1856,6 +1927,7 @@ public class PurpurWorldConfig { +@@ -1867,6 +1938,7 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); @@ -1721,7 +1721,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean pigRidable = false; -@@ -1864,6 +1936,7 @@ public class PurpurWorldConfig { +@@ -1875,6 +1947,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1729,7 +1729,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1876,6 +1949,7 @@ public class PurpurWorldConfig { +@@ -1887,6 +1960,7 @@ public class PurpurWorldConfig { pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); @@ -1737,7 +1737,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean piglinRidable = false; -@@ -1884,6 +1958,7 @@ public class PurpurWorldConfig { +@@ -1895,6 +1969,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1745,7 +1745,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1896,12 +1971,14 @@ public class PurpurWorldConfig { +@@ -1907,12 +1982,14 @@ public class PurpurWorldConfig { piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); @@ -1760,7 +1760,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1912,6 +1989,7 @@ public class PurpurWorldConfig { +@@ -1923,6 +2000,7 @@ public class PurpurWorldConfig { } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1768,7 +1768,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean pillagerRidable = false; -@@ -1919,6 +1997,7 @@ public class PurpurWorldConfig { +@@ -1930,6 +2008,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1776,7 +1776,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1930,6 +2009,7 @@ public class PurpurWorldConfig { +@@ -1941,6 +2020,7 @@ public class PurpurWorldConfig { pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1784,7 +1784,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean polarBearRidable = false; -@@ -1939,6 +2019,7 @@ public class PurpurWorldConfig { +@@ -1950,6 +2030,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1792,7 +1792,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1953,11 +2034,13 @@ public class PurpurWorldConfig { +@@ -1964,11 +2045,13 @@ public class PurpurWorldConfig { if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); @@ -1806,7 +1806,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); if (PurpurConfig.version < 10) { -@@ -1967,6 +2050,7 @@ public class PurpurWorldConfig { +@@ -1978,6 +2061,7 @@ public class PurpurWorldConfig { } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1814,7 +1814,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean rabbitRidable = false; -@@ -1977,6 +2061,7 @@ public class PurpurWorldConfig { +@@ -1988,6 +2072,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1822,7 +1822,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1991,6 +2076,7 @@ public class PurpurWorldConfig { +@@ -2002,6 +2087,7 @@ public class PurpurWorldConfig { rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); @@ -1830,7 +1830,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean ravagerRidable = false; -@@ -1999,6 +2085,7 @@ public class PurpurWorldConfig { +@@ -2010,6 +2096,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1838,7 +1838,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2027,11 +2114,13 @@ public class PurpurWorldConfig { +@@ -2038,11 +2125,13 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1852,7 +1852,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); if (PurpurConfig.version < 10) { -@@ -2041,6 +2130,7 @@ public class PurpurWorldConfig { +@@ -2052,6 +2141,7 @@ public class PurpurWorldConfig { } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1860,7 +1860,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean sheepRidable = false; -@@ -2049,6 +2139,7 @@ public class PurpurWorldConfig { +@@ -2060,6 +2150,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1868,7 +1868,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2061,6 +2152,7 @@ public class PurpurWorldConfig { +@@ -2072,6 +2163,7 @@ public class PurpurWorldConfig { sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); @@ -1876,7 +1876,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean shulkerRidable = false; -@@ -2073,6 +2165,7 @@ public class PurpurWorldConfig { +@@ -2084,6 +2176,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1884,7 +1884,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2089,6 +2182,7 @@ public class PurpurWorldConfig { +@@ -2100,6 +2193,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); @@ -1892,7 +1892,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean silverfishRidable = false; -@@ -2096,6 +2190,7 @@ public class PurpurWorldConfig { +@@ -2107,6 +2201,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1900,7 +1900,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2107,12 +2202,14 @@ public class PurpurWorldConfig { +@@ -2118,12 +2213,14 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1915,7 +1915,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2123,6 +2220,7 @@ public class PurpurWorldConfig { +@@ -2134,6 +2231,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1923,7 +1923,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean skeletonHorseRidableInWater = true; -@@ -2134,6 +2232,7 @@ public class PurpurWorldConfig { +@@ -2145,6 +2243,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1931,7 +1931,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2150,6 +2249,7 @@ public class PurpurWorldConfig { +@@ -2161,6 +2260,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1939,7 +1939,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean slimeRidable = false; -@@ -2157,6 +2257,7 @@ public class PurpurWorldConfig { +@@ -2168,6 +2268,7 @@ public class PurpurWorldConfig { public String slimeMaxHealth = "size * size"; public Map slimeMaxHealthCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1947,7 +1947,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2168,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2179,6 +2280,7 @@ public class PurpurWorldConfig { slimeMaxHealth = getString("mobs.slime.attributes.max_health", slimeMaxHealth); slimeMaxHealthCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1955,7 +1955,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean snowGolemRidable = false; -@@ -2182,6 +2284,7 @@ public class PurpurWorldConfig { +@@ -2193,6 +2295,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1963,7 +1963,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2200,6 +2303,7 @@ public class PurpurWorldConfig { +@@ -2211,6 +2314,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1971,7 +1971,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean squidRidable = false; -@@ -2208,6 +2312,7 @@ public class PurpurWorldConfig { +@@ -2219,6 +2323,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1979,7 +1979,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); if (PurpurConfig.version < 10) { -@@ -2220,12 +2325,14 @@ public class PurpurWorldConfig { +@@ -2231,12 +2336,14 @@ public class PurpurWorldConfig { squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); @@ -1994,7 +1994,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2236,12 +2343,14 @@ public class PurpurWorldConfig { +@@ -2247,12 +2354,14 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2009,7 +2009,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2252,6 +2361,7 @@ public class PurpurWorldConfig { +@@ -2263,6 +2372,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean striderRidable = false; -@@ -2260,6 +2370,7 @@ public class PurpurWorldConfig { +@@ -2271,6 +2381,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2025,7 +2025,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2272,6 +2383,7 @@ public class PurpurWorldConfig { +@@ -2283,6 +2394,7 @@ public class PurpurWorldConfig { striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f } public boolean traderLlamaRidable = false; -@@ -2284,6 +2396,7 @@ public class PurpurWorldConfig { +@@ -2295,6 +2407,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2041,7 +2041,7 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2302,11 +2415,13 @@ public class PurpurWorldConfig { +@@ -2313,11 +2426,13 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); @@ -2055,24 +2055,24 @@ index 9938ec945282ec726f720abb140743f9bc1f1834..3ab0c55db605c15ba3488b682b06ee8f private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); if (PurpurConfig.version < 10) { -@@ -2316,6 +2431,7 @@ public class PurpurWorldConfig { +@@ -2327,6 +2442,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); + tropicalFishAlwaysDropExp = getBoolean("mobs.tropical_fish.always-drop-exp", tropicalFishAlwaysDropExp); } - public boolean turtleEggsBypassMobGriefing = false; -@@ -2331,6 +2447,7 @@ public class PurpurWorldConfig { - public boolean turtleEggsBreakFromMinecarts = true; + public boolean turtleRidable = false; +@@ -2334,6 +2450,7 @@ public class PurpurWorldConfig { + public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; + public boolean turtleAlwaysDropExp = false; - private void turtleEggSettings() { + private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); @@ -2345,6 +2462,7 @@ public class PurpurWorldConfig { - turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); + turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); + turtleAlwaysDropExp = getBoolean("mobs.turtle.always-drop-exp", turtleAlwaysDropExp); diff --git a/patches/server/0247-Option-to-prevent-spiders-from-climbing-world-border.patch b/patches/server/0247-Option-to-prevent-spiders-from-climbing-world-border.patch index 68c97102c..6e9267949 100644 --- a/patches/server/0247-Option-to-prevent-spiders-from-climbing-world-border.patch +++ b/patches/server/0247-Option-to-prevent-spiders-from-climbing-world-border.patch @@ -39,10 +39,10 @@ index f85daf21ae3d77d2d56c131c6df9aa0715a306ca..6ef3cf19e5374631602e68d15ad431fc } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3ab0c55db605c15ba3488b682b06ee8f7debdeb6..68c2b381abecc4221b2ca250fdc9c04d994fce3e 100644 +index f4bd1f5bcfcba3d92c1c3d340b437727ae6dbdb3..2457bb0e46ccf80ca6f4b37bcbc609ae78043883 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2333,6 +2333,7 @@ public class PurpurWorldConfig { +@@ -2344,6 +2344,7 @@ public class PurpurWorldConfig { public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; public boolean spiderAlwaysDropExp = false; @@ -50,7 +50,7 @@ index 3ab0c55db605c15ba3488b682b06ee8f7debdeb6..68c2b381abecc4221b2ca250fdc9c04d private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2344,6 +2345,7 @@ public class PurpurWorldConfig { +@@ -2355,6 +2356,7 @@ public class PurpurWorldConfig { spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp); diff --git a/patches/server/0248-Ability-for-hoe-to-replant-crops.patch b/patches/server/0248-Ability-for-hoe-to-replant-crops.patch index aafb5788b..aaf191f89 100644 --- a/patches/server/0248-Ability-for-hoe-to-replant-crops.patch +++ b/patches/server/0248-Ability-for-hoe-to-replant-crops.patch @@ -40,10 +40,10 @@ index e054edf9e7c4eef231e155516433c6faeb2ca540..cf7bbe5516d9d1ae0115b3e03d54b932 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 68c2b381abecc4221b2ca250fdc9c04d994fce3e..ce8098e9058b9d401eab38db9052dedce0eebc42 100644 +index 2457bb0e46ccf80ca6f4b37bcbc609ae78043883..b22d1d0750b1e3972fe38a679b0dc7cdc5eaf28a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -499,6 +499,7 @@ public class PurpurWorldConfig { +@@ -510,6 +510,7 @@ public class PurpurWorldConfig { public Map axeWaxables = new HashMap<>(); public Map axeWeatherables = new HashMap<>(); public Map hoeTillables = new HashMap<>(); @@ -51,7 +51,7 @@ index 68c2b381abecc4221b2ca250fdc9c04d994fce3e..ce8098e9058b9d401eab38db9052dedc private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -640,6 +641,7 @@ public class PurpurWorldConfig { +@@ -651,6 +652,7 @@ public class PurpurWorldConfig { }); hoeTillables.put(block, new Tillable(condition, into, drops)); }); diff --git a/patches/server/0249-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0249-Shearing-jeb-produces-random-color-wool.patch index 4ee089a6b..912fbabbd 100644 --- a/patches/server/0249-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0249-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index 860e03111b29f9178a1cd361357985308a39d254..3e72abd93bc5b9f97c2bd62702273d63 if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ce8098e9058b9d401eab38db9052dedce0eebc42..cd51ac3d2b83353a7e4f77627dd4df1a264d3d2c 100644 +index b22d1d0750b1e3972fe38a679b0dc7cdc5eaf28a..e35bcaeacc666feeec5c668f3369776db360c7d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2142,6 +2142,7 @@ public class PurpurWorldConfig { +@@ -2153,6 +2153,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index ce8098e9058b9d401eab38db9052dedce0eebc42..cd51ac3d2b83353a7e4f77627dd4df1a private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2155,6 +2156,7 @@ public class PurpurWorldConfig { +@@ -2166,6 +2167,7 @@ public class PurpurWorldConfig { sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp); diff --git a/patches/server/0250-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0250-Turtle-eggs-random-tick-crack-chance.patch new file mode 100644 index 000000000..92a72086a --- /dev/null +++ b/patches/server/0250-Turtle-eggs-random-tick-crack-chance.patch @@ -0,0 +1,70 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Fri, 31 Dec 2021 06:18:54 -0600 +Subject: [PATCH] Turtle eggs random tick crack chance + + +diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +index 5b29f3fced5435e172dd69f6f4eb265e760b6454..f22be8ecef77ba73be758dce40acad6e93702fe4 100644 +--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +@@ -12,13 +12,11 @@ import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityType; + import net.minecraft.world.entity.ExperienceOrb; + import net.minecraft.world.entity.LivingEntity; +-import net.minecraft.world.entity.ambient.Bat; + import net.minecraft.world.entity.animal.Turtle; + import net.minecraft.world.entity.item.ItemEntity; + import net.minecraft.world.entity.monster.Zombie; + import net.minecraft.world.entity.player.Player; + import net.minecraft.world.entity.vehicle.AbstractMinecart; +-import net.minecraft.world.item.Item; + import net.minecraft.world.item.ItemStack; + import net.minecraft.world.item.context.BlockPlaceContext; + import net.minecraft.world.level.BlockGetter; +@@ -158,7 +156,7 @@ public class TurtleEggBlock extends Block { + private boolean shouldUpdateHatchLevel(Level world) { + float f = world.getTimeOfDay(1.0F); + +- return (double) f < 0.69D && (double) f > 0.65D ? true : world.random.nextInt(500) == 0; ++ return (double) f < 0.69D && (double) f > 0.65D ? true : world.random.nextInt(world.purpurConfig.turtleEggsRandomTickCrackChance) == 0; + } + + @Override +diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +index e35bcaeacc666feeec5c668f3369776db360c7d0..d600414555e076047a2114255538f0a2ab3fbd94 100644 +--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java ++++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +@@ -3,7 +3,6 @@ package org.purpurmc.purpur; + import net.minecraft.core.Registry; + import net.minecraft.resources.ResourceLocation; + import net.minecraft.server.level.ServerLevel; +-import net.minecraft.world.Difficulty; + import net.minecraft.world.item.DyeColor; + import net.minecraft.world.item.Item; + import net.minecraft.world.item.Items; +@@ -22,10 +21,8 @@ import org.bukkit.configuration.ConfigurationSection; + + import java.util.ArrayList; + import java.util.HashMap; +-import java.util.HashSet; + import java.util.List; + import java.util.Map; +-import java.util.Set; + import java.util.function.Predicate; + import java.util.logging.Level; + import static org.purpurmc.purpur.PurpurConfig.log; +@@ -104,11 +101,13 @@ public class PurpurWorldConfig { + public boolean turtleEggsBreakFromItems = true; + public boolean turtleEggsBreakFromMinecarts = true; + public boolean turtleEggsBypassMobGriefing = false; ++ public int turtleEggsRandomTickCrackChance = 500; + private void turtleEggSettings() { + turtleEggsBreakFromExpOrbs = getBoolean("blocks.turtle_egg.break-from-exp-orbs", turtleEggsBreakFromExpOrbs); + turtleEggsBreakFromItems = getBoolean("blocks.turtle_egg.break-from-items", turtleEggsBreakFromItems); + turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); + turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); ++ turtleEggsRandomTickCrackChance = getInt("blocks.turtle_egg.random-tick-crack-chance", turtleEggsRandomTickCrackChance); + } + + public float armorstandStepHeight = 0.0F;