diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 99c6ff561..8034c0d7d 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -2695,10 +2695,34 @@ index e2935115c8d41af1d623da4f0d4f73de80386129..e9f1d53599168c4c4b44a14b44514302 } } 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 c6949c7ec0766bda07324a6f004b29cbd37d0f1f..d79c55668c2077869e08a77a03aeffefefafd788 100644 +index c6949c7ec0766bda07324a6f004b29cbd37d0f1f..47a9e7a036e647c05d8abebdda4cab0d69aac997 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 -@@ -296,7 +296,7 @@ public class Sniffer extends Animal { +@@ -81,6 +81,23 @@ public class Sniffer extends Animal { + this.setPathfindingMalus(BlockPathTypes.WATER, -2.0F); + } + ++ // Purpur start ++ @Override ++ public boolean isRidable() { ++ return level.purpurConfig.snifferRidable; ++ } ++ ++ @Override ++ public boolean dismountsUnderwater() { ++ return !level.purpurConfig.snifferRidableInWater || super.dismountsUnderwater(); ++ } ++ ++ @Override ++ public boolean isControllable() { ++ return level.purpurConfig.snifferControllable; ++ } ++ // Purpur end ++ + // CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location + @Override + protected void defineSynchedData() { +@@ -296,7 +313,7 @@ public class Sniffer extends Animal { } @Override @@ -5185,10 +5209,10 @@ index bd9ea8dfbd986c96000efb7dc36fc93d12a2c8b9..b0344a0baa22c4312ac9d1049b14671d + } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2b7f1dedb3289efc7e42a138f4483f4969902801..5925b4e4707818e70a94eb0e77327c6eaa669312 100644 +index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674b186fc79 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -91,4 +91,706 @@ public class PurpurWorldConfig { +@@ -91,4 +91,715 @@ public class PurpurWorldConfig { final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); return value.isEmpty() ? fallback : value; } @@ -5699,6 +5723,15 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..5925b4e4707818e70a94eb0e77327c6e + snowGolemLeaveTrailWhenRidden = getBoolean("mobs.snow_golem.leave-trail-when-ridden", snowGolemLeaveTrailWhenRidden); + } + ++ public boolean snifferRidable = false; ++ public boolean snifferRidableInWater = false; ++ public boolean snifferControllable = true; ++ private void snifferSettings() { ++ snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); ++ snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater); ++ snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable); ++ } ++ + public boolean squidRidable = false; + public boolean squidControllable = true; + private void squidSettings() { diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index 37eaf5bee..f0257f76d 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -1220,7 +1220,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 5925b4e4707818e70a94eb0e77327c6eaa669312..9402abb6f417dc25fe6549a22239962ccda2cd49 100644 +index de0b2d79435f55f35f1063094ac9c674b186fc79..267833342e74cf71b5199d261620ace5ea988c1e 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 +1895,7 @@ index 5925b4e4707818e70a94eb0e77327c6eaa669312..9402abb6f417dc25fe6549a22239962c private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -456,180 +797,350 @@ public class PurpurWorldConfig { +@@ -456,146 +797,288 @@ 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); @@ -2183,6 +2183,9 @@ index 5925b4e4707818e70a94eb0e77327c6eaa669312..9402abb6f417dc25fe6549a22239962c + snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); } + public boolean snifferRidable = false; +@@ -609,36 +1092,64 @@ public class PurpurWorldConfig { + public boolean squidRidable = false; public boolean squidControllable = true; + public double squidMaxHealth = 10.0D; @@ -2246,7 +2249,7 @@ index 5925b4e4707818e70a94eb0e77327c6eaa669312..9402abb6f417dc25fe6549a22239962c } public boolean tadpoleRidable = false; -@@ -644,64 +1155,125 @@ public class PurpurWorldConfig { +@@ -653,64 +1164,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2372,7 +2375,7 @@ index 5925b4e4707818e70a94eb0e77327c6eaa669312..9402abb6f417dc25fe6549a22239962c } public boolean wardenRidable = false; -@@ -716,81 +1288,165 @@ public class PurpurWorldConfig { +@@ -725,81 +1297,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 7e4cc84cc..1d4ed455e 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 39e8c47af17dadce6e253a803954b50341dcba9c..fd9f7d6c52454e520411ab76142c7b93c04b6205 100644 +index 2633d54585678dcbe0b8131d3b28e502cc76b5f8..6a1d6578b8d95b7afcb12de0316d89ffe744d167 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1468,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1477,6 +1477,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; // TODO: re-implement public double zombieHorseMovementSpeedMin = 0.2D; // TODO: re-implement public double zombieHorseMovementSpeedMax = 0.2D; // TODO: re-implement @@ -41,7 +41,7 @@ index 39e8c47af17dadce6e253a803954b50341dcba9c..fd9f7d6c52454e520411ab76142c7b93 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1483,6 +1484,7 @@ public class PurpurWorldConfig { +@@ -1492,6 +1493,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/0037-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch index e04b2f2a9..7377e2f8c 100644 --- a/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch @@ -32,7 +32,7 @@ index 6f6542f57ed942de91957edf49ef8d92b5233aa8..b6431dbb41163f9ef0d43e96fcf89750 this.forceDrops = false; // CraftBukkit } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9fcf8bdd944cf0c7a91cd3032e40d53c44fde9ce..06f0fa854cef604fd36073734f4bbf42f3ea497e 100644 +index e82fdd52ae6fff3223d87c8a4695158dfd9740e6..5fefc46500a6bb824350c7b7aea3db20e5acfcb7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1169,6 +1169,8 @@ public class PurpurWorldConfig { @@ -52,4 +52,4 @@ index 9fcf8bdd944cf0c7a91cd3032e40d53c44fde9ce..06f0fa854cef604fd36073734f4bbf42 + snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); } - public boolean squidRidable = false; + public boolean snifferRidable = false; diff --git a/patches/server/0050-Villagers-follow-emerald-blocks.patch b/patches/server/0050-Villagers-follow-emerald-blocks.patch index 2c0da8fe7..b712bd93d 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 5bd1546082466cac963cce61c72d2698267f3554..d9ab35ffe3b5c10209b0d3c9de1bb7a66b38e6fe 100644 +index 8a5f7ac669f160fd7d77b51e531741769b1d804c..bbf5edf41f4b8070b806ba2de6329e05324f2586 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1424,6 +1424,7 @@ public class PurpurWorldConfig { +@@ -1433,6 +1433,7 @@ public class PurpurWorldConfig { public boolean villagerRidableInWater = false; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; @@ -65,7 +65,7 @@ index 5bd1546082466cac963cce61c72d2698267f3554..d9ab35ffe3b5c10209b0d3c9de1bb7a6 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1434,6 +1435,7 @@ public class PurpurWorldConfig { +@@ -1443,6 +1444,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -73,7 +73,7 @@ index 5bd1546082466cac963cce61c72d2698267f3554..d9ab35ffe3b5c10209b0d3c9de1bb7a6 } public boolean vindicatorRidable = false; -@@ -1456,6 +1458,7 @@ public class PurpurWorldConfig { +@@ -1465,6 +1467,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = false; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index 5bd1546082466cac963cce61c72d2698267f3554..d9ab35ffe3b5c10209b0d3c9de1bb7a6 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1466,6 +1469,7 @@ public class PurpurWorldConfig { +@@ -1475,6 +1478,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 a6c3d7004..8371a83b5 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 d9ab35ffe3b5c10209b0d3c9de1bb7a66b38e6fe..a8d607729fe645bfc2cd51d2374876c4dcfb389c 100644 +index bbf5edf41f4b8070b806ba2de6329e05324f2586..9298aae62a7a80f3876025f23387639fe2ae45c4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1425,6 +1425,7 @@ public class PurpurWorldConfig { +@@ -1434,6 +1434,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index d9ab35ffe3b5c10209b0d3c9de1bb7a66b38e6fe..a8d607729fe645bfc2cd51d2374876c4 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1436,6 +1437,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1446,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 d9ab35ffe3b5c10209b0d3c9de1bb7a66b38e6fe..a8d607729fe645bfc2cd51d2374876c4 } public boolean vindicatorRidable = false; -@@ -1459,6 +1461,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1470,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index d9ab35ffe3b5c10209b0d3c9de1bb7a66b38e6fe..a8d607729fe645bfc2cd51d2374876c4 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1470,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1479,6 +1482,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 269bee205..1f643163b 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 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627f25a9be6 100644 +index 56cca241fcbc1936dff7b2a4bbee73c63a9c8fe0..bd1ed1f4b8469ab5ab547ebe5e3ce9cd2b9d630d 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 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627 } public boolean illusionerRidable = false; -@@ -1663,6 +1675,9 @@ public class PurpurWorldConfig { +@@ -1672,6 +1684,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1674,6 +1689,9 @@ public class PurpurWorldConfig { +@@ -1683,6 +1698,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 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627 } public boolean zombieHorseRidableInWater = false; -@@ -1708,6 +1726,9 @@ public class PurpurWorldConfig { +@@ -1717,6 +1735,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1719,6 +1740,9 @@ public class PurpurWorldConfig { +@@ -1728,6 +1749,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 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627 } public boolean zombifiedPiglinRidable = false; -@@ -1726,6 +1750,9 @@ public class PurpurWorldConfig { +@@ -1735,6 +1759,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 803d2da4dd2922adfdb6bcb261073b89024b87f5..8d0c535b30bf61f56f5f62c851fdc627 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1737,5 +1764,8 @@ public class PurpurWorldConfig { +@@ -1746,5 +1773,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 457061380..7784b829b 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 c85d096834fea5ed4f6805267226b34cf0bb79ac..3ddbfdfe9422f7c1f87f9a26d35ad11507b93573 100644 +index dabf276d365e17865995bb6ce1083ced58c8b97b..58985f99ae1db4c749bd589f7dced86336dbdd2b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1442,6 +1442,7 @@ public class PurpurWorldConfig { +@@ -1451,6 +1451,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index c85d096834fea5ed4f6805267226b34cf0bb79ac..3ddbfdfe9422f7c1f87f9a26d35ad115 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1451,6 +1452,7 @@ public class PurpurWorldConfig { +@@ -1460,6 +1461,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 48ed0aeaa..df54edbd9 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 9c4a016d9567e0e6737e60d7518a23537ef87bd7..c0fa33bf963055dee50b03cec6e284fa02f41c61 100644 +index e05c07533300c567a9083e28e1f4c81b9381010d..cf2904fabe3389ef72d1b4901961192a2b1d3072 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1600,6 +1600,7 @@ public class PurpurWorldConfig { +@@ -1609,6 +1609,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index 9c4a016d9567e0e6737e60d7518a23537ef87bd7..c0fa33bf963055dee50b03cec6e284fa private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1612,6 +1613,7 @@ public class PurpurWorldConfig { +@@ -1621,6 +1622,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 c798b2eac..a34b235de 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 33913d10ac708aa682a9384c016097ed20c91a20..30ae5a63acc91b943c6c08b5e44e4648a3d7f3e6 100644 +index d9e7eaec0834940c5b4c03fe0370e3dbc7f9308d..cf71954aaadd8ac23fb11f034000c42ad6944973 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1627,6 +1627,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1636,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = false; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index 33913d10ac708aa682a9384c016097ed20c91a20..30ae5a63acc91b943c6c08b5e44e4648 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1637,6 +1638,7 @@ public class PurpurWorldConfig { +@@ -1646,6 +1647,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 9b0d9a6b9..eb4331204 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 4b72a70baa59c4411900a0f152d144318e8636fa..c5b4db93286c73a49ff3f48e5a761f1ccb96780b 100644 +index 5c6a3ea3be08d0228bff5fb52620b0524b024c9e..a3f3a2516e50cbb22057c8328fe20862845bcdc2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1467,6 +1467,7 @@ public class PurpurWorldConfig { +@@ -1476,6 +1476,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index 4b72a70baa59c4411900a0f152d144318e8636fa..c5b4db93286c73a49ff3f48e5a761f1c private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1477,6 +1478,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1487,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 a8eab5e81..117449e7b 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 4603aacc827aef7dd71096525703932ac3aed0c8..69984de957b742137588a5d5be7f7c2539515e2e 100644 +index a3a29cde25d0c6e0fd1c0167393916b185b2fd1f..4b091763e462a6e475985a24152e2b05e380265e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1706,6 +1706,8 @@ public class PurpurWorldConfig { +@@ -1715,6 +1715,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 4603aacc827aef7dd71096525703932ac3aed0c8..69984de957b742137588a5d5be7f7c25 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1721,6 +1723,8 @@ public class PurpurWorldConfig { +@@ -1730,6 +1732,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 c559a4363..06b3e45c1 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 4556563c317ca919cddf354e97eb581cb8371916..5bf6c17747fcd7059b9a434f7f185f432e90bee4 100644 +index 67c2aea750bc3c80e12533c5e75013d91e9b31ae..656635b15d8ed270cbf3f8d35a0fca24726a90f2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1839,6 +1839,7 @@ public class PurpurWorldConfig { +@@ -1848,6 +1848,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 4556563c317ca919cddf354e97eb581cb8371916..5bf6c17747fcd7059b9a434f7f185f43 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1853,6 +1854,7 @@ public class PurpurWorldConfig { +@@ -1862,6 +1863,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 28640e8b8..88a63ff71 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 5bf6c17747fcd7059b9a434f7f185f432e90bee4..bbb562478d11f4bf4b4f4efc228b911a736506a4 100644 +index 656635b15d8ed270cbf3f8d35a0fca24726a90f2..c95b58c5d68c7a5f1061c306c0a9b20c4436e2d8 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 5bf6c17747fcd7059b9a434f7f185f432e90bee4..bbb562478d11f4bf4b4f4efc228b911a } public boolean goatRidable = false; -@@ -1526,6 +1528,7 @@ public class PurpurWorldConfig { +@@ -1535,6 +1537,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 5bf6c17747fcd7059b9a434f7f185f432e90bee4..bbb562478d11f4bf4b4f4efc228b911a private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1537,6 +1540,7 @@ public class PurpurWorldConfig { +@@ -1546,6 +1549,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 eaac293d7..00689122b 100644 --- a/patches/server/0104-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0104-Make-entity-breeding-times-configurable.patch @@ -477,23 +477,21 @@ 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 d79c55668c2077869e08a77a03aeffefefafd788..f15e7a9e37339afa733bd319b192f2a8dc2a7b56 100644 +index 47a9e7a036e647c05d8abebdda4cab0d69aac997..28c20f7f79fed655d4a746e8ef3d5d4d15118e04 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 -@@ -81,6 +81,13 @@ public class Sniffer extends Animal { - this.setPathfindingMalus(BlockPathTypes.WATER, -2.0F); +@@ -96,6 +96,11 @@ public class Sniffer extends Animal { + public boolean isControllable() { + return level.purpurConfig.snifferControllable; } - -+ // Purpur start ++ + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.snifferBreedingTicks; + } -+ // Purpur end -+ + // Purpur end + // CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location - @Override - protected void defineSynchedData() { diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java index b512ac4b75e53c272a3c41fb5b66c84b6b0e9847..fbc2e3f0b73608a999619469cd701692cb1cb788 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -527,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 bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cdddd59400 100644 +index 823130a1a6505bf900a455858ba9224e5a242a64..7077abe83b9c1cd6cc81c11740947f465049b1c5 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 { @@ -856,19 +854,20 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd } public boolean shulkerRidable = false; -@@ -1561,6 +1603,11 @@ public class PurpurWorldConfig { - snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); +@@ -1564,10 +1606,12 @@ public class PurpurWorldConfig { + public boolean snifferRidable = false; + public boolean snifferRidableInWater = false; + public boolean snifferControllable = true; ++ 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); ++ snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", chickenBreedingTicks); } -+ public int snifferBreedingTicks = 6000; -+ private void snifferSettings() { -+ snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", chickenBreedingTicks); -+ } -+ public boolean squidRidable = false; - public boolean squidControllable = true; - public double squidMaxHealth = 10.0D; -@@ -1617,6 +1664,7 @@ public class PurpurWorldConfig { +@@ -1626,6 +1670,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -876,7 +875,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1627,6 +1675,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1681,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -884,7 +883,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd } public boolean tadpoleRidable = false; -@@ -1647,6 +1696,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1702,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; // TODO: re-implement public double traderLlamaMovementSpeedMin = 0.175D; // TODO: re-implement public double traderLlamaMovementSpeedMax = 0.175D; // TODO: re-implement @@ -892,7 +891,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1664,6 +1714,7 @@ public class PurpurWorldConfig { +@@ -1673,6 +1720,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); @@ -900,7 +899,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd } public boolean tropicalFishRidable = false; -@@ -1684,6 +1735,7 @@ public class PurpurWorldConfig { +@@ -1693,6 +1741,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = false; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -908,7 +907,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1694,6 +1746,7 @@ public class PurpurWorldConfig { +@@ -1703,6 +1752,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -916,7 +915,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd } public boolean vexRidable = false; -@@ -1721,6 +1774,7 @@ public class PurpurWorldConfig { +@@ -1730,6 +1780,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -924,7 +923,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1734,6 +1788,7 @@ public class PurpurWorldConfig { +@@ -1743,6 +1794,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); @@ -932,7 +931,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd } public boolean vindicatorRidable = false; -@@ -1845,6 +1900,7 @@ public class PurpurWorldConfig { +@@ -1854,6 +1906,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -940,7 +939,7 @@ index bd46b5fa3404a4a64fefe1165735c03d9c2ec0db..d7669999bcf294c71c4238ccbeade1cd private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1855,6 +1911,7 @@ public class PurpurWorldConfig { +@@ -1864,6 +1917,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch index 081cdc96d..03404223e 100644 --- a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch @@ -23,7 +23,7 @@ index b6431dbb41163f9ef0d43e96fcf89750c5a6eef7..5ae7f8dcb39cdf9bfc760f47a6745b81 this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(4, new RandomLookAroundGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3745b401457a60df0f4f6436a52bedc130acca25..01bca5885f0dd14fbb746c635116ac41a2b73bb5 100644 +index 0b22b19a53758affe761fe81a10bdc252261c8a9..092e7417d5a3edb13ca673fc0d44f86327fd443f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1605,6 +1605,10 @@ public class PurpurWorldConfig { @@ -47,4 +47,4 @@ index 3745b401457a60df0f4f6436a52bedc130acca25..01bca5885f0dd14fbb746c635116ac41 + snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); } - public int snifferBreedingTicks = 6000; + public boolean snifferRidable = false; 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 723c77da6..cefce811e 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 01bca5885f0dd14fbb746c635116ac41a2b73bb5..8896e4b02f1a659561c2462c59ffeb13d419d6e8 100644 +index 092e7417d5a3edb13ca673fc0d44f86327fd443f..9fcf04fb03fead5c7850efddf5032c0e34f55ce6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1800,6 +1800,8 @@ public class PurpurWorldConfig { +@@ -1806,6 +1806,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index 01bca5885f0dd14fbb746c635116ac41a2b73bb5..8896e4b02f1a659561c2462c59ffeb13 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1814,6 +1816,8 @@ public class PurpurWorldConfig { +@@ -1820,6 +1822,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 52566e929..293827efe 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 8896e4b02f1a659561c2462c59ffeb13d419d6e8..427e89ea6014bd3668632ef5cda87b59dc97d5f0 100644 +index 9fcf04fb03fead5c7850efddf5032c0e34f55ce6..a5dc84e5f5806a9529dc3643f4624424ecf03e1e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2044,6 +2044,7 @@ public class PurpurWorldConfig { +@@ -2050,6 +2050,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 8896e4b02f1a659561c2462c59ffeb13d419d6e8..427e89ea6014bd3668632ef5cda87b59 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2058,5 +2059,6 @@ public class PurpurWorldConfig { +@@ -2064,5 +2065,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 101fa5bc6..10de7bda4 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 427e89ea6014bd3668632ef5cda87b59dc97d5f0..0d320ce7d833bbddbecb39b96dddf459f9babaf5 100644 +index a5dc84e5f5806a9529dc3643f4624424ecf03e1e..ccce1d974cbf4157748de7731a6c792c4e3bfd63 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1929,6 +1929,8 @@ public class PurpurWorldConfig { +@@ -1935,6 +1935,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index 427e89ea6014bd3668632ef5cda87b59dc97d5f0..0d320ce7d833bbddbecb39b96dddf459 public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1940,6 +1942,8 @@ public class PurpurWorldConfig { +@@ -1946,6 +1948,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 5e5690f49..e1cad9338 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 0d320ce7d833bbddbecb39b96dddf459f9babaf5..056d74886fc50508de302c75f32e5d541f142a3f 100644 +index ccce1d974cbf4157748de7731a6c792c4e3bfd63..07e6caaae07797fbed03f57ea057aad68509122c 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 0d320ce7d833bbddbecb39b96dddf459f9babaf5..056d74886fc50508de302c75f32e5d54 } public boolean caveSpiderRidable = false; -@@ -1929,6 +1935,7 @@ public class PurpurWorldConfig { +@@ -1935,6 +1941,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index 0d320ce7d833bbddbecb39b96dddf459f9babaf5..056d74886fc50508de302c75f32e5d54 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1942,6 +1949,11 @@ public class PurpurWorldConfig { +@@ -1948,6 +1955,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 3ab32d461..0ef65d4dc 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 84577116234c339e378b8bada2476b2f596ff228..8871243460a9ecb89fa02aba138b5d00d49382b9 100644 +index 9ad72bb746226e1fcbc91293e8608e7e53c51b02..104aee7648b5553604dda03b7fcee7fea89282e4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1703,6 +1703,7 @@ public class PurpurWorldConfig { +@@ -1709,6 +1709,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 84577116234c339e378b8bada2476b2f596ff228..8871243460a9ecb89fa02aba138b5d00 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1714,6 +1715,7 @@ public class PurpurWorldConfig { +@@ -1720,6 +1721,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 74be3b87a..b7c0febeb 100644 --- a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch @@ -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 e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1e571b5de 100644 +index a9cef10353547680630d5d7916858f027a2669e2..cbe45869a27177a7d83db1b6562fe91808baec6c 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 { @@ -628,8 +628,8 @@ index e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1 + snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); } - public int snifferBreedingTicks = 6000; -@@ -1830,6 +1869,7 @@ public class PurpurWorldConfig { + public boolean snifferRidable = false; +@@ -1836,6 +1875,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1846,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1852,6 +1892,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 e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1 } public boolean vindicatorRidable = false; -@@ -1918,6 +1959,7 @@ public class PurpurWorldConfig { +@@ -1924,6 +1965,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1935,6 +1977,7 @@ public class PurpurWorldConfig { +@@ -1941,6 +1983,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 e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1 } public boolean witherSkeletonRidable = false; -@@ -2006,6 +2049,7 @@ public class PurpurWorldConfig { +@@ -2012,6 +2055,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index e4a4632628d0426f558823e245be942763104191..553a3996e7d5eb350d070bd53162cde1 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2021,6 +2065,7 @@ public class PurpurWorldConfig { +@@ -2027,6 +2071,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 e66f55af0..13e4f7e70 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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f530727d2d2be0 100644 +index ac544371839dc9d5e0540ef2a5936d946e91ac7a..198d963d3fea007638ccac26fafc0dfaa3cbe570 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 { @@ -2026,8 +2026,8 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 + snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); } - public int snifferBreedingTicks = 6000; -@@ -1722,6 +1828,7 @@ public class PurpurWorldConfig { + public boolean snifferRidable = false; +@@ -1728,6 +1834,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1734,12 +1841,14 @@ public class PurpurWorldConfig { +@@ -1740,12 +1847,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1750,12 +1859,14 @@ public class PurpurWorldConfig { +@@ -1756,12 +1865,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1766,6 +1877,7 @@ public class PurpurWorldConfig { +@@ -1772,6 +1883,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean striderRidable = false; -@@ -1774,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1780,6 +1892,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1786,6 +1899,7 @@ public class PurpurWorldConfig { +@@ -1792,6 +1905,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean tadpoleRidable = false; -@@ -1807,6 +1921,7 @@ public class PurpurWorldConfig { +@@ -1813,6 +1927,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; // TODO: re-implement public double traderLlamaMovementSpeedMax = 0.175D; // TODO: re-implement public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1825,11 +1940,13 @@ public class PurpurWorldConfig { +@@ -1831,11 +1946,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1839,6 +1956,7 @@ public class PurpurWorldConfig { +@@ -1845,6 +1962,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean turtleRidable = false; -@@ -1846,6 +1964,7 @@ public class PurpurWorldConfig { +@@ -1852,6 +1970,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1857,6 +1976,7 @@ public class PurpurWorldConfig { +@@ -1863,6 +1982,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean vexRidable = false; -@@ -1864,6 +1984,7 @@ public class PurpurWorldConfig { +@@ -1870,6 +1990,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1875,6 +1996,7 @@ public class PurpurWorldConfig { +@@ -1881,6 +2002,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean villagerRidable = false; -@@ -1888,6 +2010,7 @@ public class PurpurWorldConfig { +@@ -1894,6 +2016,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1905,6 +2028,7 @@ public class PurpurWorldConfig { +@@ -1911,6 +2034,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean vindicatorRidable = false; -@@ -1912,6 +2036,7 @@ public class PurpurWorldConfig { +@@ -1918,6 +2042,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1923,6 +2048,7 @@ public class PurpurWorldConfig { +@@ -1929,6 +2054,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean wanderingTraderRidable = false; -@@ -1931,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -1937,6 +2063,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1943,6 +2070,7 @@ public class PurpurWorldConfig { +@@ -1949,6 +2076,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean wardenRidable = false; -@@ -1958,6 +2086,7 @@ public class PurpurWorldConfig { +@@ -1964,6 +2092,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = false; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1968,6 +2097,7 @@ public class PurpurWorldConfig { +@@ -1974,6 +2103,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean witherRidable = false; -@@ -1978,6 +2108,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +2114,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1996,12 +2127,14 @@ public class PurpurWorldConfig { +@@ -2002,12 +2133,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2012,6 +2145,7 @@ public class PurpurWorldConfig { +@@ -2018,6 +2151,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean wolfRidable = false; -@@ -2022,6 +2156,7 @@ public class PurpurWorldConfig { +@@ -2028,6 +2162,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2040,12 +2175,14 @@ public class PurpurWorldConfig { +@@ -2046,12 +2181,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2056,6 +2193,7 @@ public class PurpurWorldConfig { +@@ -2062,6 +2199,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean zombieRidable = false; -@@ -2068,6 +2206,7 @@ public class PurpurWorldConfig { +@@ -2074,6 +2212,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2084,6 +2223,7 @@ public class PurpurWorldConfig { +@@ -2090,6 +2229,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean zombieHorseRidableInWater = false; -@@ -2095,6 +2235,7 @@ public class PurpurWorldConfig { +@@ -2101,6 +2241,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; // TODO: re-implement public double zombieHorseMovementSpeedMax = 0.2D; // TODO: re-implement public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2111,6 +2252,7 @@ public class PurpurWorldConfig { +@@ -2117,6 +2258,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean zombieVillagerRidable = false; -@@ -2121,6 +2263,7 @@ public class PurpurWorldConfig { +@@ -2127,6 +2269,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2135,6 +2278,7 @@ public class PurpurWorldConfig { +@@ -2141,6 +2284,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 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 } public boolean zombifiedPiglinRidable = false; -@@ -2146,6 +2290,7 @@ public class PurpurWorldConfig { +@@ -2152,6 +2296,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index 1cada527ffee79197c54f2504b3c4616746f8e9c..efee0da104d1ad78d7a4c99338f53072 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2161,5 +2306,6 @@ public class PurpurWorldConfig { +@@ -2167,5 +2312,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 609e0ed15..d7923552d 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 6b5486a76aa65e46af46eeaf4252e37b6d98d3cc..d7a87f582ba3f9f1af1605313208212011c53c58 100644 +index d14eab17a45f234f08383ea5091157f1ada279f5..6425f7651120c76118506b130c98deb1b68deb6f 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 6b5486a76aa65e46af46eeaf4252e37b6d98d3cc..d7a87f582ba3f9f1af16053132082120 } public boolean endermanRidable = false; -@@ -2148,6 +2150,7 @@ public class PurpurWorldConfig { +@@ -2154,6 +2156,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 6b5486a76aa65e46af46eeaf4252e37b6d98d3cc..d7a87f582ba3f9f1af16053132082120 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2167,6 +2170,7 @@ public class PurpurWorldConfig { +@@ -2173,6 +2176,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 6c9e93f03..f6fa8b610 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 5454a4aa35095ea2fdb6def38dc49c3cc4ec7474..0b63e4ef8789382001cc7fe579e678172651bd14 100644 +index f875df82b1b92ddcf8a23a021b7d77a4a5802ce9..7c2f2b5bc48d1c1d34ad9b1b265be97f1423c36e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2111,6 +2111,7 @@ public class PurpurWorldConfig { +@@ -2117,6 +2117,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 5454a4aa35095ea2fdb6def38dc49c3cc4ec7474..0b63e4ef8789382001cc7fe579e67817 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2129,6 +2130,7 @@ public class PurpurWorldConfig { +@@ -2135,6 +2136,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 5454a4aa35095ea2fdb6def38dc49c3cc4ec7474..0b63e4ef8789382001cc7fe579e67817 } public boolean vindicatorRidable = false; -@@ -2158,6 +2160,7 @@ public class PurpurWorldConfig { +@@ -2164,6 +2166,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 5454a4aa35095ea2fdb6def38dc49c3cc4ec7474..0b63e4ef8789382001cc7fe579e67817 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2171,6 +2174,7 @@ public class PurpurWorldConfig { +@@ -2177,6 +2180,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 fbec95e53..fe81ac793 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 186d24b7b671665ee7cedc7b53cb98ede17ac0ca..4f40b284691f67b0ba8ddfd73d321dbc134444ab 100644 +index be9fb06b266a3cce69cd5650f52a0df05e4dd750..be3c63b843cc24314becf29d4c27273866c776b4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2278,6 +2278,7 @@ public class PurpurWorldConfig { +@@ -2284,6 +2284,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 186d24b7b671665ee7cedc7b53cb98ede17ac0ca..4f40b284691f67b0ba8ddfd73d321dbc private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2298,6 +2299,7 @@ public class PurpurWorldConfig { +@@ -2304,6 +2305,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 7bb38581e..d8beb4c5d 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 f5ba56624339ff8b3ac87eb2f42ad5339bf83e3c..13877fd45731680332b84c3580ddc0ac5050ad02 100644 +index d5161e92f05a0e8b6722cd5b56e10a2861e75d15..cf1ff8dc7e1279c11293740f1b1bdb6a413ce870 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2582,4 +2582,9 @@ public class PurpurWorldConfig { +@@ -2588,4 +2588,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 474564a12..2818aabbb 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 ff30b8356a3f3e012f8184fc32d91028a95f1e3a..7eeef57472233160eef67069589ddc22e5cc8222 100644 +index e84aa0fc0fabc6b3fc4602e0803d21e07f6d5b2e..3b51d99cefd879b5a723017c77f2f8a7cc5f6b70 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -714,6 +714,11 @@ public class PurpurWorldConfig { @@ -39,7 +39,7 @@ index ff30b8356a3f3e012f8184fc32d91028a95f1e3a..7eeef57472233160eef67069589ddc22 public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2743,3 +2748,4 @@ public class PurpurWorldConfig { +@@ -2749,3 +2754,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 4a9787648..c40211292 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 b89017929fa6f5353620ce47d06a79346d960286..9500363b31d9fcaec0b647778ff331378626d76b 100644 +index 478b00fd65409724fa152fde36b6c7929d07622d..ef4d18edfc90e978e365e5ea0134d72b1c5c386e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2727,6 +2727,8 @@ public class PurpurWorldConfig { +@@ -2733,6 +2733,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index b89017929fa6f5353620ce47d06a79346d960286..9500363b31d9fcaec0b647778ff33137 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2742,6 +2744,8 @@ public class PurpurWorldConfig { +@@ -2748,6 +2750,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 97834d523..931ebe5e5 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 f3fc30796a2b117595ae306add12242e6b54e41d..bb4c60d16ad2dc618b08a9cc7c1c6f3d5f57b3dd 100644 +index e306f28641f14897a14eab7f618b4ae954df3afc..e4d20da9aedf0b0232781936d791b6c4a1463f88 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2572,6 +2572,7 @@ public class PurpurWorldConfig { +@@ -2578,6 +2578,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index f3fc30796a2b117595ae306add12242e6b54e41d..bb4c60d16ad2dc618b08a9cc7c1c6f3d private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2593,6 +2594,7 @@ public class PurpurWorldConfig { +@@ -2599,6 +2600,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 0f39045ec..44a6fac48 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 34c454ebca52787c77c7db4b197fe2092235f06f..b151ecb65760b18bed6498db598f3de329975998 100644 +index 5cb2cfea76523cd0dabc1918a5b426ef0052edc1..5d17356098c6d38249e3c813f78836da6d50dc07 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2791,5 +2791,28 @@ public class PurpurWorldConfig { +@@ -2797,5 +2797,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 a4bf3b01a..fddd57ff7 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 b151ecb65760b18bed6498db598f3de329975998..5db387cf0b8e0fdf31da1f5b957332381590f4b3 100644 +index 5d17356098c6d38249e3c813f78836da6d50dc07..54a086a14ffad32496b5602a4fe1aa4535055579 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2814,5 +2814,16 @@ public class PurpurWorldConfig { +@@ -2820,5 +2820,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 dbf1b905e..a58c9adc9 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 7c9708769c402a3724bf20d29ee1d5de368f32b3..613dffca78f5120d0c905e62f2f60b1763cd0c55 100644 +index 3c12d3ef4815f191078211582b25092b9c4f984c..c8b77f1838d0edfea3e5750e3e04aaeaa87e1f17 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2791,6 +2791,7 @@ public class PurpurWorldConfig { +@@ -2797,6 +2797,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 7c9708769c402a3724bf20d29ee1d5de368f32b3..613dffca78f5120d0c905e62f2f60b17 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2808,6 +2809,7 @@ public class PurpurWorldConfig { +@@ -2814,6 +2815,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 1bbfefbaf..1566307c8 100644 --- a/patches/server/0230-Mobs-always-drop-experience.patch +++ b/patches/server/0230-Mobs-always-drop-experience.patch @@ -645,7 +645,7 @@ index 0217eebab2bac9f647ec00888190fafb7c741497..916cf5137808003058a787210fc3343d public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 7b6287231131fb39a8bab756f7fda3c9edded93d..8accf3abb5ba38faad29bd7d7e1a594d9ba6ced2 100644 +index 9e5f6666cbc4303d095a4f95db9acd0bbc38f825..9de39557196e4a25d9227608d20f992b521a55c9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -112,6 +112,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db9630b5c9631 100644 +index e4f06854d30c4f441dc55af91c010ad34a5888c0..2f99965a4ed34d48f62ad19338e7728f8b8bb7e7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1013,12 +1013,14 @@ public class PurpurWorldConfig { @@ -1984,8 +1984,8 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 + snowGolemAlwaysDropExp = getBoolean("mobs.snow_golem.always-drop-exp", snowGolemAlwaysDropExp); } - public int snifferBreedingTicks = 6000; -@@ -2348,6 +2452,7 @@ public class PurpurWorldConfig { + public boolean snifferRidable = false; +@@ -2354,6 +2458,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2361,6 +2466,7 @@ public class PurpurWorldConfig { +@@ -2367,6 +2472,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean spiderRidable = false; -@@ -2368,6 +2474,7 @@ public class PurpurWorldConfig { +@@ -2374,6 +2480,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2379,6 +2486,7 @@ public class PurpurWorldConfig { +@@ -2385,6 +2492,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean strayRidable = false; -@@ -2386,6 +2494,7 @@ public class PurpurWorldConfig { +@@ -2392,6 +2500,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2397,6 +2506,7 @@ public class PurpurWorldConfig { +@@ -2403,6 +2512,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean striderRidable = false; -@@ -2406,6 +2516,7 @@ public class PurpurWorldConfig { +@@ -2412,6 +2522,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2419,6 +2530,7 @@ public class PurpurWorldConfig { +@@ -2425,6 +2536,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean tadpoleRidable = false; -@@ -2441,6 +2553,7 @@ public class PurpurWorldConfig { +@@ -2447,6 +2559,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; // TODO: re-implement public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2460,12 +2573,14 @@ public class PurpurWorldConfig { +@@ -2466,12 +2579,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2476,6 +2591,7 @@ public class PurpurWorldConfig { +@@ -2482,6 +2597,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean turtleRidable = false; -@@ -2484,6 +2600,7 @@ public class PurpurWorldConfig { +@@ -2490,6 +2606,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2496,6 +2613,7 @@ public class PurpurWorldConfig { +@@ -2502,6 +2619,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean vexRidable = false; -@@ -2504,6 +2622,7 @@ public class PurpurWorldConfig { +@@ -2510,6 +2628,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2516,6 +2635,7 @@ public class PurpurWorldConfig { +@@ -2522,6 +2641,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean villagerRidable = false; -@@ -2531,6 +2651,7 @@ public class PurpurWorldConfig { +@@ -2537,6 +2657,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2550,6 +2671,7 @@ public class PurpurWorldConfig { +@@ -2556,6 +2677,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean vindicatorRidable = false; -@@ -2558,6 +2680,7 @@ public class PurpurWorldConfig { +@@ -2564,6 +2686,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2570,6 +2693,7 @@ public class PurpurWorldConfig { +@@ -2576,6 +2699,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean wanderingTraderRidable = false; -@@ -2580,6 +2704,7 @@ public class PurpurWorldConfig { +@@ -2586,6 +2710,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2594,6 +2719,7 @@ public class PurpurWorldConfig { +@@ -2600,6 +2725,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean wardenRidable = false; -@@ -2610,6 +2736,7 @@ public class PurpurWorldConfig { +@@ -2616,6 +2742,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2621,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2627,6 +2754,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean witherRidable = false; -@@ -2635,6 +2763,7 @@ public class PurpurWorldConfig { +@@ -2641,6 +2769,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2657,6 +2786,7 @@ public class PurpurWorldConfig { +@@ -2663,6 +2792,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean witherSkeletonRidable = false; -@@ -2664,6 +2794,7 @@ public class PurpurWorldConfig { +@@ -2670,6 +2800,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2675,6 +2806,7 @@ public class PurpurWorldConfig { +@@ -2681,6 +2812,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean wolfRidable = false; -@@ -2686,6 +2818,7 @@ public class PurpurWorldConfig { +@@ -2692,6 +2824,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2705,6 +2838,7 @@ public class PurpurWorldConfig { +@@ -2711,6 +2844,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean zoglinRidable = false; -@@ -2712,6 +2846,7 @@ public class PurpurWorldConfig { +@@ -2718,6 +2852,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2723,6 +2858,7 @@ public class PurpurWorldConfig { +@@ -2729,6 +2864,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean zombieRidable = false; -@@ -2736,6 +2872,7 @@ public class PurpurWorldConfig { +@@ -2742,6 +2878,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2753,6 +2890,7 @@ public class PurpurWorldConfig { +@@ -2759,6 +2896,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean zombieHorseRidableInWater = false; -@@ -2765,6 +2903,7 @@ public class PurpurWorldConfig { +@@ -2771,6 +2909,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; // TODO: re-implement public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2782,6 +2921,7 @@ public class PurpurWorldConfig { +@@ -2788,6 +2927,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean zombieVillagerRidable = false; -@@ -2796,6 +2936,7 @@ public class PurpurWorldConfig { +@@ -2802,6 +2942,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2814,6 +2955,7 @@ public class PurpurWorldConfig { +@@ -2820,6 +2961,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 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 } public boolean zombifiedPiglinRidable = false; -@@ -2826,6 +2968,7 @@ public class PurpurWorldConfig { +@@ -2832,6 +2974,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 8a9f7b7d831d2b812f4833835bcba68845f42f39..2261e51166b9bf487bb109977b6db963 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2842,6 +2985,7 @@ public class PurpurWorldConfig { +@@ -2848,6 +2991,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 44e081531..e66cac2ec 100644 --- a/patches/server/0236-Mob-head-visibility-percent.patch +++ b/patches/server/0236-Mob-head-visibility-percent.patch @@ -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 9622f8be1d3a4c46ad63868cc237c5ca6f1a25f5..84d3449f19e91098797c9e32139024f5419477b5 100644 +index f2b9ad0a778390e4de54075be0f4404260349c4d..004936fc906b0c463625d780341d3da4ef80c9c3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1265,6 +1265,7 @@ public class PurpurWorldConfig { @@ -83,7 +83,7 @@ index 9622f8be1d3a4c46ad63868cc237c5ca6f1a25f5..84d3449f19e91098797c9e32139024f5 } public boolean skeletonHorseRidableInWater = true; -@@ -2881,6 +2887,7 @@ public class PurpurWorldConfig { +@@ -2887,6 +2893,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 9622f8be1d3a4c46ad63868cc237c5ca6f1a25f5..84d3449f19e91098797c9e32139024f5 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2899,6 +2906,7 @@ public class PurpurWorldConfig { +@@ -2905,6 +2912,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 acaef5c79..c565a621c 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 b76778dde88408667e43c0ea54906051157067b0..12aac9a21d8ded7429bcda4dc62fcd52787982a8 100644 +index db54150501636ed4ea06b271f3041787933ec2b4..d8e070261c1043a7ec612deb4561b361dbc3939d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2683,6 +2683,7 @@ public class PurpurWorldConfig { +@@ -2689,6 +2689,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index b76778dde88408667e43c0ea54906051157067b0..12aac9a21d8ded7429bcda4dc62fcd52 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2703,6 +2704,7 @@ public class PurpurWorldConfig { +@@ -2709,6 +2710,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 5eae28b0c..769c78b1d 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 12aac9a21d8ded7429bcda4dc62fcd52787982a8..da09ff6ee051cc811fdcbbe134126bc98b9964fa 100644 +index d8e070261c1043a7ec612deb4561b361dbc3939d..bb1f800a4e621b2d283f196e2208a9e4ee2db11f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2684,6 +2684,8 @@ public class PurpurWorldConfig { +@@ -2690,6 +2690,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -120,7 +120,7 @@ index 12aac9a21d8ded7429bcda4dc62fcd52787982a8..da09ff6ee051cc811fdcbbe134126bc9 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2705,6 +2707,17 @@ public class PurpurWorldConfig { +@@ -2711,6 +2713,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 cf3fa4898..d32a220cd 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 da09ff6ee051cc811fdcbbe134126bc98b9964fa..8908383b77c638ef3d224c5c7d055eca959efee4 100644 +index bb1f800a4e621b2d283f196e2208a9e4ee2db11f..f61af2b223f687ec3d64441c37fb6b47c6b513ec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2686,6 +2686,7 @@ public class PurpurWorldConfig { +@@ -2692,6 +2692,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index da09ff6ee051cc811fdcbbe134126bc98b9964fa..8908383b77c638ef3d224c5c7d055eca private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2718,6 +2719,7 @@ public class PurpurWorldConfig { +@@ -2724,6 +2725,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 382b079c9..4fe592405 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 2d6b1f21daa9813e50c5e8ae1773169ba4f63ef2..a333c3daae7e6416ec1ff897ca5fc6629c31a9c8 100644 +index 1d1712d2f766939edc7eedbfbdf1e54d17005d1e..a5a40aab0a23bb2d3f39ed156aed682570f6b344 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2697,6 +2697,8 @@ public class PurpurWorldConfig { +@@ -2703,6 +2703,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 2d6b1f21daa9813e50c5e8ae1773169ba4f63ef2..a333c3daae7e6416ec1ff897ca5fc662 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2730,6 +2732,8 @@ public class PurpurWorldConfig { +@@ -2736,6 +2738,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 3015bf21a..8124f23c9 100644 --- a/patches/server/0275-Remove-Mojang-Profiler.patch +++ b/patches/server/0275-Remove-Mojang-Profiler.patch @@ -1575,10 +1575,10 @@ index f61843b76ad0dd50ed0ccaaf5f83a0c63e460343..5229a5af3ba875247db0228fef290f76 } 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 f15e7a9e37339afa733bd319b192f2a8dc2a7b56..e4788facd8d504bb9aebbb292efb9f203c2af66b 100644 +index 28c20f7f79fed655d4a746e8ef3d5d4d15118e04..dcbf9eb615116e7c0dec96272cca319a02259456 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 -@@ -442,11 +442,11 @@ public class Sniffer extends Animal { +@@ -457,11 +457,11 @@ public class Sniffer extends Animal { @Override protected void customServerAiStep() {