From ac3a4695459042c004d853aec8eb86dc69039d27 Mon Sep 17 00:00:00 2001 From: granny Date: Tue, 21 Mar 2023 23:35:58 -0700 Subject: [PATCH] make sniffer health attributes configurable --- TODO.md | 2 +- ...-Configurable-entity-base-attributes.patch | 36 +++++++-- .../0025-Zombie-horse-naturally-spawn.patch | 6 +- ...0050-Villagers-follow-emerald-blocks.patch | 10 +-- .../0051-Allow-leashing-villagers.patch | 10 +-- .../0066-Configurable-jockey-options.patch | 14 ++-- patches/server/0075-Squid-EAR-immunity.patch | 6 +- .../0077-Configurable-villager-breeding.patch | 6 +- ...0-Add-vindicator-johnny-spawn-chance.patch | 6 +- ...Stop-squids-floating-on-top-of-water.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 6 +- ...sable-zombie-aggressiveness-towards-.patch | 6 +- patches/server/0096-Flying-squids-Oh-my.patch | 6 +- ...e-entity-breeding-times-configurable.patch | 35 ++++---- ...Villager-Clerics-to-farm-Nether-Wart.patch | 6 +- ...fied-Piglin-death-always-counting-as.patch | 6 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 6 +- ...16-Configurable-default-collar-color.patch | 6 +- .../0120-Striders-give-saddle-back.patch | 6 +- ...iefing-bypass-to-everything-affected.patch | 16 ++-- ...oggle-for-water-sensitive-mob-damage.patch | 72 ++++++++--------- ...ither-Ender-Dragon-can-ride-vehicles.patch | 6 +- ...0147-Add-config-for-villager-trading.patch | 10 +-- ...0-Config-for-wither-explosion-radius.patch | 6 +- ...onfigurable-hunger-starvation-damage.patch | 4 +- ...0197-Silk-touchable-budding-amethyst.patch | 4 +- ...izeable-Zombie-Villager-curing-times.patch | 6 +- ...0206-Toggle-for-Wither-s-spawn-sound.patch | 6 +- .../0209-Conduit-behavior-configuration.patch | 4 +- .../server/0210-Cauldron-fill-chances.patch | 4 +- ...ion-to-disable-zombie-villagers-cure.patch | 6 +- .../0230-Mobs-always-drop-experience.patch | 80 +++++++++---------- .../0236-Mob-head-visibility-percent.patch | 8 +- ...nfigurable-minimum-demand-for-trades.patch | 6 +- .../0249-Lobotomize-stuck-villagers.patch | 6 +- ...tion-for-villager-display-trade-item.patch | 6 +- ...urable-search-radius-for-villagers-t.patch | 6 +- .../server/0275-Remove-Mojang-Profiler.patch | 10 +-- 38 files changed, 238 insertions(+), 213 deletions(-) diff --git a/TODO.md b/TODO.md index cda4603aa..e88bee505 100644 --- a/TODO.md +++ b/TODO.md @@ -1,5 +1,5 @@ - [x] make Sniffer ridable -- [ ] give Sniffer entity attributes config +- [x] give Sniffer entity attributes config - [ ] fix ridables around water - [ ] test player ridable underwater - [ ] OPTIONAL: custom damage type instead of magic for scissors & stone cutter patch diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index 34ee2f933..3ce4e7ec4 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -34,7 +34,7 @@ index 7b1ca8fd2908b8a02ec2cd1966a31e06eaa2dd1f..b86329a18dc83073462049da975dd71b @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ff1bccf8c6a3b9adda11981b5d59bdfa82c1367a..cbbef7730e7743c05ddc8011eab77f05829132f5 100644 +index e8798de526e2836308eca8e5f4a4388aa7e9d3c0..1152cdb64ff72358292400d33a4a4f3ca88eff75 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -474,6 +474,22 @@ index f30aad7e722f895b8f6966f042021fc80f470994..eaf2e6b9865a36b7c648bd1205db922a // Purpur end @Override +diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +index 47a9e7a036e647c05d8abebdda4cab0d69aac997..bc74bae29b8426ced84e203edb0c41065062f422 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java ++++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +@@ -96,6 +96,11 @@ public class Sniffer extends Animal { + public boolean isControllable() { + return level.purpurConfig.snifferControllable; + } ++ ++ @Override ++ public void initAttributes() { ++ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.snifferMaxHealth); ++ } + // Purpur end + + // CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location 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 d4561ddfd79e80414ce006d54b90a45345017378..09ed5144c448f7620b5c856a9fa12da07ec0cce6 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -1220,7 +1236,7 @@ index 774da46962f70e73d31ea523eb5bfc286f38856d..d2324e2dbd72fcd5a8ab562bc3b6e530 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index de0b2d79435f55f35f1063094ac9c674b186fc79..4a831f434f27a117fdcd1364a18deb026d1638e4 100644 +index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1c4ef7e78 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -112,94 +112,181 @@ public class PurpurWorldConfig { @@ -1895,7 +1911,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..4a831f434f27a117fdcd1364a18deb02 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -456,146 +797,288 @@ public class PurpurWorldConfig { +@@ -456,189 +797,361 @@ 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); @@ -2184,7 +2200,15 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..4a831f434f27a117fdcd1364a18deb02 } public boolean snifferRidable = false; -@@ -609,36 +1092,64 @@ public class PurpurWorldConfig { + public boolean snifferRidableInWater = false; + public boolean snifferControllable = true; ++ public double snifferMaxHealth = 14.0D; + private void snifferSettings() { + snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); + snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater); + snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable); ++ snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth); + } public boolean squidRidable = false; public boolean squidControllable = true; @@ -2249,7 +2273,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..4a831f434f27a117fdcd1364a18deb02 } public boolean tadpoleRidable = false; -@@ -653,64 +1164,125 @@ public class PurpurWorldConfig { +@@ -653,64 +1166,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2375,7 +2399,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..4a831f434f27a117fdcd1364a18deb02 } public boolean wardenRidable = false; -@@ -725,81 +1297,165 @@ public class PurpurWorldConfig { +@@ -725,81 +1299,165 @@ public class PurpurWorldConfig { public boolean witchRidable = false; public boolean witchRidableInWater = false; public boolean witchControllable = true; diff --git a/patches/server/0025-Zombie-horse-naturally-spawn.patch b/patches/server/0025-Zombie-horse-naturally-spawn.patch index bfd60bddd..bcb3d2a63 100644 --- a/patches/server/0025-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0025-Zombie-horse-naturally-spawn.patch @@ -30,10 +30,10 @@ index ffde1d129c5434e7748cbdaac9109cbd3d0d29bc..057f4b71ff295cf6fed9cc5b86aa4034 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 89ec247625aefc065b6a050d0749d144fcb6bdd6..d476a826abbeb7fd4206c0598cb18dc0d365bc4d 100644 +index 6dd4777739ee284f251c844c7c54cb1114488e6f..47f8839902463214d9e171f676fafd7ce4e55632 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1477,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1479,6 +1479,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -41,7 +41,7 @@ index 89ec247625aefc065b6a050d0749d144fcb6bdd6..d476a826abbeb7fd4206c0598cb18dc0 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1492,6 +1493,7 @@ public class PurpurWorldConfig { +@@ -1494,6 +1495,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/0050-Villagers-follow-emerald-blocks.patch b/patches/server/0050-Villagers-follow-emerald-blocks.patch index b712bd93d..dddf90779 100644 --- a/patches/server/0050-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0050-Villagers-follow-emerald-blocks.patch @@ -54,10 +54,10 @@ index d2324e2dbd72fcd5a8ab562bc3b6e53088647137..c61e4ee036c60c6eaeabccd9785fb690 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 8a5f7ac669f160fd7d77b51e531741769b1d804c..bbf5edf41f4b8070b806ba2de6329e05324f2586 100644 +index afccb980aa518659c733859e8175dcb998a45f58..a41aa38eb0f219309603ad5c8605dd47a3b24951 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1433,6 +1433,7 @@ public class PurpurWorldConfig { +@@ -1435,6 +1435,7 @@ public class PurpurWorldConfig { public boolean villagerRidableInWater = false; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; @@ -65,7 +65,7 @@ index 8a5f7ac669f160fd7d77b51e531741769b1d804c..bbf5edf41f4b8070b806ba2de6329e05 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1443,6 +1444,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1446,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -73,7 +73,7 @@ index 8a5f7ac669f160fd7d77b51e531741769b1d804c..bbf5edf41f4b8070b806ba2de6329e05 } public boolean vindicatorRidable = false; -@@ -1465,6 +1467,7 @@ public class PurpurWorldConfig { +@@ -1467,6 +1469,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = false; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index 8a5f7ac669f160fd7d77b51e531741769b1d804c..bbf5edf41f4b8070b806ba2de6329e05 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1475,6 +1478,7 @@ public class PurpurWorldConfig { +@@ -1477,6 +1480,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/0051-Allow-leashing-villagers.patch b/patches/server/0051-Allow-leashing-villagers.patch index 8371a83b5..54026843e 100644 --- a/patches/server/0051-Allow-leashing-villagers.patch +++ b/patches/server/0051-Allow-leashing-villagers.patch @@ -49,10 +49,10 @@ index c61e4ee036c60c6eaeabccd9785fb690520fdcf2..fbbeacb94aeda40e9fc5c0553ab68948 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bbf5edf41f4b8070b806ba2de6329e05324f2586..9298aae62a7a80f3876025f23387639fe2ae45c4 100644 +index a41aa38eb0f219309603ad5c8605dd47a3b24951..5f76361dcd69083d6a78be07fc722f73d9d29022 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1434,6 +1434,7 @@ public class PurpurWorldConfig { +@@ -1436,6 +1436,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index bbf5edf41f4b8070b806ba2de6329e05324f2586..9298aae62a7a80f3876025f23387639f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1445,6 +1446,7 @@ public class PurpurWorldConfig { +@@ -1447,6 +1448,7 @@ public class PurpurWorldConfig { } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index bbf5edf41f4b8070b806ba2de6329e05324f2586..9298aae62a7a80f3876025f23387639f } public boolean vindicatorRidable = false; -@@ -1468,6 +1470,7 @@ public class PurpurWorldConfig { +@@ -1470,6 +1472,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index bbf5edf41f4b8070b806ba2de6329e05324f2586..9298aae62a7a80f3876025f23387639f private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1479,6 +1482,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1484,7 @@ public class PurpurWorldConfig { } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); diff --git a/patches/server/0066-Configurable-jockey-options.patch b/patches/server/0066-Configurable-jockey-options.patch index 1f643163b..2203a4238 100644 --- a/patches/server/0066-Configurable-jockey-options.patch +++ b/patches/server/0066-Configurable-jockey-options.patch @@ -167,7 +167,7 @@ index cdeb39d02b618b648681ca51a592b7b3508e46f5..b5b4cb3fefd769f5d8ec5b60b4b41ffb @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd2b9d630d 100644 +index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28cc991bd9b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -588,6 +588,9 @@ public class PurpurWorldConfig { @@ -210,7 +210,7 @@ index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd } public boolean illusionerRidable = false; -@@ -1672,6 +1684,9 @@ public class PurpurWorldConfig { +@@ -1674,6 +1686,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1683,6 +1698,9 @@ public class PurpurWorldConfig { +@@ -1685,6 +1700,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd } public boolean zombieHorseRidableInWater = false; -@@ -1717,6 +1735,9 @@ public class PurpurWorldConfig { +@@ -1719,6 +1737,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1728,6 +1749,9 @@ public class PurpurWorldConfig { +@@ -1730,6 +1751,9 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -250,7 +250,7 @@ index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd } public boolean zombifiedPiglinRidable = false; -@@ -1735,6 +1759,9 @@ public class PurpurWorldConfig { +@@ -1737,6 +1761,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1746,5 +1773,8 @@ public class PurpurWorldConfig { +@@ -1748,5 +1775,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/server/0075-Squid-EAR-immunity.patch b/patches/server/0075-Squid-EAR-immunity.patch index 7784b829b..2ba7f10d4 100644 --- a/patches/server/0075-Squid-EAR-immunity.patch +++ b/patches/server/0075-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 dabf276d365e17865995bb6ce1083ced58c8b97b..58985f99ae1db4c749bd589f7dced86336dbdd2b 100644 +index a6d807ac6c9486bddac5a15bdb345aa6d660c3d9..027d52ced384f3add57432bbdf5321ce7ea3cf22 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1451,6 +1451,7 @@ public class PurpurWorldConfig { +@@ -1453,6 +1453,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index dabf276d365e17865995bb6ce1083ced58c8b97b..58985f99ae1db4c749bd589f7dced863 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1460,6 +1461,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1463,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0077-Configurable-villager-breeding.patch b/patches/server/0077-Configurable-villager-breeding.patch index df54edbd9..644317266 100644 --- a/patches/server/0077-Configurable-villager-breeding.patch +++ b/patches/server/0077-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index cb8ea90c03bcd5ad81d9478abcd556838143850e..ab3497bd22beffaf7a66bdd502b9e1bf private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e05c07533300c567a9083e28e1f4c81b9381010d..cf2904fabe3389ef72d1b4901961192a2b1d3072 100644 +index b9a70e8da46923d5efc31dfac54d2fe58acb4f82..f5c1434946d54deb6a5924146f0c0003e1cd3176 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1609,6 +1609,7 @@ public class PurpurWorldConfig { +@@ -1611,6 +1611,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index e05c07533300c567a9083e28e1f4c81b9381010d..cf2904fabe3389ef72d1b4901961192a private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1621,6 +1622,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1624,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch index a34b235de..b9490a8a5 100644 --- a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch @@ -22,10 +22,10 @@ index 32c7836fcceaeee018dd965f77ac1d2c2ab45ea0..5e732fd80cd0ac814e56c741717e3335 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d9e7eaec0834940c5b4c03fe0370e3dbc7f9308d..cf71954aaadd8ac23fb11f034000c42ad6944973 100644 +index a8111222cdcb7697ce761b4ed5b9e62922e7459b..d1fa483763b3f96e2274ebb74cbeec03ee0ca3af 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1636,6 +1636,7 @@ public class PurpurWorldConfig { +@@ -1638,6 +1638,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = false; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index d9e7eaec0834940c5b4c03fe0370e3dbc7f9308d..cf71954aaadd8ac23fb11f034000c42a private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1646,6 +1647,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1649,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch index eb4331204..bfc23902c 100644 --- a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch @@ -54,10 +54,10 @@ index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5c6a3ea3be08d0228bff5fb52620b0524b024c9e..a3f3a2516e50cbb22057c8328fe20862845bcdc2 100644 +index b8411a9bd9ce0cab81173411a850108f7192d27d..a5897f8a95808c40235d587f9a8e063bcd08e388 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1476,6 +1476,7 @@ public class PurpurWorldConfig { +@@ -1478,6 +1478,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index 5c6a3ea3be08d0228bff5fb52620b0524b024c9e..a3f3a2516e50cbb22057c8328fe20862 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1486,6 +1487,7 @@ public class PurpurWorldConfig { +@@ -1488,6 +1489,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/server/0090-Customizable-wither-health-and-healing.patch b/patches/server/0090-Customizable-wither-health-and-healing.patch index 117449e7b..a5b166315 100644 --- a/patches/server/0090-Customizable-wither-health-and-healing.patch +++ b/patches/server/0090-Customizable-wither-health-and-healing.patch @@ -23,10 +23,10 @@ index 52cf58145788da4cb0ec447d1cf485f86141d1d8..631349e333fcc8285b7f23dec86275d0 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 a3a29cde25d0c6e0fd1c0167393916b185b2fd1f..4b091763e462a6e475985a24152e2b05e380265e 100644 +index d13c4040ce81d701fe9c26f9cc00d661d631b991..6fc696e6260691c93facfebb6fc8db25ff72d102 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1715,6 +1715,8 @@ public class PurpurWorldConfig { +@@ -1717,6 +1717,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index a3a29cde25d0c6e0fd1c0167393916b185b2fd1f..4b091763e462a6e475985a24152e2b05 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1730,6 +1732,8 @@ public class PurpurWorldConfig { +@@ -1732,6 +1734,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 06b3e45c1..ccd1b9887 100644 --- a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -71,10 +71,10 @@ index 4a38fec232e2a087f8ef3f7a0c8fff17ddd714d0..0d4abed58cd14f7804e61c6e6a62891c 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 67c2aea750bc3c80e12533c5e75013d91e9b31ae..656635b15d8ed270cbf3f8d35a0fca24726a90f2 100644 +index 14f4c4ff339da8db6f43f14250047f77656d1d8d..f05ca6fab4e3622f9f96fdb24d27095fc5fc8bf2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1848,6 +1848,7 @@ public class PurpurWorldConfig { +@@ -1850,6 +1850,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 67c2aea750bc3c80e12533c5e75013d91e9b31ae..656635b15d8ed270cbf3f8d35a0fca24 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1862,6 +1863,7 @@ public class PurpurWorldConfig { +@@ -1864,6 +1865,7 @@ public class PurpurWorldConfig { zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby); zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); diff --git a/patches/server/0096-Flying-squids-Oh-my.patch b/patches/server/0096-Flying-squids-Oh-my.patch index 88a63ff71..b7cad08bb 100644 --- a/patches/server/0096-Flying-squids-Oh-my.patch +++ b/patches/server/0096-Flying-squids-Oh-my.patch @@ -58,7 +58,7 @@ index de1bf4aea2661763948aba01d93e7685f3ef73cb..c396874d24ae535b4c07649e303e60b7 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 656635b15d8ed270cbf3f8d35a0fca24726a90f2..c95b58c5d68c7a5f1061c306c0a9b20c4436e2d8 100644 +index f05ca6fab4e3622f9f96fdb24d27095fc5fc8bf2..b2649b3960f48b09028327d30b374de94bf6cbf6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -902,10 +902,12 @@ public class PurpurWorldConfig { @@ -74,7 +74,7 @@ index 656635b15d8ed270cbf3f8d35a0fca24726a90f2..c95b58c5d68c7a5f1061c306c0a9b20c } public boolean goatRidable = false; -@@ -1535,6 +1537,7 @@ public class PurpurWorldConfig { +@@ -1537,6 +1539,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 656635b15d8ed270cbf3f8d35a0fca24726a90f2..c95b58c5d68c7a5f1061c306c0a9b20c private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1546,6 +1549,7 @@ public class PurpurWorldConfig { +@@ -1548,6 +1551,7 @@ public class PurpurWorldConfig { squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); diff --git a/patches/server/0104-Make-entity-breeding-times-configurable.patch b/patches/server/0104-Make-entity-breeding-times-configurable.patch index f1d6cf60d..7afe870b8 100644 --- a/patches/server/0104-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0104-Make-entity-breeding-times-configurable.patch @@ -477,12 +477,12 @@ index e9f1d53599168c4c4b44a14b445143025c4be83a..df438bc84c5b90f2fc66965f926dc2ef public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 47a9e7a036e647c05d8abebdda4cab0d69aac997..28c20f7f79fed655d4a746e8ef3d5d4d15118e04 100644 +index bc74bae29b8426ced84e203edb0c41065062f422..12aab69aca179717ea2a2ac04e28a78eff98af20 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -@@ -96,6 +96,11 @@ public class Sniffer extends Animal { - public boolean isControllable() { - return level.purpurConfig.snifferControllable; +@@ -101,6 +101,11 @@ public class Sniffer extends Animal { + public void initAttributes() { + this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.snifferMaxHealth); } + + @Override @@ -525,7 +525,7 @@ index 9cc42b4a1ea0d2315350e038034dfe7171668658..8e837ce3069ca05bcc93ea93f94c7934 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089b2c86dc1 100644 +index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb73c4c37b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -510,10 +510,12 @@ public class PurpurWorldConfig { @@ -854,20 +854,21 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 } public boolean shulkerRidable = false; -@@ -1564,10 +1606,12 @@ public class PurpurWorldConfig { - public boolean snifferRidable = false; +@@ -1565,11 +1607,13 @@ public class PurpurWorldConfig { public boolean snifferRidableInWater = false; public boolean snifferControllable = true; + public double snifferMaxHealth = 14.0D; + public int snifferBreedingTicks = 6000; private void snifferSettings() { snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater); snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable); + snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth); + snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", chickenBreedingTicks); } public boolean squidRidable = false; -@@ -1626,6 +1670,7 @@ public class PurpurWorldConfig { +@@ -1628,6 +1672,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -875,7 +876,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1636,6 +1681,7 @@ public class PurpurWorldConfig { +@@ -1638,6 +1683,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -883,7 +884,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 } public boolean tadpoleRidable = false; -@@ -1656,6 +1702,7 @@ public class PurpurWorldConfig { +@@ -1658,6 +1704,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -891,7 +892,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1673,6 +1720,7 @@ public class PurpurWorldConfig { +@@ -1675,6 +1722,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); @@ -899,7 +900,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 } public boolean tropicalFishRidable = false; -@@ -1693,6 +1741,7 @@ public class PurpurWorldConfig { +@@ -1695,6 +1743,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = false; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -907,7 +908,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1703,6 +1752,7 @@ public class PurpurWorldConfig { +@@ -1705,6 +1754,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -915,7 +916,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 } public boolean vexRidable = false; -@@ -1730,6 +1780,7 @@ public class PurpurWorldConfig { +@@ -1732,6 +1782,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -923,7 +924,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1743,6 +1794,7 @@ public class PurpurWorldConfig { +@@ -1745,6 +1796,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -931,7 +932,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 } public boolean vindicatorRidable = false; -@@ -1854,6 +1906,7 @@ public class PurpurWorldConfig { +@@ -1856,6 +1908,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -939,7 +940,7 @@ index 01794fced783d09073ce84647a93d94c35e713da..a74e68d7f449fba94f0cc10c3988a089 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1864,6 +1917,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1919,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index cefce811e..99df78a86 100644 --- a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -181,10 +181,10 @@ index ac70c2c03241e73943bd517a8c69dd05e0873634..0318663a824d2a9515f867a075d148c3 public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.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 092e7417d5a3edb13ca673fc0d44f86327fd443f..9fcf04fb03fead5c7850efddf5032c0e34f55ce6 100644 +index 8f1fff3af6bc648823e27d795d254e33b6dd977f..5fa70176984d1bb7c84572bf40b6f338261c7745 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1806,6 +1806,8 @@ public class PurpurWorldConfig { +@@ -1808,6 +1808,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index 092e7417d5a3edb13ca673fc0d44f86327fd443f..9fcf04fb03fead5c7850efddf5032c0e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1820,6 +1822,8 @@ public class PurpurWorldConfig { +@@ -1822,6 +1824,8 @@ public class PurpurWorldConfig { villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 293827efe..11c5d2da9 100644 --- a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index b5b4cb3fefd769f5d8ec5b60b4b41ffb023d19c5..65d035647f7caf23647ec00beb20a4a2 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9fcf04fb03fead5c7850efddf5032c0e34f55ce6..a5dc84e5f5806a9529dc3643f4624424ecf03e1e 100644 +index 5fa70176984d1bb7c84572bf40b6f338261c7745..267b35d0f2ae6bca527787c276bf50600f28a589 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2050,6 +2050,7 @@ public class PurpurWorldConfig { +@@ -2052,6 +2052,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 9fcf04fb03fead5c7850efddf5032c0e34f55ce6..a5dc84e5f5806a9529dc3643f4624424 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2064,5 +2065,6 @@ public class PurpurWorldConfig { +@@ -2066,5 +2067,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/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch index 10de7bda4..5f4fc49e2 100644 --- a/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -222,10 +222,10 @@ index e43fd3e59fd8c74828ae65965fade27f56beef65..b2f133c8baabba1cffa6e92ea0f85453 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a5dc84e5f5806a9529dc3643f4624424ecf03e1e..ccce1d974cbf4157748de7731a6c792c4e3bfd63 100644 +index 267b35d0f2ae6bca527787c276bf50600f28a589..db8cae3ff986b41984341d7407741edcdfecb558 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1935,6 +1935,8 @@ public class PurpurWorldConfig { +@@ -1937,6 +1937,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index a5dc84e5f5806a9529dc3643f4624424ecf03e1e..ccce1d974cbf4157748de7731a6c792c public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1946,6 +1948,8 @@ public class PurpurWorldConfig { +@@ -1948,6 +1950,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0116-Configurable-default-collar-color.patch b/patches/server/0116-Configurable-default-collar-color.patch index e1cad9338..f2e112513 100644 --- a/patches/server/0116-Configurable-default-collar-color.patch +++ b/patches/server/0116-Configurable-default-collar-color.patch @@ -43,7 +43,7 @@ index a38cea2dead98ffb1a555df7a494d2e12ab504f5..06f2225743e27c7f1f0eb15ee6beedc5 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ccce1d974cbf4157748de7731a6c792c4e3bfd63..07e6caaae07797fbed03f57ea057aad68509122c 100644 +index db8cae3ff986b41984341d7407741edcdfecb558..e364d1b0ea6be04ec2ff624c36e13f14e7e1ac45 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -621,6 +621,7 @@ public class PurpurWorldConfig { @@ -66,7 +66,7 @@ index ccce1d974cbf4157748de7731a6c792c4e3bfd63..07e6caaae07797fbed03f57ea057aad6 } public boolean caveSpiderRidable = false; -@@ -1935,6 +1941,7 @@ public class PurpurWorldConfig { +@@ -1937,6 +1943,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index ccce1d974cbf4157748de7731a6c792c4e3bfd63..07e6caaae07797fbed03f57ea057aad6 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1948,6 +1955,11 @@ public class PurpurWorldConfig { +@@ -1950,6 +1957,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0120-Striders-give-saddle-back.patch b/patches/server/0120-Striders-give-saddle-back.patch index 0ef65d4dc..65de69715 100644 --- a/patches/server/0120-Striders-give-saddle-back.patch +++ b/patches/server/0120-Striders-give-saddle-back.patch @@ -29,10 +29,10 @@ index fbc2e3f0b73608a999619469cd701692cb1cb788..7d10e81669177d0df5c6eba79a2aac46 if (!this.level.isClientSide) { player.startRiding(this); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9ad72bb746226e1fcbc91293e8608e7e53c51b02..104aee7648b5553604dda03b7fcee7fea89282e4 100644 +index 9160e593d71ec5a6eea9646a50dfd465f3cf0ed8..cee38f830945231e567a9400d227f06b6aa80790 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1709,6 +1709,7 @@ public class PurpurWorldConfig { +@@ -1711,6 +1711,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 9ad72bb746226e1fcbc91293e8608e7e53c51b02..104aee7648b5553604dda03b7fcee7fe private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1720,6 +1721,7 @@ public class PurpurWorldConfig { +@@ -1722,6 +1723,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/0124-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch index b7c0febeb..938c58396 100644 --- a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 56781b5cf331400703bdda49508390651b506208..11f7902e30771d5c279e0116b813295a5daf3510 100644 +index b5d6060af4f806896ea499cad4073778ed5659e4..3ac340ec29845321e1ed4d1afb3687ba564b06b3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1715,7 +1715,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -374,7 +374,7 @@ index 1942649e868fc985a488034c411a6721595ecc67..7495e0e8beedad59fff24ebf189b58b3 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe91808baec6c 100644 +index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010a921b75a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -117,8 +117,11 @@ public class PurpurWorldConfig { @@ -629,7 +629,7 @@ index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe918 } public boolean snifferRidable = false; -@@ -1836,6 +1875,7 @@ public class PurpurWorldConfig { +@@ -1838,6 +1877,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe918 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1852,6 +1892,7 @@ public class PurpurWorldConfig { +@@ -1854,6 +1894,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); @@ -645,7 +645,7 @@ index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe918 } public boolean vindicatorRidable = false; -@@ -1924,6 +1965,7 @@ public class PurpurWorldConfig { +@@ -1926,6 +1967,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe918 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1941,6 +1983,7 @@ public class PurpurWorldConfig { +@@ -1943,6 +1985,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); @@ -661,7 +661,7 @@ index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe918 } public boolean witherSkeletonRidable = false; -@@ -2012,6 +2055,7 @@ public class PurpurWorldConfig { +@@ -2014,6 +2057,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe918 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2027,6 +2071,7 @@ public class PurpurWorldConfig { +@@ -2029,6 +2073,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/0130-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch index 7668c4bb8..96f6f729f 100644 --- a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch @@ -1197,7 +1197,7 @@ index fbbeacb94aeda40e9fc5c0553ab68948de9019c4..64c8890a54a10abd454a62671fbabfcf @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f119aacd889 100644 +index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b8609798fcba5b8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -577,11 +577,13 @@ public class PurpurWorldConfig { @@ -2027,7 +2027,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean snifferRidable = false; -@@ -1728,6 +1834,7 @@ public class PurpurWorldConfig { +@@ -1730,6 +1836,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1740,12 +1847,14 @@ public class PurpurWorldConfig { +@@ -1742,12 +1849,14 @@ 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); @@ -2050,7 +2050,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1756,12 +1865,14 @@ public class PurpurWorldConfig { +@@ -1758,12 +1867,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1772,6 +1883,7 @@ public class PurpurWorldConfig { +@@ -1774,6 +1885,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean striderRidable = false; -@@ -1780,6 +1892,7 @@ public class PurpurWorldConfig { +@@ -1782,6 +1894,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1792,6 +1905,7 @@ public class PurpurWorldConfig { +@@ -1794,6 +1907,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); @@ -2089,7 +2089,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean tadpoleRidable = false; -@@ -1813,6 +1927,7 @@ public class PurpurWorldConfig { +@@ -1815,6 +1929,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1831,11 +1946,13 @@ public class PurpurWorldConfig { +@@ -1833,11 +1948,13 @@ 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); @@ -2111,7 +2111,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1845,6 +1962,7 @@ public class PurpurWorldConfig { +@@ -1847,6 +1964,7 @@ public class PurpurWorldConfig { set("mobs.tropical_fish.attributes.max_health", oldValue); } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); @@ -2119,7 +2119,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean turtleRidable = false; -@@ -1852,6 +1970,7 @@ public class PurpurWorldConfig { +@@ -1854,6 +1972,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1863,6 +1982,7 @@ public class PurpurWorldConfig { +@@ -1865,6 +1984,7 @@ public class PurpurWorldConfig { } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); @@ -2135,7 +2135,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean vexRidable = false; -@@ -1870,6 +1990,7 @@ public class PurpurWorldConfig { +@@ -1872,6 +1992,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1881,6 +2002,7 @@ public class PurpurWorldConfig { +@@ -1883,6 +2004,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean villagerRidable = false; -@@ -1894,6 +2016,7 @@ public class PurpurWorldConfig { +@@ -1896,6 +2018,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1911,6 +2034,7 @@ public class PurpurWorldConfig { +@@ -1913,6 +2036,7 @@ public class PurpurWorldConfig { villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); @@ -2167,7 +2167,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean vindicatorRidable = false; -@@ -1918,6 +2042,7 @@ public class PurpurWorldConfig { +@@ -1920,6 +2044,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1929,6 +2054,7 @@ public class PurpurWorldConfig { +@@ -1931,6 +2056,7 @@ public class PurpurWorldConfig { } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); @@ -2183,7 +2183,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean wanderingTraderRidable = false; -@@ -1937,6 +2063,7 @@ public class PurpurWorldConfig { +@@ -1939,6 +2065,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1949,6 +2076,7 @@ public class PurpurWorldConfig { +@@ -1951,6 +2078,7 @@ public class PurpurWorldConfig { wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); @@ -2199,7 +2199,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean wardenRidable = false; -@@ -1964,6 +2092,7 @@ public class PurpurWorldConfig { +@@ -1966,6 +2094,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = false; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1974,6 +2103,7 @@ public class PurpurWorldConfig { +@@ -1976,6 +2105,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean witherRidable = false; -@@ -1984,6 +2114,7 @@ public class PurpurWorldConfig { +@@ -1986,6 +2116,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2002,12 +2133,14 @@ public class PurpurWorldConfig { +@@ -2004,12 +2135,14 @@ public class PurpurWorldConfig { witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); @@ -2238,7 +2238,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2018,6 +2151,7 @@ public class PurpurWorldConfig { +@@ -2020,6 +2153,7 @@ public class PurpurWorldConfig { set("mobs.wither_skeleton.attributes.max_health", oldValue); } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); @@ -2246,7 +2246,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean wolfRidable = false; -@@ -2028,6 +2162,7 @@ public class PurpurWorldConfig { +@@ -2030,6 +2164,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2046,12 +2181,14 @@ public class PurpurWorldConfig { +@@ -2048,12 +2183,14 @@ public class PurpurWorldConfig { wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); @@ -2269,7 +2269,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2062,6 +2199,7 @@ public class PurpurWorldConfig { +@@ -2064,6 +2201,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean zombieRidable = false; -@@ -2074,6 +2212,7 @@ public class PurpurWorldConfig { +@@ -2076,6 +2214,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2090,6 +2229,7 @@ public class PurpurWorldConfig { +@@ -2092,6 +2231,7 @@ public class PurpurWorldConfig { zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); @@ -2293,7 +2293,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean zombieHorseRidableInWater = false; -@@ -2101,6 +2241,7 @@ public class PurpurWorldConfig { +@@ -2103,6 +2243,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2117,6 +2258,7 @@ public class PurpurWorldConfig { +@@ -2119,6 +2260,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); @@ -2309,7 +2309,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean zombieVillagerRidable = false; -@@ -2127,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2129,6 +2271,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2141,6 +2284,7 @@ public class PurpurWorldConfig { +@@ -2143,6 +2286,7 @@ public class PurpurWorldConfig { zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby); zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); @@ -2325,7 +2325,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 } public boolean zombifiedPiglinRidable = false; -@@ -2152,6 +2296,7 @@ public class PurpurWorldConfig { +@@ -2154,6 +2298,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index 636c973d29f72d4e793afb7c448e20ff5a9c12a2..e749a8864c4cd4d5cf5726974c3e7f11 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2167,5 +2312,6 @@ public class PurpurWorldConfig { +@@ -2169,5 +2314,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); diff --git a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index d7923552d..946c7bcac 100644 --- a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -29,7 +29,7 @@ index 0c329f66d0a26b881ddddf4c555850f6ce0481bc..2a4dce1a5ffa3902a50044b14e6c02b3 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d14eab17a45f234f08383ea5091157f1ada279f5..6425f7651120c76118506b130c98deb1b68deb6f 100644 +index 131b344fac984d9653e76e9a66826d8c2c3a670f..98eab7de6ce8dc52012a2b909ac613e520414d7e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -947,6 +947,7 @@ public class PurpurWorldConfig { @@ -48,7 +48,7 @@ index d14eab17a45f234f08383ea5091157f1ada279f5..6425f7651120c76118506b130c98deb1 } public boolean endermanRidable = false; -@@ -2154,6 +2156,7 @@ public class PurpurWorldConfig { +@@ -2156,6 +2158,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index d14eab17a45f234f08383ea5091157f1ada279f5..6425f7651120c76118506b130c98deb1 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2173,6 +2176,7 @@ public class PurpurWorldConfig { +@@ -2175,6 +2178,7 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); diff --git a/patches/server/0147-Add-config-for-villager-trading.patch b/patches/server/0147-Add-config-for-villager-trading.patch index 9063e5eb5..fd1d3182d 100644 --- a/patches/server/0147-Add-config-for-villager-trading.patch +++ b/patches/server/0147-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index 64c8890a54a10abd454a62671fbabfcf9720b7c0..e06f3ee85dde587f1146d4a3d70e8a2e this.openTradingScreen(player, this.getDisplayName(), 1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 12fa98f0a2e2579e7ca4c749b53302dfcd2294a6..442554da3ea74845e9e7a97dea9f497caa48e78a 100644 +index 040201827a0c272141050094aa1929f539a3fa73..a3af9a02fa8c589603b3a6b10bbebb101ff665ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2121,6 +2121,7 @@ public class PurpurWorldConfig { +@@ -2123,6 +2123,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 12fa98f0a2e2579e7ca4c749b53302dfcd2294a6..442554da3ea74845e9e7a97dea9f497c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2139,6 +2140,7 @@ public class PurpurWorldConfig { +@@ -2141,6 +2142,7 @@ public class PurpurWorldConfig { villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); @@ -50,7 +50,7 @@ index 12fa98f0a2e2579e7ca4c749b53302dfcd2294a6..442554da3ea74845e9e7a97dea9f497c } public boolean vindicatorRidable = false; -@@ -2168,6 +2170,7 @@ public class PurpurWorldConfig { +@@ -2170,6 +2172,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 12fa98f0a2e2579e7ca4c749b53302dfcd2294a6..442554da3ea74845e9e7a97dea9f497c private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2181,6 +2184,7 @@ public class PurpurWorldConfig { +@@ -2183,6 +2186,7 @@ public class PurpurWorldConfig { wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); diff --git a/patches/server/0160-Config-for-wither-explosion-radius.patch b/patches/server/0160-Config-for-wither-explosion-radius.patch index 5a3ea6d3d..c0d315a07 100644 --- a/patches/server/0160-Config-for-wither-explosion-radius.patch +++ b/patches/server/0160-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 093a00e52062868b4fbf358b307513d0f599f69d..ba753735f3cbb2cb3d0a491d1bd94a04 if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0c37f3a761d602b9a2a1041b1f2d4e56df372d18..f46420e65ff6d5863815d9c2d7a8bccd48481d4c 100644 +index 93ae5787def42553d1b7864b7d6e648ac2e40827..6856d986732c5a3e17d148448eb4fa8b7452f137 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2288,6 +2288,7 @@ public class PurpurWorldConfig { +@@ -2290,6 +2290,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 0c37f3a761d602b9a2a1041b1f2d4e56df372d18..f46420e65ff6d5863815d9c2d7a8bccd private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2308,6 +2309,7 @@ public class PurpurWorldConfig { +@@ -2310,6 +2311,7 @@ public class PurpurWorldConfig { witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/server/0189-Configurable-hunger-starvation-damage.patch b/patches/server/0189-Configurable-hunger-starvation-damage.patch index 9fa84788c..465b11fa5 100644 --- a/patches/server/0189-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0189-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 87f9e03fb5e095396e054a84be60ec455d3fbd35..3d2e3c7dd3bf5c8f483a933e9f686858 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 79ee0e450e2f740c5818c4b1b092b2cb93307dee..bd6745d1d4ef878f6add91259ef888dafdb0f1cd 100644 +index 3c62b930de04cb993b2df071d3f8e908d4951c27..03a92969423d2e709594fc1de3c787237664bec3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2592,4 +2592,9 @@ public class PurpurWorldConfig { +@@ -2594,4 +2594,9 @@ public class PurpurWorldConfig { zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); } diff --git a/patches/server/0197-Silk-touchable-budding-amethyst.patch b/patches/server/0197-Silk-touchable-budding-amethyst.patch index 84cbd77cd..097f6fb13 100644 --- a/patches/server/0197-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0197-Silk-touchable-budding-amethyst.patch @@ -24,7 +24,7 @@ index bedccb8717d08d5a60058445b04ddff149e7d36c..5293ffca3da94c9c485a87d1232b6a90 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 00706a28fb5a0967ccaa0e402de1281d85df0fc5..046266cce1c07950645a7dad832e1944af880550 100644 +index e66eb3fef49a10d660f42b060af604081ce60723..c73401d9a23fc86d1964c3a104e652636d17b899 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -718,6 +718,11 @@ public class PurpurWorldConfig { @@ -39,7 +39,7 @@ index 00706a28fb5a0967ccaa0e402de1281d85df0fc5..046266cce1c07950645a7dad832e1944 public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2753,3 +2758,4 @@ public class PurpurWorldConfig { +@@ -2755,3 +2760,4 @@ public class PurpurWorldConfig { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } } diff --git a/patches/server/0204-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0204-Customizeable-Zombie-Villager-curing-times.patch index 7b96d55af..49d8f6852 100644 --- a/patches/server/0204-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0204-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index 1084adce8dc55b19ed9d90c0c5ad6675fff0afc5..9d981e392143baa43b6006ca9ef319fd return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e16210dc87535705091b9aa9edb4a59fef06cbfd..e503b9018183fa6491529d1c5fe630906fb61a50 100644 +index 4b8ff2fbd341c3cf7f957591cfe80093e88c16d9..c6c827b261d4223678a9363de96b0067d5fc514a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2737,6 +2737,8 @@ public class PurpurWorldConfig { +@@ -2739,6 +2739,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index e16210dc87535705091b9aa9edb4a59fef06cbfd..e503b9018183fa6491529d1c5fe63090 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2752,6 +2754,8 @@ public class PurpurWorldConfig { +@@ -2754,6 +2756,8 @@ public class PurpurWorldConfig { zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); diff --git a/patches/server/0206-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0206-Toggle-for-Wither-s-spawn-sound.patch index ea435ee40..dd507fdd7 100644 --- a/patches/server/0206-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0206-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index cb869ddaeed10f8edd0a327553bfe5dcbb405e3d..588ff25c19f7c0acc627f2d8425dbae5 // this.world.globalLevelEvent(1023, new BlockPosition(this), 0); int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 24232ea98d8ba1983b363689397ce4cef2826557..9d16759f8e736e3981a448ab3a7d784636bc05f3 100644 +index d984ddd6b9afc4c978583cbbc0f7a43f83c8863c..e8ebff7e15d2e2262b395db4c516125d6bc665e3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2582,6 +2582,7 @@ public class PurpurWorldConfig { +@@ -2584,6 +2584,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index 24232ea98d8ba1983b363689397ce4cef2826557..9d16759f8e736e3981a448ab3a7d7846 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2603,6 +2604,7 @@ public class PurpurWorldConfig { +@@ -2605,6 +2606,7 @@ public class PurpurWorldConfig { witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); diff --git a/patches/server/0209-Conduit-behavior-configuration.patch b/patches/server/0209-Conduit-behavior-configuration.patch index ff9ec6859..6d8ee5d73 100644 --- a/patches/server/0209-Conduit-behavior-configuration.patch +++ b/patches/server/0209-Conduit-behavior-configuration.patch @@ -77,10 +77,10 @@ index 963a596154091b79ca139af6274aa323518ad1ad..4dcac3899a500d8586580bcfd5b4516e }); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6146547d1d980ccf78e7265e51b1c34718834773..2ad07c394672ccda23853ee8e384219fb49bcdb4 100644 +index 758df2d0a41b94ba81b0574d1e95dd9485bb4127..b20b22b6551a4a9763836d7d866cb95602e97d8b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2801,5 +2801,28 @@ public class PurpurWorldConfig { +@@ -2803,5 +2803,28 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0210-Cauldron-fill-chances.patch b/patches/server/0210-Cauldron-fill-chances.patch index 50197a9bc..c2c3d1096 100644 --- a/patches/server/0210-Cauldron-fill-chances.patch +++ b/patches/server/0210-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index 6b909d41ccdf6c1ac3ac0c4e673ff52f0d14a238..b8f69063cec4d31c9d9525a04c46ed89 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2ad07c394672ccda23853ee8e384219fb49bcdb4..ad4cc60a0187965f7d7ba5c5bd28dfc56b0ee69d 100644 +index b20b22b6551a4a9763836d7d866cb95602e97d8b..b5be88177c3840f81dd2e8719e7ee3d5974fba60 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2824,5 +2824,16 @@ public class PurpurWorldConfig { +@@ -2826,5 +2826,16 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0226-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0226-Add-option-to-disable-zombie-villagers-cure.patch index 95f5cdaab..288171913 100644 --- a/patches/server/0226-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0226-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index 9d981e392143baa43b6006ca9ef319fd538c304a..ce644b92598f70872e365584844eaefa itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1e7fed6def1273d84fa9d30aeaaf2850d4c3955d..59829bbc091874f2ae8d640c9e2c400bb9fcd93b 100644 +index c7eb338292be3715d1817159e47fc44909ab4e95..e706d6246ab83656486abc5474b3b70d2a126558 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2801,6 +2801,7 @@ public class PurpurWorldConfig { +@@ -2803,6 +2803,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 1e7fed6def1273d84fa9d30aeaaf2850d4c3955d..59829bbc091874f2ae8d640c9e2c400b private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2818,6 +2819,7 @@ public class PurpurWorldConfig { +@@ -2820,6 +2821,7 @@ public class PurpurWorldConfig { zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); diff --git a/patches/server/0230-Mobs-always-drop-experience.patch b/patches/server/0230-Mobs-always-drop-experience.patch index eeb7fdf3b..a769ed88b 100644 --- a/patches/server/0230-Mobs-always-drop-experience.patch +++ b/patches/server/0230-Mobs-always-drop-experience.patch @@ -1157,7 +1157,7 @@ index e06f3ee85dde587f1146d4a3d70e8a2e5b9a128b..2e9dd920e5c3943cba4c53ec2a2b48ee @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f2949003416179 100644 +index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994a8d4ee56 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1017,12 +1017,14 @@ public class PurpurWorldConfig { @@ -1985,7 +1985,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean snifferRidable = false; -@@ -2358,6 +2462,7 @@ public class PurpurWorldConfig { +@@ -2360,6 +2464,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2371,6 +2476,7 @@ public class PurpurWorldConfig { +@@ -2373,6 +2478,7 @@ 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); @@ -2001,7 +2001,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean spiderRidable = false; -@@ -2378,6 +2484,7 @@ public class PurpurWorldConfig { +@@ -2380,6 +2486,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2389,6 +2496,7 @@ public class PurpurWorldConfig { +@@ -2391,6 +2498,7 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean strayRidable = false; -@@ -2396,6 +2504,7 @@ public class PurpurWorldConfig { +@@ -2398,6 +2506,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2407,6 +2516,7 @@ public class PurpurWorldConfig { +@@ -2409,6 +2518,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean striderRidable = false; -@@ -2416,6 +2526,7 @@ public class PurpurWorldConfig { +@@ -2418,6 +2528,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2429,6 +2540,7 @@ public class PurpurWorldConfig { +@@ -2431,6 +2542,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); @@ -2049,7 +2049,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean tadpoleRidable = false; -@@ -2451,6 +2563,7 @@ public class PurpurWorldConfig { +@@ -2453,6 +2565,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2470,12 +2583,14 @@ public class PurpurWorldConfig { +@@ -2472,12 +2585,14 @@ 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); @@ -2072,7 +2072,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2486,6 +2601,7 @@ public class PurpurWorldConfig { +@@ -2488,6 +2603,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2080,7 +2080,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean turtleRidable = false; -@@ -2494,6 +2610,7 @@ public class PurpurWorldConfig { +@@ -2496,6 +2612,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2506,6 +2623,7 @@ public class PurpurWorldConfig { +@@ -2508,6 +2625,7 @@ public class PurpurWorldConfig { 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); @@ -2096,7 +2096,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean vexRidable = false; -@@ -2514,6 +2632,7 @@ public class PurpurWorldConfig { +@@ -2516,6 +2634,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2526,6 +2645,7 @@ public class PurpurWorldConfig { +@@ -2528,6 +2647,7 @@ public class PurpurWorldConfig { } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2112,7 +2112,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean villagerRidable = false; -@@ -2541,6 +2661,7 @@ public class PurpurWorldConfig { +@@ -2543,6 +2663,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2560,6 +2681,7 @@ public class PurpurWorldConfig { +@@ -2562,6 +2683,7 @@ public class PurpurWorldConfig { villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); @@ -2128,7 +2128,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean vindicatorRidable = false; -@@ -2568,6 +2690,7 @@ public class PurpurWorldConfig { +@@ -2570,6 +2692,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2580,6 +2703,7 @@ public class PurpurWorldConfig { +@@ -2582,6 +2705,7 @@ public class PurpurWorldConfig { vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2144,7 +2144,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean wanderingTraderRidable = false; -@@ -2590,6 +2714,7 @@ public class PurpurWorldConfig { +@@ -2592,6 +2716,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2604,6 +2729,7 @@ public class PurpurWorldConfig { +@@ -2606,6 +2731,7 @@ public class PurpurWorldConfig { wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); @@ -2160,7 +2160,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean wardenRidable = false; -@@ -2620,6 +2746,7 @@ public class PurpurWorldConfig { +@@ -2622,6 +2748,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2631,6 +2758,7 @@ public class PurpurWorldConfig { +@@ -2633,6 +2760,7 @@ public class PurpurWorldConfig { } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2176,7 +2176,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean witherRidable = false; -@@ -2645,6 +2773,7 @@ public class PurpurWorldConfig { +@@ -2647,6 +2775,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2667,6 +2796,7 @@ public class PurpurWorldConfig { +@@ -2669,6 +2798,7 @@ public class PurpurWorldConfig { witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); @@ -2192,7 +2192,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean witherSkeletonRidable = false; -@@ -2674,6 +2804,7 @@ public class PurpurWorldConfig { +@@ -2676,6 +2806,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2685,6 +2816,7 @@ public class PurpurWorldConfig { +@@ -2687,6 +2818,7 @@ public class PurpurWorldConfig { } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2208,7 +2208,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean wolfRidable = false; -@@ -2696,6 +2828,7 @@ public class PurpurWorldConfig { +@@ -2698,6 +2830,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2715,6 +2848,7 @@ public class PurpurWorldConfig { +@@ -2717,6 +2850,7 @@ public class PurpurWorldConfig { wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); @@ -2224,7 +2224,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean zoglinRidable = false; -@@ -2722,6 +2856,7 @@ public class PurpurWorldConfig { +@@ -2724,6 +2858,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2733,6 +2868,7 @@ public class PurpurWorldConfig { +@@ -2735,6 +2870,7 @@ public class PurpurWorldConfig { } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2240,7 +2240,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean zombieRidable = false; -@@ -2746,6 +2882,7 @@ public class PurpurWorldConfig { +@@ -2748,6 +2884,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2763,6 +2900,7 @@ public class PurpurWorldConfig { +@@ -2765,6 +2902,7 @@ public class PurpurWorldConfig { zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); @@ -2256,7 +2256,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean zombieHorseRidableInWater = false; -@@ -2775,6 +2913,7 @@ public class PurpurWorldConfig { +@@ -2777,6 +2915,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2792,6 +2931,7 @@ public class PurpurWorldConfig { +@@ -2794,6 +2933,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); @@ -2272,7 +2272,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean zombieVillagerRidable = false; -@@ -2806,6 +2946,7 @@ public class PurpurWorldConfig { +@@ -2808,6 +2948,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2824,6 +2965,7 @@ public class PurpurWorldConfig { +@@ -2826,6 +2967,7 @@ public class PurpurWorldConfig { zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); @@ -2288,7 +2288,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 } public boolean zombifiedPiglinRidable = false; -@@ -2836,6 +2978,7 @@ public class PurpurWorldConfig { +@@ -2838,6 +2980,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 6496bd5297acf36a38994a39c97c4615179993e4..599328c1adb0f285d32f41f4f5f29490 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2852,6 +2995,7 @@ public class PurpurWorldConfig { +@@ -2854,6 +2997,7 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); diff --git a/patches/server/0236-Mob-head-visibility-percent.patch b/patches/server/0236-Mob-head-visibility-percent.patch index 8077d675a..e33d64fff 100644 --- a/patches/server/0236-Mob-head-visibility-percent.patch +++ b/patches/server/0236-Mob-head-visibility-percent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 10dbf4f3fb5b5acb87496c0f06da1d29f7a26521..6da57caf6ed0deb17bb99d0ba0a7344ff5143767 100644 +index 74ab12e61eb81c64d1ab805a737318c84b17c84a..2574641ef0c3614a856e358e712d2b2eec2630a2 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1024,9 +1024,20 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -32,7 +32,7 @@ index 10dbf4f3fb5b5acb87496c0f06da1d29f7a26521..6da57caf6ed0deb17bb99d0ba0a7344f // Purpur start if (entity instanceof LivingEntity entityliving) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d380c5881400bdddb75f2bff98d9230ad404b961..3635da728b6444a05a5eaf378f04ad3a6f3cb0a5 100644 +index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e46277fa7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1269,6 +1269,7 @@ public class PurpurWorldConfig { @@ -83,7 +83,7 @@ index d380c5881400bdddb75f2bff98d9230ad404b961..3635da728b6444a05a5eaf378f04ad3a } public boolean skeletonHorseRidableInWater = true; -@@ -2891,6 +2897,7 @@ public class PurpurWorldConfig { +@@ -2893,6 +2899,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index d380c5881400bdddb75f2bff98d9230ad404b961..3635da728b6444a05a5eaf378f04ad3a private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2909,6 +2916,7 @@ public class PurpurWorldConfig { +@@ -2911,6 +2918,7 @@ public class PurpurWorldConfig { zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); diff --git a/patches/server/0248-Configurable-minimum-demand-for-trades.patch b/patches/server/0248-Configurable-minimum-demand-for-trades.patch index 99d899f72..16d75b2a4 100644 --- a/patches/server/0248-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0248-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index fd50d1c2435b82215bc5b3fdbe5044d426bc342e..68ffea572045634f1ad67a6954d480e6 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9c26165d36bf392767f4e6dfb4d1e813a75d8d30..e88f55c61d502f691fbeb1ebd0ed31ecbfe0a819 100644 +index 551576e80373a16c98df67631bcd68f103dd9f7b..baa8ca905e3151addaa64418a337ae66d4e1d622 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2693,6 +2693,7 @@ public class PurpurWorldConfig { +@@ -2695,6 +2695,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 9c26165d36bf392767f4e6dfb4d1e813a75d8d30..e88f55c61d502f691fbeb1ebd0ed31ec private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2713,6 +2714,7 @@ public class PurpurWorldConfig { +@@ -2715,6 +2716,7 @@ public class PurpurWorldConfig { villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); diff --git a/patches/server/0249-Lobotomize-stuck-villagers.patch b/patches/server/0249-Lobotomize-stuck-villagers.patch index 8da7795c9..5c0902275 100644 --- a/patches/server/0249-Lobotomize-stuck-villagers.patch +++ b/patches/server/0249-Lobotomize-stuck-villagers.patch @@ -108,10 +108,10 @@ index a1a8ac55e572156671e47317ba061855be79e5ac..ec3fb8865211bd7625103c37af7b96df + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e88f55c61d502f691fbeb1ebd0ed31ecbfe0a819..7fd4af2288fcd91d7f845b0a76cdf76d2ca92c3b 100644 +index baa8ca905e3151addaa64418a337ae66d4e1d622..6ba943d04afef431decbdf22fc9c140da758ecb0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2694,6 +2694,8 @@ public class PurpurWorldConfig { +@@ -2696,6 +2696,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -120,7 +120,7 @@ index e88f55c61d502f691fbeb1ebd0ed31ecbfe0a819..7fd4af2288fcd91d7f845b0a76cdf76d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2715,6 +2717,17 @@ public class PurpurWorldConfig { +@@ -2717,6 +2719,17 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0250-Option-for-villager-display-trade-item.patch b/patches/server/0250-Option-for-villager-display-trade-item.patch index e2e19e490..4145b9bd1 100644 --- a/patches/server/0250-Option-for-villager-display-trade-item.patch +++ b/patches/server/0250-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 98373e013748817209b811d4adbb40a8787242a6..567b501f4de7556e55e2418d2f5700b4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7fd4af2288fcd91d7f845b0a76cdf76d2ca92c3b..ce7d7aafcdd59618c13b7cbb0c037601014db26f 100644 +index 6ba943d04afef431decbdf22fc9c140da758ecb0..50be8afc743492d9cbb9d815ff70f1d89dfd84ef 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2696,6 +2696,7 @@ public class PurpurWorldConfig { +@@ -2698,6 +2698,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 7fd4af2288fcd91d7f845b0a76cdf76d2ca92c3b..ce7d7aafcdd59618c13b7cbb0c037601 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2728,6 +2729,7 @@ public class PurpurWorldConfig { +@@ -2730,6 +2731,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch index a56aea125..6ee316e63 100644 --- a/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index 45579a592f519b54df5761a22f4abb0deff7feb6..d5fce1215d99de3393d06fdc65939920 AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); List list = world.getEntitiesOfClass(Villager.class, axisalignedbb); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6c0077316aa3fc284d93ad9b21d3e3760ec1e183..29ad2bdcc29b3758369acc130517c64d4ce56fa0 100644 +index e270917327520602d7dded100963d5a4d59d1f2f..7f2e969c56b1a0d6f7ab999810aa242a0db68a48 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2707,6 +2707,8 @@ public class PurpurWorldConfig { +@@ -2709,6 +2709,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 6c0077316aa3fc284d93ad9b21d3e3760ec1e183..29ad2bdcc29b3758369acc130517c64d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2740,6 +2742,8 @@ public class PurpurWorldConfig { +@@ -2742,6 +2744,8 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0275-Remove-Mojang-Profiler.patch b/patches/server/0275-Remove-Mojang-Profiler.patch index 8124f23c9..e542c564e 100644 --- a/patches/server/0275-Remove-Mojang-Profiler.patch +++ b/patches/server/0275-Remove-Mojang-Profiler.patch @@ -39,7 +39,7 @@ index 314ab6183e31b4bac6a40c1f8007d48e9cab1760..6b05907bfec377e72a8858534d001bda return b0; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9118cf6bcfee04e1e718acd5d1f859ebf836a6c3..4d85f6aada666a88a64ef37c1bdf69df52bdb2a5 100644 +index 7e6afc1f09bae9b9a52ca0fa3238bad6c406bef9..cb69dbf0261eee1f6d77e052ff474e0b142c356b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -340,13 +340,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop